diff --git a/Alignment/CommonAlignment/scripts/tkal_create_file_lists.py b/Alignment/CommonAlignment/scripts/tkal_create_file_lists.py index ee6fce83426b7..ab70a4cd90d56 100755 --- a/Alignment/CommonAlignment/scripts/tkal_create_file_lists.py +++ b/Alignment/CommonAlignment/scripts/tkal_create_file_lists.py @@ -916,6 +916,7 @@ def das_client(query, check_key = None): """ error = True + das_data = {'status': 'error'} for i in range(5): # maximum of 5 tries try: das_data = cmssw_das_client.get_data(query, limit = 0) @@ -924,6 +925,7 @@ def das_client(query, check_key = None): continue except ValueError as e: if str(e) == "No JSON object could be decoded": + das_data['reason'] = str(e) continue if das_data["status"] == "ok": @@ -945,7 +947,7 @@ def das_client(query, check_key = None): if das_data["status"] == "error": print_msg("DAS query '{}' failed 5 times. " "The last time for the the following reason:".format(query)) - print(das_data["reason"]) + print(das_data.get("reason", "ERROR:UNKNOWN")) sys.exit(1) return das_data["data"] diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlJetHT_Output_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlJetHT_Output_cff.py new file mode 100644 index 0000000000000..cfc70596d00e0 --- /dev/null +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlJetHT_Output_cff.py @@ -0,0 +1,19 @@ +import FWCore.ParameterSet.Config as cms + +# AlCaReco for track based alignment using JetHT events +OutALCARECOTkAlJetHT_noDrop = cms.PSet( + SelectEvents = cms.untracked.PSet( + SelectEvents = cms.vstring('pathALCARECOTkAlJetHT') + ), + outputCommands = cms.untracked.vstring( + 'keep *_ALCARECOTkAlJetHT_*_*', + 'keep L1AcceptBunchCrossings_*_*_*', + 'keep L1GlobalTriggerReadoutRecord_gtDigis_*_*', + 'keep *_TriggerResults_*_*', + 'keep DcsStatuss_scalersRawToDigi_*_*', + 'keep *_offlinePrimaryVertices_*_*', + 'keep *_offlineBeamSpot_*_*') +) + +OutALCARECOTkAlJetHT = OutALCARECOTkAlJetHT_noDrop.clone() +OutALCARECOTkAlJetHT.outputCommands.insert(0, "drop *") diff --git a/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlJetHT_cff.py b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlJetHT_cff.py new file mode 100644 index 0000000000000..68013067fc541 --- /dev/null +++ b/Alignment/CommonAlignmentProducer/python/ALCARECOTkAlJetHT_cff.py @@ -0,0 +1,46 @@ +# AlCaReco for track based alignment using min. bias events +import FWCore.ParameterSet.Config as cms + +import HLTrigger.HLTfilters.hltHighLevel_cfi +ALCARECOTkAlJetHTHLT = HLTrigger.HLTfilters.hltHighLevel_cfi.hltHighLevel.clone( + andOr = True, ## choose logical OR between Triggerbits + eventSetupPathsKey = 'TkAlJetHTHLT', + throw = False # tolerate triggers stated above, but not available + ) + +# DCS partitions +# "EBp","EBm","EEp","EEm","HBHEa","HBHEb","HBHEc","HF","HO","RPC" +# "DT0","DTp","DTm","CSCp","CSCm","CASTOR","TIBTID","TOB","TECp","TECm" +# "BPIX","FPIX","ESp","ESm" +import DPGAnalysis.Skims.skim_detstatus_cfi +ALCARECOTkAlJetHTDCSFilter = DPGAnalysis.Skims.skim_detstatus_cfi.dcsstatus.clone( + DetectorType = cms.vstring('TIBTID','TOB','TECp','TECm','BPIX','FPIX'), + ApplyFilter = cms.bool(True), + AndOr = cms.bool(True), + DebugOn = cms.untracked.bool(False) +) + +import FWCore.Modules.preScaler_cfi +ALCARECOTkAlJetHTPrescaler = FWCore.Modules.preScaler_cfi.preScaler.clone( + prescaleFactor = cms.int32(10), # selects one event out of 10 + prescaleOffset = cms.int32(1) +) + +import Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi +ALCARECOTkAlJetHT = Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi.AlignmentTrackSelector.clone( + filter = True, ##do not store empty events + applyBasicCuts = True, + ptMin = 0.65, ##GeV + pMin = 1.5, ##GeV + etaMin = -3.5, + etaMax = 3.5, + nHitMin = 7 ## at least 7 hits required +) + +ALCARECOTkAlJetHT.GlobalSelector.applyIsolationtest = False +ALCARECOTkAlJetHT.GlobalSelector.applyGlobalMuonFilter = False +ALCARECOTkAlJetHT.TwoBodyDecaySelector.applyMassrangeFilter = False +ALCARECOTkAlJetHT.TwoBodyDecaySelector.applyChargeFilter = False +ALCARECOTkAlJetHT.TwoBodyDecaySelector.applyAcoplanarityFilter = False + +seqALCARECOTkAlJetHT = cms.Sequence(ALCARECOTkAlJetHTHLT+ALCARECOTkAlJetHTDCSFilter+ALCARECOTkAlJetHTPrescaler*ALCARECOTkAlJetHT) diff --git a/Alignment/MillePedeAlignmentAlgorithm/test/BuildFile.xml b/Alignment/MillePedeAlignmentAlgorithm/test/BuildFile.xml index cc366536a8613..733f2b611c2b3 100644 --- a/Alignment/MillePedeAlignmentAlgorithm/test/BuildFile.xml +++ b/Alignment/MillePedeAlignmentAlgorithm/test/BuildFile.xml @@ -9,7 +9,7 @@ - + diff --git a/Alignment/MuonAlignment/test/muonGeometryDBConverter_cfg.py b/Alignment/MuonAlignment/test/muonGeometryDBConverter_cfg.py index b5add71845553..b70f9569d469a 100644 --- a/Alignment/MuonAlignment/test/muonGeometryDBConverter_cfg.py +++ b/Alignment/MuonAlignment/test/muonGeometryDBConverter_cfg.py @@ -37,7 +37,7 @@ ################################################################################ # parameters to configure: from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, "auto:phase1_2021_design") +process.GlobalTag = GlobalTag(process.GlobalTag, "auto:phase1_2022_design") process.muonGeometryDBConverter.input = options.input process.muonGeometryDBConverter.output = options.output diff --git a/Alignment/SurveyAnalysis/test/run-converter_cfg.py b/Alignment/SurveyAnalysis/test/run-converter_cfg.py index 44d0d4ed7db24..329f3b2dda5ff 100644 --- a/Alignment/SurveyAnalysis/test/run-converter_cfg.py +++ b/Alignment/SurveyAnalysis/test/run-converter_cfg.py @@ -3,7 +3,7 @@ process = cms.Process("DATACONVERTER") process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') -process.GlobalTag.globaltag = 'auto:phase1_2021_realistic' +process.GlobalTag.globaltag = 'auto:phase1_2022_realistic' process.load("Configuration.Geometry.GeometryDB_cff") process.load("Alignment.SurveyAnalysis.SurveyInfoScenario_cff") diff --git a/CalibCalorimetry/CaloMiscalibTools/interface/CaloMiscalibMapEcal.h b/CalibCalorimetry/CaloMiscalibTools/interface/CaloMiscalibMapEcal.h index 0ffd75d042e99..18d4602832e18 100644 --- a/CalibCalorimetry/CaloMiscalibTools/interface/CaloMiscalibMapEcal.h +++ b/CalibCalorimetry/CaloMiscalibTools/interface/CaloMiscalibMapEcal.h @@ -1,5 +1,5 @@ -#ifndef _CALO_MISCALIB_MAP_ECAL -#define _CALO_MISCALIB_MAP_ECAL +#ifndef CalibCalorimetry_CaloMiscalibTools_CaloMiscalibMapEcal_h +#define CalibCalorimetry_CaloMiscalibTools_CaloMiscalibMapEcal_h #include "CondFormats/EcalObjects/interface/EcalIntercalibConstants.h" #include "CalibCalorimetry/CaloMiscalibTools/interface/CaloMiscalibMap.h" #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" @@ -21,23 +21,17 @@ class CaloMiscalibMapEcal : public CaloMiscalibMap { if (iEta == 0) continue; for (int iPhi = EBDetId::MIN_IPHI; iPhi <= EBDetId::MAX_IPHI; ++iPhi) { - try { - EBDetId ebdetid(iEta, iPhi); - map_.setValue(ebdetid.rawId(), 1.0); - } catch (...) { - } + EBDetId ebdetid(iEta, iPhi); + map_.setValue(ebdetid.rawId(), 1.0); } } for (int iX = EEDetId::IX_MIN; iX <= EEDetId::IX_MAX; ++iX) { for (int iY = EEDetId::IY_MIN; iY <= EEDetId::IY_MAX; ++iY) { - try { - EEDetId eedetidpos(iX, iY, 1); - map_.setValue(eedetidpos.rawId(), 1.0); - EEDetId eedetidneg(iX, iY, -1); - map_.setValue(eedetidneg.rawId(), 1.0); - } catch (...) { - } + EEDetId eedetidpos(iX, iY, 1); + map_.setValue(eedetidpos.rawId(), 1.0); + EEDetId eedetidneg(iX, iY, -1); + map_.setValue(eedetidneg.rawId(), 1.0); } } } diff --git a/CalibCalorimetry/CaloMiscalibTools/src/MiscalibReaderXMLEcalEndcap.cc b/CalibCalorimetry/CaloMiscalibTools/src/MiscalibReaderXMLEcalEndcap.cc index 0e723f3333069..721bc865da9be 100644 --- a/CalibCalorimetry/CaloMiscalibTools/src/MiscalibReaderXMLEcalEndcap.cc +++ b/CalibCalorimetry/CaloMiscalibTools/src/MiscalibReaderXMLEcalEndcap.cc @@ -9,18 +9,10 @@ DetId MiscalibReaderFromXMLEcalEndcap::parseCellEntry(XERCES_CPP_NAMESPACE::DOMN } EEDetId MiscalibReaderFromXMLEcalEndcap::getCellFromAttributes(int ix, int iy, int iz) { - try { - if (EEDetId::validDetId(ix, iy, iz)) { - EEDetId cell(ix, iy, iz); - return cell; - } else { - return EEDetId(0); - } - } - - catch (...) - - { + if (EEDetId::validDetId(ix, iy, iz)) { + EEDetId cell(ix, iy, iz); + return cell; + } else { std::cout << "Null coordinates = " << ix << "," << iy << "," << iz << std::endl; return EEDetId(0); } diff --git a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaNumbering.h b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaNumbering.h index 703c35fdfa065..ca6ed217fe326 100644 --- a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaNumbering.h +++ b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaNumbering.h @@ -86,11 +86,11 @@ class TEcnaNumbering : public TObject { TEcnaNumbering(); TEcnaNumbering(TEcnaObject*, const TString&); - TEcnaNumbering(const TString&, const TEcnaParEcal*); + TEcnaNumbering(const TString&, TEcnaParEcal*); ~TEcnaNumbering() override; void SetEcalSubDetector(const TString&); - void SetEcalSubDetector(const TString&, const TEcnaParEcal*); + void SetEcalSubDetector(const TString&, TEcnaParEcal*); //================================== BARREL diff --git a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaParHistos.h b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaParHistos.h index 6892ba3dbb258..52ec9f4fa87b2 100644 --- a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaParHistos.h +++ b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaParHistos.h @@ -79,12 +79,12 @@ class TEcnaParHistos : public TObject { TEcnaParHistos(); TEcnaParHistos(TEcnaObject*, const TString&); - TEcnaParHistos(const TString&, const TEcnaParEcal*, const TEcnaNumbering*); + TEcnaParHistos(const TString&, TEcnaParEcal*, TEcnaNumbering*); ~TEcnaParHistos() override; void Init(); void SetEcalSubDetector(const TString&); - void SetEcalSubDetector(const TString&, const TEcnaParEcal*, const TEcnaNumbering*); + void SetEcalSubDetector(const TString&, TEcnaParEcal*, TEcnaNumbering*); //...................................................... PLOT methods UInt_t SetCanvasWidth(const TString&, const TString&); diff --git a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaWrite.h b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaWrite.h index b70080a074e12..c983faecfea21 100644 --- a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaWrite.h +++ b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaWrite.h @@ -145,13 +145,13 @@ class TEcnaWrite : public TObject { TEcnaWrite(); TEcnaWrite(TEcnaObject*, const TString&); - TEcnaWrite(const TString&, const TEcnaParPaths*, const TEcnaParCout*, const TEcnaParEcal*, const TEcnaNumbering*); + TEcnaWrite(const TString&, TEcnaParPaths*, TEcnaParCout*, TEcnaParEcal*, TEcnaNumbering*); ~TEcnaWrite() override; void Init(); void SetEcalSubDetector(const TString&); - void SetEcalSubDetector(const TString&, const TEcnaParEcal*, const TEcnaNumbering*); + void SetEcalSubDetector(const TString&, TEcnaParEcal*, TEcnaNumbering*); //...................................................... making file name method void fMakeResultsFileName(); // => default: arg = fCodeRoot diff --git a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaHistos.cc b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaHistos.cc index 2a8e9bc0bcd94..770f563b1c5e6 100644 --- a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaHistos.cc +++ b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaHistos.cc @@ -3037,13 +3037,15 @@ void TEcnaHistos::ViewTowerGrid(const Int_t& SMNumber, fCnewRoot++; } - sup_axis_x->SetTitle(x_var_name); - sup_axis_x->SetTitleSize(tit_siz_x); - sup_axis_x->SetTitleOffset(tit_off_x); - sup_axis_x->SetLabelSize(lab_siz_x); - sup_axis_x->SetLabelOffset(lab_off_x); - sup_axis_x->SetTickSize(tic_siz_x); - sup_axis_x->Draw("SAME"); + if (sup_axis_x != nullptr) { + sup_axis_x->SetTitle(x_var_name); + sup_axis_x->SetTitleSize(tit_siz_x); + sup_axis_x->SetTitleOffset(tit_off_x); + sup_axis_x->SetLabelSize(lab_siz_x); + sup_axis_x->SetLabelOffset(lab_off_x); + sup_axis_x->SetTickSize(tic_siz_x); + sup_axis_x->Draw("SAME"); + } //...................................................... Axe phi (y right) (ViewTowerGrid) Float_t tit_siz_y = fCnaParHistos->AxisTitleSize(); @@ -3083,13 +3085,15 @@ void TEcnaHistos::ViewTowerGrid(const Int_t& SMNumber, fCnewRoot++; } - sup_axis_y->SetTitle(y_var_name); - sup_axis_y->SetTitleSize(tit_siz_y); - sup_axis_y->SetTitleOffset(tit_off_y); - sup_axis_y->SetLabelSize(lab_siz_y); - sup_axis_y->SetLabelOffset(lab_off_y); - sup_axis_y->SetTickSize(tic_siz_y); - sup_axis_y->Draw("SAME"); + if (sup_axis_y != nullptr) { + sup_axis_y->SetTitle(y_var_name); + sup_axis_y->SetTitleSize(tit_siz_y); + sup_axis_y->SetTitleOffset(tit_off_y); + sup_axis_y->SetLabelSize(lab_siz_y); + sup_axis_y->SetLabelOffset(lab_off_y); + sup_axis_y->SetTickSize(tic_siz_y); + sup_axis_y->Draw("SAME"); + } } //...................................................... Axe j(phi) (y left) (ViewTowerGrid) @@ -4437,13 +4441,15 @@ void TEcnaHistos::ViewSMGrid(const Int_t& SMNumber, const TString& c_option) { fCnewRoot++; } - sup_axis_x->SetTitle(x_var_name); - sup_axis_x->SetTitleSize(tit_siz_x); - sup_axis_x->SetTitleOffset(tit_off_x); - sup_axis_x->SetLabelSize(lab_siz_x); - sup_axis_x->SetLabelOffset(lab_off_x); - sup_axis_x->SetTickSize(tic_siz_x); - sup_axis_x->Draw("SAME"); + if (sup_axis_x != nullptr) { + sup_axis_x->SetTitle(x_var_name); + sup_axis_x->SetTitleSize(tit_siz_x); + sup_axis_x->SetTitleOffset(tit_off_x); + sup_axis_x->SetLabelSize(lab_siz_x); + sup_axis_x->SetLabelOffset(lab_off_x); + sup_axis_x->SetTickSize(tic_siz_x); + sup_axis_x->Draw("SAME"); + } //...................................................... Axe phi (y) ViewSMGrid Double_t phi_min = fEcalNumbering->GetPhiMin(SMNumber); @@ -4488,13 +4494,15 @@ void TEcnaHistos::ViewSMGrid(const Int_t& SMNumber, const TString& c_option) { fCnewRoot++; } - sup_axis_y->SetTitle(y_var_name); - sup_axis_y->SetTitleSize(tit_siz_y); - sup_axis_y->SetTitleOffset(tit_off_y); - sup_axis_y->SetLabelSize(lab_siz_y); - sup_axis_y->SetLabelOffset(lab_off_y); - sup_axis_y->SetTickSize(tic_siz_y); - sup_axis_y->Draw("SAME"); + if (sup_axis_y != nullptr) { + sup_axis_y->SetTitle(y_var_name); + sup_axis_y->SetTitleSize(tit_siz_y); + sup_axis_y->SetTitleOffset(tit_off_y); + sup_axis_y->SetLabelSize(lab_siz_y); + sup_axis_y->SetLabelOffset(lab_off_y); + sup_axis_y->SetTickSize(tic_siz_y); + sup_axis_y->Draw("SAME"); + } //...................................................... Axe jphi (jy) ViewSMGrid Double_t jphi_min = fEcalNumbering->GetJPhiMin(SMNumber); @@ -5042,8 +5050,8 @@ void TEcnaHistos::ViewDeeGrid(const Int_t& DeeNumber, const TString& c_option) { Double_t yline_haut_bot = (Double_t)ymid_bid; Double_t yline_haut_top = (Double_t)ysup_bid; - Double_t yline_bas_bot = (Double_t)yinf_bid; - Double_t yline_bas_top = (Double_t)ymid_bid; + Double_t yline_bas_bot; + Double_t yline_bas_top; // coordonnees demi-lignes // l = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10 @@ -5841,13 +5849,15 @@ void TEcnaHistos::ViewEBGrid() { Float_t tit_off_x = fCnaParHistos->AxisTitleOffset("EBx"); Float_t lab_off_x = fCnaParHistos->AxisLabelOffset("EBx"); - sup_axis_x->SetTitle(x_var_name); - sup_axis_x->SetTitleSize(tit_siz_x); - sup_axis_x->SetTitleOffset(tit_off_x); - sup_axis_x->SetLabelSize(lab_siz_x); - sup_axis_x->SetLabelOffset(lab_off_x); - sup_axis_x->SetTickSize(tic_siz_x); - sup_axis_x->Draw("SAME"); + if (sup_axis_x != nullptr) { + sup_axis_x->SetTitle(x_var_name); + sup_axis_x->SetTitleSize(tit_siz_x); + sup_axis_x->SetTitleOffset(tit_off_x); + sup_axis_x->SetLabelSize(lab_siz_x); + sup_axis_x->SetLabelOffset(lab_off_x); + sup_axis_x->SetTickSize(tic_siz_x); + sup_axis_x->Draw("SAME"); + } //...................................................... Axe eta (y) ViewEBGrid MatSize = fEcal->MaxTowEtaInSM(); @@ -6268,7 +6278,6 @@ void TEcnaHistos::EEDataSectors(const Float_t& coefcc_x, } //............................ numeros des dee's - ngmax = 4; Float_t xg_coord_dee[4] = {0, 0, 0, 0}; Float_t yg_coord_dee[4] = {48, 48, 48, 48}; @@ -6310,7 +6319,6 @@ void TEcnaHistos::EEDataSectors(const Float_t& coefcc_x, //..................................... Numeros des Dee et indication EE+- (option "EE" seulement) if (opt_plot == "EE") { //............................ indication EE+- - ngmax = 4; Float_t xg_coord_eepm[4] = {0, 0, 0, 0}; Float_t yg_coord_eepm[4] = {95, 95, 95, 95}; @@ -6761,7 +6769,6 @@ void TEcnaHistos::XtalSamplesEv(const TVectorD& arg_read_histo, ViewHisto(read_histo_samps, xAlreadyRead, StexStin_A, i0_stin_echa, fZerv, "D_MSp_SpNb", fAllXtalsInStinPlot); xAlreadyRead++; } - xAlreadyRead = 0; } else { std::cout << "!TEcnaHistos::XtalSamplesEv(...)> Data not available." << std::endl; } @@ -6854,7 +6861,6 @@ void TEcnaHistos::EvSamplesXtals(const TVectorD& arg_read_histo, ViewHisto(read_histo_samps, xAlreadyRead, StexStin_A, i0_stin_echa, fZerv, "D_MSp_SpDs", fAllXtalsInStinPlot); xAlreadyRead++; } - xAlreadyRead = 0; } else { std::cout << "!TEcnaHistos::EvSamplesXtals(...)> Data not available." << std::endl; } @@ -6947,7 +6953,6 @@ void TEcnaHistos::XtalSamplesSigma(const TVectorD& arg_read_histo, ViewHisto(read_histo_samps, xAlreadyRead, StexStin_A, i0StinEcha, fZerv, "D_SSp_SpNb", fAllXtalsInStinPlot); xAlreadyRead++; } - xAlreadyRead = 0; } else { std::cout << "!TEcnaHistos::XtalSamplesSigma(...)> Data not available." << std::endl; } @@ -7040,7 +7045,6 @@ void TEcnaHistos::SigmaSamplesXtals(const TVectorD& arg_read_histo, ViewHisto(read_histo_samps, xAlreadyRead, StexStin_A, i0StinEcha, fZerv, "D_SSp_SpDs", fAllXtalsInStinPlot); xAlreadyRead++; } - xAlreadyRead = 0; } else { std::cout << "!TEcnaHistos::SigmaSamplesXtals(...)> Data not available." << std::endl; } @@ -11272,7 +11276,6 @@ void TEcnaHistos::HistoPlot(TH1D* h_his0, << std::endl; ReInitCanvas(HistoCode, opt_plot); - xMemoPlotSame = 0; } // delete MainCanvas; fCdeleteRoot++; @@ -12158,7 +12161,6 @@ void TEcnaHistos::HistimePlot(TGraph* g_graph0, << std::endl; ReInitCanvas(HistoCode, opt_plot); - xMemoPlotSame = 0; } // delete MainCanvas; fCdeleteRoot++; diff --git a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaNArrayD.cc b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaNArrayD.cc index b32a82ee8f21d..de7f5965c9f10 100644 --- a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaNArrayD.cc +++ b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaNArrayD.cc @@ -366,19 +366,3 @@ Double_t &TEcnaNArrayD::operator()(Int_t i1, Int_t i2, Int_t i3, Int_t i4, Int_t i = OneDim(i1, i2, i3, i4, i5, i6); return fA[i]; } -const Double_t &TEcnaNArrayD::operator()(Int_t i1) const { return const_cast(this)->operator()(i1); } -const Double_t &TEcnaNArrayD::operator()(Int_t i1, Int_t i2) const { - return const_cast(this)->operator()(i1, i2); -} -const Double_t &TEcnaNArrayD::operator()(Int_t i1, Int_t i2, Int_t i3) const { - return const_cast(this)->operator()(i1, i2, i3); -} -const Double_t &TEcnaNArrayD::operator()(Int_t i1, Int_t i2, Int_t i3, Int_t i4) const { - return const_cast(this)->operator()(i1, i2, i3, i4); -} -const Double_t &TEcnaNArrayD::operator()(Int_t i1, Int_t i2, Int_t i3, Int_t i4, Int_t i5) const { - return const_cast(this)->operator()(i1, i2, i3, i4, i5); -} -const Double_t &TEcnaNArrayD::operator()(Int_t i1, Int_t i2, Int_t i3, Int_t i4, Int_t i5, Int_t i6) const { - return const_cast(this)->operator()(i1, i2, i3, i4, i5, i6); -} diff --git a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaNumbering.cc b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaNumbering.cc index 7a90a65932af3..60309213fddfa 100644 --- a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaNumbering.cc +++ b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaNumbering.cc @@ -60,7 +60,7 @@ TEcnaNumbering::TEcnaNumbering(TEcnaObject* pObjectManager, const TString& SubDe SetEcalSubDetector(SubDet.Data()); } -TEcnaNumbering::TEcnaNumbering(const TString& SubDet, const TEcnaParEcal* pEcal) { +TEcnaNumbering::TEcnaNumbering(const TString& SubDet, TEcnaParEcal* pEcal) { // Constructor with argument: call to methods Init() and SetEcalSubDetector(const TString&) // std::cout << "[Info Management] CLASS: TEcnaNumbering. CREATE OBJECT: this = " << this << std::endl; @@ -219,15 +219,14 @@ void TEcnaNumbering::Init() { } // end of Init() //------------------------------------------------------------- SetEcalSubDetector(...) -void TEcnaNumbering::SetEcalSubDetector(const TString& SubDet, const TEcnaParEcal* pEcal) { +void TEcnaNumbering::SetEcalSubDetector(const TString& SubDet, TEcnaParEcal* pEcal) { //Set the current subdetector flag and the current subdetector parameters fEcal = nullptr; if (pEcal == nullptr) { fEcal = new TEcnaParEcal(SubDet.Data()); /*fCnew++*/ - ; } else { - fEcal = (TEcnaParEcal*)pEcal; + fEcal = pEcal; } Int_t MaxCar = fgMaxCar; diff --git a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaParHistos.cc b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaParHistos.cc index ea0f45353b82e..eb255701c3798 100644 --- a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaParHistos.cc +++ b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaParHistos.cc @@ -67,7 +67,7 @@ TEcnaParHistos::TEcnaParHistos(TEcnaObject* pObjectManager, const TString& SubDe SetEcalSubDetector(SubDet.Data()); } -TEcnaParHistos::TEcnaParHistos(const TString& SubDet, const TEcnaParEcal* pEcal, const TEcnaNumbering* pEcalNumbering) { +TEcnaParHistos::TEcnaParHistos(const TString& SubDet, TEcnaParEcal* pEcal, TEcnaNumbering* pEcalNumbering) { // Constructor with argument //std::cout << "[Info Management] CLASS: TEcnaParHistos. CREATE OBJECT: this = " << this << std::endl; @@ -128,9 +128,7 @@ void TEcnaParHistos::SetEcalSubDetector(const TString& SubDet) { fFlagSubDet = fEcal->GetEcalSubDetector(); } -void TEcnaParHistos::SetEcalSubDetector(const TString& SubDet, - const TEcnaParEcal* pEcal, - const TEcnaNumbering* pEcalNumbering) { +void TEcnaParHistos::SetEcalSubDetector(const TString& SubDet, TEcnaParEcal* pEcal, TEcnaNumbering* pEcalNumbering) { // Set Subdetector (EB or EE) fEcal = nullptr; @@ -138,7 +136,7 @@ void TEcnaParHistos::SetEcalSubDetector(const TString& SubDet, fEcal = new TEcnaParEcal(SubDet.Data()); /*fCnew++*/ ; } else { - fEcal = (TEcnaParEcal*)pEcal; + fEcal = pEcal; } Int_t MaxCar = fgMaxCar; @@ -150,7 +148,7 @@ void TEcnaParHistos::SetEcalSubDetector(const TString& SubDet, fEcalNumbering = new TEcnaNumbering(fFlagSubDet.Data(), fEcal); /*fCnew++*/ ; } else { - fEcalNumbering = (TEcnaNumbering*)pEcalNumbering; + fEcalNumbering = pEcalNumbering; } } @@ -1541,7 +1539,6 @@ TPaveText* TEcnaParHistos::SetPaveGeneralComment(const TString& comment) { fCdelete++; } else { - title_g1 = new TPaveText(0, 0, 0, 0); title_g1 = nullptr; fCnewRoot++; } @@ -2158,22 +2155,24 @@ TPaveText* TEcnaParHistos::SetPaveLVRB(const Int_t& SMNumber, const Int_t& SMtow TText* t3 = nullptr; if (fEcalNumbering->GetSMHalfBarrel(SMNumber) == "EB+") { t3 = com_bot_mid->AddText(" <=== LVRB "); - } - if (fEcalNumbering->GetSMHalfBarrel(SMNumber) == "EB-") { + } else if (fEcalNumbering->GetSMHalfBarrel(SMNumber) == "EB-") { t3 = com_bot_mid->AddText(" LVRB ===> "); } - t3->SetTextColor(couleur_rouge); + if (t3 != nullptr) { + t3->SetTextColor(couleur_rouge); + } } if (fEcalNumbering->GetTowerLvrbType(SMtower) == "bottom") { TText* t4 = nullptr; if (fEcalNumbering->GetSMHalfBarrel(SMNumber) == "EB+") { t4 = com_bot_mid->AddText(" LVRB ===> "); - } - if (fEcalNumbering->GetSMHalfBarrel(SMNumber) == "EB-") { + } else if (fEcalNumbering->GetSMHalfBarrel(SMNumber) == "EB-") { t4 = com_bot_mid->AddText(" <=== LVRB "); } - t4->SetTextColor(couleur_bleu_fonce); + if (t4 != nullptr) { + t4->SetTextColor(couleur_bleu_fonce); + } } return com_bot_mid; diff --git a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaRead.cc b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaRead.cc index 717197abd31bf..13881d4d88b2d 100644 --- a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaRead.cc +++ b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaRead.cc @@ -148,7 +148,6 @@ void TEcnaRead::Init() { //................................. path for .root files Int_t MaxCar = fgMaxCar; - MaxCar = fgMaxCar; fPathRoot.Resize(MaxCar); fPathRoot = "fPathRoot not defined"; @@ -160,11 +159,9 @@ void TEcnaRead::Init() { fLookAtRootFile = 0; //................................. currently open file - MaxCar = fgMaxCar; fFlagNoFileOpen.Resize(MaxCar); fFlagNoFileOpen = "No file is open"; - MaxCar = fgMaxCar; fCurrentlyOpenFileName.Resize(MaxCar); fCurrentlyOpenFileName = fFlagNoFileOpen; @@ -1290,7 +1287,6 @@ TVectorD TEcnaRead::ReadStinNumbers(const Int_t &VecDim) { std::cout << "!TEcnaRead::ReadStinNumbers(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -1393,7 +1389,6 @@ TVectorD TEcnaRead::ReadSampleAdcValues(const Int_t &n1StexStin, std::cout << "!TEcnaRead::ReadSampleAdcValues(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -1469,7 +1464,6 @@ TVectorD TEcnaRead::ReadSampleMeans(const Int_t &n1StexStin, const Int_t &i0Stin std::cout << "!TEcnaRead::ReadSampleMeans(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -1542,7 +1536,6 @@ TVectorD TEcnaRead::ReadSampleMeans(const Int_t &n1StexStin, const Int_t &VecDim std::cout << "!TEcnaRead::ReadSampleMeans(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -1681,7 +1674,6 @@ TVectorD TEcnaRead::ReadSampleSigmas(const Int_t &n1StexStin, const Int_t &VecDi std::cout << "!TEcnaRead::ReadSampleSigmas(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -1809,7 +1801,6 @@ TMatrixD TEcnaRead::ReadNumberOfEventsForSamples(const Int_t &n1StexStin, const std::cout << "!TEcnaRead::ReadNumberOfEventsForSamples(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -1892,7 +1883,6 @@ TVectorD TEcnaRead::ReadPedestals(const Int_t &VecDim) { std::cout << "!TEcnaRead::ReadPedestals(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -1964,7 +1954,6 @@ TVectorD TEcnaRead::ReadTotalNoise(const Int_t &VecDim) { std::cout << "!TEcnaRead::ReadTotalNoise(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -2037,7 +2026,6 @@ TVectorD TEcnaRead::ReadMeanCorrelationsBetweenSamples(const Int_t &VecDim) { << "!TEcnaRead::ReadMeanCorrelationsBetweenSamples(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -2110,7 +2098,6 @@ TVectorD TEcnaRead::ReadLowFrequencyNoise(const Int_t &VecDim) { std::cout << "!TEcnaRead::ReadLowFrequencyNoise(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -2183,7 +2170,6 @@ TVectorD TEcnaRead::ReadHighFrequencyNoise(const Int_t &VecDim) { std::cout << "!TEcnaRead::ReadHighFrequencyNoise(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -2258,7 +2244,6 @@ TVectorD TEcnaRead::ReadSigmaOfCorrelationsBetweenSamples(const Int_t &VecDim) { << "!TEcnaRead::ReadSigmaOfCorrelationsBetweenSamples(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -2404,7 +2389,6 @@ TVectorD TEcnaRead::ReadAveragePedestals(const Int_t &VecDim) { std::cout << "!TEcnaRead::ReadAveragePedestals(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -2478,7 +2462,6 @@ TVectorD TEcnaRead::ReadAverageTotalNoise(const Int_t &VecDim) { std::cout << "!TEcnaRead::ReadAverageTotalNoise(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -2552,7 +2535,6 @@ TVectorD TEcnaRead::ReadAverageLowFrequencyNoise(const Int_t &VecDim) { std::cout << "!TEcnaRead::ReadAverageLowFrequencyNoise(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -2626,7 +2608,6 @@ TVectorD TEcnaRead::ReadAverageHighFrequencyNoise(const Int_t &VecDim) { std::cout << "!TEcnaRead::ReadAverageHighFrequencyNoise(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -2702,7 +2683,6 @@ TVectorD TEcnaRead::ReadAverageMeanCorrelationsBetweenSamples(const Int_t &VecDi "for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -2778,7 +2758,6 @@ TVectorD TEcnaRead::ReadAverageSigmaOfCorrelationsBetweenSamples(const Int_t &Ve "failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -2863,7 +2842,6 @@ TMatrixD TEcnaRead::ReadCovariancesBetweenSamples(const Int_t &n1StexStin, std::cout << "!TEcnaRead::ReadCovariancesBetweenSamples(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -2942,7 +2920,6 @@ TMatrixD TEcnaRead::ReadCorrelationsBetweenSamples(const Int_t &n1StexStin, std::cout << "!TEcnaRead::ReadCorrelationsBetweenSamples(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -3022,7 +2999,6 @@ TVectorD TEcnaRead::ReadRelevantCorrelationsBetweenSamples(const Int_t &n1StexSt << "!TEcnaRead::ReadRelevantCorrelationsBetweenSamples(...) *** ERROR ***> Open .root file failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -3109,7 +3085,6 @@ TMatrixD TEcnaRead::ReadLowFrequencyCovariancesBetweenChannels(const Int_t &n1St "for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -3197,7 +3172,6 @@ TMatrixD TEcnaRead::ReadLowFrequencyCorrelationsBetweenChannels(const Int_t &n1S "for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -3286,7 +3260,6 @@ TMatrixD TEcnaRead::ReadHighFrequencyCovariancesBetweenChannels(const Int_t &n1S "for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -3374,7 +3347,6 @@ TMatrixD TEcnaRead::ReadHighFrequencyCorrelationsBetweenChannels(const Int_t &n1 "failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -3465,7 +3437,6 @@ TMatrixD TEcnaRead::ReadLowFrequencyCovariancesBetweenChannels(const Int_t &MatD "for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -3565,7 +3536,6 @@ TMatrixD TEcnaRead::ReadLowFrequencyCorrelationsBetweenChannels(const Int_t &Mat "for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -3665,7 +3635,6 @@ TMatrixD TEcnaRead::ReadHighFrequencyCovariancesBetweenChannels(const Int_t &Mat "for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -3765,7 +3734,6 @@ TMatrixD TEcnaRead::ReadHighFrequencyCorrelationsBetweenChannels(const Int_t &Ma "failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -3864,7 +3832,6 @@ TMatrixD TEcnaRead::ReadLowFrequencyMeanCorrelationsBetweenStins(const Int_t &Ma "failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } @@ -3959,7 +3926,6 @@ TMatrixD TEcnaRead::ReadHighFrequencyMeanCorrelationsBetweenStins(const Int_t &M "failed for file: " << file_name << fTTBELL << std::endl; allowed_to_read = kFALSE; - ok_read = kFALSE; } } diff --git a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaWrite.cc b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaWrite.cc index f47e96b627663..fb8b0915cc206 100644 --- a/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaWrite.cc +++ b/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/src/TEcnaWrite.cc @@ -90,10 +90,10 @@ TEcnaWrite::TEcnaWrite(TEcnaObject* pObjectManager, const TString& SubDet) { } TEcnaWrite::TEcnaWrite(const TString& SubDet, - const TEcnaParPaths* pCnaParPaths, - const TEcnaParCout* pCnaParCout, - const TEcnaParEcal* pEcal, - const TEcnaNumbering* pEcalNumbering) { + TEcnaParPaths* pCnaParPaths, + TEcnaParCout* pCnaParCout, + TEcnaParEcal* pEcal, + TEcnaNumbering* pEcalNumbering) { // std::cout << "[Info Management] CLASS: TEcnaWrite. CREATE OBJECT: this = " << this << std::endl; Init(); @@ -104,7 +104,7 @@ TEcnaWrite::TEcnaWrite(const TString& SubDet, fCnaParPaths = new TEcnaParPaths(); /*fCnew++*/ ; } else { - fCnaParPaths = (TEcnaParPaths*)pCnaParPaths; + fCnaParPaths = pCnaParPaths; } //................. Get paths from ECNA directory @@ -117,7 +117,7 @@ TEcnaWrite::TEcnaWrite(const TString& SubDet, fCnaParCout = new TEcnaParCout(); /*fCnew++*/ ; } else { - fCnaParCout = (TEcnaParCout*)pCnaParCout; + fCnaParCout = pCnaParCout; } fCodePrintAllComments = fCnaParCout->GetCodePrint("AllComments"); @@ -126,7 +126,7 @@ TEcnaWrite::TEcnaWrite(const TString& SubDet, fEcal = new TEcnaParEcal(SubDet.Data()); /*fCnew++*/ ; } else { - fEcal = (TEcnaParEcal*)pEcal; + fEcal = pEcal; } fEcalNumbering = nullptr; @@ -134,7 +134,7 @@ TEcnaWrite::TEcnaWrite(const TString& SubDet, fEcalNumbering = new TEcnaNumbering(SubDet.Data(), fEcal); /*fCnew++*/ ; } else { - fEcalNumbering = (TEcnaNumbering*)pEcalNumbering; + fEcalNumbering = pEcalNumbering; } SetEcalSubDetector(SubDet.Data(), fEcal, fEcalNumbering); @@ -277,9 +277,7 @@ void TEcnaWrite::SetEcalSubDetector(const TString& SubDet) { fNbSampByLine = fEcal->MaxSampADC(); } //---------- (end of SetEcalSubDetector) ------------------ -void TEcnaWrite::SetEcalSubDetector(const TString& SubDet, - const TEcnaParEcal* pEcal, - const TEcnaNumbering* pEcalNumbering) { +void TEcnaWrite::SetEcalSubDetector(const TString& SubDet, TEcnaParEcal* pEcal, TEcnaNumbering* pEcalNumbering) { // Set Subdetector (EB or EE) fEcal = nullptr; @@ -287,7 +285,7 @@ void TEcnaWrite::SetEcalSubDetector(const TString& SubDet, fEcal = new TEcnaParEcal(SubDet.Data()); fCnew++; } else { - fEcal = (TEcnaParEcal*)pEcal; + fEcal = pEcal; } Int_t MaxCar = fgMaxCar; @@ -299,7 +297,7 @@ void TEcnaWrite::SetEcalSubDetector(const TString& SubDet, fEcalNumbering = new TEcnaNumbering(SubDet.Data(), fEcal); fCnew++; } else { - fEcalNumbering = (TEcnaNumbering*)pEcalNumbering; + fEcalNumbering = pEcalNumbering; } //........................................................................ @@ -2054,9 +2052,11 @@ void TEcnaWrite::fT2dWriteAscii(const Int_t& i_code, if (i_pasx > isx_max) { i_pasx = isx_max; } - Int_t n_sctx; + Int_t n_sctx = 1; Int_t max_verix; - n_sctx = isx_max / i_pasx; + if (i_pasx > 0) { + n_sctx = isx_max / i_pasx; + } max_verix = n_sctx * i_pasx; if (max_verix < isx_max) { n_sctx++; @@ -2070,9 +2070,11 @@ void TEcnaWrite::fT2dWriteAscii(const Int_t& i_code, if (i_pasy > isy_max) { i_pasy = isy_max; } - Int_t n_scty; + Int_t n_scty = 1; Int_t max_veriy; - n_scty = isy_max / i_pasy; + if (i_pasy > 0) { + n_scty = isy_max / i_pasy; + } max_veriy = n_scty * i_pasy; if (max_veriy < isy_max) { n_scty++; diff --git a/CalibCalorimetry/EcalLaserSorting/interface/LaserSorter.h b/CalibCalorimetry/EcalLaserSorting/interface/LaserSorter.h index 67f9a19d29eb9..8b3067e6967bd 100644 --- a/CalibCalorimetry/EcalLaserSorting/interface/LaserSorter.h +++ b/CalibCalorimetry/EcalLaserSorting/interface/LaserSorter.h @@ -162,7 +162,7 @@ class LaserSorter : public edm::one::EDAnalyzer { * @param lumiBlock luminositu block of the event * @return pointer of the output stream record or null if not found. */ - std::unique_ptr& getStream(int fedId, edm::LuminosityBlockNumber_t lumiBlock); + const std::unique_ptr& getStream(int fedId, edm::LuminosityBlockNumber_t lumiBlock); /** Writes a monitoring events to an output stream. * @param out stream to write the event out diff --git a/CalibCalorimetry/EcalLaserSorting/src/LaserSorter.cc b/CalibCalorimetry/EcalLaserSorting/src/LaserSorter.cc index f7781a4846de1..ce530f0b8edfc 100644 --- a/CalibCalorimetry/EcalLaserSorting/src/LaserSorter.cc +++ b/CalibCalorimetry/EcalLaserSorting/src/LaserSorter.cc @@ -306,7 +306,7 @@ void LaserSorter::analyze(const edm::Event& event, const edm::EventSetup& es) { if (disableOutput_) { /* NO OP*/ } else { - auto& out = getStream(triggeredFedId, lumiBlock_); + const auto& out = getStream(triggeredFedId, lumiBlock_); if (out != nullptr) { assignedLB = out->startingLumiBlock(); @@ -469,9 +469,9 @@ void LaserSorter::closeOldStreams(edm::LuminosityBlockNumber_t lumiBlock) { } } -std::unique_ptr& LaserSorter::getStream(int fedId, - edm::LuminosityBlockNumber_t lumiBlock) { - static std::unique_ptr streamNotFound(nullptr); +const std::unique_ptr& LaserSorter::getStream(int fedId, + edm::LuminosityBlockNumber_t lumiBlock) { + const static std::unique_ptr streamNotFound(nullptr); if ((fedId != -1) && (fedId < ecalDccFedIdMin_ || fedId > ecalDccFedIdMax_)) fedId = -1; @@ -578,7 +578,7 @@ bool LaserSorter::writeFedBlock(std::ofstream& out, const FEDRawData& data) { if (out.fail()) cout << "[LaserSorter " << now() << "] " << "Problem with stream!\n"; - out.write((char*)data.data(), nBytes); + out.write((const char*)data.data(), nBytes); rc = true; } else { throw cms::Exception("Bug") << "Bug found in " << __FILE__ << ":" << __LINE__ << ".\n"; diff --git a/CalibPPS/ESProducers/plugins/TotemDAQMappingESSourceXML.cc b/CalibPPS/ESProducers/plugins/TotemDAQMappingESSourceXML.cc index fae42206bd533..c6b57a1a11acb 100644 --- a/CalibPPS/ESProducers/plugins/TotemDAQMappingESSourceXML.cc +++ b/CalibPPS/ESProducers/plugins/TotemDAQMappingESSourceXML.cc @@ -754,8 +754,13 @@ void TotemDAQMappingESSourceXML::ParseTreeTotemTiming(ParseType pType, unsigned int StationNum = (parentID / 1000) % 10; unsigned int RpNum = (parentID / 100) % 10; - vfatInfo.symbolicID.symbolicID = TotemTimingDetId( - ArmNum, StationNum, RpNum, 0, TotemTimingDetId::ID_NOT_SET); //Dynamical: it is encoded in the frame + vfatInfo.symbolicID.symbolicID = + TotemTimingDetId(ArmNum, + StationNum, + RpNum, + 0, + TotemTimingDetId::ID_NOT_SET, + TotemTimingDetId::sdTimingDiamond); //Dynamical: it is encoded in the frame mapping->insert(framepos, vfatInfo); diff --git a/CalibPPS/TimingCalibration/python/ALCARECOPromptCalibProdPPSDiamondSampicTimingCalib_Output_cff.py b/CalibPPS/TimingCalibration/python/ALCARECOPromptCalibProdPPSDiamondSampicTimingCalib_Output_cff.py index 2acc300e856f0..af71c710367da 100644 --- a/CalibPPS/TimingCalibration/python/ALCARECOPromptCalibProdPPSDiamondSampicTimingCalib_Output_cff.py +++ b/CalibPPS/TimingCalibration/python/ALCARECOPromptCalibProdPPSDiamondSampicTimingCalib_Output_cff.py @@ -1,6 +1,6 @@ import FWCore.ParameterSet.Config as cms -OutALCARECOPromptCalibProdPPSDiamondSampicTimingCalib_noDrop = cms.PSet( +OutALCARECOPromptCalibProdPPSDiamondSampic_noDrop = cms.PSet( SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring('pathALCARECOPromptCalibProdPPSDiamondSampicTiming') ), @@ -9,5 +9,5 @@ ) ) -OutALCARECOPromptCalibProdPPSDiamondSampicTimingCalib = OutALCARECOPromptCalibProdPPSDiamondSampicTimingCalib_noDrop.clone() -OutALCARECOPromptCalibProdPPSDiamondSampicTimingCalib.outputCommands.insert(0, 'drop *') +OutALCARECOPromptCalibProdPPSDiamondSampic = OutALCARECOPromptCalibProdPPSDiamondSampic_noDrop.clone() +OutALCARECOPromptCalibProdPPSDiamondSampic.outputCommands.insert(0, 'drop *') diff --git a/CalibTracker/SiStripChannelGain/src/SiStripGainsPCLWorker.cc b/CalibTracker/SiStripChannelGain/src/SiStripGainsPCLWorker.cc index 8a2c08996f331..598257a77dad5 100644 --- a/CalibTracker/SiStripChannelGain/src/SiStripGainsPCLWorker.cc +++ b/CalibTracker/SiStripChannelGain/src/SiStripGainsPCLWorker.cc @@ -519,7 +519,7 @@ void SiStripGainsPCLWorker::bookHistograms(DQMStore::IBooker& ibooker, // this MonitorElement is created to log the number of events / tracks and clusters used // by the calibration algorithm - histograms.EventStats = ibooker.book2S("EventStats", "Statistics", 3, -0.5, 2.5, 1, 0, 1); + histograms.EventStats = ibooker.book2I("EventStats", "Statistics", 3, -0.5, 2.5, 1, 0, 1); histograms.EventStats->setBinLabel(1, "events count", 1); histograms.EventStats->setBinLabel(2, "tracks count", 1); histograms.EventStats->setBinLabel(3, "clusters count", 1); diff --git a/CalibTracker/SiStripChannelGain/test/checkMultiRunHarvesting.C b/CalibTracker/SiStripChannelGain/test/checkMultiRunHarvesting.C index f1eb43e73ed30..9f3e69ab05f58 100644 --- a/CalibTracker/SiStripChannelGain/test/checkMultiRunHarvesting.C +++ b/CalibTracker/SiStripChannelGain/test/checkMultiRunHarvesting.C @@ -14,7 +14,7 @@ void checkDQMHarvesting(TString filename) { exit(EXIT_FAILURE); } else { std::string searchstring = "DQMData/Run 999999/AlCaReco/Run summary/SiStripGains/EventStats"; - TH2S *h2 = (TH2S *)f->Get(searchstring.c_str()); + TH2I *h2 = (TH2I *)f->Get(searchstring.c_str()); if (!h2) { std::cout << "checkMultiRunHarvesting: ERROR. Could not find the histogram " << searchstring << std::endl; exit(EXIT_FAILURE); diff --git a/CalibTracker/SiStripHitEfficiency/interface/SiStripHitEfficiencyHelpers.h b/CalibTracker/SiStripHitEfficiency/interface/SiStripHitEfficiencyHelpers.h index b5aea232f951c..4f30fe6bbb5a3 100644 --- a/CalibTracker/SiStripHitEfficiency/interface/SiStripHitEfficiencyHelpers.h +++ b/CalibTracker/SiStripHitEfficiency/interface/SiStripHitEfficiencyHelpers.h @@ -12,31 +12,40 @@ namespace { + enum bounds { + k_LayersStart = 0, + k_LayersAtTIBEnd = 4, + k_LayersAtTOBEnd = 10, + k_LayersAtTIDEnd = 13, + k_LayersAtTECEnd = 22, + k_END_OF_LAYERS = 23 + }; + inline unsigned int checkLayer(unsigned int iidd, const TrackerTopology* tTopo) { switch (DetId(iidd).subdetId()) { case SiStripSubdetector::TIB: return tTopo->tibLayer(iidd); case SiStripSubdetector::TOB: - return tTopo->tobLayer(iidd) + 4; + return tTopo->tobLayer(iidd) + bounds::k_LayersAtTIBEnd; case SiStripSubdetector::TID: - return tTopo->tidWheel(iidd) + 10; + return tTopo->tidWheel(iidd) + bounds::k_LayersAtTOBEnd; case SiStripSubdetector::TEC: - return tTopo->tecWheel(iidd) + 13; + return tTopo->tecWheel(iidd) + bounds::k_LayersAtTIDEnd; default: - return 0; + return bounds::k_LayersStart; } } inline std::string layerName(unsigned int k, const bool showRings, const unsigned int nTEClayers) { const std::string ringlabel{showRings ? "R" : "D"}; - if (k > 0 && k < 5) { + if (k > bounds::k_LayersStart && k <= bounds::k_LayersAtTIBEnd) { return fmt::format("TIB L{:d}", k); - } else if (k > 4 && k < 11) { - return fmt::format("TOB L{:d}", k - 4); - } else if (k > 10 && k < 14) { - return fmt::format("TID {0}{1:d}", ringlabel, k - 10); - } else if (k > 13 && k < 14 + nTEClayers) { - return fmt::format("TEC {0}{1:d}", ringlabel, k - 13); + } else if (k > bounds::k_LayersAtTIBEnd && k <= bounds::k_LayersAtTOBEnd) { + return fmt::format("TOB L{:d}", k - bounds::k_LayersAtTIBEnd); + } else if (k > bounds::k_LayersAtTOBEnd && k <= bounds::k_LayersAtTIDEnd) { + return fmt::format("TID {0}{1:d}", ringlabel, k - bounds::k_LayersAtTOBEnd); + } else if (k > bounds::k_LayersAtTIDEnd && k <= bounds::k_LayersAtTIDEnd + nTEClayers) { + return fmt::format("TEC {0}{1:d}", ringlabel, k - bounds::k_LayersAtTIDEnd); } else { return ""; } diff --git a/CalibTracker/SiStripHitEfficiency/plugins/SiStripHitEfficiencyHarvester.cc b/CalibTracker/SiStripHitEfficiency/plugins/SiStripHitEfficiencyHarvester.cc index a72c60893aa75..fc4d7899e2396 100644 --- a/CalibTracker/SiStripHitEfficiency/plugins/SiStripHitEfficiencyHarvester.cc +++ b/CalibTracker/SiStripHitEfficiency/plugins/SiStripHitEfficiencyHarvester.cc @@ -40,6 +40,7 @@ class SiStripHitEfficiencyHarvester : public DQMEDHarvester { void dqmEndJob(DQMStore::IBooker&, DQMStore::IGetter&) override; private: + const std::string inputFolder_; const bool isAtPCL_; const bool showRings_, autoIneffModTagging_, doStoreOnDB_; const unsigned int nTEClayers_; @@ -59,7 +60,8 @@ class SiStripHitEfficiencyHarvester : public DQMEDHarvester { std::vector stripDetIds_; void writeBadStripPayload(const SiStripQuality& quality) const; - void printTotalStatistics(const std::array& layerFound, const std::array& layerTotal) const; + void printTotalStatistics(const std::array& layerFound, + const std::array& layerTotal) const; void printAndWriteBadModules(const SiStripQuality& quality, const SiStripDetInfo& detInfo) const; bool checkMapsValidity(const std::vector& maps, const std::string& type) const; void makeSummary(DQMStore::IGetter& getter, TFileService& fs) const; @@ -69,7 +71,8 @@ class SiStripHitEfficiencyHarvester : public DQMEDHarvester { }; SiStripHitEfficiencyHarvester::SiStripHitEfficiencyHarvester(const edm::ParameterSet& conf) - : isAtPCL_(conf.getParameter("isAtPCL")), + : inputFolder_(conf.getParameter("inputFolder")), + isAtPCL_(conf.getParameter("isAtPCL")), showRings_(conf.getUntrackedParameter("ShowRings", false)), autoIneffModTagging_(conf.getUntrackedParameter("AutoIneffModTagging", false)), doStoreOnDB_(conf.getParameter("doStoreOnDB")), @@ -142,9 +145,9 @@ void SiStripHitEfficiencyHarvester::dqmEndJob(DQMStore::IBooker& booker, DQMStor << " and has at least " << nModsMin_ << " nModsMin."; auto h_module_total = std::make_unique(tkDetMap_.get()); - h_module_total->loadTkHistoMap("AlCaReco/SiStripHitEfficiency", "perModule_total"); + h_module_total->loadTkHistoMap(fmt::format("{}/TkDetMaps", inputFolder_), "perModule_total"); auto h_module_found = std::make_unique(tkDetMap_.get()); - h_module_found->loadTkHistoMap("AlCaReco/SiStripHitEfficiency", "perModule_found"); + h_module_found->loadTkHistoMap(fmt::format("{}/TkDetMaps", inputFolder_), "perModule_found"); // collect how many layers are missing const auto& totalMaps = h_module_total->getAllMaps(); @@ -168,14 +171,18 @@ void SiStripHitEfficiencyHarvester::dqmEndJob(DQMStore::IBooker& booker, DQMStor << "Entries in total TkHistoMap for layer 3: " << h_module_total->getMap(3)->getEntries() << ", found " << h_module_found->getMap(3)->getEntries(); + // come back to the main folder + booker.setCurrentFolder(inputFolder_); + std::vector hEffInLayer(std::size_t(1), nullptr); - hEffInLayer.reserve(23); - for (std::size_t i = 1; i != 23; ++i) { - hEffInLayer.push_back( - booker.book1D(Form("eff_layer%i", int(i)), Form("Module efficiency in layer %i", int(i)), 201, 0, 1.005)); + hEffInLayer.reserve(bounds::k_END_OF_LAYERS); + for (std::size_t i = 1; i != bounds::k_END_OF_LAYERS; ++i) { + const auto lyrName = ::layerName(i, showRings_, nTEClayers_); + hEffInLayer.push_back(booker.book1D( + Form("eff_layer%i", int(i)), Form("Module efficiency in layer %s", lyrName.c_str()), 201, 0, 1.005)); } - std::array layerTotal{}; - std::array layerFound{}; + std::array layerTotal{}; + std::array layerFound{}; layerTotal.fill(0); layerFound.fill(0); @@ -229,7 +236,7 @@ void SiStripHitEfficiencyHarvester::dqmEndJob(DQMStore::IBooker& booker, DQMStor } if (autoIneffModTagging_) { - for (Long_t i = 1; i <= 22; i++) { + for (Long_t i = 1; i <= k_LayersAtTECEnd; i++) { //Compute threshold to use for each layer hEffInLayer[i]->getTH1()->GetXaxis()->SetRange( 3, hEffInLayer[i]->getNbinsX() + 1); // Remove from the avg modules below 1% @@ -318,8 +325,9 @@ void SiStripHitEfficiencyHarvester::dqmEndJob(DQMStore::IBooker& booker, DQMStor makeSummaryVsLumi(getter); // TODO } -void SiStripHitEfficiencyHarvester::printTotalStatistics(const std::array& layerFound, - const std::array& layerTotal) const { +void SiStripHitEfficiencyHarvester::printTotalStatistics( + const std::array& layerFound, + const std::array& layerTotal) const { //Calculate the statistics by layer int totalfound = 0; int totaltotal = 0; @@ -332,25 +340,25 @@ void SiStripHitEfficiencyHarvester::printTotalStatistics(const std::array= 5 && i < 11) { + if (i > bounds::k_LayersAtTIBEnd && i <= bounds::k_LayersAtTOBEnd) { subdetfound[2] += layerFound[i]; subdettotal[2] += layerTotal[i]; } - if (i >= 11 && i < 14) { + if (i > bounds::k_LayersAtTOBEnd && i <= bounds::k_LayersAtTIDEnd) { subdetfound[3] += layerFound[i]; subdettotal[3] += layerTotal[i]; } - if (i >= 14) { + if (i > bounds::k_LayersAtTIDEnd) { subdetfound[4] += layerFound[i]; subdettotal[4] += layerTotal[i]; } @@ -393,18 +401,16 @@ void SiStripHitEfficiencyHarvester::makeSummaryVsBX(DQMStore::IGetter& getter, T void SiStripHitEfficiencyHarvester::makeSummaryVsLumi(DQMStore::IGetter& getter) const { for (unsigned int iLayer = 1; iLayer != (showRings_ ? 20 : 22); ++iLayer) { - auto hfound = - getter.get(fmt::format("AlCaReco/SiStripHitEfficiency/layerfound_vsLumi_layer_{}", iLayer))->getTH1F(); - auto htotal = - getter.get(fmt::format("AlCaReco/SiStripHitEfficiency/layertotal_vsLumi_layer_{}", iLayer))->getTH1F(); + auto hfound = getter.get(fmt::format("{}/VsLumi/layerfound_vsLumi_layer_{}", inputFolder_, iLayer))->getTH1F(); + auto htotal = getter.get(fmt::format("{}/VsLumi/layertotal_vsLumi_layer_{}", inputFolder_, iLayer))->getTH1F(); if (hfound == nullptr or htotal == nullptr) { if (hfound == nullptr) edm::LogError("SiStripHitEfficiencyHarvester") - << fmt::format("AlCaReco/SiStripHitEfficiency/layerfound_vsLumi_layer_{}", iLayer) << " was not found!"; + << fmt::format("{}/VsLumi/layerfound_vsLumi_layer_{}", inputFolder_, iLayer) << " was not found!"; if (htotal == nullptr) edm::LogError("SiStripHitEfficiencyHarvester") - << fmt::format("AlCaReco/SiStripHitEfficiency/layertotal_vsLumi_layer_{}", iLayer) << " was not found!"; + << fmt::format("{}/VsLumi/layertotal_vsLumi_layer_{}", inputFolder_, iLayer) << " was not found!"; // no input histograms -> continue in the loop continue; } @@ -653,6 +659,7 @@ void SiStripHitEfficiencyHarvester::printAndWriteBadModules(const SiStripQuality void SiStripHitEfficiencyHarvester::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; + desc.add("inputFolder", "AlCaReco/SiStripHitEfficiency"); desc.add("isAtPCL", false); desc.add("doStoreOnDB", false); desc.add("Record", "SiStripBadStrip"); diff --git a/CalibTracker/SiStripHitEfficiency/plugins/SiStripHitEfficiencyWorker.cc b/CalibTracker/SiStripHitEfficiency/plugins/SiStripHitEfficiencyWorker.cc index bda67db1184a6..7edba1e473cd8 100644 --- a/CalibTracker/SiStripHitEfficiency/plugins/SiStripHitEfficiencyWorker.cc +++ b/CalibTracker/SiStripHitEfficiency/plugins/SiStripHitEfficiencyWorker.cc @@ -105,6 +105,7 @@ class SiStripHitEfficiencyWorker : public DQMEDAnalyzer { const edm::ESGetToken tkDetMapToken_; // configurable parameters + std::string dqmDir_; unsigned int layers_; bool DEBUG_; bool addLumi_; @@ -159,6 +160,7 @@ class SiStripHitEfficiencyWorker : public DQMEDAnalyzer { }; MonitorElement *h_bx, *h_instLumi, *h_PU; + MonitorElement *h_nTracks, *h_nTracksVsPU; EffME1 h_goodLayer; EffME1 h_allLayer; EffME1 h_layer; @@ -196,6 +198,7 @@ SiStripHitEfficiencyWorker::SiStripHitEfficiencyWorker(const edm::ParameterSet& chi2EstimatorToken_(esConsumes(edm::ESInputTag{"", "Chi2"})), propagatorToken_(esConsumes(edm::ESInputTag{"", "PropagatorWithMaterial"})), tkDetMapToken_(esConsumes()), + dqmDir_(conf.getParameter("dqmDir")), layers_(conf.getParameter("Layer")), DEBUG_(conf.getUntrackedParameter("Debug", false)), addLumi_(conf.getUntrackedParameter("addLumi", false)), @@ -249,56 +252,84 @@ void SiStripHitEfficiencyWorker::beginJob() { void SiStripHitEfficiencyWorker::bookHistograms(DQMStore::IBooker& booker, const edm::Run& run, const edm::EventSetup& setup) { - const std::string path = "AlCaReco/SiStripHitEfficiency"; // TODO make this configurable - booker.setCurrentFolder(path); + booker.setCurrentFolder(fmt::format("{}/EventInfo", dqmDir_)); h_bx = booker.book1D("bx", "bx", 3600, 0, 3600); h_instLumi = booker.book1D("instLumi", "inst. lumi.", 250, 0, 25000); h_PU = booker.book1D("PU", "PU", 200, 0, 200); + h_nTracks = booker.book1D("ntracks", "n.tracks;n. tracks;n.events", 500, -0.5, 499.5); + h_nTracksVsPU = booker.bookProfile("nTracksVsPU", "n. tracks vs PU; PU; n.tracks ", 200, 0, 200, 500, -0.5, 499.5); + booker.setCurrentFolder(dqmDir_); h_goodLayer = EffME1(booker.book1D("goodlayer_total", "goodlayer_total", 35, 0., 35.), booker.book1D("goodlayer_found", "goodlayer_found", 35, 0., 35.)); h_allLayer = EffME1(booker.book1D("alllayer_total", "alllayer_total", 35, 0., 35.), booker.book1D("alllayer_found", "alllayer_found", 35, 0., 35.)); - h_layer = EffME1(booker.book1D("layer_found", "layer_found", 23, 0., 23.), - booker.book1D("layer_total", "layer_total", 23, 0., 23.)); - for (int layer = 0; layer != 23; ++layer) { + h_layer = EffME1( + booker.book1D( + "layer_found", "layer_found", bounds::k_END_OF_LAYERS, 0., static_cast(bounds::k_END_OF_LAYERS)), + booker.book1D( + "layer_total", "layer_total", bounds::k_END_OF_LAYERS, 0., static_cast(bounds::k_END_OF_LAYERS))); + + for (int layer = 1; layer != bounds::k_END_OF_LAYERS; ++layer) { const auto lyrName = ::layerName(layer, showRings_, nTEClayers_); + + // book resolutions + booker.setCurrentFolder(fmt::format("{}/Resolutions", dqmDir_)); auto ihres = booker.book1D(Form("resol_layer_%i", layer), lyrName, 125, -125., 125.); ihres->setAxisTitle("trajX-clusX [strip unit]"); h_resolution.push_back(ihres); + + // book plots vs Lumi + booker.setCurrentFolder(fmt::format("{}/VsLumi", dqmDir_)); h_layer_vsLumi.push_back(EffME1(booker.book1D(Form("layertotal_vsLumi_layer_%i", layer), lyrName, 100, 0, 25000), booker.book1D(Form("layerfound_vsLumi_layer_%i", layer), lyrName, 100, 0, 25000))); + + // book plots vs Lumi + booker.setCurrentFolder(fmt::format("{}/VsPu", dqmDir_)); h_layer_vsPU.push_back(EffME1(booker.book1D(Form("layertotal_vsPU_layer_%i", layer), lyrName, 45, 0, 90), booker.book1D(Form("layerfound_vsPU_layer_%i", layer), lyrName, 45, 0, 90))); if (addCommonMode_) { + // book plots for common mode + booker.setCurrentFolder(fmt::format("{}/CommonMode", dqmDir_)); h_layer_vsCM.push_back(EffME1(booker.book1D(Form("layertotal_vsCM_layer_%i", layer), lyrName, 20, 0, 400), booker.book1D(Form("layerfound_vsCM_layer_%i", layer), lyrName, 20, 0, 400))); } - h_layer_vsBx.push_back( - EffME1(booker.book1D(Form("totalVsBx_layer%i", layer), Form("layer %i", layer), 3565, 0, 3565), - booker.book1D(Form("foundVsBx_layer%i", layer), Form("layer %i", layer), 3565, 0, 3565))); - if (layer < 10) { - const bool isTIB = layer < 4; + + // book plots vs Lumi + booker.setCurrentFolder(fmt::format("{}/VsBx", dqmDir_)); + h_layer_vsBx.push_back(EffME1( + booker.book1D(Form("totalVsBx_layer%i", layer), Form("layer %i (%s)", layer, lyrName.c_str()), 3565, 0, 3565), + booker.book1D(Form("foundVsBx_layer%i", layer), Form("layer %i (%s)", layer, lyrName.c_str()), 3565, 0, 3565))); + + // book hot and cold + booker.setCurrentFolder(fmt::format("{}/MissingHits", dqmDir_)); + if (layer <= bounds::k_LayersAtTOBEnd) { + const bool isTIB = layer <= bounds::k_LayersAtTIBEnd; const auto partition = (isTIB ? "TIB" : "TOB"); const auto yMax = (isTIB ? 100 : 120); - auto ihhotcold = booker.book2D( - Form("%s%i", partition, (isTIB ? layer + 1 : layer - 3)), partition, 100, -1, 361, 100, -yMax, yMax); - ihhotcold->setAxisTitle("Phi", 1); + + const auto tit = Form("%s%i: Map of missing hits", partition, (isTIB ? layer : layer - bounds::k_LayersAtTIBEnd)); + + auto ihhotcold = booker.book2D(tit, tit, 100, -1, 361, 100, -yMax, yMax); + ihhotcold->setAxisTitle("#phi [deg]", 1); ihhotcold->setBinLabel(1, "360", 1); ihhotcold->setBinLabel(50, "180", 1); ihhotcold->setBinLabel(100, "0", 1); - ihhotcold->setAxisTitle("Global Z", 2); + ihhotcold->setAxisTitle("Global Z [cm]", 2); ihhotcold->setOption("colz"); h_hotcold.push_back(ihhotcold); } else { - const bool isTID = layer < 13; + const bool isTID = layer <= bounds::k_LayersAtTIDEnd; const auto partitions = (isTID ? std::vector{"TID-", "TID+"} : std::vector{"TEC-", "TEC+"}); const auto axMax = (isTID ? 100 : 120); for (const auto& part : partitions) { - auto ihhotcold = booker.book2D( - Form("%s%i", part.c_str(), (isTID ? layer - 9 : layer - 12)), part, 100, -axMax, axMax, 100, -axMax, axMax); + const auto tit = Form("%s%i: Map of missing hits", + part.c_str(), + (isTID ? layer - bounds::k_LayersAtTOBEnd : layer - bounds::k_LayersAtTIDEnd)); + + auto ihhotcold = booker.book2D(tit, tit, 100, -axMax, axMax, 100, -axMax, axMax); ihhotcold->setAxisTitle("Global Y", 1); ihhotcold->setBinLabel(1, "+Y", 1); ihhotcold->setBinLabel(50, "0", 1); @@ -313,9 +344,14 @@ void SiStripHitEfficiencyWorker::bookHistograms(DQMStore::IBooker& booker, } } + // come back to the main folder + booker.setCurrentFolder(dqmDir_); + const auto tkDetMapFolder = fmt::format("{}/TkDetMaps", dqmDir_); + const TkDetMap* tkDetMap = &setup.getData(tkDetMapToken_); - h_module = EffTkMap(std::make_unique(tkDetMap, booker, path, "perModule_total", 0, false, true), - std::make_unique(tkDetMap, booker, path, "perModule_found", 0, false, true)); + h_module = + EffTkMap(std::make_unique(tkDetMap, booker, tkDetMapFolder, "perModule_total", 0, false, true), + std::make_unique(tkDetMap, booker, tkDetMapFolder, "perModule_found", 0, false, true)); } void SiStripHitEfficiencyWorker::analyze(const edm::Event& e, const edm::EventSetup& es) { @@ -376,6 +412,10 @@ void SiStripHitEfficiencyWorker::analyze(const edm::Event& e, const edm::EventSe // Tracking LogDebug("SiStripHitEfficiencyWorker") << "number ckf tracks found = " << tracksCKF->size(); + + h_nTracks->Fill(tracksCKF->size()); + h_nTracksVsPU->Fill(PU, tracksCKF->size()); + if (!tracksCKF->empty()) { if (cutOnTracks_ && (tracksCKF->size() >= trackMultiplicityCut_)) return; @@ -408,6 +448,11 @@ void SiStripHitEfficiencyWorker::analyze(const edm::Event& e, const edm::EventSe unsigned int iidd = theInHit->geographicalId().rawId(); unsigned int TKlayers = ::checkLayer(iidd, tTopo); + + // do not bother with pixel hits + if (DetId(iidd).subdetId() < SiStripSubdetector::TIB) + continue; + LogDebug("SiStripHitEfficiencyWorker") << "TKlayer from trajectory: " << TKlayers << " from module = " << iidd << " matched/stereo/rphi = " << ((iidd & 0x3) == 0) << "/" << ((iidd & 0x3) == 1) << "/" << ((iidd & 0x3) == 2); @@ -420,7 +465,7 @@ void SiStripHitEfficiencyWorker::analyze(const edm::Event& e, const edm::EventSe theInHit->getType() != TrackingRecHit::Type::missing)) continue; // If Trajectory measurement from TOB 6 or TEC 9, skip it because it's always valid they are filled later - if (TKlayers == 10 || TKlayers == 22) { + if (TKlayers == bounds::k_LayersAtTOBEnd || TKlayers == bounds::k_LayersAtTECEnd) { LogDebug("SiStripHitEfficiencyWorker") << "skipping original TM for TOB 6 or TEC 9"; continue; } @@ -580,8 +625,9 @@ void SiStripHitEfficiencyWorker::fillForTraj(const TrajectoryAtInvalidHit& tm, const bool withinAcceptance = tm.withinAcceptance() && (!::isInBondingExclusionZone(iidd, TKlayers, yloc, yErr, tTopo)); - if ( // (TKlayers > 0) && // FIXME confirm this - ((layers_ == TKlayers) || (layers_ == 0))) { // Look at the layer not used to reconstruct the track + if ( // (TKlayers > 0) && // FIXME confirm this + ((layers_ == TKlayers) || + (layers_ == bounds::k_LayersStart))) { // Look at the layer not used to reconstruct the track LogDebug("SiStripHitEfficiencyWorker") << "Looking at layer under study"; unsigned int ModIsBad = 2; unsigned int SiStripQualBad = 0; @@ -605,7 +651,7 @@ void SiStripHitEfficiencyWorker::fillForTraj(const TrajectoryAtInvalidHit& tm, float hapoth = 0.0; float uylfac = 0.0; float uxlden = 0.0; - if (TKlayers >= 11) { + if (TKlayers > bounds::k_LayersAtTOBEnd) { const BoundPlane& plane = stripdet->surface(); const TrapezoidalPlaneBounds* trapezoidalBounds( dynamic_cast(&(plane.bounds()))); @@ -623,7 +669,7 @@ void SiStripHitEfficiencyWorker::fillForTraj(const TrajectoryAtInvalidHit& tm, float pitch = stripdet->surface().bounds().width() / nstrips; TrajStrip = xloc / pitch + nstrips / 2.0; // Need additionnal corrections for endcap - if (TKlayers >= 11) { + if (TKlayers > bounds::k_LayersAtTOBEnd) { const float TrajLocXMid = xloc / (1 + (htedge - hbedge) * yloc / (htedge + hbedge) / hapoth); // radialy extrapolated x loc position at middle TrajStrip = TrajLocXMid / pitch + nstrips / 2.0; @@ -641,7 +687,7 @@ void SiStripHitEfficiencyWorker::fillForTraj(const TrajectoryAtInvalidHit& tm, //const Chi2MeasurementEstimator *theEstimator(100); //theEstimator->estimate(tm.tsos(), TransientTrackingRecHit); - if (TKlayers >= 11) { + if (TKlayers > bounds::k_LayersAtTOBEnd) { res = parameters.first.x() - xloc / uxlden; // radialy extrapolated x loc position at middle sigma = abs(res) / sqrt(parameters.second.xx() + xErr * xErr / uxlden / uxlden + yErr * yErr * xloc * xloc * uylfac * uylfac / uxlden / uxlden / uxlden / uxlden); @@ -735,20 +781,21 @@ void SiStripHitEfficiencyWorker::fillForTraj(const TrajectoryAtInvalidHit& tm, << ", withinAcceptance=" << withinAcceptance; unsigned int layer = TKlayers; - if (showRings_ && layer > 10) { // use rings instead of wheels - if (layer < 14) { // TID - layer = 10 + ((iidd >> 9) & 0x3); // 3 disks and also 3 rings -> use the same container - } else { // TEC - layer = 13 + ((iidd >> 5) & 0x7); + if (showRings_ && layer > bounds::k_LayersAtTOBEnd) { // use rings instead of wheels + if (layer <= bounds::k_LayersAtTIDEnd) { // TID + layer = bounds::k_LayersAtTOBEnd + + tTopo->tidRing(iidd); // ((iidd >> 9) & 0x3); // 3 disks and also 3 rings -> use the same container + } else { // TEC + layer = bounds::k_LayersAtTIDEnd + tTopo->tecRing(iidd); // ((iidd >> 5) & 0x7); } } unsigned int layerWithSide = layer; - if (layer > 10 && layer < 14) { - const auto side = (iidd >> 13) & 0x3; // TID + if (layer > bounds::k_LayersAtTOBEnd && layer <= bounds::k_LayersAtTIDEnd) { + const auto side = tTopo->tidSide(iidd); //(iidd >> 13) & 0x3; // TID if (side == 2) layerWithSide = layer + 3; - } else if (layer > 13) { - const auto side = (iidd >> 18) & 0x3; // TEC + } else if (layer > bounds::k_LayersAtTIDEnd) { + const auto side = tTopo->tecSide(iidd); // (iidd >> 18) & 0x3; // TEC if (side == 1) { layerWithSide = layer + 3; } else if (side == 2) { @@ -757,7 +804,8 @@ void SiStripHitEfficiencyWorker::fillForTraj(const TrajectoryAtInvalidHit& tm, } if ((bunchX_ > 0 && bunchX_ != bunchCrossing) || (!withinAcceptance) || - (useOnlyHighPurityTracks_ && !highPurity) || (!showTOB6TEC9_ && (TKlayers == 10 || TKlayers == 22)) || + (useOnlyHighPurityTracks_ && !highPurity) || + (!showTOB6TEC9_ && (TKlayers == bounds::k_LayersAtTOBEnd || TKlayers == bounds::k_LayersAtTECEnd)) || (badModules_.end() != badModules_.find(iidd))) return; @@ -793,7 +841,7 @@ void SiStripHitEfficiencyWorker::fillForTraj(const TrajectoryAtInvalidHit& tm, double stripCluster = finalCluster.xLocal / Pitch + nstrips / 2.0; // For trapezoidal modules: extrapolation of x trajectory position to the y middle of the module // for correct comparison with cluster position - if (stripdet && layer >= 11) { + if (stripdet && layer > bounds::k_LayersAtTOBEnd) { const auto& trapezoidalBounds = dynamic_cast(stripdet->surface().bounds()); std::array const& parameters = trapezoidalBounds.parameters(); const float hbedge = parameters[0]; @@ -805,7 +853,9 @@ void SiStripHitEfficiencyWorker::fillForTraj(const TrajectoryAtInvalidHit& tm, } if ((!badquality) && (layer < h_resolution.size())) { - h_resolution[layer]->Fill(finalCluster.xResidualPull != 1000.0 ? stripTrajMid - stripCluster : 1000); + LogDebug("SiStripHitEfficiencyWorker") + << "layer " << layer << " vector index " << layer - 1 << " before filling h_resolution" << std::endl; + h_resolution[layer - 1]->Fill(finalCluster.xResidualPull != 1000.0 ? stripTrajMid - stripCluster : 1000); } // New matching methods @@ -845,23 +895,42 @@ void SiStripHitEfficiencyWorker::fillForTraj(const TrajectoryAtInvalidHit& tm, // hot/cold maps of hits that are expected but not found if (badflag) { - if (layer > 0 && layer <= 10) { - // 1-4: TIB, 4-10: TOB - h_hotcold[layer - 1]->Fill(360. - ::calcPhi(tm.globalX(), tm.globalY()), tm.globalZ(), 1.); - } else if (layer > 10 && layer <= 13) { - // 11-13: TID, above: TEC - const int side = layer > 13 ? (iidd >> 13) & 0x3 : (iidd >> 18) & 0x3; - h_hotcold[2 * layer - 13 + side]->Fill(-tm.globalY(), tm.globalX(), 1.); + if (layer > bounds::k_LayersStart && layer <= bounds::k_LayersAtTIBEnd) { + //We are in the TIB + float phi = ::calcPhi(tm.globalX(), tm.globalY()); + h_hotcold[layer - 1]->Fill(360. - phi, tm.globalZ(), 1.); + } else if (layer > bounds::k_LayersAtTIBEnd && layer <= bounds::k_LayersAtTOBEnd) { + //We are in the TOB + float phi = ::calcPhi(tm.globalX(), tm.globalY()); + h_hotcold[layer - 1]->Fill(360. - phi, tm.globalZ(), 1.); + } else if (layer > bounds::k_LayersAtTOBEnd && layer <= bounds::k_LayersAtTIDEnd) { + //We are in the TID + //There are 2 different maps here + int side = tTopo->tidSide(iidd); + if (side == 1) + h_hotcold[(layer - 1) + (layer - 11)]->Fill(-tm.globalY(), tm.globalX(), 1.); + else if (side == 2) + h_hotcold[(layer - 1) + (layer - 10)]->Fill(-tm.globalY(), tm.globalX(), 1.); + } else if (layer > bounds::k_LayersAtTIDEnd) { + //We are in the TEC + //There are 2 different maps here + int side = tTopo->tecSide(iidd); + if (side == 1) + h_hotcold[(layer + 2) + (layer - 14)]->Fill(-tm.globalY(), tm.globalX(), 1.); + else if (side == 2) + h_hotcold[(layer + 2) + (layer - 13)]->Fill(-tm.globalY(), tm.globalX(), 1.); } } - h_layer_vsBx[layer].fill(bunchCrossing, !badflag); + LogDebug("SiStripHitEfficiencyWorker") + << "layer " << layer << " vector index " << layer - 1 << " before filling h_layer_vsSmthg" << std::endl; + h_layer_vsBx[layer - 1].fill(bunchCrossing, !badflag); if (addLumi_) { - h_layer_vsLumi[layer].fill(instLumi, !badflag); - h_layer_vsPU[layer].fill(PU, !badflag); + h_layer_vsLumi[layer - 1].fill(instLumi, !badflag); + h_layer_vsPU[layer - 1].fill(PU, !badflag); } if (addCommonMode_) { - h_layer_vsCM[layer].fill(commonMode, !badflag); + h_layer_vsCM[layer - 1].fill(commonMode, !badflag); } h_goodLayer.fill(layerWithSide, !badflag); @@ -909,6 +978,7 @@ void SiStripHitEfficiencyWorker::endJob() { void SiStripHitEfficiencyWorker::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; + desc.add("dqmDir", "AlCaReco/SiStripHitEfficiency"); desc.add("UseOnlyHighPurityTracks", true); desc.add("cutOnTracks", false); desc.add("useAllHitsFromTracksWithMissingHits", false); diff --git a/Calibration/HcalAlCaRecoProducers/plugins/AlCaHcalHBHEMuonProducer.cc b/Calibration/HcalAlCaRecoProducers/plugins/AlCaHcalHBHEMuonProducer.cc index bf7e654a0ea79..875f112db07c4 100644 --- a/Calibration/HcalAlCaRecoProducers/plugins/AlCaHcalHBHEMuonProducer.cc +++ b/Calibration/HcalAlCaRecoProducers/plugins/AlCaHcalHBHEMuonProducer.cc @@ -281,7 +281,8 @@ void AlCaHcalHBHEMuonProducer::produce(edm::Event& iEvent, const edm::EventSetup const EcalSeverityLevelAlgo* sevlv = &iSetup.getData(tok_sevlv_); const CaloTopology* caloTopology = &iSetup.getData(tok_topo_); const HcalDbService* conditions = &iSetup.getData(tok_dbservice_); - HcalRespCorrs* respCorrs = new HcalRespCorrs(*resp); + HcalRespCorrs respCorrsObj(*resp); + HcalRespCorrs* respCorrs = &respCorrsObj; respCorrs->setTopo(theHBHETopology); // Relevant blocks from iEvent @@ -1014,7 +1015,8 @@ void AlCaHcalHBHEMuonProducer::beginRun(edm::Run const& iRun, edm::EventSetup co const HcalRespCorrs* resp = &iSetup.getData(tok_respcorr0_); const HcalTopology* theHBHETopology = &iSetup.getData(tok_htopo0_); const CaloGeometry* geo = &iSetup.getData(tok_geom0_); - HcalRespCorrs* respCorrs = new HcalRespCorrs(*resp); + HcalRespCorrs respCorrsObj(*resp); + HcalRespCorrs* respCorrs = &respCorrsObj; respCorrs->setTopo(theHBHETopology); // Write correction factors for all HB/HE events diff --git a/Calibration/TkAlCaRecoProducers/python/ALCARECOPromptCalibProdSiPixelLorentzAngle_Output_cff.py b/Calibration/TkAlCaRecoProducers/python/ALCARECOPromptCalibProdSiPixelLorentzAngle_Output_cff.py index d1894e8c425b2..63e1b795fba73 100644 --- a/Calibration/TkAlCaRecoProducers/python/ALCARECOPromptCalibProdSiPixelLorentzAngle_Output_cff.py +++ b/Calibration/TkAlCaRecoProducers/python/ALCARECOPromptCalibProdSiPixelLorentzAngle_Output_cff.py @@ -1,6 +1,6 @@ import FWCore.ParameterSet.Config as cms -OutALCARECOPromptCalibProdSiPixelLorentzAngle_noDrop = cms.PSet( +OutALCARECOPromptCalibProdSiPixelLA_noDrop = cms.PSet( SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring('pathALCARECOPromptCalibProdSiPixelLorentzAngle') ), @@ -9,5 +9,5 @@ 'keep *_MEtoEDMConvertSiPixelLorentzAngle_*_*', ) ) -OutALCARECOPromptCalibProdSiPixelLorentzAngle=OutALCARECOPromptCalibProdSiPixelLorentzAngle_noDrop.clone() -OutALCARECOPromptCalibProdSiPixelLorentzAngle.outputCommands.insert(0, "drop *") +OutALCARECOPromptCalibProdSiPixelLA=OutALCARECOPromptCalibProdSiPixelLA_noDrop.clone() +OutALCARECOPromptCalibProdSiPixelLA.outputCommands.insert(0, "drop *") diff --git a/Calibration/TkAlCaRecoProducers/python/ALCARECOPromptCalibProdSiStripHitEfficiency_Output_cff.py b/Calibration/TkAlCaRecoProducers/python/ALCARECOPromptCalibProdSiStripHitEfficiency_Output_cff.py index 155e27a69883e..05038baa1e583 100644 --- a/Calibration/TkAlCaRecoProducers/python/ALCARECOPromptCalibProdSiStripHitEfficiency_Output_cff.py +++ b/Calibration/TkAlCaRecoProducers/python/ALCARECOPromptCalibProdSiStripHitEfficiency_Output_cff.py @@ -1,9 +1,9 @@ import FWCore.ParameterSet.Config as cms -OutALCARECOPromptCalibProdSiStripHitEfficiency_noDrop = cms.PSet( +OutALCARECOPromptCalibProdSiStripHitEff_noDrop = cms.PSet( SelectEvents = cms.untracked.PSet( SelectEvents = cms.vstring('pathALCARECOPromptCalibProdSiStripHitEfficiency')), outputCommands = cms.untracked.vstring('keep *_MEtoEDMConvertSiStripHitEff_*_*')) -OutALCARECOPromptCalibProdSiStripHitEfficiency = OutALCARECOPromptCalibProdSiStripHitEfficiency_noDrop.clone() -OutALCARECOPromptCalibProdSiStripHitEfficiency.outputCommands.insert(0, "drop *") +OutALCARECOPromptCalibProdSiStripHitEff = OutALCARECOPromptCalibProdSiStripHitEff_noDrop.clone() +OutALCARECOPromptCalibProdSiStripHitEff.outputCommands.insert(0, "drop *") diff --git a/Calibration/TkAlCaRecoProducers/python/ALCARECOPromptCalibProdSiStripHitEfficiency_cff.py b/Calibration/TkAlCaRecoProducers/python/ALCARECOPromptCalibProdSiStripHitEfficiency_cff.py index 10a7204fda8aa..8c515b1c1e400 100644 --- a/Calibration/TkAlCaRecoProducers/python/ALCARECOPromptCalibProdSiStripHitEfficiency_cff.py +++ b/Calibration/TkAlCaRecoProducers/python/ALCARECOPromptCalibProdSiStripHitEfficiency_cff.py @@ -47,6 +47,7 @@ # This is the module actually doing the calibration from CalibTracker.SiStripHitEfficiency.siStripHitEfficiencyWorker_cfi import siStripHitEfficiencyWorker ALCARECOSiStripHitEff = siStripHitEfficiencyWorker.clone( + dqmDir = "AlCaReco/SiStripHitEfficiency", lumiScalers= "scalersRawToDigi", addLumi = True, commonMode = "siStripDigis:CommonMode", @@ -60,8 +61,8 @@ Layer = 0, # =0 means do all layers Debug = True, # do not cut on the total number of tracks - cutOnTracks = True, - trackMultiplicity = 100, + cutOnTracks = False, + trackMultiplicity = 1000, # use or not first and last measurement of a trajectory (biases), default is false useFirstMeas = False, useLastMeas = False, diff --git a/Calibration/TkAlCaRecoProducers/python/ALCARECOSiStripCalCosmicsNano_cff.py b/Calibration/TkAlCaRecoProducers/python/ALCARECOSiStripCalCosmicsNano_cff.py index 59cb4c8ac3789..833d6ec195bb3 100644 --- a/Calibration/TkAlCaRecoProducers/python/ALCARECOSiStripCalCosmicsNano_cff.py +++ b/Calibration/TkAlCaRecoProducers/python/ALCARECOSiStripCalCosmicsNano_cff.py @@ -13,6 +13,16 @@ throw=cms.bool(False) ) +# Select only events where tracker had HV on (according to DCS bit information) +# AND respective partition is in the run (according to FED information) +import CalibTracker.SiStripCommon.SiStripDCSFilter_cfi +DCSStatusForSiStripCalCosmicsNano = CalibTracker.SiStripCommon.SiStripDCSFilter_cfi.siStripDCSFilter.clone( + DetectorType = cms.vstring('TIBTID','TOB','TECp','TECm'), + ApplyFilter = cms.bool(True), + AndOr = cms.bool(True), + DebugOn = cms.untracked.bool(False) + ) + from CalibTracker.Configuration.Filter_Refit_cff import CalibrationTracks, CalibrationTracksRefit, MeasurementTrackerEvent, offlineBeamSpot ALCARECOSiStripCalCosmicsNanoCalibTracks = CalibrationTracks.clone(src=cms.InputTag("ALCARECOSiStripCalCosmics")) @@ -23,6 +33,7 @@ ALCARECOSiStripCalCosmicsNanoTkCalSeq = cms.Sequence( ALCARECOSiStripCalCosmicsNanoPrescale* ALCARECOSiStripCalCosmicsNanoHLT* + DCSStatusForSiStripCalCosmicsNano* ALCARECOSiStripCalCosmicsNanoCalibTracks, cms.Task(MeasurementTrackerEvent), cms.Task(offlineBeamSpot), diff --git a/Calibration/TkAlCaRecoProducers/python/AlcaSiStripHitEfficiencyHarvester_cfi.py b/Calibration/TkAlCaRecoProducers/python/AlcaSiStripHitEfficiencyHarvester_cfi.py index b3658de6db6ff..8ee2e8659a87d 100644 --- a/Calibration/TkAlCaRecoProducers/python/AlcaSiStripHitEfficiencyHarvester_cfi.py +++ b/Calibration/TkAlCaRecoProducers/python/AlcaSiStripHitEfficiencyHarvester_cfi.py @@ -1,8 +1,12 @@ +import copy import FWCore.ParameterSet.Config as cms from DQM.SiStripCommon.TkHistoMap_cff import * from CalibTracker.SiStripHitEfficiency.siStripHitEfficiencyHarvester_cfi import siStripHitEfficiencyHarvester +from Calibration.TkAlCaRecoProducers.ALCARECOPromptCalibProdSiStripHitEfficiency_cff import ALCARECOSiStripHitEff + alcasiStripHitEfficiencyHarvester = siStripHitEfficiencyHarvester.clone( + inputFolder = copy.copy(ALCARECOSiStripHitEff.dqmDir), # make sure the harvester is always in synch with worker isAtPCL = True, Threshold = 0.1, nModsMin = 5, diff --git a/CommonTools/MVAUtils/bin/convertXMLToGBRForestROOT.cc b/CommonTools/MVAUtils/bin/convertXMLToGBRForestROOT.cc index 3c7c9f5805fd7..9b24826adaf8a 100644 --- a/CommonTools/MVAUtils/bin/convertXMLToGBRForestROOT.cc +++ b/CommonTools/MVAUtils/bin/convertXMLToGBRForestROOT.cc @@ -1,6 +1,7 @@ #include "CommonTools/MVAUtils/interface/GBRForestTools.h" #include "TFile.h" +#include "TTree.h" #include #include @@ -24,10 +25,15 @@ int main(int argc, char **argv) { return 1; } - auto gbrForest = createGBRForest(inputFileName); + std::vector variableNames; + auto gbrForest = createGBRForest(inputFileName, variableNames); std::cout << "Read GBRForest " << inputFileName << " successfully." << std::endl; - TFile{outputFileName, "RECREATE"}.WriteObject(gbrForest.get(), "gbrForest"); + { + TFile f{outputFileName, "RECREATE"}; + f.WriteObject(gbrForest.get(), "gbrForest"); + f.WriteObject(&variableNames, "variableNames"); + } std::cout << "GBRForest written to " << outputFileName << " successfully." << std::endl; return 0; diff --git a/CommonTools/MVAUtils/src/GBRForestTools.cc b/CommonTools/MVAUtils/src/GBRForestTools.cc index f61390d41996c..c8316920a0247 100644 --- a/CommonTools/MVAUtils/src/GBRForestTools.cc +++ b/CommonTools/MVAUtils/src/GBRForestTools.cc @@ -126,7 +126,11 @@ namespace { if (reco::details::hasEnding(weightsFileFullPath, ".root")) { TFile gbrForestFile(weightsFileFullPath.c_str()); std::unique_ptr up(gbrForestFile.Get("gbrForest")); + std::unique_ptr> vars(gbrForestFile.Get>("variableNames")); gbrForestFile.Close("nodelete"); + if (vars) { + varNames = std::move(*vars); + } return up; } diff --git a/CondCore/CondDB/test/condTestRegression.py b/CondCore/CondDB/test/condTestRegression.py index 9a3492920f77a..54d546f7cd9ef 100755 --- a/CondCore/CondDB/test/condTestRegression.py +++ b/CondCore/CondDB/test/condTestRegression.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 from __future__ import print_function import sys, os @@ -30,6 +30,8 @@ 'CMSSW_7_6_6' : [ ('slc6_amd64_gcc493', 'ref750-s6493.db')] } +os2image_overrides = {"slc7": "cc7"} + def check_output(*popenargs, **kwargs): '''Mimics subprocess.check_output() in Python 2.6 ''' @@ -152,6 +154,15 @@ def run(self, rel, arch, readOrWrite, dbName): cmd += "echo 'CMSSW_BASE='$CMSSW_BASE; echo 'RELEASE_BASE='$RELEASE_BASE; echo 'PATH='$PATH; echo 'LD_LIBRARY_PATH='$LD_LIBRARY_PATH;" cmd += '$LOCALRT/test/%s/testReadWritePayloads %s sqlite_file:///%s/%s ' % (arch, readOrWrite, self.dbDir, dbName) + cur_os = os.environ['SCRAM_ARCH'].split("_")[0] + rel_os = arch.split("_")[0] + if cur_os in os2image_overrides: cur_os = os2image_overrides[cur_os] + if rel_os in os2image_overrides: rel_os = os2image_overrides[rel_os] + if rel_os != cur_os: + run_script = "%s/run_condTestRegression.sh" % self.topDir + check_output("echo '%s' > %s; chmod +x %s" % (cmd, run_script, run_script), shell=True, universal_newlines=True, env={}, stdin=subprocess.PIPE, stdout=subprocess.PIPE) + cmd = "%s/common/cmssw-env --cmsos %s -- %s" % (cmsPath, rel_os, run_script) + print("Running:",cmd) try: #opening a process with a clean environment ( to avoid to inherit scram variables ) res = check_output(cmd, shell=True, universal_newlines=True, env={}, stdin=subprocess.PIPE, stdout=subprocess.PIPE) diff --git a/CondCore/PCLConfigPlugins/src/plugin.cc b/CondCore/PCLConfigPlugins/src/plugin.cc index b9ad38cad20c1..e98e68b914075 100644 --- a/CondCore/PCLConfigPlugins/src/plugin.cc +++ b/CondCore/PCLConfigPlugins/src/plugin.cc @@ -1,5 +1,8 @@ #include "CondCore/ESSources/interface/registration_macros.h" #include "CondFormats/PCLConfig/interface/AlignPCLThresholds.h" +#include "CondFormats/PCLConfig/interface/AlignPCLThresholdsHG.h" #include "CondFormats/DataRecord/interface/AlignPCLThresholdsRcd.h" +#include "CondFormats/DataRecord/interface/AlignPCLThresholdsHGRcd.h" REGISTER_PLUGIN(AlignPCLThresholdsRcd, AlignPCLThresholds); +REGISTER_PLUGIN(AlignPCLThresholdsHGRcd, AlignPCLThresholdsHG); diff --git a/CondCore/Utilities/plugins/Module_2XML.cc b/CondCore/Utilities/plugins/Module_2XML.cc index 34b02814b32b7..0e99a897e891b 100644 --- a/CondCore/Utilities/plugins/Module_2XML.cc +++ b/CondCore/Utilities/plugins/Module_2XML.cc @@ -5,6 +5,7 @@ PAYLOAD_2XML_MODULE(pluginUtilities_payload2xml) { m.def("boost_version_label", &cond::boost_version_label, "Get boost version for this release"); PAYLOAD_2XML_CLASS(AlCaRecoTriggerBits); PAYLOAD_2XML_CLASS(AlignPCLThresholds); + PAYLOAD_2XML_CLASS(AlignPCLThresholdsHG); PAYLOAD_2XML_CLASS(AlignmentErrors); PAYLOAD_2XML_CLASS(AlignmentErrorsExtended); PAYLOAD_2XML_CLASS(AlignmentSurfaceDeformations); diff --git a/CondCore/Utilities/scripts/conddb b/CondCore/Utilities/scripts/conddb index 6a27b3c49fc77..862209888895a 100755 --- a/CondCore/Utilities/scripts/conddb +++ b/CondCore/Utilities/scripts/conddb @@ -395,7 +395,10 @@ def output(args, string, *parameters, **kwargs): output_file = kwargs.get('output_file', sys.stdout) - print(string % parameters + colors.end, end=' ', file=output_file) + to_print = string + colors.end + if len(parameters)>0: + to_print = string % parameters + colors.end + print(to_print, end=' ', file=output_file) if kwargs.get('newline', True): print(file=output_file) diff --git a/CondCore/Utilities/src/CondDBFetch.cc b/CondCore/Utilities/src/CondDBFetch.cc index b7f2885ed9b2f..10b7e3a15436c 100644 --- a/CondCore/Utilities/src/CondDBFetch.cc +++ b/CondCore/Utilities/src/CondDBFetch.cc @@ -33,6 +33,7 @@ namespace cond { FETCH_PAYLOAD_CASE(AlignmentSurfaceDeformations) FETCH_PAYLOAD_CASE(Alignments) FETCH_PAYLOAD_CASE(AlignPCLThresholds) + FETCH_PAYLOAD_CASE(AlignPCLThresholdsHG) FETCH_PAYLOAD_CASE(BeamSpotObjects) FETCH_PAYLOAD_CASE(BeamSpotOnlineObjects) FETCH_PAYLOAD_CASE(CSCBadChambers) diff --git a/CondCore/Utilities/src/CondDBImport.cc b/CondCore/Utilities/src/CondDBImport.cc index 6f2e371abce4e..94262be2d9e61 100644 --- a/CondCore/Utilities/src/CondDBImport.cc +++ b/CondCore/Utilities/src/CondDBImport.cc @@ -53,6 +53,7 @@ namespace cond { IMPORT_PAYLOAD_CASE(AlignmentSurfaceDeformations) IMPORT_PAYLOAD_CASE(Alignments) IMPORT_PAYLOAD_CASE(AlignPCLThresholds) + IMPORT_PAYLOAD_CASE(AlignPCLThresholdsHG) IMPORT_PAYLOAD_CASE(BeamSpotObjects) IMPORT_PAYLOAD_CASE(BeamSpotOnlineObjects) IMPORT_PAYLOAD_CASE(CSCBadChambers) diff --git a/CondCore/Utilities/src/CondFormats.h b/CondCore/Utilities/src/CondFormats.h index 97afa8c3b3464..38e8e8273909f 100644 --- a/CondCore/Utilities/src/CondFormats.h +++ b/CondCore/Utilities/src/CondFormats.h @@ -279,6 +279,7 @@ #include "CondFormats/BTauObjects/interface/TrackProbabilityCalibration.h" #include "CondFormats/MFObjects/interface/MagFieldConfig.h" #include "CondFormats/PCLConfig/interface/AlignPCLThresholds.h" +#include "CondFormats/PCLConfig/interface/AlignPCLThresholdsHG.h" #include "CondFormats/SiPhase2TrackerObjects/interface/TrackerDetToDTCELinkCablingMap.h" #include "CondFormats/SiPhase2TrackerObjects/interface/SiPhase2OuterTrackerLorentzAngle.h" #include "CondFormats/SiPhase2TrackerObjects/interface/DTCELinkId.h" diff --git a/CondCore/Utilities/src/PayloadInspector.cc b/CondCore/Utilities/src/PayloadInspector.cc index 82116f7501f79..0bc7ab0ea2b0a 100644 --- a/CondCore/Utilities/src/PayloadInspector.cc +++ b/CondCore/Utilities/src/PayloadInspector.cc @@ -101,7 +101,7 @@ namespace cond { pSet.addParameter("@service_type", std::string("SiteLocalConfigService")); psets.push_back(pSet); static const edm::ServiceToken services(edm::ServiceRegistry::createSet(psets)); - static const edm::ServiceRegistry::Operate operate(services); + const edm::ServiceRegistry::Operate operate(services); bool ret = false; size_t nt = tagsWithTimeBoundaries.size(); if (nt) { diff --git a/CondFormats/DataRecord/interface/AlignPCLThresholdsHGRcd.h b/CondFormats/DataRecord/interface/AlignPCLThresholdsHGRcd.h new file mode 100644 index 0000000000000..0e7761fdfca5e --- /dev/null +++ b/CondFormats/DataRecord/interface/AlignPCLThresholdsHGRcd.h @@ -0,0 +1,8 @@ +#ifndef AlignPCLThresholdsRcd_AlignPCLThresholdsHGRcd_h +#define AlignPCLThresholdsRcd_AlignPCLThresholdsHGRcd_h + +#include "FWCore/Framework/interface/EventSetupRecordImplementation.h" + +class AlignPCLThresholdsHGRcd : public edm::eventsetup::EventSetupRecordImplementation {}; + +#endif diff --git a/CondFormats/DataRecord/src/AlignPCLThresholdsHGRcd.cc b/CondFormats/DataRecord/src/AlignPCLThresholdsHGRcd.cc new file mode 100644 index 0000000000000..78c8ab331baa1 --- /dev/null +++ b/CondFormats/DataRecord/src/AlignPCLThresholdsHGRcd.cc @@ -0,0 +1,4 @@ +#include "CondFormats/DataRecord/interface/AlignPCLThresholdsHGRcd.h" +#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" + +EVENTSETUP_RECORD_REG(AlignPCLThresholdsHGRcd); diff --git a/CondFormats/EcalCorrections/src/EcalGlobalShowerContainmentCorrectionsVsEta.cc b/CondFormats/EcalCorrections/src/EcalGlobalShowerContainmentCorrectionsVsEta.cc index 0dc7458205cde..2c297bc8bf3b7 100644 --- a/CondFormats/EcalCorrections/src/EcalGlobalShowerContainmentCorrectionsVsEta.cc +++ b/CondFormats/EcalCorrections/src/EcalGlobalShowerContainmentCorrectionsVsEta.cc @@ -21,11 +21,6 @@ void EcalGlobalShowerContainmentCorrectionsVsEta::fillCorrectionCoefficients(con const double EcalGlobalShowerContainmentCorrectionsVsEta::correction( const DetId& xtal, EcalGlobalShowerContainmentCorrectionsVsEta::Type type) const { if (xtal.det() == DetId::Ecal && xtal.subdetId() == EcalBarrel) { - int offset = 0; - - if (type == e5x5) - offset += Coefficients::kCoefficients; - double corr = 0; if (EBDetId(xtal).ieta() < coefficients_.data[0]) diff --git a/CondFormats/GEMObjects/interface/GEMChMap.h b/CondFormats/GEMObjects/interface/GEMChMap.h index 5c83612223289..453060e82e146 100644 --- a/CondFormats/GEMObjects/interface/GEMChMap.h +++ b/CondFormats/GEMObjects/interface/GEMChMap.h @@ -139,7 +139,7 @@ class GEMChMap { const std::vector getVfats(const int type) const { return chamVfats_.at(type); } void add(int type, uint16_t d) { - if (std::find(chamVfats_[type].begin(), chamVfats_[type].end(), d) != chamVfats_[type].end()) + if (std::find(chamVfats_[type].begin(), chamVfats_[type].end(), d) == chamVfats_[type].end()) chamVfats_[type].push_back(d); } @@ -147,7 +147,7 @@ class GEMChMap { return chamIEtas_.at({chamberType, vfatAdd}); } void add(vfatEC d, int iEta) { - if (std::find(chamIEtas_[d].begin(), chamIEtas_[d].end(), iEta) != chamIEtas_[d].end()) + if (std::find(chamIEtas_[d].begin(), chamIEtas_[d].end(), iEta) == chamIEtas_[d].end()) chamIEtas_[d].push_back(iEta); } diff --git a/CondFormats/PCLConfig/interface/AlignPCLThreshold.h b/CondFormats/PCLConfig/interface/AlignPCLThreshold.h index 18ff194848ca5..62a4654a1b630 100644 --- a/CondFormats/PCLConfig/interface/AlignPCLThreshold.h +++ b/CondFormats/PCLConfig/interface/AlignPCLThreshold.h @@ -2,6 +2,7 @@ #define CondFormats_PCLConfig_AlignPCLThreshold_h #include "CondFormats/Serialization/interface/Serializable.h" +#include class AlignPCLThreshold { public: diff --git a/CondFormats/PCLConfig/interface/AlignPCLThresholds.h b/CondFormats/PCLConfig/interface/AlignPCLThresholds.h index 9ab1045f6e5d7..c62c52bdc0b76 100644 --- a/CondFormats/PCLConfig/interface/AlignPCLThresholds.h +++ b/CondFormats/PCLConfig/interface/AlignPCLThresholds.h @@ -4,6 +4,7 @@ #include "CondFormats/PCLConfig/interface/AlignPCLThreshold.h" #include "CondFormats/Serialization/interface/Serializable.h" +#include #include #include #include @@ -45,7 +46,7 @@ class AlignPCLThresholds { void printAll() const; -private: +protected: threshold_map m_thresholds; int m_nrecords; diff --git a/CondFormats/PCLConfig/interface/AlignPCLThresholdsHG.h b/CondFormats/PCLConfig/interface/AlignPCLThresholdsHG.h new file mode 100644 index 0000000000000..14924897f957e --- /dev/null +++ b/CondFormats/PCLConfig/interface/AlignPCLThresholdsHG.h @@ -0,0 +1,47 @@ +#ifndef CondFormats_PCLConfig_AlignPCLThresholdsHG_h +#define CondFormats_PCLConfig_AlignPCLThresholdsHG_h + +#include "CondFormats/PCLConfig/interface/AlignPCLThresholds.h" +#include "CondFormats/Serialization/interface/Serializable.h" + +#include +#include +#include + +class AlignPCLThresholdsHG : public AlignPCLThresholds { +public: + AlignPCLThresholdsHG() {} + + enum FloatParamIndex { + FRACTION_CUT_X = 0, + FRACTION_CUT_Y = 1, + FRACTION_CUT_Z = 2, + FRACTION_CUT_TX = 3, + FRACTION_CUT_TY = 4, + FRACTION_CUT_TZ = 5, + FSIZE = 6 + }; + + void SetFractionCut(const std::string &AlignableId, const coordType &type, const float &cut); + + const std::unordered_map> &getFloatMap() const { return floatMap; } + const std::vector &getFloatVec(const std::string &AlignableId) const; + + float getFractionCut(const std::string &AlignableId, const coordType &type) const; + std::array getFractionCut(const std::string &AlignableId) const; + + int payloadVersion() const; + + void printAllHG() const; + + ~AlignPCLThresholdsHG() override {} + +private: + std::unordered_map> floatMap; + std::unordered_map> intMap; + std::unordered_map> stringMap; + + COND_SERIALIZABLE; +}; + +#endif diff --git a/CondFormats/PCLConfig/plugins/AlignPCLThresholdsReader.cc b/CondFormats/PCLConfig/plugins/AlignPCLThresholdsReader.cc index e899bf6fa4c1c..50b21d5b74164 100644 --- a/CondFormats/PCLConfig/plugins/AlignPCLThresholdsReader.cc +++ b/CondFormats/PCLConfig/plugins/AlignPCLThresholdsReader.cc @@ -1,3 +1,4 @@ +#include #include #include #include @@ -6,9 +7,13 @@ #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "CondFormats/PCLConfig/interface/AlignPCLThresholds.h" +#include "CondFormats/PCLConfig/interface/AlignPCLThresholdsHG.h" #include "CondFormats/DataRecord/interface/AlignPCLThresholdsRcd.h" +#include "CondFormats/DataRecord/interface/AlignPCLThresholdsHGRcd.h" +#include "HLTrigger/HLTcore/interface/defaultModuleLabel.h" namespace edmtest { + template class AlignPCLThresholdsReader : public edm::one::EDAnalyzer<> { public: explicit AlignPCLThresholdsReader(edm::ParameterSet const& p); @@ -20,38 +25,42 @@ namespace edmtest { void analyze(const edm::Event& e, const edm::EventSetup& c) override; // ----------member data --------------------------- - const edm::ESGetToken thresholdToken_; + const edm::ESGetToken thresholdToken_; const bool printdebug_; const std::string formatedOutput_; }; - AlignPCLThresholdsReader::AlignPCLThresholdsReader(edm::ParameterSet const& p) + template + AlignPCLThresholdsReader::AlignPCLThresholdsReader(edm::ParameterSet const& p) : thresholdToken_(esConsumes()), printdebug_(p.getUntrackedParameter("printDebug", true)), formatedOutput_(p.getUntrackedParameter("outputFile", "")) { edm::LogInfo("AlignPCLThresholdsReader") << "AlignPCLThresholdsReader" << std::endl; } - AlignPCLThresholdsReader::~AlignPCLThresholdsReader() { + template + AlignPCLThresholdsReader::~AlignPCLThresholdsReader() { edm::LogInfo("AlignPCLThresholdsReader") << "~AlignPCLThresholdsReader " << std::endl; } - void AlignPCLThresholdsReader::analyze(const edm::Event& e, const edm::EventSetup& context) { + template + void AlignPCLThresholdsReader::analyze(const edm::Event& e, const edm::EventSetup& context) { edm::LogInfo("AlignPCLThresholdsReader") << "### AlignPCLThresholdsReader::analyze ###" << std::endl; edm::LogInfo("AlignPCLThresholdsReader") << " I AM IN RUN NUMBER " << e.id().run() << std::endl; edm::LogInfo("AlignPCLThresholdsReader") << " ---EVENT NUMBER " << e.id().event() << std::endl; + edm::eventsetup::EventSetupRecordKey inputKey = edm::eventsetup::EventSetupRecordKey::makeKey(); edm::eventsetup::EventSetupRecordKey recordKey( - edm::eventsetup::EventSetupRecordKey::TypeTag::findType("AlignPCLThresholdsRcd")); + edm::eventsetup::EventSetupRecordKey::TypeTag::findType(inputKey.type().name())); if (recordKey.type() == edm::eventsetup::EventSetupRecordKey::TypeTag()) { //record not found - edm::LogInfo("AlignPCLThresholdsReader") << "Record \"AlignPCLThresholdsRcd" - << "\" does not exist " << std::endl; + edm::LogInfo("AlignPCLThresholdsReader") + << "Record \"" << inputKey.type().name() << "\" does not exist " << std::endl; } //this part gets the handle of the event source and the record (i.e. the Database) - edm::ESHandle thresholdHandle = context.getHandle(thresholdToken_); + edm::ESHandle thresholdHandle = context.getHandle(thresholdToken_); edm::LogInfo("AlignPCLThresholdsReader") << "got eshandle" << std::endl; if (!thresholdHandle.isValid()) { @@ -59,7 +68,7 @@ namespace edmtest { return; } - const AlignPCLThresholds* thresholds = thresholdHandle.product(); + const T* thresholds = thresholdHandle.product(); edm::LogInfo("AlignPCLThresholdsReader") << "got AlignPCLThresholds* " << std::endl; edm::LogInfo("AlignPCLThresholdsReader") << "print pointer address : "; edm::LogInfo("AlignPCLThresholdsReader") << thresholds << std::endl; @@ -69,6 +78,10 @@ namespace edmtest { // use built-in method in the CondFormat to print the content if (printdebug_) { thresholds->printAll(); + // print additional thresholds if HG payload is used + if constexpr (std::is_same_v) { + thresholds->printAllHG(); + } } FILE* pFile = nullptr; @@ -132,16 +145,51 @@ namespace edmtest { } } } + + // print additional thresholds for HG payload + if constexpr (std::is_same_v) { + fprintf(pFile, "AlignPCLThresholdsHG::printAllHG() \n"); + fprintf(pFile, " ======================================= \n"); + const std::unordered_map>& floatMap = thresholds->getFloatMap(); + for (auto it = floatMap.begin(); it != floatMap.end(); ++it) { + fprintf(pFile, " ======================================= \n"); + + fprintf(pFile, "key : %s \n", (it->first).c_str()); + fprintf(pFile, + "- X_fractionCut : %8.3f \n", + thresholds->getFractionCut(it->first, AlignPCLThresholds::coordType::X)); + fprintf(pFile, + "- thetaX_fractionCut : %8.3f \n", + thresholds->getFractionCut(it->first, AlignPCLThresholds::coordType::theta_X)); + fprintf(pFile, + "- Y_fractionCut : %8.3f \n", + thresholds->getFractionCut(it->first, AlignPCLThresholds::coordType::Y)); + fprintf(pFile, + "- thetaY_fractionCut : %8.3f \n", + thresholds->getFractionCut(it->first, AlignPCLThresholds::coordType::theta_Y)); + fprintf(pFile, + "- Z_fractionCut : %8.3f \n", + thresholds->getFractionCut(it->first, AlignPCLThresholds::coordType::Z)); + fprintf(pFile, + "- thetaZ_fractionCut : %8.3f \n", + thresholds->getFractionCut(it->first, AlignPCLThresholds::coordType::theta_Z)); + } + } } } - void AlignPCLThresholdsReader::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + template + void AlignPCLThresholdsReader::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; desc.setComment("Reads payloads of type AlignPCLThresholds"); desc.addUntracked("printDebug", true); desc.addUntracked("outputFile", ""); - descriptions.add("AlignPCLThresholdsReader", desc); + descriptions.add(defaultModuleLabel>(), desc); } - DEFINE_FWK_MODULE(AlignPCLThresholdsReader); + typedef AlignPCLThresholdsReader AlignPCLThresholdsLGReader; + typedef AlignPCLThresholdsReader AlignPCLThresholdsHGReader; + + DEFINE_FWK_MODULE(AlignPCLThresholdsLGReader); + DEFINE_FWK_MODULE(AlignPCLThresholdsHGReader); } // namespace edmtest diff --git a/CondFormats/PCLConfig/plugins/AlignPCLThresholdsWriter.cc b/CondFormats/PCLConfig/plugins/AlignPCLThresholdsWriter.cc index a42461bc85a20..87b2094c26659 100644 --- a/CondFormats/PCLConfig/plugins/AlignPCLThresholdsWriter.cc +++ b/CondFormats/PCLConfig/plugins/AlignPCLThresholdsWriter.cc @@ -15,6 +15,7 @@ // // system include files +#include #include // user include files @@ -26,6 +27,7 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "CondFormats/PCLConfig/interface/AlignPCLThresholds.h" +#include "CondFormats/PCLConfig/interface/AlignPCLThresholdsHG.h" #include "FWCore/ServiceRegistry/interface/Service.h" #include "CondCore/DBOutputService/interface/PoolDBOutputService.h" @@ -48,6 +50,10 @@ class AlignPCLThresholdsWriter : public edm::one::EDAnalyzer<> { void analyze(const edm::Event&, const edm::EventSetup&) override; DOFs::dof mapOntoEnum(std::string coord); + template + void writePayload(T& myThresholds); + void storeHGthresholds(AlignPCLThresholdsHG& myThresholds, const std::vector& alignables); + // ----------member data --------------------------- const std::string m_record; const unsigned int m_minNrecords; @@ -68,10 +74,47 @@ AlignPCLThresholdsWriter::AlignPCLThresholdsWriter(const edm::ParameterSet& iCon // ------------ method called for each event ------------ void AlignPCLThresholdsWriter::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { - using namespace edm; + // detect if new payload is used + bool newClass = false; + for (auto& thePSet : m_parameters) { + if (thePSet.exists("fractionCut")) { + newClass = true; + break; + } + } - // output object - AlignPCLThresholds myThresholds{}; + // use templated method depending on new/old payload + if (newClass) { + AlignPCLThresholdsHG myThresholds{}; + writePayload(myThresholds); + } else { + AlignPCLThresholds myThresholds{}; + writePayload(myThresholds); + } +} + +DOFs::dof AlignPCLThresholdsWriter::mapOntoEnum(std::string coord) { + if (coord == "X") { + return DOFs::X; + } else if (coord == "Y") { + return DOFs::Y; + } else if (coord == "Z") { + return DOFs::Z; + } else if (coord == "thetaX") { + return DOFs::thetaX; + } else if (coord == "thetaY") { + return DOFs::thetaY; + } else if (coord == "thetaZ") { + return DOFs::thetaZ; + } else { + return DOFs::extraDOF; + } +} + +// ------------ templated method to write the payload ------------ +template +void AlignPCLThresholdsWriter::writePayload(T& myThresholds) { + using namespace edm; edm::LogInfo("AlignPCLThresholdsWriter") << "Size of AlignPCLThresholds object " << myThresholds.size() << std::endl; @@ -167,6 +210,11 @@ void AlignPCLThresholdsWriter::analyze(const edm::Event& iEvent, const edm::Even // use buil-in method in the CondFormat myThresholds.printAll(); + // additional thresholds for AlignPCLThresholdsHG + if constexpr (std::is_same_v) { + storeHGthresholds(myThresholds, alignables); + } + // Form the data here edm::Service poolDbService; if (poolDbService.isAvailable()) { @@ -176,22 +224,34 @@ void AlignPCLThresholdsWriter::analyze(const edm::Event& iEvent, const edm::Even } } -DOFs::dof AlignPCLThresholdsWriter::mapOntoEnum(std::string coord) { - if (coord == "X") { - return DOFs::X; - } else if (coord == "Y") { - return DOFs::Y; - } else if (coord == "Z") { - return DOFs::Z; - } else if (coord == "thetaX") { - return DOFs::thetaX; - } else if (coord == "thetaY") { - return DOFs::thetaY; - } else if (coord == "thetaZ") { - return DOFs::thetaZ; - } else { - return DOFs::extraDOF; +// ------------ method to store additional HG thresholds ------------ +void AlignPCLThresholdsWriter::storeHGthresholds(AlignPCLThresholdsHG& myThresholds, + const std::vector& alignables) { + edm::LogInfo("AlignPCLThresholdsWriter") + << "Found type AlignPCLThresholdsHG, additional thresholds are written" << std::endl; + + for (auto& alignable : alignables) { + for (auto& thePSet : m_parameters) { + const std::string alignableId(thePSet.getParameter("alignableId")); + const std::string DOF(thePSet.getParameter("DOF")); + + // Get coordType from DOF + AlignPCLThresholds::coordType type = static_cast(mapOntoEnum(DOF)); + + if (alignableId == alignable) { + if (thePSet.exists("fractionCut")) { + const double fractionCut(thePSet.getParameter("fractionCut")); + myThresholds.SetFractionCut(alignableId, type, fractionCut); + } else { + myThresholds.SetFractionCut(alignableId, type, -1.); // better way to define default fraction cut?? + } + } + } } + + // print additional tresholds + edm::LogInfo("AlignPCLThresholdsWriter") << "Additonal content of AlignPCLThresholdsHG " << std::endl; + myThresholds.printAllHG(); } // ------------ method fills 'descriptions' with the allowed parameters for the module ------------ @@ -208,6 +268,8 @@ void AlignPCLThresholdsWriter::fillDescriptions(edm::ConfigurationDescriptions& desc_thresholds.add("sigCut"); desc_thresholds.add("maxMoveCut"); desc_thresholds.add("maxErrorCut"); + // optional thresholds from new payload version + desc_thresholds.addOptional("fractionCut"); std::vector default_thresholds(1); desc.addVPSet("thresholds", desc_thresholds, default_thresholds); diff --git a/CondFormats/PCLConfig/python/ThresholdsHG_cff.py b/CondFormats/PCLConfig/python/ThresholdsHG_cff.py new file mode 100644 index 0000000000000..cde469be6c1ed --- /dev/null +++ b/CondFormats/PCLConfig/python/ThresholdsHG_cff.py @@ -0,0 +1,962 @@ +import FWCore.ParameterSet.Config as cms +import copy + +# ----------------------------------------------------------------------- +# Default configuration + +default = cms.VPSet( + #### Barrel Pixel HB X- + cms.PSet(alignableId = cms.string("TPBHalfBarrelXminus"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPBHalfBarrelXminus"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPBHalfBarrelXminus"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPBHalfBarrelXminus"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPBHalfBarrelXminus"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPBHalfBarrelXminus"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + ### Barrel Pixel HB X+ + cms.PSet(alignableId = cms.string("TPBHalfBarrelXplus"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPBHalfBarrelXplus"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0), + ), + + cms.PSet(alignableId = cms.string("TPBHalfBarrelXplus"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPBHalfBarrelXplus"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPBHalfBarrelXplus"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPBHalfBarrelXplus"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + ### Forward Pixel HC X-,Z- + cms.PSet(alignableId = cms.string("TPEHalfCylinderXminusZminus"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXminusZminus"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXminusZminus"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXminusZminus"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXminusZminus"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXminusZminus"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + ### Forward Pixel HC X+,Z- + cms.PSet(alignableId = cms.string("TPEHalfCylinderXplusZminus"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXplusZminus"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXplusZminus"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXplusZminus"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXplusZminus"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXplusZminus"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + ### Forward Pixel HC X-,Z+ + cms.PSet(alignableId = cms.string("TPEHalfCylinderXminusZplus"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXminusZplus"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXminusZplus"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXminusZplus"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXminusZplus"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXminusZplus"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + ### Forward Pixel HC X+,Z+ + cms.PSet(alignableId = cms.string("TPEHalfCylinderXplusZplus"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXplusZplus"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXplusZplus"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXplusZplus"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXplusZplus"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + cms.PSet(alignableId = cms.string("TPEHalfCylinderXplusZplus"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + maxMoveCut = cms.double(200.0), + maxErrorCut = cms.double(10.0) + ), + + ### Barrel Pixel Ladder + cms.PSet(alignableId = cms.string("TPBLadder"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadder"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadder"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadder"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadder"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadder"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + ### EndCap Pixel Panel + cms.PSet(alignableId = cms.string("TPEPanel"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanel"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanel"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanel"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanel"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanel"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + ### Barrel Pixel Ladder Layer 1 + cms.PSet(alignableId = cms.string("TPBLadderLayer1"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer1"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer1"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer1"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer1"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer1"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + ### Barrel Pixel Ladder Layer 2 + cms.PSet(alignableId = cms.string("TPBLadderLayer2"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer2"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer2"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer2"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer2"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer2"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + ### Barrel Pixel Ladder Layer 3 + cms.PSet(alignableId = cms.string("TPBLadderLayer3"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer3"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer3"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer3"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer3"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer3"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + ### Barrel Pixel Ladder Layer 4 + cms.PSet(alignableId = cms.string("TPBLadderLayer4"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer4"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer4"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer4"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer4"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPBLadderLayer4"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + ### EndCap Pixel Panel Disk1 + cms.PSet(alignableId = cms.string("TPEPanelDisk1"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk1"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk1"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk1"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk1"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk1"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + ### EndCap Pixel Panel Disk2 + cms.PSet(alignableId = cms.string("TPEPanelDisk2"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk2"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk2"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk2"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk2"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk2"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + ### EndCap Pixel Panel Disk3 + cms.PSet(alignableId = cms.string("TPEPanelDisk3"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk3"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk3"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk3"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk3"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDisk3"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + ### EndCap Pixel Panel DiskM1 + cms.PSet(alignableId = cms.string("TPEPanelDiskM1"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM1"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM1"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM1"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM1"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM1"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + ### EndCap Pixel Panel DiskM2 + cms.PSet(alignableId = cms.string("TPEPanelDiskM2"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM2"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM2"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM2"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM2"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM2"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + ### EndCap Pixel Panel DiskM3 + cms.PSet(alignableId = cms.string("TPEPanelDiskM3"), + DOF = cms.string("X"), + cut = cms.double(5.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM3"), + DOF = cms.string("thetaX"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM3"), + DOF = cms.string("Y"), + cut = cms.double(10.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM3"), + DOF = cms.string("thetaY"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM3"), + DOF = cms.string("Z"), + cut = cms.double(15.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ), + + cms.PSet(alignableId = cms.string("TPEPanelDiskM3"), + DOF = cms.string("thetaZ"), + cut = cms.double(30.0), + sigCut = cms.double(2.5), + fractionCut = cms.double(0.25), + maxMoveCut = cms.double(100000.0), + maxErrorCut = cms.double(10000.0) + ) + ) + diff --git a/CondFormats/PCLConfig/src/AlignPCLThresholdsHG.cc b/CondFormats/PCLConfig/src/AlignPCLThresholdsHG.cc new file mode 100644 index 0000000000000..470adafc69a58 --- /dev/null +++ b/CondFormats/PCLConfig/src/AlignPCLThresholdsHG.cc @@ -0,0 +1,122 @@ +#include "CondFormats/PCLConfig/interface/AlignPCLThresholdsHG.h" +#include "FWCore/Utilities/interface/Exception.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +#include +#include // std::setw + +namespace AlignPCLThresholdsHGImpl { + template + const T &getParam(const std::vector ¶ms, size_t index) { + if (index >= params.size()) + throw std::out_of_range("Parameter with index " + std::to_string(index) + " is out of range."); + return params[index]; + } + + template + void setParam(std::vector ¶ms, size_t index, const T &value) { + if (index >= params.size()) + throw std::out_of_range("Parameter with index " + std::to_string(index) + " is out of range."); + params[index] = value; + } + +} //namespace AlignPCLThresholdsHGImpl + +const std::vector &AlignPCLThresholdsHG::getFloatVec(const std::string &AlignableId) const { + std::unordered_map>::const_iterator it = floatMap.find(AlignableId); + + if (it != floatMap.end()) { + return it->second; + } else { + throw cms::Exception("AlignPCLThresholdsHG") << "No float vector defined for Alignable id " << AlignableId << "\n"; + } +} + +void AlignPCLThresholdsHG::SetFractionCut(const std::string &AlignableId, const coordType &type, const float &cut) { + // Set entry in map if not yet available + std::unordered_map>::const_iterator it = floatMap.find(AlignableId); + if (it == floatMap.end()) + floatMap[AlignableId] = std::vector(FSIZE, 0.); + + switch (type) { + case X: + return AlignPCLThresholdsHGImpl::setParam(floatMap[AlignableId], FRACTION_CUT_X, cut); + case Y: + return AlignPCLThresholdsHGImpl::setParam(floatMap[AlignableId], FRACTION_CUT_Y, cut); + case Z: + return AlignPCLThresholdsHGImpl::setParam(floatMap[AlignableId], FRACTION_CUT_Z, cut); + case theta_X: + return AlignPCLThresholdsHGImpl::setParam(floatMap[AlignableId], FRACTION_CUT_TX, cut); + case theta_Y: + return AlignPCLThresholdsHGImpl::setParam(floatMap[AlignableId], FRACTION_CUT_TY, cut); + case theta_Z: + return AlignPCLThresholdsHGImpl::setParam(floatMap[AlignableId], FRACTION_CUT_TZ, cut); + default: + throw cms::Exception("AlignPCLThresholdsHG") + << "Requested setting fraction threshold for undefined coordinate" << type << "\n"; + } +} + +std::array AlignPCLThresholdsHG::getFractionCut(const std::string &AlignableId) const { + const std::vector vec = getFloatVec(AlignableId); + return {{AlignPCLThresholdsHGImpl::getParam(vec, FRACTION_CUT_X), + AlignPCLThresholdsHGImpl::getParam(vec, FRACTION_CUT_Y), + AlignPCLThresholdsHGImpl::getParam(vec, FRACTION_CUT_Z), + AlignPCLThresholdsHGImpl::getParam(vec, FRACTION_CUT_TX), + AlignPCLThresholdsHGImpl::getParam(vec, FRACTION_CUT_TY), + AlignPCLThresholdsHGImpl::getParam(vec, FRACTION_CUT_TZ)}}; +} + +float AlignPCLThresholdsHG::getFractionCut(const std::string &AlignableId, const coordType &type) const { + const std::vector vec = getFloatVec(AlignableId); + switch (type) { + case X: + return AlignPCLThresholdsHGImpl::getParam(vec, FRACTION_CUT_X); + case Y: + return AlignPCLThresholdsHGImpl::getParam(vec, FRACTION_CUT_Y); + case Z: + return AlignPCLThresholdsHGImpl::getParam(vec, FRACTION_CUT_Z); + case theta_X: + return AlignPCLThresholdsHGImpl::getParam(vec, FRACTION_CUT_TX); + case theta_Y: + return AlignPCLThresholdsHGImpl::getParam(vec, FRACTION_CUT_TY); + case theta_Z: + return AlignPCLThresholdsHGImpl::getParam(vec, FRACTION_CUT_TZ); + default: + throw cms::Exception("AlignPCLThresholdsHG") + << "Requested fraction threshold for undefined coordinate" << type << "\n"; + } +} + +int AlignPCLThresholdsHG::payloadVersion() const { + switch (FSIZE) { + case 6: + return 1; + default: + throw cms::Exception("AlignPCLThresholdsHG") + << "Payload version with FSIZE equal to " << FSIZE << " is not defined.\n"; + } +} + +void AlignPCLThresholdsHG::printAllHG() const { + edm::LogVerbatim("AlignPCLThresholdsHG") << "AlignPCLThresholdsHG::printAllHG()"; + edm::LogVerbatim("AlignPCLThresholdsHG") << " =================================="; + for (auto it = floatMap.begin(); it != floatMap.end(); ++it) { + edm::LogVerbatim("AlignPCLThresholdsHG") << " =================================="; + edm::LogVerbatim("AlignPCLThresholdsHG") + << "key : " << it->first << " \n" + << "- X_fractionCut : " << std::setw(4) << getFractionCut(it->first, X) << std::setw(5) << "\n" + + << "- thetaX_fractionCut : " << std::setw(4) << getFractionCut(it->first, theta_X) << std::setw(5) + << "\n" + + << "- Y_fractionCut : " << std::setw(4) << getFractionCut(it->first, Y) << std::setw(5) << "\n" + + << "- thetaY_fractionCut : " << std::setw(4) << getFractionCut(it->first, theta_Y) << std::setw(5) + << "\n" + + << "- Z_fractionCut : " << std::setw(4) << getFractionCut(it->first, Z) << std::setw(5) << "\n" + + << "- thetaZ_fractionCut : " << std::setw(4) << getFractionCut(it->first, theta_Z) << std::setw(5); + } +} diff --git a/CondFormats/PCLConfig/src/T_EventSetup_AlignPCLThresholdsHG.cc b/CondFormats/PCLConfig/src/T_EventSetup_AlignPCLThresholdsHG.cc new file mode 100644 index 0000000000000..e1bc185fa8452 --- /dev/null +++ b/CondFormats/PCLConfig/src/T_EventSetup_AlignPCLThresholdsHG.cc @@ -0,0 +1,4 @@ +#include "CondFormats/PCLConfig/interface/AlignPCLThresholdsHG.h" +#include "FWCore/Utilities/interface/typelookup.h" + +TYPELOOKUP_DATA_REG(AlignPCLThresholdsHG); diff --git a/CondFormats/PCLConfig/src/classes_def.xml b/CondFormats/PCLConfig/src/classes_def.xml index 39195a5fe5e08..4dd83f55fa9ac 100644 --- a/CondFormats/PCLConfig/src/classes_def.xml +++ b/CondFormats/PCLConfig/src/classes_def.xml @@ -4,4 +4,5 @@ + diff --git a/CondFormats/PCLConfig/src/headers.h b/CondFormats/PCLConfig/src/headers.h index facace9aa2dc9..dc0933c2705b8 100644 --- a/CondFormats/PCLConfig/src/headers.h +++ b/CondFormats/PCLConfig/src/headers.h @@ -1 +1,2 @@ #include "CondFormats/PCLConfig/interface/AlignPCLThresholds.h" +#include "CondFormats/PCLConfig/interface/AlignPCLThresholdsHG.h" diff --git a/CondFormats/PCLConfig/test/AlignPCLThresholdsReader_cfg.py b/CondFormats/PCLConfig/test/AlignPCLThresholdsReader_cfg.py index 324bf01a43adf..7fc3b03e42c12 100644 --- a/CondFormats/PCLConfig/test/AlignPCLThresholdsReader_cfg.py +++ b/CondFormats/PCLConfig/test/AlignPCLThresholdsReader_cfg.py @@ -18,9 +18,34 @@ reportEvery = cms.untracked.int32(1000) ), AlignPCLThresholdsReader = cms.untracked.PSet( limit = cms.untracked.int32(-1)), - AlignPCLThresholds = cms.untracked.PSet( limit = cms.untracked.int32(-1)) + AlignPCLThresholds = cms.untracked.PSet( limit = cms.untracked.int32(-1)), + AlignPCLThresholdsHG = cms.untracked.PSet( limit = cms.untracked.int32(-1)) ) +## +## Var Parsing +## +import FWCore.ParameterSet.VarParsing as VarParsing +options = VarParsing.VarParsing() +options.register('readLGpayload', + False, + VarParsing.VarParsing.multiplicity.singleton, + VarParsing.VarParsing.varType.bool, + "Read old payload type used for LG thresholds") +options.parseArguments() + +## +## Define record, class and module based on option +## +rcdName = "AlignPCLThresholdsHGRcd" +className = "AlignPCLThresholdsHG" +moduleName = "AlignPCLThresholdsHGReader" + +if options.readLGpayload: + rcdName = "AlignPCLThresholdsRcd" + className = "AlignPCLThresholds" + moduleName = "AlignPCLThresholdsLGReader" + ## ## Empty Source ## @@ -38,7 +63,7 @@ process.dbInput = cms.ESSource("PoolDBESSource", CondDBThresholds, - toGet = cms.VPSet(cms.PSet(record = cms.string('AlignPCLThresholdsRcd'), + toGet = cms.VPSet(cms.PSet(record = cms.string(rcdName), tag = cms.string('PCLThresholds_express_v0') # choose tag you want ) ) @@ -47,16 +72,17 @@ ## Retrieve it and check it's available in the ES ## process.get = cms.EDAnalyzer("EventSetupRecordDataGetter", - toGet = cms.VPSet(cms.PSet(record = cms.string('AlignPCLThresholdsRcd'), - data = cms.vstring('AlignPCLThresholds') + toGet = cms.VPSet(cms.PSet(record = cms.string(rcdName), + data = cms.vstring(className) ) ), verbose = cms.untracked.bool(True) ) + ## ## Read it back ## -process.ReadDB = cms.EDAnalyzer("AlignPCLThresholdsReader") +process.ReadDB = cms.EDAnalyzer(moduleName) process.ReadDB.printDebug = cms.untracked.bool(True) process.ReadDB.outputFile = cms.untracked.string('AlignPCLThresholds.log') diff --git a/CondFormats/PCLConfig/test/AlignPCLThresholdsWriter_cfg.py b/CondFormats/PCLConfig/test/AlignPCLThresholdsWriter_cfg.py index ed0d445d651b6..a8c491696cee0 100644 --- a/CondFormats/PCLConfig/test/AlignPCLThresholdsWriter_cfg.py +++ b/CondFormats/PCLConfig/test/AlignPCLThresholdsWriter_cfg.py @@ -19,7 +19,8 @@ reportEvery = cms.untracked.int32(1000) ), AlignPCLThresholdsWriter = cms.untracked.PSet( limit = cms.untracked.int32(-1)), - AlignPCLThresholds = cms.untracked.PSet( limit = cms.untracked.int32(-1)) + AlignPCLThresholds = cms.untracked.PSet( limit = cms.untracked.int32(-1)), + AlignPCLThresholdsHG = cms.untracked.PSet( limit = cms.untracked.int32(-1)) ) ## @@ -43,7 +44,7 @@ process.PoolDBOutputService = cms.Service("PoolDBOutputService", process.CondDB, timetype = cms.untracked.string('runnumber'), - toPut = cms.VPSet(cms.PSet(record = cms.string('AlignPCLThresholdsRcd'), + toPut = cms.VPSet(cms.PSet(record = cms.string('FooRcd'), tag = cms.string('PCLThresholds_express_v0') ) ) @@ -52,7 +53,7 @@ ## ## Impot the thresholds configuration ## -import CondFormats.PCLConfig.Thresholds_cff as Thresholds +import CondFormats.PCLConfig.ThresholdsHG_cff as Thresholds ## ## Example on how to add to the default extra degrees of freedom @@ -72,7 +73,7 @@ #print DefaultPlusSurface.dumpPython() process.WriteInDB = cms.EDAnalyzer("AlignPCLThresholdsWriter", - record= cms.string('AlignPCLThresholdsRcd'), + record= cms.string('FooRcd'), ### minimum number of records found in pede output minNRecords = cms.uint32(25000), #thresholds = cms.VPSet() # empty object diff --git a/CondFormats/PPSObjects/xml/rpix_mapping_2022.xml b/CondFormats/PPSObjects/xml/rpix_mapping_2022.xml new file mode 100644 index 0000000000000..931a06d05e12e --- /dev/null +++ b/CondFormats/PPSObjects/xml/rpix_mapping_2022.xml @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CondTools/L1Trigger/interface/L1ConfigOnlineProdBase.h b/CondTools/L1Trigger/interface/L1ConfigOnlineProdBase.h index dd085fdad37cb..24dee3c4125f2 100644 --- a/CondTools/L1Trigger/interface/L1ConfigOnlineProdBase.h +++ b/CondTools/L1Trigger/interface/L1ConfigOnlineProdBase.h @@ -46,6 +46,7 @@ #include "CondCore/CondDB/interface/Session.h" #include "CondCore/CondDB/interface/ConnectionPool.h" +#include // forward declarations template @@ -65,6 +66,7 @@ class L1ConfigOnlineProdBase : public edm::ESProducer { protected: l1t::OMDSReader m_omdsReader; + std::optional> m_consumesCollector; bool m_forceGeneration; // Called from produce methods. @@ -92,6 +94,8 @@ L1ConfigOnlineProdBase::L1ConfigOnlineProdBase(const edm::Parameter l1TriggerKeyListToken_ = cc.consumes(); l1TriggerKeyToken_ = cc.consumes(); + m_consumesCollector = std::move(cc); + if (iConfig.exists("copyFromCondDB")) { m_copyFromCondDB = iConfig.getParameter("copyFromCondDB"); diff --git a/CondTools/SiStrip/python/SiStripO2O_cfg_template.py b/CondTools/SiStrip/python/SiStripO2O_cfg_template.py index 5af782e6ce075..b7ae77935aebe 100644 --- a/CondTools/SiStrip/python/SiStripO2O_cfg_template.py +++ b/CondTools/SiStrip/python/SiStripO2O_cfg_template.py @@ -26,8 +26,8 @@ if 'CONFDB' not in os.environ: import CondCore.Utilities.credentials as auth - user, _, passwd = auth.get_credentials('cms_omds_tunnel/cms_trk_r') - process.SiStripConfigDb.ConfDb = '{user}/{passwd}@{path}'.format(user=user, passwd=passwd, path='cms_omds_tunnel') + user, _, passwd = auth.get_credentials('cmsonr_lb/cms_trk_r') + process.SiStripConfigDb.ConfDb = '{user}/{passwd}@{path}'.format(user=user, passwd=passwd, path='cmsonr_lb') process.load("OnlineDB.SiStripO2O.SiStripO2OCalibrationFactors_cfi") process.SiStripCondObjBuilderFromDb = cms.Service( "SiStripCondObjBuilderFromDb", diff --git a/Configuration/AlCa/python/autoAlca.py b/Configuration/AlCa/python/autoAlca.py index b1af50d09cedd..b0dc22e912702 100644 --- a/Configuration/AlCa/python/autoAlca.py +++ b/Configuration/AlCa/python/autoAlca.py @@ -10,6 +10,7 @@ "Commissioning" : "HcalCalIsoTrk+HcalCalIsolatedBunchSelector+TkAlMinBias+SiStripCalMinBias", "Cosmics" : "SiPixelCalCosmics+SiStripCalCosmics+TkAlCosmics0T+MuAlGlobalCosmics", "DoubleMuon" : "TkAlZMuMu+TkAlDiMuonAndVertex+MuAlCalIsolatedMu", + "DoubleMuonLowMass" : "TkAlJpsiMuMu+TkAlUpsilonMuMu", "DoubleMuParked" : "MuAlCalIsolatedMu+MuAlOverlaps+TkAlZMuMu", "EGamma" : "EcalESAlign+EcalUncalWElectron+EcalUncalZElectron+HcalCalIsoTrkProducerFilter+HcalCalIterativePhiSym", "Express" : "SiStripCalZeroBias+TkAlMinBias+SiStripPCLHistos+SiStripCalMinBias+SiStripCalMinBiasAAG+Hotline+SiPixelCalZeroBias", @@ -17,7 +18,7 @@ "ExpressCosmics" : "SiStripPCLHistos+SiStripCalZeroBias+TkAlCosmics0T+SiPixelCalZeroBias", "HcalNZS" : "HcalCalMinBias", "HLTPhysics" : "TkAlMinBias", - "JetHT" : "HcalCalIsoTrkProducerFilter+TkAlMinBias", + "JetHT" : "HcalCalIsoTrkProducerFilter+TkAlJetHT", "MET" : "HcalCalNoise", "MinimumBias" : "SiStripCalZeroBias+SiStripCalMinBias+TkAlMinBias", "MuOnia" : "TkAlUpsilonMuMu", @@ -49,7 +50,7 @@ def buildList(pdList, matrix): return stringList # Update the lists anytime a new PD is added to the matrix -autoAlca = { 'allForPrompt' : buildList(['Charmonium', 'Commissioning', 'DoubleMuParked', 'DoubleMuon', 'EGamma', 'HLTPhysics', 'HcalNZS', 'JetHT', 'MET', 'MinimumBias', 'MuOnia', 'MuOniaParked', 'NoBPTX', 'SingleMuon', 'ZeroBias'], AlCaRecoMatrix), +autoAlca = { 'allForPrompt' : buildList(['Charmonium', 'Commissioning', 'DoubleMuParked', 'DoubleMuon', 'DoubleMuonLowMass', 'EGamma', 'HLTPhysics', 'HcalNZS', 'JetHT', 'MET', 'MinimumBias', 'MuOnia', 'MuOniaParked', 'NoBPTX', 'SingleMuon', 'ZeroBias'], AlCaRecoMatrix), 'allForExpress' : buildList(['StreamExpress', 'ALCALumiPixelsCountsExpress'], AlCaRecoMatrix), 'allForExpressHI' : buildList(['StreamExpressHI'], AlCaRecoMatrix), 'allForPromptCosmics' : buildList(['Cosmics'], AlCaRecoMatrix), diff --git a/Configuration/AlCa/python/autoCond.py b/Configuration/AlCa/python/autoCond.py index 5c06033ba9d3f..45d8aff2a7165 100644 --- a/Configuration/AlCa/python/autoCond.py +++ b/Configuration/AlCa/python/autoCond.py @@ -24,65 +24,65 @@ # GlobalTag for MC production (p-Pb collisions) with realistic alignment and calibrations for Run2 'run2_mc_pa' : '123X_mcRun2_pA_v1', # GlobalTag for Run2 data reprocessing - 'run2_data' : '123X_dataRun2_v2', + 'run2_data' : '124X_dataRun2_v1', # GlobalTag for Run2 data 2018B relvals only: HEM-15-16 fail - 'run2_data_HEfail' : '123X_dataRun2_HEfail_v2', + 'run2_data_HEfail' : '124X_dataRun2_HEfail_v1', # GlobalTag for Run2 data relvals: allows customization to run with fixed L1 menu - 'run2_data_relval' : '123X_dataRun2_relval_v2', + 'run2_data_relval' : '124X_dataRun2_relval_v1', # GlobalTag for Run2 HI data - 'run2_data_promptlike_hi' : '123X_dataRun2_PromptLike_HI_v2', + 'run2_data_promptlike_hi' : '123X_dataRun2_PromptLike_HI_v3', # GlobalTag with fixed snapshot time for Run2 HLT RelVals: customizations to run with fixed L1 Menu - 'run2_hlt_relval' : '123X_dataRun2_HLT_relval_v2', - # GlobalTag for Run3 HLT: identical to the online GT (123X_dataRun3_HLT_v7) but with snapshot at 2022-05-09 16:40:00 (UTC) - 'run3_hlt' : '123X_dataRun3_HLT_frozen_v2', + 'run2_hlt_relval' : '123X_dataRun2_HLT_relval_v3', + # GlobalTag for Run3 HLT: identical to the online GT (123X_dataRun3_HLT_v9) but with snapshot at 2022-05-31 20:00:00 (UTC) + 'run3_hlt' : '123X_dataRun3_HLT_frozen_v5', # GlobalTag with fixed snapshot time for Run3 HLT RelVals: customizations to run with fixed L1 Menu - 'run3_hlt_relval' : '123X_dataRun3_HLT_relval_v5', - # GlobalTag for Run3 data relvals (express GT) - identical to 123X_dataRun3_Express_v5 but with snapshot at 2022-05-06 12:00:00 - 'run3_data_express' : '123X_dataRun3_Express_frozen_v2', - # GlobalTag for Run3 data relvals (prompt GT) - identical to 123X_dataRun3_Prompt_v7 but with snapshot at 2022-05-06 12:00:00 - 'run3_data_prompt' : '123X_dataRun3_Prompt_frozen_v2', + 'run3_hlt_relval' : '123X_dataRun3_HLT_relval_v9', + # GlobalTag for Run3 data relvals (express GT) - identical to 123X_dataRun3_Express_v8 but with snapshot at 2022-05-31 20:00:00 (UTC) + 'run3_data_express' : '123X_dataRun3_Express_frozen_v4', + # GlobalTag for Run3 data relvals (prompt GT) - identical to 123X_dataRun3_Prompt_v10 but with snapshot at 2022-05-31 20:00:00 (UTC) + 'run3_data_prompt' : '123X_dataRun3_Prompt_frozen_v4', # GlobalTag for Run3 offline data reprocessing - 'run3_data' : '123X_dataRun3_v5', + 'run3_data' : '124X_dataRun3_v1', # GlobalTag for Run3 data relvals: allows customization to run with fixed L1 menu - 'run3_data_relval' : '123X_dataRun3_relval_v4', + 'run3_data_relval' : '124X_dataRun3_relval_v1', # GlobalTag for MC production with perfectly aligned and calibrated detector for Phase1 2017 (and 0,0,~0-centred beamspot) - 'phase1_2017_design' : '123X_mc2017_design_v1', + 'phase1_2017_design' : '123X_mc2017_design_v2', # GlobalTag for MC production with realistic conditions for Phase1 2017 detector - 'phase1_2017_realistic' : '123X_mc2017_realistic_v1', + 'phase1_2017_realistic' : '123X_mc2017_realistic_v2', # GlobalTag for MC production (cosmics) with realistic alignment and calibrations for Phase1 2017 detector, Strip tracker in DECO mode - 'phase1_2017_cosmics' : '123X_mc2017cosmics_realistic_deco_v1', + 'phase1_2017_cosmics' : '123X_mc2017cosmics_realistic_deco_v2', # GlobalTag for MC production (cosmics) with realistic alignment and calibrations for Phase1 2017 detector, Strip tracker in PEAK mode - 'phase1_2017_cosmics_peak' : '123X_mc2017cosmics_realistic_peak_v1', + 'phase1_2017_cosmics_peak' : '123X_mc2017cosmics_realistic_peak_v2', # GlobalTag for MC production with perfectly aligned and calibrated detector for full Phase1 2018 (and 0,0,0-centred beamspot) - 'phase1_2018_design' : '123X_upgrade2018_design_v2', + 'phase1_2018_design' : '123X_upgrade2018_design_v4', # GlobalTag for MC production with realistic conditions for full Phase1 2018 detector - 'phase1_2018_realistic' : '123X_upgrade2018_realistic_v1', + 'phase1_2018_realistic' : '123X_upgrade2018_realistic_v2', # GlobalTag for MC production with realistic run-dependent (RD) conditions for full Phase1 2018 detector - 'phase1_2018_realistic_rd' : '123X_upgrade2018_realistic_RD_v1', + 'phase1_2018_realistic_rd' : '123X_upgrade2018_realistic_RD_v3', # GlobalTag for MC production with realistic conditions for full Phase1 2018 detector for Heavy Ion - 'phase1_2018_realistic_hi' : '123X_upgrade2018_realistic_HI_v1', + 'phase1_2018_realistic_hi' : '123X_upgrade2018_realistic_HI_v2', # GlobalTag for MC production with realistic conditions for full Phase1 2018 detector: HEM-15-16 fail - 'phase1_2018_realistic_HEfail' : '123X_upgrade2018_realistic_HEfail_v1', + 'phase1_2018_realistic_HEfail' : '123X_upgrade2018_realistic_HEfail_v2', # GlobalTag for MC production (cosmics) with realistic conditions for full Phase1 2018 detector, Strip tracker in DECO mode - 'phase1_2018_cosmics' : '123X_upgrade2018cosmics_realistic_deco_v1', + 'phase1_2018_cosmics' : '123X_upgrade2018cosmics_realistic_deco_v2', # GlobalTag for MC production (cosmics) with realistic conditions for full Phase1 2018 detector, Strip tracker in PEAK mode - 'phase1_2018_cosmics_peak' : '123X_upgrade2018cosmics_realistic_peak_v1', - # GlobalTag for MC production with perfectly aligned and calibrated detector for Phase1 2021 - 'phase1_2021_design' : '124X_mcRun3_2021_design_v1', - # GlobalTag for MC production with realistic conditions for Phase1 2021 - 'phase1_2021_realistic' : '124X_mcRun3_2021_realistic_v1', - # GlobalTag for MC production (cosmics) with realistic conditions for Phase1 2021, Strip tracker in DECO mode - 'phase1_2021_cosmics' : '124X_mcRun3_2021cosmics_realistic_deco_v2', - # GlobalTag for MC production (cosmics) with perfectly aligned and calibrated detector for Phase1 2021, Strip tracker in DECO mode - 'phase1_2021_cosmics_design' : '124X_mcRun3_2021cosmics_design_deco_v1', - # GlobalTag for MC production with realistic conditions for Phase1 2021 detector for Heavy Ion - 'phase1_2021_realistic_hi' : '124X_mcRun3_2021_realistic_HI_v1', + 'phase1_2018_cosmics_peak' : '123X_upgrade2018cosmics_realistic_peak_v2', + # GlobalTag for MC production with perfectly aligned and calibrated detector for Phase1 2022 + 'phase1_2022_design' : '124X_mcRun3_2022_design_v3', + # GlobalTag for MC production with realistic conditions for Phase1 2022 + 'phase1_2022_realistic' : '124X_mcRun3_2022_realistic_v3', + # GlobalTag for MC production (cosmics) with realistic conditions for Phase1 2022, Strip tracker in DECO mode + 'phase1_2022_cosmics' : '124X_mcRun3_2022cosmics_realistic_deco_v4', + # GlobalTag for MC production (cosmics) with perfectly aligned and calibrated detector for Phase1 2022, Strip tracker in DECO mode + 'phase1_2022_cosmics_design' : '124X_mcRun3_2022cosmics_design_deco_v3', + # GlobalTag for MC production with realistic conditions for Phase1 2022 detector for Heavy Ion + 'phase1_2022_realistic_hi' : '124X_mcRun3_2022_realistic_HI_v3', # GlobalTag for MC production with realistic conditions for Phase1 2023 - 'phase1_2023_realistic' : '124X_mcRun3_2023_realistic_v1', + 'phase1_2023_realistic' : '124X_mcRun3_2023_realistic_v3', # GlobalTag for MC production with realistic conditions for Phase1 2024 - 'phase1_2024_realistic' : '124X_mcRun3_2024_realistic_v1', + 'phase1_2024_realistic' : '124X_mcRun3_2024_realistic_v3', # GlobalTag for MC production with realistic conditions for Phase2 - 'phase2_realistic' : '124X_mcRun4_realistic_v2' + 'phase2_realistic' : '124X_mcRun4_realistic_v4' } aliases = { @@ -136,5 +136,6 @@ autoCond['upgradePLS1'] = ( autoCond['run2_mc'] ) autoCond['upgradePLS150ns'] = ( autoCond['run2_mc_50ns'] ) autoCond['upgrade2017'] = ( autoCond['phase1_2017_design'] ) -autoCond['upgrade2021'] = ( autoCond['phase1_2021_design'] ) +autoCond['upgrade2021'] = ( autoCond['phase1_2022_design'] ) +autoCond['upgrade2022'] = ( autoCond['phase1_2022_design'] ) autoCond['upgradePLS3'] = ( autoCond['phase2_realistic'] ) diff --git a/Configuration/AlCa/python/autoCondPhase2.py b/Configuration/AlCa/python/autoCondPhase2.py index c09ff55969ef5..b2cdb0405fece 100644 --- a/Configuration/AlCa/python/autoCondPhase2.py +++ b/Configuration/AlCa/python/autoCondPhase2.py @@ -17,7 +17,6 @@ ## (TFPX: Changed sensors spacing within all double-disks + Increased distance between Disks 6 and 7 + TBPX portcards between Disks 6 and 7.) ## T25: Phase2 tilted tracker. Outer Tracker (v8.0.0): same as T24/T21. Inner Tracker (v7.0.2): Based on (v6.1.5) (T24/T21), but with 3D sensors in TBPX L1. ## T26: Phase2 tilted tracker. Outer Tracker (v8.0.0): same as T24/T21. Inner Tracker (v7.0.3): Based on (v6.1.5) (T24/T21), but with 3D sensors in TBPX L1 and 50x50 pixel aspect ratio in TFPX and TEPX. -## T29: Phase2 tilted tracker. Outer Tracker (v8.0.0): same as T24/T21. Inner Tracker: with bricked pixels ## T30: Phase2 tilted tracker, exploratory geometry *only to be used in D91 for now*. Outer Tracker (v8.0.1): based on v8.0.0 with updated TB2S spacing. Inner Tracker (v6.4.0): based on v6.1.5 but TFPX with more realistic module positions #combines in a single dict of dict the tags defined below @@ -28,7 +27,6 @@ 'T21' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_T15_v5_mc' ,SiPixelLARecord,connectionString, "", "2020-05-05 20:00:00.000"] ), ), #uH = 0.053/T (TBPX), uH=0.0/T (TEPX+TFPX) 'T25' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_T25_v0_mc' ,SiPixelLARecord,connectionString, "", "2021-03-16 20:00:00.000"] ), ), #uH = 0.053/T (TBPX L2,L3,L4), uH=0.0/T (TBPX L1 TEPX+TFPX) 'T26' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_T25_v0_mc' ,SiPixelLARecord,connectionString, "", "2021-03-16 20:00:00.000"] ), ), #uH = 0.053/T (TBPX L2,L3,L4), uH=0.0/T (TBPX L1 TEPX+TFPX) - 'T29' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_T25_v0_mc' ,SiPixelLARecord,connectionString, "", "2021-03-16 20:00:00.000"] ), ), #uH = 0.053/T (TBPX L2,L3,L4), uH=0.0/T (TBPX L1 TEPX+TFPX) 'T30' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_IT_v6.4.0_25x100_v1_mc' ,SiPixelLARecord,connectionString, "", "2021-11-22 21:00:00.000"] ), ), #uH = 0.053/T (TBPX), uH=0.0/T (TEPX+TFPX) } @@ -37,7 +35,6 @@ 'T21' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_T15_mc_forWidthEmpty' ,SiPixelLARecord,connectionString, "forWidth", "2019-11-05 20:00:00.000"] ), ), # uH=0.0/T (fall-back to offset) 'T25' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_T19_mc_forWidthEmpty' ,SiPixelLARecord,connectionString, "forWidth", "2020-02-23 14:00:00.000"] ), ), # uH=0.0/T (fall-back to offset) 'T26' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_T19_mc_forWidthEmpty' ,SiPixelLARecord,connectionString, "forWidth", "2020-02-23 14:00:00.000"] ), ), # uH=0.0/T (fall-back to offset) - 'T29' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_T19_mc_forWidthEmpty' ,SiPixelLARecord,connectionString, "forWidth", "2020-02-23 14:00:00.000"] ), ), # uH=0.0/T (fall-back to offset) 'T30' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_IT_v6.4.0_25x100_empty_mc' ,SiPixelLARecord,connectionString, "forWidth", "2021-11-29 20:00:00.000"] ), ), # uH=0.0/T (fall-back to offset) } @@ -46,7 +43,6 @@ 'T21' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_T15_mc_forWidthEmpty' ,SiPixelLARecord,connectionString, "fromAlignment", "2019-11-05 20:00:00.000"] ), ), # uH=0.0/T (not in use) 'T25' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_T19_mc_forWidthEmpty' ,SiPixelLARecord,connectionString, "fromAlignment", "2020-02-23 14:00:00.000"] ), ), # uH=0.0/T (not in use) 'T26' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_T19_mc_forWidthEmpty' ,SiPixelLARecord,connectionString, "fromAlignment", "2020-02-23 14:00:00.000"] ), ), # uH=0.0/T (not in use) - 'T29' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_T19_mc_forWidthEmpty' ,SiPixelLARecord,connectionString, "fromAlignment", "2020-02-23 14:00:00.000"] ), ), # uH=0.0/T (not in use) 'T30' : ( ','.join( [ 'SiPixelLorentzAngle_phase2_IT_v6.4.0_25x100_empty_mc' ,SiPixelLARecord,connectionString, "fromAlignment", "2021-11-29 20:00:00.000"] ), ), # uH=0.0/T (fall-back to offset) } @@ -55,7 +51,6 @@ 'T21' : ( ','.join( [ 'SiPixelSimLorentzAngle_phase2_T15_v5_mc' ,SiPixelSimLARecord,connectionString, "", "2020-05-05 20:00:00.000"] ), ), #uH = 0.053/T (TBPX), uH=0.0/T (TEPX+TFPX) 'T25' : ( ','.join( [ 'SiPixelSimLorentzAngle_phase2_T25_v0_mc' ,SiPixelSimLARecord,connectionString, "", "2021-03-16 20:00:00.000"] ), ), #uH = 0.053/T (TBPX L2,L3,L4), uH=0.0/T (TBPX L1 TEPX+TFPX) 'T26' : ( ','.join( [ 'SiPixelSimLorentzAngle_phase2_T25_v0_mc' ,SiPixelSimLARecord,connectionString, "", "2021-03-16 20:00:00.000"] ), ), #uH = 0.053/T (TBPX L2,L3,L4), uH=0.0/T (TBPX L1 TEPX+TFPX) - 'T29' : ( ','.join( [ 'SiPixelSimLorentzAngle_phase2_T25_v0_mc' ,SiPixelSimLARecord,connectionString, "", "2021-03-16 20:00:00.000"] ), ), #uH = 0.053/T (TBPX L2,L3,L4), uH=0.0/T (TBPX L1 TEPX+TFPX) 'T30' : ( ','.join( [ 'SiPixelSimLorentzAngle_phase2_IT_v6.4.0_25x100_v1_mc' ,SiPixelSimLARecord,connectionString, "", "2021-12-03 16:00:00.000"] ), ), #uH = 0.053/T (TBPX), uH=0.0/T (TEPX+TFPX) } @@ -85,7 +80,6 @@ 'T21' : ( ','.join( [ 'SiPhase2OuterTrackerLorentzAngle_v0_mc' ,TrackerLARecord,connectionString, "", "2020-07-19 17:00:00.000"] ), ), #uH = 0.07/T 'T25' : ( ','.join( [ 'SiPhase2OuterTrackerLorentzAngle_v0_mc' ,TrackerLARecord,connectionString, "", "2020-07-19 17:00:00.000"] ), ), #uH = 0.07/T 'T26' : ( ','.join( [ 'SiPhase2OuterTrackerLorentzAngle_v0_mc' ,TrackerLARecord,connectionString, "", "2020-07-19 17:00:00.000"] ), ), #uH = 0.07/T - 'T29' : ( ','.join( [ 'SiPhase2OuterTrackerLorentzAngle_v0_mc' ,TrackerLARecord,connectionString, "", "2020-07-19 17:00:00.000"] ), ), #uH = 0.07/T 'T30' : ( ','.join( [ 'SiPhase2OuterTrackerLorentzAngle_v0_mc' ,TrackerLARecord,connectionString, "", "2020-07-19 17:00:00.000"] ), ), #uH = 0.07/T } @@ -94,7 +88,6 @@ 'T21' : ( ','.join( [ 'SiPhase2OuterTrackerLorentzAngleSim_v0_mc' ,TrackerSimLARecord,connectionString, "", "2020-07-19 17:00:00.000"] ), ), #uH = 0.07/T 'T25' : ( ','.join( [ 'SiPhase2OuterTrackerLorentzAngleSim_v0_mc' ,TrackerSimLARecord,connectionString, "", "2020-07-19 17:00:00.000"] ), ), #uH = 0.07/T 'T26' : ( ','.join( [ 'SiPhase2OuterTrackerLorentzAngleSim_v0_mc' ,TrackerSimLARecord,connectionString, "", "2020-07-19 17:00:00.000"] ), ), #uH = 0.07/T - 'T29' : ( ','.join( [ 'SiPhase2OuterTrackerLorentzAngleSim_v0_mc' ,TrackerSimLARecord,connectionString, "", "2020-07-19 17:00:00.000"] ), ), #uH = 0.07/T 'T30' : ( ','.join( [ 'SiPhase2OuterTrackerLorentzAngleSim_v0_mc' ,TrackerSimLARecord,connectionString, "", "2020-07-19 17:00:00.000"] ), ), #uH = 0.07/T } ''' @@ -114,7 +107,7 @@ activeKeys = ["LA","LAWidth","SimLA","LAfromAlignment","GenError","Template"]#,"SimOTLA","OTLA"] # list of geometries supported -activeDets = ["T15","T21","T25","T26","T29","T30"] +activeDets = ["T15","T21","T25","T26","T30"] phase2GTs = {} for det in activeDets: appendedTags = () diff --git a/Configuration/AlCa/python/autoPCL.py b/Configuration/AlCa/python/autoPCL.py index 4eac6ec8ffb25..aa253cc4c6a2c 100644 --- a/Configuration/AlCa/python/autoPCL.py +++ b/Configuration/AlCa/python/autoPCL.py @@ -1,16 +1,20 @@ +# Important note: +# due to the limitations of the DBS database schema, as described in +# https://cms-talk.web.cern.ch/t/alcaprompt-datasets-not-loaded-in-dbs/11146/2, +# the keys of the dict (i.e. the "PromptCalib*") MUST be shorter than 31 characters autoPCL = {'PromptCalibProd' : 'BeamSpotByRun+BeamSpotByLumi', 'PromptCalibProdBeamSpotHP' : 'BeamSpotHPByRun+BeamSpotHPByLumi', 'PromptCalibProdBeamSpotHPLowPU' : 'BeamSpotHPLowPUByRun+BeamSpotHPLowPUByLumi', 'PromptCalibProdSiStrip' : 'SiStripQuality', 'PromptCalibProdSiStripGains' : 'SiStripGains', 'PromptCalibProdSiStripGainsAAG' : 'SiStripGainsAAG', - 'PromptCalibProdSiStripHitEfficiency' : 'SiStripHitEff', + 'PromptCalibProdSiStripHitEff' : 'SiStripHitEff', 'PromptCalibProdSiPixelAli' : 'SiPixelAli', 'PromptCalibProdSiPixel' : 'SiPixelQuality', - 'PromptCalibProdSiPixelLorentzAngle' : 'SiPixelLA', + 'PromptCalibProdSiPixelLA' : 'SiPixelLA', 'PromptCalibProdEcalPedestals': 'EcalPedestals', 'PromptCalibProdLumiPCC': 'LumiPCC', 'PromptCalibProdPPSTimingCalib' : 'PPSTimingCalibration', - 'PromptCalibProdPPSDiamondSampicTimingCalib' : 'PPSDiamondSampicTimingCalibration', + 'PromptCalibProdPPSDiamondSampic' : 'PPSDiamondSampicTimingCalibration', 'PromptCalibProdPPSAlignment' : 'PPSAlignment' } diff --git a/Configuration/Eras/python/Era_Phase2C11I13T29M9_cff.py b/Configuration/Eras/python/Era_Phase2C11I13T29M9_cff.py deleted file mode 100644 index 498d2cbfd77c5..0000000000000 --- a/Configuration/Eras/python/Era_Phase2C11I13T29M9_cff.py +++ /dev/null @@ -1,7 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from Configuration.Eras.Era_Phase2C11I13_cff import Phase2C11I13 -from Configuration.Eras.Modifier_phase2_brickedPixels_cff import phase2_brickedPixels -from Configuration.Eras.Modifier_phase2_GE0_cff import phase2_GE0 - -Phase2C11I13T29M9 = cms.ModifierChain(Phase2C11I13, phase2_brickedPixels, phase2_GE0) diff --git a/Configuration/Eras/python/Era_Run2_2018_pp_on_AA_cff.py b/Configuration/Eras/python/Era_Run2_2018_pp_on_AA_cff.py index 0245702c787b9..2503eb672a435 100644 --- a/Configuration/Eras/python/Era_Run2_2018_pp_on_AA_cff.py +++ b/Configuration/Eras/python/Era_Run2_2018_pp_on_AA_cff.py @@ -6,5 +6,5 @@ from Configuration.Eras.ModifierChain_trackingMkFitProd_cff import trackingMkFitProd from Configuration.ProcessModifiers.trackingNoLoopers_cff import trackingNoLoopers -Run2_2018_pp_on_AA = cms.ModifierChain(Run2_2018.copyAndExclude([trackingMkFitProd, trackdnn, trackingNoLoopers]), pp_on_AA, pp_on_AA_2018) +Run2_2018_pp_on_AA = cms.ModifierChain(Run2_2018.copyAndExclude([trackdnn, trackingNoLoopers]), pp_on_AA, pp_on_AA_2018) diff --git a/Configuration/Eras/python/Era_Run3_pp_on_PbPb_cff.py b/Configuration/Eras/python/Era_Run3_pp_on_PbPb_cff.py index 329a644a289a0..096bc1aefeafe 100644 --- a/Configuration/Eras/python/Era_Run3_pp_on_PbPb_cff.py +++ b/Configuration/Eras/python/Era_Run3_pp_on_PbPb_cff.py @@ -1,10 +1,10 @@ import FWCore.ParameterSet.Config as cms from Configuration.ProcessModifiers.trackdnn_CKF_cff import trackdnn_CKF from Configuration.ProcessModifiers.trackdnn_cff import trackdnn -from Configuration.Eras.Era_Run3_noMkFit_cff import Run3_noMkFit +from Configuration.Eras.Era_Run3_cff import Run3 from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA from Configuration.Eras.Modifier_pp_on_PbPb_run3_cff import pp_on_PbPb_run3 from Configuration.ProcessModifiers.trackingNoLoopers_cff import trackingNoLoopers -Run3_pp_on_PbPb = cms.ModifierChain(Run3_noMkFit.copyAndExclude([trackdnn, trackdnn_CKF, trackingNoLoopers]), pp_on_AA, pp_on_PbPb_run3) +Run3_pp_on_PbPb = cms.ModifierChain(Run3.copyAndExclude([trackdnn, trackdnn_CKF, trackingNoLoopers]), pp_on_AA, pp_on_PbPb_run3) diff --git a/Configuration/EventContent/python/AlCaRecoOutput_RelVal_cff.py b/Configuration/EventContent/python/AlCaRecoOutput_RelVal_cff.py index 34e39a05a25f2..d9492402bb408 100644 --- a/Configuration/EventContent/python/AlCaRecoOutput_RelVal_cff.py +++ b/Configuration/EventContent/python/AlCaRecoOutput_RelVal_cff.py @@ -22,6 +22,7 @@ 'keep *_ALCARECOTkAlDiMuonVertexTracks_*_*', 'keep *_ALCARECOTkAlUpsilonMuMu_*_*', 'keep *_ALCARECOTkAlMinBias_*_*', + 'keep *_ALCARECOTkAlJetHT_*_*', 'keep *_ALCARECOTkAlBeamHalo_*_*', 'keep *_ALCARECOMuAlBeamHalo_*_*', 'keep *_ALCARECOMuAlBeamHaloOverlaps_*_*', diff --git a/Configuration/EventContent/python/AlCaRecoOutput_cff.py b/Configuration/EventContent/python/AlCaRecoOutput_cff.py index 40ed276b523da..71a6e5f8ab25e 100644 --- a/Configuration/EventContent/python/AlCaRecoOutput_cff.py +++ b/Configuration/EventContent/python/AlCaRecoOutput_cff.py @@ -39,6 +39,8 @@ from Alignment.CommonAlignmentProducer.ALCARECOTkAlMinBias_Output_cff import * # AlCaReco for track based alignment using MinBias events for PbPb data-taking from Alignment.CommonAlignmentProducer.ALCARECOTkAlMinBiasHI_Output_cff import * +# AlCaReco for track based alignment using JetHT events +from Alignment.CommonAlignmentProducer.ALCARECOTkAlJetHT_Output_cff import * # AlCaReco for pixel calibration using muons from Calibration.TkAlCaRecoProducers.ALCARECOSiPixelCalSingleMuon_Output_cff import * diff --git a/Configuration/Geometry/README.md b/Configuration/Geometry/README.md index 1c81a9b67a9fa..424f4cdb4e2b2 100644 --- a/Configuration/Geometry/README.md +++ b/Configuration/Geometry/README.md @@ -63,7 +63,6 @@ Tracker: * T24: Phase2 tilted tracker. Tracker detector description itself is identical to T21 (OT800 IT615). Change of paradigm, entire description reworked to be compatible with DD4hep library. * T25: Phase2 tilted tracker. Outer Tracker (v8.0.0): same as T24/T21. Inner Tracker (v7.0.2): Based on (v6.1.5) (T24/T21), but with 3D sensors in TBPX L1. Compatible with DD4hep library. * T26: Phase2 tilted tracker. Outer Tracker (v8.0.0): same as T24/T21. Inner Tracker (v7.0.3): Based on (v6.1.5) (T24/T21), but with 3D sensors in TBPX L1 and 50x50 pixel aspect ratio in TFPX and TEPX. Compatible with DD4hep library. -* T29: Phase2 tilted tracker. Outer Tracker (v8.0.0): same as T24/T21. Inner Tracker (v8.0.3): Based on (v7.0.2) (T25), but with bricked pixels in the central rod of TBPX L2+L3 and in the central 3 rods of TBPX L4, and with 50x50 mum pixels in TFPX and TEPX. Compatible with DD4hep library. * T30: Phase2 titled tracker. Exploratory geometry *only to be used in D91 for now*. Outer Tracker (v8.0.1): based on v8.0.0 with updated TB2S spacing. Inner Tracker (v6.4.0): based on v6.1.5 but TFPX with more realistic module positions. Calorimeters: @@ -123,5 +122,4 @@ Several detector combinations have been generated: * D85 = T24+C14+M9+I14+O7+F6 * D86 = T24+C17+M10+I14+O8+F6 * D88 = T24+C17+M10+I15+O9+F6 -* D90 = T29+C14+M9+I13+O7+F8 * D91 = T30+C17+M10+I15+O9+F6 diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D90Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D90Reco_cff.py deleted file mode 100644 index 2ee49b509aea5..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D90Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hepExtended2026D90_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cff import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ZdcGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D90_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D90_cff.py deleted file mode 100644 index 6a7d17e3f94e9..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D90_cff.py +++ /dev/null @@ -1,17 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hep_cff import * -DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D90.xml") - -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_cff import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryExtended2026D90Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2026D90Reco_cff.py deleted file mode 100644 index ce42ba951ea2b..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D90Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryExtended2026D90_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cff import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ZdcGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryExtended2026D90_cff.py b/Configuration/Geometry/python/GeometryExtended2026D90_cff.py deleted file mode 100644 index a4ac13b592c35..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D90_cff.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Geometry.CMSCommonData.cmsExtendedGeometry2026D90XML_cfi import * -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_cff import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/dict2026Geometry.py b/Configuration/Geometry/python/dict2026Geometry.py index 10acd48927e79..de140f7a9b91c 100644 --- a/Configuration/Geometry/python/dict2026Geometry.py +++ b/Configuration/Geometry/python/dict2026Geometry.py @@ -355,43 +355,7 @@ ], "era" : "phase2_tracker, phase2_squarePixels, trackingPhase2PU140", }, - "T29" : { - 1 : [ - 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', - 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', - 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', - 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', - 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/tracker.xml', - 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT800_2021_06/pixel.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerStructureTopology.xml', - 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT803_2021_12/pixelStructureTopology.xml', - 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackersens.xml', - 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelsens.xml', - 'Geometry/TrackerRecoData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/trackerRecoMaterial.xml', - 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', - 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', - 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - ], - "sim" : [ - 'from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import *', - 'from SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_cff import *', - ], - "reco" : [ - 'from Geometry.CommonTopologies.globalTrackingGeometry_cfi import *', - 'from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *', - 'from Geometry.TrackerGeometryBuilder.TrackerAdditionalParametersPerDet_cfi import *', - 'from Geometry.TrackerGeometryBuilder.trackerParameters_cff import *', - 'from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import *', - 'from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import *', - 'trackerGeometry.applyAlignment = cms.bool(False)', - ], - "era" : "phase2_tracker, phase2_brickedPixels, phase2_squarePixels, trackingPhase2PU140", - }, - "T30" : { + "T30" : { 1 : [ 'Geometry/TrackerCommonData/data/PhaseII/TFPXTEPXReordered/trackerParameters.xml', 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', @@ -1608,9 +1572,8 @@ ("O7","T24","C14","M9","F6","I14") : "D85", ("O8","T24","C17","M10","F6","I14") : "D86", ("O9","T24","C17","M10","F6","I15") : "D88", - ("O7","T29","C14","M9","F8","I13") : "D90", ("O9","T30","C17","M10","F6","I15") : "D91", } -deprecatedDets = set([ "D1", "D2", "D3", "D5", "D6" , "D7", "D4", "D8" , "D9", "D12", "D13", "D15", "D10", "D11", "D14", "D16", "D17", "D18", "D19", "D20", "D21", "D22", "D23", "D24", "D25", "D26", "D27", "D28", "D29", "D30", "D31", "D32", "D33", "D34", "D36", "D37", "D38", "D39", "D40", "D42", "D35", "D41", "D43", "D44", "D45", "D46", "D48", "D47", "D50", "D51", "D52", "D53", "D54", "D55", "D56", "D57", "D58", "D59", "D61", "D62", "D63", "D64", "D65", "D66", "D67", "D69", "D71", "D72", "D73", "D74", "D75", "D78", "D79", "D87", "D89"]) -deprecatedSubdets = set([ "T1", "T2" ,"T3", "T4", "T5", "T6", "T7", "T8", "T9", "T10", "T11", "T12", "T13", "T14", "T16", "T17", "T18", "T19", "T20", "T22", "T23", "T27", "T28", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C12", "M1", "M2", "M3", "M5", "M8", "I1", "I2", "I3", "I4", "I5", "I6", "I7", "I8", "I9", "I12", "O1", "O2", "O3", "F1", "F5"]) +deprecatedDets = set([ "D1", "D2", "D3", "D5", "D6" , "D7", "D4", "D8" , "D9", "D12", "D13", "D15", "D10", "D11", "D14", "D16", "D17", "D18", "D19", "D20", "D21", "D22", "D23", "D24", "D25", "D26", "D27", "D28", "D29", "D30", "D31", "D32", "D33", "D34", "D36", "D37", "D38", "D39", "D40", "D42", "D35", "D41", "D43", "D44", "D45", "D46", "D48", "D47", "D50", "D51", "D52", "D53", "D54", "D55", "D56", "D57", "D58", "D59", "D61", "D62", "D63", "D64", "D65", "D66", "D67", "D69", "D71", "D72", "D73", "D74", "D75", "D78", "D79", "D87", "D89", "D90"]) +deprecatedSubdets = set([ "T1", "T2" ,"T3", "T4", "T5", "T6", "T7", "T8", "T9", "T10", "T11", "T12", "T13", "T14", "T16", "T17", "T18", "T19", "T20", "T22", "T23", "T27", "T28", "T29", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C12", "M1", "M2", "M3", "M5", "M8", "I1", "I2", "I3", "I4", "I5", "I6", "I7", "I8", "I9", "I12", "O1", "O2", "O3", "F1", "F5"]) diff --git a/Configuration/HLT/python/autoCondHLT.py b/Configuration/HLT/python/autoCondHLT.py index 313d820fecb59..e7600253bdb4b 100644 --- a/Configuration/HLT/python/autoCondHLT.py +++ b/Configuration/HLT/python/autoCondHLT.py @@ -18,8 +18,8 @@ 'Fake' : ( ','.join( [ 'L1GtTriggerMenu_L1Menu_Collisions2012_v3_mc' , l1MenuRecord,connectionString, l1MenuLabel, "2015-10-26 12:00:00.000"] ), ), 'Fake1' : ( ','.join( [ 'L1Menu_Collisions2015_25nsStage1_v5' , l1MenuRecord,connectionString, l1MenuLabel, "2015-10-26 12:00:00.000"] ), ), 'Fake2' : ( ','.join( [ 'L1Menu_Collisions2016_v9_m2_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2016-10-06 19:36:53.000"] ), ), - 'FULL' : ( ','.join( [ 'L1Menu_Collisions2022_v1_0_1_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2022-05-11 09:04:16.000"] ), ), - 'GRun' : ( ','.join( [ 'L1Menu_Collisions2022_v1_0_1_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2022-05-11 09:04:16.000"] ), ), + 'FULL' : ( ','.join( [ 'L1Menu_Collisions2022_v1_1_0_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2022-06-01 09:37:45.000"] ), ), + 'GRun' : ( ','.join( [ 'L1Menu_Collisions2022_v1_1_0_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2022-06-01 09:37:45.000"] ), ), '2022v11' : ( ','.join( [ 'L1Menu_Collisions2022_v1_0_1_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2022-05-11 09:04:16.000"] ), ), 'HIon' : ( ','.join( [ 'L1Menu_CollisionsHeavyIons2018_v4_2_0-d1_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2018-11-21 14:35:33.000"] ), ), 'PIon' : ( ','.join( [ 'L1Menu_HeavyIons2016_v3_m2_xml' ,l1tMenuRecord,connectionString,l1tMenuLabel, "2016-11-22 11:11:00.000"] ), ), @@ -34,12 +34,12 @@ 'run2_mc_Fake' : ('run2_mc' ,l1Menus['Fake']), 'run2_mc_Fake1' : ('run2_mc_l1stage1' ,l1Menus['Fake1']), 'run2_mc_Fake2' : ('run2_mc' ,l1Menus['Fake2']), - 'run3_mc_FULL' : ('phase1_2021_realistic' ,l1Menus['FULL']), - 'run3_mc_GRun' : ('phase1_2021_realistic' ,l1Menus['GRun']), - 'run3_mc_2022v11' : ('phase1_2021_realistic' ,l1Menus['GRun']), - 'run3_mc_HIon' : ('phase1_2021_realistic_hi',l1Menus['HIon']), - 'run3_mc_PIon' : ('phase1_2021_realistic' ,l1Menus['PIon']), - 'run3_mc_PRef' : ('phase1_2021_realistic' ,l1Menus['PRef']), + 'run3_mc_FULL' : ('phase1_2022_realistic' ,l1Menus['FULL']), + 'run3_mc_GRun' : ('phase1_2022_realistic' ,l1Menus['GRun']), + 'run3_mc_2022v11' : ('phase1_2022_realistic' ,l1Menus['GRun']), + 'run3_mc_HIon' : ('phase1_2022_realistic_hi',l1Menus['HIon']), + 'run3_mc_PIon' : ('phase1_2022_realistic' ,l1Menus['PIon']), + 'run3_mc_PRef' : ('phase1_2022_realistic' ,l1Menus['PRef']), 'run1_hlt_Fake' : ('run1_hlt_relval' ,l1Menus['Fake']), 'run2_hlt_Fake' : ('run2_hlt_relval' ,l1Menus['Fake']), diff --git a/Configuration/HLT/python/autoHLT.py b/Configuration/HLT/python/autoHLT.py index f115df80d3f29..612aa0c1be04a 100644 --- a/Configuration/HLT/python/autoHLT.py +++ b/Configuration/HLT/python/autoHLT.py @@ -10,7 +10,7 @@ 'relval2016' : 'Fake2', 'relval2017' : 'Fake2', 'relval2018' : 'Fake2', - 'relval2021' : '2022v11', + 'relval2021' : 'GRun', 'relval2026' : '75e33', 'test' : 'GRun', } diff --git a/Configuration/ProcessModifiers/python/runDependentForPixel_cff.py b/Configuration/ProcessModifiers/python/runDependentForPixel_cff.py new file mode 100644 index 0000000000000..6fffe0828229b --- /dev/null +++ b/Configuration/ProcessModifiers/python/runDependentForPixel_cff.py @@ -0,0 +1,2 @@ +import FWCore.ParameterSet.Config as cms +runDependentForPixel = cms.Modifier() diff --git a/Configuration/PyReleaseValidation/python/relval_2026.py b/Configuration/PyReleaseValidation/python/relval_2026.py index e33007f0855d5..a3dfa8991cabe 100644 --- a/Configuration/PyReleaseValidation/python/relval_2026.py +++ b/Configuration/PyReleaseValidation/python/relval_2026.py @@ -36,7 +36,6 @@ numWFIB.extend([39634.99,39634.999]) #2026D88 premixing combined stage1+stage2 (ttbar+PU200, ttbar+PU50 for PR test) numWFIB.extend([39434.21,39634.21,39634.9921]) #2026D88 prodlike, prodlike PU, prodlike premix stage1+stage2 numWFIB.extend([39634.114]) #2026D88 PU, with 10% OT ineffiency -numWFIB.extend([40234.0]) #2026D90 numWFIB.extend([40634.0]) #2026D91 #Additional sample for short matrix and IB diff --git a/Configuration/PyReleaseValidation/python/relval_premix.py b/Configuration/PyReleaseValidation/python/relval_premix.py index 04c6f54490fe9..bb5f9c7d155b5 100644 --- a/Configuration/PyReleaseValidation/python/relval_premix.py +++ b/Configuration/PyReleaseValidation/python/relval_premix.py @@ -49,6 +49,7 @@ workflows[250202.181]=['',['TTbar_13UP18','PREMIXUP18_PU25','DIGIPRMXLOCALUP18_PU25','RECOPRMXUP18_PU25','HARVESTUP18_PU25']] workflows[250202.182]=['',['TTbar_13UP18_RD','DIGIPRMXUP18_PU25_RD','RECOPRMXUP18_PU25_RD','HARVESTUP18_PU25_RD']] workflows[250202.183]=['',['TTbar_13UP18_RD_IB','DIGIPRMXUP18_PU25_RD_IB','RECOPRMXUP18_PU25_RD','HARVESTUP18_PU25_RD']] +workflows[250202.184]=['',['TTbar_13UP18','PREMIXUP18_PU25_RDPix','DIGIPRMXLOCALUP18_PU25_RDPix','RECOPRMXUP18_PU25','HARVESTUP18_PU25']] workflows[250203.18]=['',['H125GGgluonfusion_13UP18','DIGIPRMXUP18_PU25','RECOPRMXUP18_PU25','HARVESTUP18_PU25']] workflows[250204.18]=['',['QQH1352T_13UP18','DIGIPRMXUP18_PU25','RECOPRMXUP18_PU25','HARVESTUP18_PU25']] workflows[250205.18]=['',['ZTT_13UP18','DIGIPRMXUP18_PU25','RECOPRMXUP18_PU25','HARVESTUP18_PU25']] diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index b203a9b1d2f21..a995ad43c2287 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -34,7 +34,7 @@ # step1 gensim: for 2018 HI prod step1Up2018HiProdDefaults = merge ([{'--eventcontent':'RAWSIM'},step1Up2018HiDefaults]) # step1 gensim: for 2021 HI prod -step1Up2021HiProdDefaults = merge ([{'--conditions':'auto:phase1_2021_realistic_hi','--era':'Run3_pp_on_PbPb','--beamspot':'Run3RoundOptics25ns13TeVLowSigmaZ','--eventcontent':'RAWSIM','--geometry':'DB:Extended'},step1Up2018HiDefaults]) +step1Up2021HiProdDefaults = merge ([{'--conditions':'auto:phase1_2022_realistic_hi','--era':'Run3_pp_on_PbPb','--beamspot':'Run3RoundOptics25ns13TeVLowSigmaZ','--eventcontent':'RAWSIM','--geometry':'DB:Extended'},step1Up2018HiDefaults]) steps = Steps() @@ -934,14 +934,14 @@ def genS(fragment,howMuch): steps['Cosmics_UP16']=merge([{'cfg':'UndergroundCosmicMu_cfi.py','-n':'500','--conditions':'auto:run2_mc_cosmics','--scenario':'cosmics','--era':'Run2_2016'},Kby(666,100000),step1Defaults]) steps['Cosmics_UP17']=merge([{'cfg':'UndergroundCosmicMu_cfi.py','-n':'500','--conditions':'auto:phase1_2017_cosmics','--scenario':'cosmics','--era':'Run2_2017'},Kby(666,100000),step1Defaults]) steps['Cosmics_UP18']=merge([{'cfg':'UndergroundCosmicMu_cfi.py','-n':'500','--conditions':'auto:phase1_2018_cosmics','--scenario':'cosmics','--era':'Run2_2018'},Kby(666,100000),step1Defaults]) -steps['Cosmics_UP21']=merge([{'cfg':'UndergroundCosmicMu_cfi.py','-n':'500','--conditions':'auto:phase1_2021_cosmics','--scenario':'cosmics','--era':'Run3'},Kby(666,100000),step1Defaults]) -steps['Cosmics_UP21_0T']=merge([{'--magField':'0T','--conditions':'auto:phase1_2021_cosmics_0T'},steps['Cosmics_UP21']]) +steps['Cosmics_UP21']=merge([{'cfg':'UndergroundCosmicMu_cfi.py','-n':'500','--conditions':'auto:phase1_2022_cosmics','--scenario':'cosmics','--era':'Run3'},Kby(666,100000),step1Defaults]) +steps['Cosmics_UP21_0T']=merge([{'--magField':'0T','--conditions':'auto:phase1_2022_cosmics_0T'},steps['Cosmics_UP21']]) steps['CosmicsSPLoose_UP17']=merge([{'cfg':'UndergroundCosmicSPLooseMu_cfi.py','-n':'2000','--conditions':'auto:phase1_2017_cosmics','--scenario':'cosmics','--era':'Run2_2017'},Kby(5000,500000),step1Up2015Defaults]) steps['CosmicsSPLoose_UP18']=merge([{'cfg':'UndergroundCosmicSPLooseMu_cfi.py','-n':'2000','--conditions':'auto:phase1_2018_cosmics','--scenario':'cosmics','--era':'Run2_2018'},Kby(5000,500000),step1Up2015Defaults]) steps['BeamHalo']=merge([{'cfg':'BeamHalo_cfi.py','--scenario':'cosmics'},Kby(9,100),step1Defaults]) steps['BeamHalo_13']=merge([{'cfg':'BeamHalo_13TeV_cfi.py','--scenario':'cosmics'},Kby(9,100),step1Up2015Defaults]) steps['BeamHalo_UP18']=merge([{'cfg':'BeamHalo_13TeV_cfi.py','-n':'500','--conditions':'auto:phase1_2018_cosmics','--scenario':'cosmics','--era':'Run2_2018','--beamspot':'Realistic25ns13TeVEarly2018Collision'},Kby(666,100000),step1Defaults]) -steps['BeamHalo_UP21']=merge([{'cfg':'BeamHalo_13TeV_cfi.py','-n':'500','--conditions':'auto:phase1_2021_cosmics','--scenario':'cosmics','--era':'Run3','--beamspot':'Realistic25ns13TeVEarly2017Collision'},Kby(666,100000),step1Defaults]) +steps['BeamHalo_UP21']=merge([{'cfg':'BeamHalo_13TeV_cfi.py','-n':'500','--conditions':'auto:phase1_2022_cosmics','--scenario':'cosmics','--era':'Run3','--beamspot':'Realistic25ns13TeVEarly2017Collision'},Kby(666,100000),step1Defaults]) # GF re-introduce INPUT command once GEN-SIM will be available # steps['CosmicsINPUT']={'INPUT':InputInfo(dataSet='/RelValCosmics/%s/GEN-SIM'%(baseDataSetRelease[0],),location='STD')} @@ -982,7 +982,7 @@ def genS(fragment,howMuch): hiAlca2017 = {'--conditions':'auto:phase1_2017_realistic', '--era':'Run2_2017_pp_on_XeXe'} hiAlca2018 = {'--conditions':'auto:phase1_2018_realistic_hi', '--era':'Run2_2018'} hiAlca2018_ppReco = {'--conditions':'auto:phase1_2018_realistic_hi', '--era':'Run2_2018_pp_on_AA'} -hiAlca2021_ppReco = {'--conditions':'auto:phase1_2021_realistic_hi', '--era':'Run3_pp_on_PbPb'} +hiAlca2021_ppReco = {'--conditions':'auto:phase1_2022_realistic_hi', '--era':'Run3_pp_on_PbPb'} hiDefaults2011=merge([hiAlca2011,{'--scenario':'HeavyIons','-n':2}]) @@ -1720,8 +1720,8 @@ def lhegensim2018ml(fragment,howMuch): steps['DIGICOS_UP16']=merge([{'--conditions':'auto:run2_mc_cosmics','-s':'DIGI:pdigi_valid,L1,DIGI2RAW,HLT:@relval2016','--scenario':'cosmics','--eventcontent':'FEVTDEBUG','--datatier':'GEN-SIM-DIGI-RAW', '--era' : 'Run2_2016'},step2Upg2015Defaults]) steps['DIGICOS_UP17']=merge([{'--conditions':'auto:phase1_2017_cosmics','-s':'DIGI:pdigi_valid,L1,DIGI2RAW,HLT:@relval2017','--scenario':'cosmics','--eventcontent':'FEVTDEBUG','--datatier':'GEN-SIM-DIGI-RAW', '--era' : 'Run2_2017'},step2Upg2015Defaults]) steps['DIGICOS_UP18']=merge([{'--conditions':'auto:phase1_2018_cosmics','-s':'DIGI:pdigi_valid,L1,DIGI2RAW,HLT:@relval2018','--scenario':'cosmics','--eventcontent':'FEVTDEBUG','--datatier':'GEN-SIM-DIGI-RAW', '--era' : 'Run2_2018'},step2Upg2015Defaults]) -steps['DIGICOS_UP21']=merge([{'--conditions':'auto:phase1_2021_cosmics','-s':'DIGI:pdigi_valid,L1,DIGI2RAW,HLT:@relval2017','--scenario':'cosmics','--eventcontent':'FEVTDEBUG','--datatier':'GEN-SIM-DIGI-RAW', '--era' : 'Run3'},step2Upg2015Defaults]) -steps['DIGICOS_UP21_0T']=merge([{'--magField':'0T','--conditions':'auto:phase1_2021_cosmics_0T'},steps['DIGICOS_UP21']]) +steps['DIGICOS_UP21']=merge([{'--conditions':'auto:phase1_2022_cosmics','-s':'DIGI:pdigi_valid,L1,DIGI2RAW,HLT:@relval2017','--scenario':'cosmics','--eventcontent':'FEVTDEBUG','--datatier':'GEN-SIM-DIGI-RAW', '--era' : 'Run3'},step2Upg2015Defaults]) +steps['DIGICOS_UP21_0T']=merge([{'--magField':'0T','--conditions':'auto:phase1_2022_cosmics_0T'},steps['DIGICOS_UP21']]) steps['DIGICOSPEAK_UP17']=merge([{'--conditions':'auto:phase1_2017_cosmics_peak','-s':'DIGI:pdigi_valid,L1,DIGI2RAW,HLT:@relval2017','--customise_commands': '"process.mix.digitizers.strip.APVpeakmode=cms.bool(True)"','--scenario':'cosmics','--eventcontent':'FEVTDEBUG','--datatier':'GEN-SIM-DIGI-RAW', '--era' : 'Run2_2017'},step2Upg2015Defaults]) steps['DIGICOSPEAK_UP18']=merge([{'--conditions':'auto:phase1_2018_cosmics_peak','-s':'DIGI:pdigi_valid,L1,DIGI2RAW,HLT:@relval2018','--customise_commands': '"process.mix.digitizers.strip.APVpeakmode=cms.bool(True)"','--scenario':'cosmics','--eventcontent':'FEVTDEBUG','--datatier':'GEN-SIM-DIGI-RAW', '--era' : 'Run2_2018'},step2Upg2015Defaults]) @@ -1771,10 +1771,16 @@ def lhegensim2018ml(fragment,howMuch): {'--era':'Run2_2018'}, premixUp2015Defaults]) +premixUp2018_RDPix = merge([{'--conditions':'auto:phase1_2018_realistic_rd'}, + {'--era':'Run2_2018'}, + {'--procModifiers':'premix_stage1,runDependentForPixel'}, + premixUp2015Defaults]) + steps['PREMIXUP15_PU25']=merge([PU25,Kby(100,100),premixUp2015Defaults]) steps['PREMIXUP15_PU50']=merge([PU50,Kby(100,100),premixUp2015Defaults50ns]) steps['PREMIXUP17_PU25']=merge([PU25UP17,Kby(100,100),premixUp2017Defaults]) steps['PREMIXUP18_PU25']=merge([PU25UP18,Kby(100,100),premixUp2018Defaults]) +steps['PREMIXUP18_PU25_RDPix']=merge([PU25UP18,Kby(100,100),premixUp2018_RDPix]) digiPremixUp2015Defaults25ns = { '--conditions' : 'auto:run2_mc', @@ -1847,6 +1853,8 @@ def lhegensim2018ml(fragment,howMuch): # configuration to simulate cross run number boundary in IB, given 5 events per lumi steps['DIGIPRMXUP18_PU25_RD_IB']=merge([{'--conditions':'auto:phase1_2018_realistic_rd', '--customise_commands':"\"process.source.setRunNumberForEachLumi = cms.untracked.vuint32(315257,316083) \"", '--procModifiers':'premix_stage2,runDependent'}, digiPremixRD2018, digiPremixUp2018Defaults25ns]) +steps['DIGIPRMXLOCALUP18_PU25_RDPix']=merge([{'--conditions':'auto:phase1_2018_realistic_rd', '--procModifiers':'premix_stage2,runDependentForPixel'}, digiPremixLocalPileupUp2018Defaults25ns]) + premixProd25ns = {'-s' : 'DIGI,DATAMIX,L1,DIGI2RAW,HLT:@relval2016', '--eventcontent' : 'PREMIXRAW', '--datatier' : 'PREMIXRAW'} @@ -2215,12 +2223,12 @@ def lhegensim2018ml(fragment,howMuch): '--data':'', '--filein':'file:PromptCalibProdSiPixel.root'} -steps['ALCAHARVDSIPIXELCALLA']={'-s':'ALCAHARVEST:%s'%(autoPCL['PromptCalibProdSiPixelLorentzAngle']), +steps['ALCAHARVDSIPIXELCALLA']={'-s':'ALCAHARVEST:%s'%(autoPCL['PromptCalibProdSiPixelLA']), '--conditions':'auto:run3_data_express', '--scenario':'pp', '--data':'', '--era':'Run2_2017', - '--filein':'file:PromptCalibProdSiPixelLorentzAngle.root'} + '--filein':'file:PromptCalibProdSiPixelLA.root'} steps['ALCAHARVDPPSCAL']={'-s':'ALCAHARVEST:%s'%(autoPCL['PromptCalibProdPPSTimingCalib']), '--conditions':'auto:run3_data_express', @@ -2525,8 +2533,8 @@ def gen2021HiMix(fragment,howMuch): steps['RECOCOS_UP16']=merge([{'--conditions':'auto:run2_mc_cosmics','-s':'RAW2DIGI,L1Reco,RECO,ALCA:MuAlGlobalCosmics,DQM','--scenario':'cosmics','--era':'Run2_2016'},step3Up2015Hal]) steps['RECOCOS_UP17']=merge([{'--conditions':'auto:phase1_2017_cosmics','-s':'RAW2DIGI,L1Reco,RECO,ALCA:MuAlGlobalCosmics,DQM','--scenario':'cosmics','--era':'Run2_2017'},step3Up2015Hal]) steps['RECOCOS_UP18']=merge([{'--conditions':'auto:phase1_2018_cosmics','-s':'RAW2DIGI,L1Reco,RECO,ALCA:MuAlGlobalCosmics,DQM','--scenario':'cosmics','--era':'Run2_2018'},step3Up2015Hal]) -steps['RECOCOS_UP21']=merge([{'--conditions':'auto:phase1_2021_cosmics','-s':'RAW2DIGI,L1Reco,RECO,ALCA:MuAlGlobalCosmics,DQM','--scenario':'cosmics','--era':'Run3'},step3Up2015Hal]) -steps['RECOCOS_UP21_0T']=merge([{'--magField':'0T','--conditions':'auto:phase1_2021_cosmics_0T'},steps['RECOCOS_UP21']]) +steps['RECOCOS_UP21']=merge([{'--conditions':'auto:phase1_2022_cosmics','-s':'RAW2DIGI,L1Reco,RECO,ALCA:MuAlGlobalCosmics,DQM','--scenario':'cosmics','--era':'Run3'},step3Up2015Hal]) +steps['RECOCOS_UP21_0T']=merge([{'--magField':'0T','--conditions':'auto:phase1_2022_cosmics_0T'},steps['RECOCOS_UP21']]) steps['RECOCOSPEAK_UP17']=merge([{'--conditions':'auto:phase1_2017_cosmics_peak','-s':'RAW2DIGI,L1Reco,RECO,ALCA:MuAlGlobalCosmics,DQM','--scenario':'cosmics','--era':'Run2_2017'},step3Up2015Hal]) steps['RECOCOSPEAK_UP18']=merge([{'--conditions':'auto:phase1_2018_cosmics_peak','-s':'RAW2DIGI,L1Reco,RECO,ALCA:MuAlGlobalCosmics,DQM','--scenario':'cosmics','--era':'Run2_2018'},step3Up2015Hal]) @@ -2717,13 +2725,13 @@ def gen2021HiMix(fragment,howMuch): '--conditions':'auto:run1_data', '--datatier':'ALCARECO', '--eventcontent':'ALCARECO'} -steps['ALCAEXP']={'-s':'ALCAOUTPUT:SiStripCalZeroBias+TkAlMinBias+Hotline+LumiPixelsMinBias+AlCaPCCZeroBiasFromRECO+AlCaPCCRandomFromRECO+SiPixelCalSingleMuon,ALCA:PromptCalibProd+PromptCalibProdSiStrip+PromptCalibProdSiStripGains+PromptCalibProdSiStripGainsAAG+PromptCalibProdSiStripHitEfficiency+PromptCalibProdSiPixelAli+PromptCalibProdSiPixel+PromptCalibProdSiPixelLorentzAngle', +steps['ALCAEXP']={'-s':'ALCAOUTPUT:SiStripCalZeroBias+TkAlMinBias+Hotline+LumiPixelsMinBias+AlCaPCCZeroBiasFromRECO+AlCaPCCRandomFromRECO+SiPixelCalSingleMuon,ALCA:PromptCalibProd+PromptCalibProdSiStrip+PromptCalibProdSiStripGains+PromptCalibProdSiStripGainsAAG+PromptCalibProdSiStripHitEff+PromptCalibProdSiPixelAli+PromptCalibProdSiPixel+PromptCalibProdSiPixelLA', '--conditions':'auto:run1_data', '--datatier':'ALCARECO', '--eventcontent':'ALCARECO', '--triggerResultsProcess': 'RECO'} -steps['ALCAEXPRUN2']={'-s':'ALCAOUTPUT:SiStripCalZeroBias+TkAlMinBias+LumiPixelsMinBias+AlCaPCCZeroBiasFromRECO+AlCaPCCRandomFromRECO+SiPixelCalZeroBias+SiPixelCalSingleMuon,ALCA:PromptCalibProd+PromptCalibProdSiStrip+PromptCalibProdSiStripGains+PromptCalibProdSiStripGainsAAG+PromptCalibProdSiStripHitEfficiency+PromptCalibProdSiPixelAli+PromptCalibProdSiPixel+PromptCalibProdSiPixelLorentzAngle', +steps['ALCAEXPRUN2']={'-s':'ALCAOUTPUT:SiStripCalZeroBias+TkAlMinBias+LumiPixelsMinBias+AlCaPCCZeroBiasFromRECO+AlCaPCCRandomFromRECO+SiPixelCalZeroBias+SiPixelCalSingleMuon,ALCA:PromptCalibProd+PromptCalibProdSiStrip+PromptCalibProdSiStripGains+PromptCalibProdSiStripGainsAAG+PromptCalibProdSiStripHitEff+PromptCalibProdSiPixelAli+PromptCalibProdSiPixel+PromptCalibProdSiPixelLA', '--conditions':'auto:run2_data', '--datatier':'ALCARECO', '--eventcontent':'ALCARECO', @@ -2789,15 +2797,15 @@ def gen2021HiMix(fragment,howMuch): steps['ALCACOS']=merge([{'-s':'ALCA:TkAlCosmics0T+MuAlGlobalCosmics+HcalCalHOCosmics'},stCond,step4Defaults]) steps['ALCABH']=merge([{'-s':'ALCA:TkAlBeamHalo+MuAlBeamHaloOverlaps+MuAlBeamHalo'},stCond,step4Defaults]) steps['ALCABH_UP18']=merge([{'--conditions':'auto:phase1_2018_cosmics','-s':'ALCA:TkAlBeamHalo+MuAlBeamHaloOverlaps+MuAlBeamHalo','--era':'Run2_2018'},step4Up2015Defaults]) -steps['ALCABH_UP21']=merge([{'--conditions':'auto:phase1_2021_cosmics','-s':'ALCA:TkAlBeamHalo+MuAlBeamHaloOverlaps+MuAlBeamHalo','--era':'Run3'},step4Up2015Defaults]) +steps['ALCABH_UP21']=merge([{'--conditions':'auto:phase1_2022_cosmics','-s':'ALCA:TkAlBeamHalo+MuAlBeamHaloOverlaps+MuAlBeamHalo','--era':'Run3'},step4Up2015Defaults]) steps['ALCAHAL']=merge([{'-s':'ALCA:TkAlBeamHalo+MuAlBeamHaloOverlaps+MuAlBeamHalo'},step4Up2015Defaults]) steps['ALCACOS_UP15']=merge([{'--conditions':'auto:run2_mc_cosmics','-s':'ALCA:TkAlBeamHalo+MuAlBeamHaloOverlaps+MuAlBeamHalo'},step4Up2015Defaults]) steps['ALCACOS_UP16']=merge([{'--conditions':'auto:run2_mc_cosmics','-s':'ALCA:TkAlCosmics0T+SiStripCalCosmics+SiStripCalCosmicsNano+SiPixelCalCosmics+TkAlBeamHalo+MuAlBeamHaloOverlaps+MuAlBeamHalo','--era':'Run2_2016'},step4Up2015Defaults]) steps['ALCACOS_UP17']=merge([{'--conditions':'auto:phase1_2017_cosmics','-s':'ALCA:TkAlCosmics0T+SiStripCalCosmics+SiStripCalCosmicsNano+SiPixelCalCosmics+TkAlBeamHalo+MuAlBeamHaloOverlaps+MuAlBeamHalo','--era':'Run2_2017'},step4Up2015Defaults]) steps['ALCACOS_UP18']=merge([{'--conditions':'auto:phase1_2018_cosmics','-s':'ALCA:TkAlCosmics0T+SiStripCalCosmics+SiStripCalCosmicsNano+SiPixelCalCosmics+TkAlBeamHalo+MuAlBeamHaloOverlaps+MuAlBeamHalo','--era':'Run2_2018'},step4Up2015Defaults]) -steps['ALCACOS_UP21']=merge([{'--conditions':'auto:phase1_2021_cosmics','-s':'ALCA:TkAlCosmics0T+SiStripCalCosmics+SiStripCalCosmicsNano+SiPixelCalCosmics+TkAlBeamHalo+MuAlBeamHaloOverlaps+MuAlBeamHalo','--era':'Run3'},step4Up2015Defaults]) -steps['ALCACOS_UP21_0T']=merge([{'--magField':'0T','--conditions':'auto:phase1_2021_cosmics_0T'},steps['ALCACOS_UP21']]) +steps['ALCACOS_UP21']=merge([{'--conditions':'auto:phase1_2022_cosmics','-s':'ALCA:TkAlCosmics0T+SiStripCalCosmics+SiStripCalCosmicsNano+SiPixelCalCosmics+TkAlBeamHalo+MuAlBeamHaloOverlaps+MuAlBeamHalo','--era':'Run3'},step4Up2015Defaults]) +steps['ALCACOS_UP21_0T']=merge([{'--magField':'0T','--conditions':'auto:phase1_2022_cosmics_0T'},steps['ALCACOS_UP21']]) steps['ALCAHARVD']={'-s':'ALCAHARVEST:BeamSpotByRun+BeamSpotByLumi+SiStripQuality', '--conditions':'auto:run1_data', '--scenario':'pp', @@ -2847,17 +2855,17 @@ def gen2021HiMix(fragment,howMuch): '--data':'', '--filein':'file:PromptCalibProdSiPixel.root'} -steps['ALCAHARVD7']={'-s':'ALCAHARVEST:%s'%(autoPCL['PromptCalibProdSiPixelLorentzAngle']), +steps['ALCAHARVD7']={'-s':'ALCAHARVEST:%s'%(autoPCL['PromptCalibProdSiPixelLA']), '--conditions':'auto:run1_data', '--scenario':'pp', '--data':'', - '--filein':'file:PromptCalibProdSiPixelLorentzAngle.root'} + '--filein':'file:PromptCalibProdSiPixelLA.root'} -steps['ALCAHARVD8']={'-s':'ALCAHARVEST:%s'%(autoPCL['PromptCalibProdSiStripHitEfficiency']), +steps['ALCAHARVD8']={'-s':'ALCAHARVEST:%s'%(autoPCL['PromptCalibProdSiStripHitEff']), '--conditions':'auto:run1_data', '--scenario':'pp', '--data':'', - '--filein':'file:PromptCalibProdSiStripHitEfficiency.root'} + '--filein':'file:PromptCalibProdSiStripHitEff.root'} steps['ALCAHARVD5HI']=merge([{'--scenario':'HeavyIons'},steps['ALCAHARVD5']]) steps['ALCAHARVDTE']={'-s':'ALCAHARVEST:%s'%(autoPCL['PromptCalibProdEcalPedestals']), @@ -3114,7 +3122,7 @@ def gen2021HiMix(fragment,howMuch): } steps['HARVESTCOS_UP21']={'-s' :'HARVESTING:dqmHarvesting', - '--conditions':'auto:phase1_2021_cosmics', + '--conditions':'auto:phase1_2022_cosmics', '--mc' :'', '--filein' :'file:step3_inDQM.root', '--scenario' :'cosmics', @@ -3123,7 +3131,7 @@ def gen2021HiMix(fragment,howMuch): '--era' : 'Run3' } -steps['HARVESTCOS_UP21_0T']=merge([{'--magField':'0T','--conditions':'auto:phase1_2021_cosmics_0T'},steps['HARVESTCOS_UP21']]) +steps['HARVESTCOS_UP21_0T']=merge([{'--magField':'0T','--conditions':'auto:phase1_2022_cosmics_0T'},steps['HARVESTCOS_UP21']]) steps['HARVESTFS']={'-s':'HARVESTING:validationHarvestingFS', '--conditions':'auto:run1_mc', @@ -3643,7 +3651,7 @@ def gen2021HiMix(fragment,howMuch): '--geometry' : geom } - upgradeStepDict['RecoGlobal'][k] = {'-s':'RAW2DIGI,L1Reco,RECO,RECOSIM,PAT,VALIDATION:@phase2Validation+@miniAODValidation,DQM:@phase2+@miniAODDQM', + upgradeStepDict['RecoGlobal'][k] = {'-s':'RAW2DIGI,RECO,RECOSIM,PAT,VALIDATION:@phase2Validation+@miniAODValidation,DQM:@phase2+@miniAODDQM', '--conditions':gt, '--datatier':'GEN-SIM-RECO,MINIAODSIM,DQMIO', '-n':'10', diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 3fe3bd3140086..2a979b3a7c3c8 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -55,8 +55,6 @@ '2026D86PU', '2026D88', '2026D88PU', - '2026D90', - '2026D90PU', '2026D91', '2026D91PU', ] @@ -68,7 +66,7 @@ } numWFSkip=200 # temporary measure to keep other WF numbers the same -numWFConflict = [[20000,23200],[23600,28200],[28600,31400],[31800,32200],[32600,34600],[35400,36200],[39000,39400],[39800,40200],[50000,51000]] +numWFConflict = [[20000,23200],[23600,28200],[28600,31400],[31800,32200],[32600,34600],[35400,36200],[39000,39400],[39800,40600],[50000,51000]] numWFAll={ 2017: [], 2026: [] @@ -392,7 +390,13 @@ def condition(self, fragment, stepList, key, hasHarvest): 'Nano', 'ALCA', ], - PU = [], + PU = [ + 'Reco', + 'RecoGlobal', + 'HARVESTGlobal', + 'RecoNano', + 'HARVESTNano', + ], suffix = '_seedingDeepCore', offset = 0.17, ) @@ -1836,7 +1840,7 @@ def condition(self, fragment, stepList, key, hasHarvest): class UpgradeWorkflow_DD4hepDB(UpgradeWorkflow): def setup_(self, step, stepName, stepDict, k, properties): if 'Run3' in stepDict[step][k]['--era']: - stepDict[stepName][k] = merge([{'--conditions': 'auto:phase1_2021_realistic', '--geometry': 'DB:Extended'}, stepDict[step][k]]) + stepDict[stepName][k] = merge([{'--conditions': 'auto:phase1_2022_realistic', '--geometry': 'DB:Extended'}, stepDict[step][k]]) def condition(self, fragment, stepList, key, hasHarvest): return '2021' in key upgradeWFs['DD4hepDB'] = UpgradeWorkflow_DD4hepDB( @@ -1867,7 +1871,7 @@ def setup_(self, step, stepName, stepDict, k, properties): tmp_eras = stepDict[step][k]['--era'].split(',') tmp_eras[tmp_eras.index("Run3")] = 'Run3_DDD' tmp_eras = ','.join(tmp_eras) - stepDict[stepName][k] = merge([{'--conditions': 'auto:phase1_2021_realistic_ddd', '--geometry': 'DB:Extended', '--era': tmp_eras}, stepDict[step][k]]) + stepDict[stepName][k] = merge([{'--conditions': 'auto:phase1_2022_realistic_ddd', '--geometry': 'DB:Extended', '--era': tmp_eras}, stepDict[step][k]]) def condition(self, fragment, stepList, key, hasHarvest): return '2021' in key upgradeWFs['DDDDB'] = UpgradeWorkflow_DDDDB( @@ -1973,7 +1977,7 @@ def condition(self, fragment, stepList, key, hasHarvest): }, '2021' : { 'Geom' : 'DB:Extended', - 'GT' : 'auto:phase1_2021_realistic', + 'GT' : 'auto:phase1_2022_realistic', 'HLTmenu': '@relval2021', 'Era' : 'Run3', 'BeamSpot': 'Run3RoundOptics25ns13TeVLowSigmaZ', @@ -1981,7 +1985,7 @@ def condition(self, fragment, stepList, key, hasHarvest): }, '2021Design' : { 'Geom' : 'DB:Extended', - 'GT' : 'auto:phase1_2021_design', + 'GT' : 'auto:phase1_2022_design', 'HLTmenu': '@relval2021', 'Era' : 'Run3', 'BeamSpot': 'GaussSigmaZ4cm', @@ -2111,13 +2115,6 @@ def condition(self, fragment, stepList, key, hasHarvest): 'Era' : 'Phase2C17I13M9', 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], }, - '2026D90' : { - 'Geom' : 'Extended2026D90', - 'HLTmenu': '@fake2', - 'GT' : 'auto:phase2_realistic_T29', - 'Era' : 'Phase2C11I13T29M9', - 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], - }, '2026D91' : { 'Geom' : 'Extended2026D91', 'HLTmenu': '@fake2', diff --git a/Configuration/StandardSequences/python/AlCaRecoStreams_cff.py b/Configuration/StandardSequences/python/AlCaRecoStreams_cff.py index afa8d29c98888..f4d7927dbc898 100644 --- a/Configuration/StandardSequences/python/AlCaRecoStreams_cff.py +++ b/Configuration/StandardSequences/python/AlCaRecoStreams_cff.py @@ -31,6 +31,8 @@ from Alignment.CommonAlignmentProducer.ALCARECOTkAlUpsilonMuMuPA_cff import * # AlCaReco for track based alignment using MinBias events from Alignment.CommonAlignmentProducer.ALCARECOTkAlMinBias_cff import * +# AlCaReco for track based alignment using JetHT events +from Alignment.CommonAlignmentProducer.ALCARECOTkAlJetHT_cff import * ############################################################### # Tracker Calibration @@ -191,7 +193,7 @@ pathALCARECOTkAlUpsilonMuMu = cms.Path(seqALCARECOTkAlUpsilonMuMu*ALCARECOTkAlUpsilonMuMuDQM) pathALCARECOTkAlUpsilonMuMuPA = cms.Path(seqALCARECOTkAlUpsilonMuMuPA*ALCARECOTkAlUpsilonMuMuPADQM) pathALCARECOTkAlMinBias = cms.Path(seqALCARECOTkAlMinBias*ALCARECOTkAlMinBiasDQM) -pathALCARECOTkAlMinBias = cms.Path(seqALCARECOTkAlMinBias*ALCARECOTkAlMinBiasDQM) +pathALCARECOTkAlJetHT = cms.Path(seqALCARECOTkAlJetHT*ALCARECOTkAlJetHTDQM) pathALCARECOSiPixelCalSingleMuon = cms.Path(seqALCARECOSiPixelCalSingleMuon) pathALCARECOSiPixelCalSingleMuonLoose = cms.Path(seqALCARECOSiPixelCalSingleMuonLoose) pathALCARECOSiPixelCalSingleMuonTight = cms.Path(seqALCARECOSiPixelCalSingleMuonTight) @@ -323,6 +325,15 @@ dataTier = cms.untracked.string('ALCARECO') ) +ALCARECOStreamTkAlJetHT = cms.FilteredStream( + responsible = 'Marco Musich', + name = 'TkAlJetHT', + paths = (pathALCARECOTkAlJetHT), + content = OutALCARECOTkAlJetHT.outputCommands, + selectEvents = OutALCARECOTkAlJetHT.SelectEvents, + dataTier = cms.untracked.string('ALCARECO') + ) + ALCARECOStreamTkAlMuonIsolated = cms.FilteredStream( responsible = 'Andreas Mussgiller', name = 'TkAlMuonIsolated', @@ -925,12 +936,12 @@ dataTier = cms.untracked.string('ALCARECO') ) -ALCARECOStreamPromptCalibProdPPSDiamondSampicTimingCalib = cms.FilteredStream( +ALCARECOStreamPromptCalibProdPPSDiamondSampic = cms.FilteredStream( responsible = 'Christopher Misan', - name = 'ALCARECOStreamPromptCalibProdPPSDiamondSampicTimingCalib', + name = 'ALCARECOStreamPromptCalibProdPPSDiamondSampic', paths = (pathALCARECOPromptCalibProdPPSDiamondSampicTimingCalib), - content = OutALCARECOPromptCalibProdPPSDiamondSampicTimingCalib.outputCommands, - selectEvents = OutALCARECOPromptCalibProdPPSDiamondSampicTimingCalib.SelectEvents, + content = OutALCARECOPromptCalibProdPPSDiamondSampic.outputCommands, + selectEvents = OutALCARECOPromptCalibProdPPSDiamondSampic.SelectEvents, dataTier = cms.untracked.string('ALCARECO') ) @@ -1007,21 +1018,21 @@ dataTier = cms.untracked.string('ALCARECO') ) -ALCARECOStreamPromptCalibProdSiStripHitEfficiency = cms.FilteredStream( +ALCARECOStreamPromptCalibProdSiStripHitEff = cms.FilteredStream( responsible = 'Marco Musich', - name = 'PromptCalibProdSiStripHitEfficiency', + name = 'PromptCalibProdSiStripHitEff', paths = (pathALCARECOPromptCalibProdSiStripHitEfficiency), - content = OutALCARECOPromptCalibProdSiStripHitEfficiency.outputCommands, - selectEvents = OutALCARECOPromptCalibProdSiStripHitEfficiency.SelectEvents, + content = OutALCARECOPromptCalibProdSiStripHitEff.outputCommands, + selectEvents = OutALCARECOPromptCalibProdSiStripHitEff.SelectEvents, dataTier = cms.untracked.string('ALCARECO') ) -ALCARECOStreamPromptCalibProdSiPixelLorentzAngle = cms.FilteredStream( +ALCARECOStreamPromptCalibProdSiPixelLA = cms.FilteredStream( responsible = 'Marco Musich', - name = 'PromptCalibProdSiPixelLorentzAngle', + name = 'PromptCalibProdSiPixelLA', paths = (pathALCARECOPromptCalibProdSiPixelLorentzAngle), - content = OutALCARECOPromptCalibProdSiPixelLorentzAngle.outputCommands, - selectEvents = OutALCARECOPromptCalibProdSiPixelLorentzAngle.SelectEvents, + content = OutALCARECOPromptCalibProdSiPixelLA.outputCommands, + selectEvents = OutALCARECOPromptCalibProdSiPixelLA.SelectEvents, dataTier = cms.untracked.string('ALCARECO') ) diff --git a/Configuration/StandardSequences/python/Eras.py b/Configuration/StandardSequences/python/Eras.py index 81a435dea0d03..08e937d53cfc5 100644 --- a/Configuration/StandardSequences/python/Eras.py +++ b/Configuration/StandardSequences/python/Eras.py @@ -53,7 +53,6 @@ def __init__(self): 'Phase2C11I13M9', 'Phase2C11I13T25M9', 'Phase2C11I13T26M9', - 'Phase2C11I13T29M9', 'Phase2C17I13M9' ] diff --git a/Configuration/StandardSequences/python/GeometryConf.py b/Configuration/StandardSequences/python/GeometryConf.py index 5b27d71c390e6..5df04cd08f91f 100644 --- a/Configuration/StandardSequences/python/GeometryConf.py +++ b/Configuration/StandardSequences/python/GeometryConf.py @@ -66,6 +66,5 @@ 'DD4hepExtended2026D86' : 'DD4hepExtended2026D86,DD4hepExtended2026D86Reco', 'Extended2026D88' : 'Extended2026D88,Extended2026D88Reco', 'DD4hepExtended2026D88' : 'DD4hepExtended2026D88,DD4hepExtended2026D88Reco', - 'Extended2026D90' : 'Extended2026D90,Extended2026D90Reco', 'Extended2026D91' : 'Extended2026D91,Extended2026D91Reco', } diff --git a/DPGAnalysis/Skims/test/test_TopMuEG_SKIM.py b/DPGAnalysis/Skims/test/test_TopMuEG_SKIM.py index 95e45c017bf74..0f48d2d176e97 100644 --- a/DPGAnalysis/Skims/test/test_TopMuEG_SKIM.py +++ b/DPGAnalysis/Skims/test/test_TopMuEG_SKIM.py @@ -2,7 +2,7 @@ # using: # Revision: 1.19 # Source: /local/reps/CMSSW/CMSSW/Configuration/Applications/python/ConfigBuilder.py,v -# with command line options: skims -s SKIM:TopMuEG --mc --dasquery=file dataset=/RelValTTbar_14TeV/CMSSW_12_1_0_pre2-PU_121X_mcRun3_2021_realistic_v1-v1/GEN-SIM-RECO -n 100 --conditions auto:phase1_2021_realistic --eventcontent=FEVTDEBUGHLT --datatier=RAW-RECO --python_filename=test_TopMuEG_SKIM.py --processName=SKIMTopMuEG --no_exec --era=Run3 +# with command line options: skims -s SKIM:TopMuEG --mc --dasquery=file dataset=/RelValTTbar_14TeV/CMSSW_12_1_0_pre2-PU_121X_mcRun3_2021_realistic_v1-v1/GEN-SIM-RECO -n 100 --conditions auto:phase1_2022_realistic --eventcontent=FEVTDEBUGHLT --datatier=RAW-RECO --python_filename=test_TopMuEG_SKIM.py --processName=SKIMTopMuEG --no_exec --era=Run3 import FWCore.ParameterSet.Config as cms from Configuration.Eras.Era_Run3_cff import Run3 @@ -568,7 +568,7 @@ # Other statements from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # Path and EndPath definitions process.FEVTDEBUGHLToutput_step = cms.EndPath(process.FEVTDEBUGHLToutput) diff --git a/DQM/BeamMonitor/plugins/BeamMonitor.cc b/DQM/BeamMonitor/plugins/BeamMonitor.cc index 81891644fc30e..2ee1a2c8e7b36 100644 --- a/DQM/BeamMonitor/plugins/BeamMonitor.cc +++ b/DQM/BeamMonitor/plugins/BeamMonitor.cc @@ -668,6 +668,13 @@ void BeamMonitor::beginLuminosityBlock(const LuminosityBlock& lumiSeg, const Eve void BeamMonitor::analyze(const Event& iEvent, const EventSetup& iSetup) { const TCDSRecord& tcdsData = iEvent.get(tcdsToken_); int beamMode = tcdsData.getBST().getBeamMode(); + + // Check that the beamMode information is available in the event content + if (beamMode == BSTRecord::BeamMode::NOMODE) + edm::LogError("BeamMonitor") << "No BeamMode identified from BSTRecord!" + "Please check that the event content has the raw data from TCDS FEDs (1024,1025)!"; + + // Check if stable beams are present if (beamMode == BSTRecord::BeamMode::STABLE) logToDb_ = true; diff --git a/DQM/CTPPS/plugins/DiamondSampicDQMSource.cc b/DQM/CTPPS/plugins/DiamondSampicDQMSource.cc index 68f72805e4420..0e78861951c29 100644 --- a/DQM/CTPPS/plugins/DiamondSampicDQMSource.cc +++ b/DQM/CTPPS/plugins/DiamondSampicDQMSource.cc @@ -546,7 +546,8 @@ void DiamondSampicDQMSource::analyze(const edm::Event &event, const edm::EventSe if (channelsPerPlane.find(detId_plane) != channelsPerPlane.end()) channelsPerPlane[detId_plane]++; else - channelsPerPlane[detId_plane] = 0; + //if it's the first channel, create new map element with the value of 1 + channelsPerPlane[detId_plane] = 1; } // Channel Plots @@ -620,7 +621,8 @@ void DiamondSampicDQMSource::analyze(const edm::Event &event, const edm::EventSe if (channelsPerPlaneWithTime.find(detId_plane) != channelsPerPlaneWithTime.end()) channelsPerPlaneWithTime[detId_plane]++; else - channelsPerPlaneWithTime[detId_plane] = 0; + //if it's the first channel, create new map element with the value of 1 + channelsPerPlaneWithTime[detId_plane] = 1; } if (channelPlots_.find(detId) != channelPlots_.end()) { diff --git a/DQM/EcalMonitorTasks/BuildFile.xml b/DQM/EcalMonitorTasks/BuildFile.xml index 89d8521ca98ac..40c4f78ff8bc7 100644 --- a/DQM/EcalMonitorTasks/BuildFile.xml +++ b/DQM/EcalMonitorTasks/BuildFile.xml @@ -9,7 +9,8 @@ - + + diff --git a/DQM/EcalMonitorTasks/interface/OccupancyTask.h b/DQM/EcalMonitorTasks/interface/OccupancyTask.h index 7a1b28a6952bd..bb0b9d100950d 100644 --- a/DQM/EcalMonitorTasks/interface/OccupancyTask.h +++ b/DQM/EcalMonitorTasks/interface/OccupancyTask.h @@ -11,7 +11,7 @@ #include "CalibCalorimetry/EcalLaserCorrection/interface/EcalLaserDbService.h" #include "DataFormats/Provenance/interface/Timestamp.h" #include "FWCore/Framework/interface/ConsumesCollector.h" -#include "DataFormats/Scalers/interface/LumiScalers.h" +#include "DataFormats/OnlineMetaData/interface/OnlineLuminosityRecord.h" namespace ecaldqm { class OccupancyTask : public DQWorkerTask { @@ -40,8 +40,8 @@ namespace ecaldqm { float recHitThreshold_; float tpThreshold_; edm::TimeValue_t m_iTime; - edm::InputTag lumiTag; - edm::EDGetTokenT lumiScalersToken_; + edm::InputTag metadataTag; + edm::EDGetTokenT metaDataToken_; double scal_pu; bool FindPUinLS = false; int nEv; diff --git a/DQM/EcalMonitorTasks/python/OccupancyTask_cfi.py b/DQM/EcalMonitorTasks/python/OccupancyTask_cfi.py index f80773d936c10..3a02e5e06c7b0 100644 --- a/DQM/EcalMonitorTasks/python/OccupancyTask_cfi.py +++ b/DQM/EcalMonitorTasks/python/OccupancyTask_cfi.py @@ -8,8 +8,8 @@ params = cms.untracked.PSet( recHitThreshold = cms.untracked.double(recHitThreshold), tpThreshold = cms.untracked.double(tpThreshold), - scalers = cms.InputTag('hltScalersRawToDigi'), - lumiCheck = cms.untracked.bool(lumiCheck) + metadata = cms.InputTag('onlineMetaDataDigis'), + lumiCheck = cms.untracked.bool(lumiCheck) ), MEs = cms.untracked.PSet( TrendNTPDigi = cms.untracked.PSet( diff --git a/DQM/EcalMonitorTasks/src/OccupancyTask.cc b/DQM/EcalMonitorTasks/src/OccupancyTask.cc index f5829246eabc0..14bd4e995b18e 100644 --- a/DQM/EcalMonitorTasks/src/OccupancyTask.cc +++ b/DQM/EcalMonitorTasks/src/OccupancyTask.cc @@ -5,7 +5,6 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/Framework/interface/Event.h" -#include "DataFormats/Scalers/interface/LumiScalers.h" namespace ecaldqm { OccupancyTask::OccupancyTask() : DQWorkerTask(), recHitThreshold_(0.), tpThreshold_(0.), m_iTime(0.) {} @@ -13,7 +12,7 @@ namespace ecaldqm { void OccupancyTask::setParams(edm::ParameterSet const& _params) { recHitThreshold_ = _params.getUntrackedParameter("recHitThreshold"); tpThreshold_ = _params.getUntrackedParameter("tpThreshold"); - lumiTag = _params.getParameter("scalers"); + metadataTag = _params.getParameter("metadata"); lumiCheck_ = _params.getUntrackedParameter("lumiCheck", false); if (!onlineMode_) { MEs_.erase(std::string("PU")); @@ -26,7 +25,7 @@ namespace ecaldqm { void OccupancyTask::setTokens(edm::ConsumesCollector& _collector) { lasertoken_ = _collector.esConsumes(); - lumiScalersToken_ = _collector.consumes(lumiTag); + metaDataToken_ = _collector.consumes(metadataTag); } bool OccupancyTask::filterRunType(short const* _runType) { @@ -85,12 +84,11 @@ namespace ecaldqm { if (lumiCheck_ && FindPUinLS) { scal_pu = -1.; MESet& mePU(static_cast(MEs_.at("PU"))); - edm::Handle lumiScalers; - _evt.getByToken(lumiScalersToken_, lumiScalers); - if (lumiScalers.isValid() and not lumiScalers->empty()) { - auto scalit = lumiScalers->begin(); - scal_pu = scalit->pileup(); - } + edm::Handle metaData; + _evt.getByToken(metaDataToken_, metaData); + + if (metaData.isValid()) + scal_pu = metaData->avgPileUp(); mePU.fill(getEcalDQMSetupObjects(), double(scal_pu)); FindPUinLS = false; } diff --git a/DQM/GEM/interface/GEMDAQStatusSource.h b/DQM/GEM/interface/GEMDAQStatusSource.h index 125514b2d85ca..d392edde62c69 100644 --- a/DQM/GEM/interface/GEMDAQStatusSource.h +++ b/DQM/GEM/interface/GEMDAQStatusSource.h @@ -16,9 +16,8 @@ #include "Validation/MuonGEMHits/interface/GEMValidationUtils.h" -#include "CondFormats/DataRecord/interface/GEMeMapRcd.h" -#include "CondFormats/GEMObjects/interface/GEMeMap.h" -#include "CondFormats/GEMObjects/interface/GEMROMapping.h" +#include "CondFormats/DataRecord/interface/GEMChMapRcd.h" +#include "CondFormats/GEMObjects/interface/GEMChMap.h" #include "DataFormats/GEMDigi/interface/GEMDigiCollection.h" #include "DataFormats/GEMDigi/interface/GEMVFATStatusCollection.h" #include "DataFormats/GEMDigi/interface/GEMOHStatusCollection.h" @@ -70,9 +69,7 @@ class GEMDAQStatusSource : public GEMDQMBase { void SetLabelOHStatus(MonitorElement *h2Status); void SetLabelVFATStatus(MonitorElement *h2Status); - edm::ESGetToken gemEMapToken_; - //std::shared_ptr gemROMap_; - const GEMeMap *gemEMap_; + const edm::ESGetToken gemChMapToken_; edm::EDGetToken tagVFAT_; edm::EDGetToken tagOH_; diff --git a/DQM/GEM/interface/GEMDQMEfficiencyCalculator.h b/DQM/GEM/interface/GEMDQMEfficiencyCalculator.h deleted file mode 100644 index 860a2389f303f..0000000000000 --- a/DQM/GEM/interface/GEMDQMEfficiencyCalculator.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef DQM_GEM_GEMDQMEfficiencyCalculator_h -#define DQM_GEM_GEMDQMEfficiencyCalculator_h - -/** GEMDQMEfficiencyCalculator - * - * \author Seungjin Yang - */ - -#include "DQMServices/Core/interface/DQMEDHarvester.h" -#include "DQMServices/Core/interface/DQMStore.h" - -#include -#include - -class GEMDQMEfficiencyCalculator { -public: - typedef dqm::harvesting::DQMStore DQMStore; - typedef dqm::harvesting::MonitorElement MonitorElement; - - GEMDQMEfficiencyCalculator(); - ~GEMDQMEfficiencyCalculator(); - - void drawEfficiency(DQMStore::IBooker&, DQMStore::IGetter&, const std::string&); - -private: - TProfile* computeEfficiency(const TH1F*, const TH1F*, const char*, const char*); - TH2F* computeEfficiency(const TH2F*, const TH2F*, const char*, const char*); - - const float kConfidenceLevel_ = 0.683; - const std::string kMatchedSuffix_ = "_matched"; - const std::string kLogCategory_ = "GEMDQMEfficiencyCalculator"; -}; - -#endif // DQM_GEM_GEMDQMEfficiencyCalculator_h diff --git a/DQM/GEM/interface/GEMDQMEfficiencyClientBase.h b/DQM/GEM/interface/GEMDQMEfficiencyClientBase.h new file mode 100644 index 0000000000000..8fa3a903ec561 --- /dev/null +++ b/DQM/GEM/interface/GEMDQMEfficiencyClientBase.h @@ -0,0 +1,38 @@ +#ifndef DQM_GEM_GEMDQMEfficiencyClientBase_h +#define DQM_GEM_GEMDQMEfficiencyClientBase_h + +/** \class GEMDQMEfficiencyClientBase + * + * \author Seungjin Yang + */ + +#include "DQMServices/Core/interface/DQMEDHarvester.h" +#include "DQMServices/Core/interface/DQMStore.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DataFormats/MuonDetId/interface/GEMDetId.h" + +class GEMDQMEfficiencyClientBase : public DQMEDHarvester { +public: + using MEPair = std::pair; + + GEMDQMEfficiencyClientBase(const edm::ParameterSet&); + + std::tuple parseEfficiencySourceName(std::string); + GEMDetId parseGEMLabel(const std::string, const std::string delimiter = "-"); + + std::map makeEfficiencySourcePair(DQMStore::IBooker&, + DQMStore::IGetter&, + const std::string&, + const std::string prefix = ""); + void setBins(TH1F*, const TAxis*); + TH1F* projectHistogram(const TH2F*, const unsigned int); + bool checkConsistency(const TH1&, const TH1&); + TH1F* makeEfficiency(const TH1F*, const TH1F*, const char* name = nullptr, const char* title = nullptr); + TH2F* makeEfficiency(const TH2F*, const TH2F*, const char* name = nullptr, const char* title = nullptr); + void bookEfficiencyAuto(DQMStore::IBooker&, DQMStore::IGetter&, const std::string&); + + const double kConfidenceLevel_; + const std::string kLogCategory_; +}; + +#endif // DQM_GEM_GEMDQMEfficiencyClientBase_h diff --git a/DQM/GEM/interface/GEMDQMEfficiencySourceBase.h b/DQM/GEM/interface/GEMDQMEfficiencySourceBase.h new file mode 100644 index 0000000000000..baa697f0b1356 --- /dev/null +++ b/DQM/GEM/interface/GEMDQMEfficiencySourceBase.h @@ -0,0 +1,107 @@ +#ifndef DQM_GEM_GEMDQMEfficiencySourceBase_h +#define DQM_GEM_GEMDQMEfficiencySourceBase_h + +/** \class GEMDQMEfficiencySourceBase + * + * \author Seungjin Yang + */ + +#include "DQMServices/Core/interface/DQMEDAnalyzer.h" +#include "DQMServices/Core/interface/DQMStore.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "CondFormats/GEMObjects/interface/GEMeMap.h" +#include "DataFormats/GEMDigi/interface/GEMVFATStatusCollection.h" +#include "DataFormats/GEMDigi/interface/GEMOHStatusCollection.h" +#include "DataFormats/MuonDetId/interface/GEMDetId.h" +#include "Geometry/GEMGeometry/interface/GEMGeometry.h" + +class GEMDQMEfficiencySourceBase : public DQMEDAnalyzer { +public: + using MEMap = std::map; + + explicit GEMDQMEfficiencySourceBase(const edm::ParameterSet&); + + // Re: region / St: station, La: layer, Ch: chamber parity, Et: eta partition + inline GEMDetId getReStKey(const int, const int); + inline GEMDetId getReStKey(const GEMDetId&); + inline GEMDetId getReStLaKey(const GEMDetId&); + inline GEMDetId getReStEtKey(const GEMDetId&); + inline GEMDetId getReStLaChKey(const GEMDetId&); + inline GEMDetId getKey(const GEMDetId&); // == getReStLaChEtKey + + std::string nameNumerator(const std::string&); + + MonitorElement* bookNumerator1D(DQMStore::IBooker&, MonitorElement*); + MonitorElement* bookNumerator2D(DQMStore::IBooker&, MonitorElement*); + + std::tuple getChamberRange(const GEMStation*); + std::tuple getEtaPartitionRange(const GEMStation*); + + MonitorElement* bookChamber(DQMStore::IBooker&, const TString&, const TString&, const GEMStation*); + MonitorElement* bookChamberEtaPartition(DQMStore::IBooker&, const TString&, const TString&, const GEMStation*); + + bool skipGEMStation(const int); + + bool maskChamberWithError(const GEMDetId& chamber_id, const GEMOHStatusCollection*, const GEMVFATStatusCollection*); + + bool hasMEKey(const MEMap&, const GEMDetId&); + void fillME(MEMap&, const GEMDetId&, const double); + void fillME(MEMap&, const GEMDetId&, const double, const double); + + double clampWithAxis(const double, const TAxis* axis); + void fillMEWithinLimits(MonitorElement*, const double); + void fillMEWithinLimits(MonitorElement*, const double, const double); + void fillMEWithinLimits(MEMap&, const GEMDetId&, const double); + void fillMEWithinLimits(MEMap&, const GEMDetId&, const double, const double); + + template + bool checkRefs(const std::vector&); + + const edm::EDGetTokenT kGEMOHStatusCollectionToken_; + const edm::EDGetTokenT kGEMVFATStatusCollectionToken_; + + const bool kMonitorGE11_; + const bool kMonitorGE21_; + const bool kMonitorGE0_; + const bool kMaskChamberWithError_; + const std::string kLogCategory_; +}; + +template +bool GEMDQMEfficiencySourceBase::checkRefs(const std::vector& refs) { + if (refs.empty()) + return false; + for (T* each : refs) { + if (each == nullptr) { + return false; + } + } + return true; +} + +inline GEMDetId GEMDQMEfficiencySourceBase::getReStKey(const int region, const int station) { + // region, ring, station, layer, chamber, ieta + return GEMDetId{region, 1, station, 0, 0, 0}; +} + +inline GEMDetId GEMDQMEfficiencySourceBase::getReStKey(const GEMDetId& id) { + return getReStKey(id.region(), id.station()); +} + +inline GEMDetId GEMDQMEfficiencySourceBase::getReStLaKey(const GEMDetId& id) { + return GEMDetId{id.region(), 1, id.station(), id.layer(), 0, 0}; +} + +inline GEMDetId GEMDQMEfficiencySourceBase::getReStEtKey(const GEMDetId& id) { + return GEMDetId{id.region(), 1, id.station(), 0, 0, id.ieta()}; +} + +inline GEMDetId GEMDQMEfficiencySourceBase::getReStLaChKey(const GEMDetId& id) { + return GEMDetId{id.region(), 1, id.station(), id.layer(), id.chamber() % 2, 0}; +} + +inline GEMDetId GEMDQMEfficiencySourceBase::getKey(const GEMDetId& id) { + return GEMDetId{id.region(), 1, id.station(), id.layer(), id.chamber() % 2, id.ieta()}; +} + +#endif // DQM_GEM_GEMDQMEfficiencySourceBase_h diff --git a/DQM/GEM/interface/GEMDigiSource.h b/DQM/GEM/interface/GEMDigiSource.h index 2d074eff2f05d..df3964571b72c 100644 --- a/DQM/GEM/interface/GEMDigiSource.h +++ b/DQM/GEM/interface/GEMDigiSource.h @@ -44,6 +44,8 @@ class GEMDigiSource : public GEMDQMBase { int ProcessWithMEMap3(BookingHelper& bh, ME3IdsKey key) override; int ProcessWithMEMap3WithChamber(BookingHelper& bh, ME4IdsKey key) override; + const static int nNumBitDigiOcc_ = 16384; + edm::EDGetToken tagDigi_; edm::EDGetTokenT lumiScalers_; diff --git a/DQM/GEM/interface/GEMOfflineDQMBase.h b/DQM/GEM/interface/GEMOfflineDQMBase.h deleted file mode 100644 index a5fbe1c4787cc..0000000000000 --- a/DQM/GEM/interface/GEMOfflineDQMBase.h +++ /dev/null @@ -1,101 +0,0 @@ -#ifndef DQM_GEM_GEMOfflineDQMBase_h -#define DQM_GEM_GEMOfflineDQMBase_h - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "DQMServices/Core/interface/DQMEDAnalyzer.h" -#include "DQMServices/Core/interface/DQMStore.h" -#include "CondFormats/GEMObjects/interface/GEMeMap.h" -#include "DataFormats/MuonDetId/interface/GEMDetId.h" -#include "Geometry/GEMGeometry/interface/GEMGeometry.h" - -class GEMOfflineDQMBase : public DQMEDAnalyzer { -public: - using MEMap = std::map; - - explicit GEMOfflineDQMBase(const edm::ParameterSet&); - - inline int getVFATNumber(const int, const int, const int); - inline int getVFATNumberByStrip(const int, const int, const int); - inline int getMaxVFAT(const int); - inline int getDetOccXBin(const int, const int, const int); - - // Re: region / St: station, La: layer, Ch: chamber parity, Et: eta partition - inline GEMDetId getReStKey(const int, const int); - inline GEMDetId getReStKey(const GEMDetId&); - inline GEMDetId getReStLaKey(const GEMDetId&); - inline GEMDetId getReStEtKey(const GEMDetId&); - inline GEMDetId getReStLaChKey(const GEMDetId&); - inline GEMDetId getKey(const GEMDetId&); // == getReStLaChEtKey - - int getDetOccXBin(const GEMDetId&, const edm::ESHandle&); - void setDetLabelsVFAT(MonitorElement*, const GEMStation*); - void setDetLabelsEta(MonitorElement*, const GEMStation*); - int getNumEtaPartitions(const GEMStation*); // the number of eta partitions per GEMChamber - void fillME(MEMap& me_map, const GEMDetId& key, const float x); - void fillME(MEMap& me_map, const GEMDetId& key, const float x, const float y); - - template - inline bool checkRefs(const std::vector&); - - // - std::string log_category_; -}; - -inline int GEMOfflineDQMBase::getMaxVFAT(const int station) { - if (station == 0) - return GEMeMap::maxVFatGE0_; - else if (station == 1) - return GEMeMap::maxVFatGE11_; - else if (station == 2) - return GEMeMap::maxVFatGE21_; - else - return -1; -} - -inline int GEMOfflineDQMBase::getVFATNumber(const int station, const int ieta, const int vfat_phi) { - const int max_vfat = getMaxVFAT(station); - return max_vfat * (ieta - 1) + vfat_phi; -} - -inline int GEMOfflineDQMBase::getVFATNumberByStrip(const int station, const int ieta, const int strip) { - const int vfat_phi = (strip % GEMeMap::maxChan_) ? strip / GEMeMap::maxChan_ + 1 : strip / GEMeMap::maxChan_; - return getVFATNumber(station, ieta, vfat_phi); -} - -inline int GEMOfflineDQMBase::getDetOccXBin(const int chamber, const int layer, const int n_chambers) { - return n_chambers * (chamber - 1) + layer; -} - -template -inline bool GEMOfflineDQMBase::checkRefs(const std::vector& refs) { - if (refs.empty()) - return false; - if (refs.front() == nullptr) - return false; - return true; -} - -inline GEMDetId GEMOfflineDQMBase::getReStKey(const int region, const int station) { - // region, ring, station, layer, chamber, roll - return GEMDetId{region, 1, station, 0, 0, 0}; -} - -inline GEMDetId GEMOfflineDQMBase::getReStKey(const GEMDetId& id) { return getReStKey(id.region(), id.station()); } - -inline GEMDetId GEMOfflineDQMBase::getReStLaKey(const GEMDetId& id) { - return GEMDetId{id.region(), 1, id.station(), id.layer(), 0, 0}; -} - -inline GEMDetId GEMOfflineDQMBase::getReStEtKey(const GEMDetId& id) { - return GEMDetId{id.region(), 1, id.station(), 0, 0, id.roll()}; -} - -inline GEMDetId GEMOfflineDQMBase::getReStLaChKey(const GEMDetId& id) { - return GEMDetId{id.region(), 1, id.station(), id.layer(), id.chamber() % 2, 0}; -} - -inline GEMDetId GEMOfflineDQMBase::getKey(const GEMDetId& id) { - return GEMDetId{id.region(), 1, id.station(), id.layer(), id.chamber() % 2, id.roll()}; -} - -#endif // DQM_GEM_GEMOfflineDQMBase_h diff --git a/DQM/GEM/plugins/GEMDAQStatusSource.cc b/DQM/GEM/plugins/GEMDAQStatusSource.cc index 05953fd3144c6..2c872279c469f 100644 --- a/DQM/GEM/plugins/GEMDAQStatusSource.cc +++ b/DQM/GEM/plugins/GEMDAQStatusSource.cc @@ -3,14 +3,14 @@ using namespace std; using namespace edm; -GEMDAQStatusSource::GEMDAQStatusSource(const edm::ParameterSet &cfg) : GEMDQMBase(cfg) { +GEMDAQStatusSource::GEMDAQStatusSource(const edm::ParameterSet &cfg) + : GEMDQMBase(cfg), gemChMapToken_(esConsumes()) { tagVFAT_ = consumes(cfg.getParameter("VFATInputLabel")); tagOH_ = consumes(cfg.getParameter("OHInputLabel")); tagAMC_ = consumes(cfg.getParameter("AMCInputLabel")); tagAMC13_ = consumes(cfg.getParameter("AMC13InputLabel")); nAMCSlots_ = cfg.getParameter("AMCSlots"); - gemEMapToken_ = esConsumes(); } void GEMDAQStatusSource::fillDescriptions(edm::ConfigurationDescriptions &descriptions) { @@ -28,36 +28,35 @@ void GEMDAQStatusSource::fillDescriptions(edm::ConfigurationDescriptions &descri } void GEMDAQStatusSource::LoadROMap(edm::EventSetup const &iSetup) { - auto gemROMap = std::make_shared(); //if (useDBEMap_) if (true) { - const auto &eMap = iSetup.getData(gemEMapToken_); - auto gemEMap = std::make_unique(eMap); - gemEMap->convert(*gemROMap); - - for (auto imap : gemEMap->theChamberMap_) { - int nNumChamber = (int)imap.fedId.size(); - for (int i = 0; i < nNumChamber; i++) { - unsigned int fedId = imap.fedId[i]; - uint8_t amcNum = imap.amcNum[i]; - uint8_t gebId = imap.gebId[i]; - GEMROMapping::chamEC geb_ec{fedId, amcNum, gebId}; - GEMROMapping::chamDC geb_dc = gemROMap->chamberPos(geb_ec); - GEMDetId gemChId = geb_dc.detId; - - mapFEDIdToRe_[fedId] = gemChId.region(); - mapAMC13ToListChamber_[fedId].push_back(gemChId); - mapAMCToListChamber_[{fedId, amcNum}].push_back(gemChId); - } + const auto &chMap = iSetup.getData(gemChMapToken_); + auto gemChMap = std::make_unique(chMap); + + for (auto const &[ec, dc] : gemChMap->chamberMap()) { + unsigned int fedId = ec.fedId; + uint8_t amcNum = ec.amcNum; + GEMDetId gemChId(dc.detId); + + mapFEDIdToRe_[fedId] = gemChId.region(); + mapAMC13ToListChamber_[fedId].push_back(gemChId); + mapAMCToListChamber_[{fedId, amcNum}].push_back(gemChId); } - gemEMap.reset(); } else { // no EMap in DB, using dummy - // FIXME: How to add mapFEDIdToRe_ and mapDetIdToAMC_?? - auto gemEMap = std::make_unique(); - gemEMap->convertDummy(*gemROMap); - gemEMap.reset(); + auto gemChMap = std::make_unique(); + gemChMap->setDummy(); + + for (auto const &[ec, dc] : gemChMap->chamberMap()) { + unsigned int fedId = ec.fedId; + uint8_t amcNum = ec.amcNum; + GEMDetId gemChId(dc.detId); + + mapFEDIdToRe_[fedId] = gemChId.region(); + mapAMC13ToListChamber_[fedId].push_back(gemChId); + mapAMCToListChamber_[{fedId, amcNum}].push_back(gemChId); + } } } diff --git a/DQM/GEM/plugins/GEMDQMHarvester.cc b/DQM/GEM/plugins/GEMDQMHarvester.cc index a331b0f20022e..3a2ea6ca63507 100644 --- a/DQM/GEM/plugins/GEMDQMHarvester.cc +++ b/DQM/GEM/plugins/GEMDQMHarvester.cc @@ -313,11 +313,11 @@ void GEMDQMHarvester::copyLabels(MonitorElement *h2Src, MonitorElement *h2Dst) { } void GEMDQMHarvester::getGeometryInfo(edm::Service &store, MonitorElement *h2Src) { - if (h2Src != nullptr) { // For online and offline - listLayer_.clear(); - mapIdxLayer_.clear(); - mapNumChPerChamber_.clear(); + listLayer_.clear(); + mapIdxLayer_.clear(); + mapNumChPerChamber_.clear(); + if (h2Src != nullptr) { // For online and offline Int_t nBinY = h2Src->getNbinsY(); listLayer_.push_back(""); @@ -639,14 +639,14 @@ void GEMDQMHarvester::createLumiFuncHist(edm::Service &store, } std::string getNameChamberOccGE11(std::string strSuffix, Int_t nIdxCh) { - std::string strRegion; - std::string strChType = (nIdxCh % 2 == 0 ? "L" : "S"); + char cRegion; + char cChType = (nIdxCh % 2 == 0 ? 'L' : 'S'); Int_t nLayer; if (strSuffix.find("-M-") != std::string::npos) - strRegion = "M"; + cRegion = 'M'; else if (strSuffix.find("-P-") != std::string::npos) - strRegion = "P"; + cRegion = 'P'; else return ""; @@ -657,13 +657,8 @@ std::string getNameChamberOccGE11(std::string strSuffix, Int_t nIdxCh) { else return ""; - return Form("GEM/Digis/occupancy_GE11-%s-L%i/occ_GE11-%s-%02iL%i-%s", - strRegion.c_str(), - nLayer, - strRegion.c_str(), - nIdxCh, - nLayer, - strChType.c_str()); + return Form( + "GEM/Digis/occupancy_GE11-%c-L%i/occ_GE11-%c-%02iL%i-%c", cRegion, nLayer, cRegion, nIdxCh, nLayer, cChType); } std::string getNameChamberOccGE21(std::string strSuffix, Int_t nIdxChamber) { @@ -704,15 +699,16 @@ void GEMDQMHarvester::createInactiveChannelFracHist(edm::Service &stor Int_t nNumBinX = h2SrcChamberOcc->getNbinsX(); Int_t nNumBinY = h2SrcChamberOcc->getNbinsY(); + Int_t nNumAllChannel = nNumBinX * nNumBinY; + auto *histData = h2SrcChamberOcc->getTH2F(); + auto *pdData = histData->GetArray(); Int_t nNumChannelInactive = 0; - for (Int_t i = 1; i <= nNumBinX; i++) - for (Int_t j = 1; j <= nNumBinY; j++) { - if (h2SrcChamberOcc->getBinContent(i, j) <= 0) { + for (Int_t j = 1; j <= nNumBinY; j++) + for (Int_t i = 1; i <= nNumBinX; i++) { + if (pdData[j * (nNumBinX + 2) + i] <= 0) { nNumChannelInactive++; } } - - Int_t nNumAllChannel = nNumBinX * nNumBinY; h2InactiveChannel->setBinContent(nIdxCh, ((Double_t)nNumChannelInactive) / nNumAllChannel); } } diff --git a/DQM/GEM/plugins/GEMEffByGEMCSCSegmentClient.cc b/DQM/GEM/plugins/GEMEffByGEMCSCSegmentClient.cc index 68a6a0f0931f8..2ba4c4c392330 100644 --- a/DQM/GEM/plugins/GEMEffByGEMCSCSegmentClient.cc +++ b/DQM/GEM/plugins/GEMEffByGEMCSCSegmentClient.cc @@ -1,15 +1,17 @@ #include "DQM/GEM/plugins/GEMEffByGEMCSCSegmentClient.h" -GEMEffByGEMCSCSegmentClient::GEMEffByGEMCSCSegmentClient(const edm::ParameterSet& parameter_set) - : kFolder_(parameter_set.getUntrackedParameter("folder")), - kLogCategory_(parameter_set.getUntrackedParameter("logCategory")) { - eff_calculator_ = std::make_unique(); -} +GEMEffByGEMCSCSegmentClient::GEMEffByGEMCSCSegmentClient(const edm::ParameterSet& ps) + : GEMDQMEfficiencyClientBase(ps), kFolder_(ps.getUntrackedParameter("folder")) {} void GEMEffByGEMCSCSegmentClient::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; - desc.addUntracked("folder", "GEM/Efficiency/GEMCSCSegment"); + + // GEMDQMEfficiencyClientBase + desc.addUntracked("confidenceLevel", 0.683); // 1-sigma desc.addUntracked("logCategory", "GEMEffByGEMCSCSegmentClient"); + + // GEMEffByGEMCSCSegmentClient + desc.addUntracked("folder", "GEM/Efficiency/GEMCSCSegment"); descriptions.addWithDefaultLabel(desc); } @@ -17,6 +19,5 @@ void GEMEffByGEMCSCSegmentClient::dqmEndLuminosityBlock(DQMStore::IBooker& booke DQMStore::IGetter& getter, edm::LuminosityBlock const&, edm::EventSetup const&) { - eff_calculator_->drawEfficiency(booker, getter, kFolder_ + "/Efficiency"); - eff_calculator_->drawEfficiency(booker, getter, kFolder_ + "/Misc"); + bookEfficiencyAuto(booker, getter, kFolder_); } diff --git a/DQM/GEM/plugins/GEMEffByGEMCSCSegmentClient.h b/DQM/GEM/plugins/GEMEffByGEMCSCSegmentClient.h index 68deac8ea3b9d..ef8275c74a9de 100644 --- a/DQM/GEM/plugins/GEMEffByGEMCSCSegmentClient.h +++ b/DQM/GEM/plugins/GEMEffByGEMCSCSegmentClient.h @@ -9,13 +9,10 @@ * \author Seungjin Yang */ -#include "DQMServices/Core/interface/DQMEDHarvester.h" -#include "DQMServices/Core/interface/DQMStore.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DQM/GEM/interface/GEMDQMEfficiencyClientBase.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" -#include "DQM/GEM/interface/GEMDQMEfficiencyCalculator.h" -class GEMEffByGEMCSCSegmentClient : public DQMEDHarvester { +class GEMEffByGEMCSCSegmentClient : public GEMDQMEfficiencyClientBase { public: GEMEffByGEMCSCSegmentClient(const edm::ParameterSet &); ~GEMEffByGEMCSCSegmentClient() override{}; @@ -29,11 +26,7 @@ class GEMEffByGEMCSCSegmentClient : public DQMEDHarvester { void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override{}; - // initialized in the constructor initializer list const std::string kFolder_; - const std::string kLogCategory_; - - std::unique_ptr eff_calculator_; }; #endif // DQM_GEM_GEMEffByGEMCSCSegmentClient_h diff --git a/DQM/GEM/plugins/GEMEffByGEMCSCSegmentSource.cc b/DQM/GEM/plugins/GEMEffByGEMCSCSegmentSource.cc index bf64098d3fc2d..42af49478ac80 100644 --- a/DQM/GEM/plugins/GEMEffByGEMCSCSegmentSource.cc +++ b/DQM/GEM/plugins/GEMEffByGEMCSCSegmentSource.cc @@ -2,158 +2,135 @@ #include "Validation/MuonGEMHits/interface/GEMValidationUtils.h" -GEMEffByGEMCSCSegmentSource::GEMEffByGEMCSCSegmentSource(const edm::ParameterSet& parameter_set) - : GEMOfflineDQMBase(parameter_set), - kGEMTokenBeginRun_(esConsumes()), - kGEMCSCSegmentToken_( - consumes(parameter_set.getParameter("gemcscSegmentTag"))), - kMuonToken_(consumes(parameter_set.getParameter("muonTag"))), - kUseMuon_(parameter_set.getUntrackedParameter("useMuon")), - kMinCSCRecHits_(parameter_set.getUntrackedParameter("minCSCRecHits")), - kFolder_(parameter_set.getUntrackedParameter("folder")), - kLogCategory_(parameter_set.getUntrackedParameter("logCategory")) {} +GEMEffByGEMCSCSegmentSource::GEMEffByGEMCSCSegmentSource(const edm::ParameterSet& ps) + : GEMDQMEfficiencySourceBase(ps), + kGEMGeometryTokenBeginRun_(esConsumes()), + kGEMCSCSegmentCollectionToken_( + consumes(ps.getUntrackedParameter("gemcscSegmentTag"))), + kMuonCollectionToken_(consumes(ps.getUntrackedParameter("muonTag"))), + kMinCSCRecHits_(ps.getUntrackedParameter("minCSCRecHits")), + kModeDev_(ps.getUntrackedParameter("modeDev")), + kUseMuonSegment_(ps.getUntrackedParameter("useMuonSegment")), + kFolder_(ps.getUntrackedParameter("folder")) {} GEMEffByGEMCSCSegmentSource::~GEMEffByGEMCSCSegmentSource() {} void GEMEffByGEMCSCSegmentSource::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; - desc.add("gemcscSegmentTag", edm::InputTag("gemcscSegments")); - desc.add("muonTag", edm::InputTag("muons")); - desc.addUntracked("useMuon", false); - desc.addUntracked("minCSCRecHits", 6u); - desc.addUntracked("folder", "GEM/Efficiency/GEMCSCSegment"); + + // GEMDQMEfficiencySourceBase + desc.addUntracked("ohStatusTag", edm::InputTag("muonGEMDigis", "OHStatus")); + desc.addUntracked("vfatStatusTag", edm::InputTag("muonGEMDigis", "VFATStatus")); + desc.addUntracked("monitorGE11", true); + desc.addUntracked("monitorGE21", false); + desc.addUntracked("monitorGE0", false); + desc.addUntracked("maskChamberWithError", false); desc.addUntracked("logCategory", "GEMEffByGEMCSCSegmentSource"); + + // GEMEffByGEMCSCSegmentSource + desc.addUntracked("gemcscSegmentTag", edm::InputTag("gemcscSegments")); + desc.addUntracked("muonTag", edm::InputTag("muons")); + desc.addUntracked("minCSCRecHits", 6); + desc.addUntracked("useMuonSegment", false); + desc.addUntracked("modeDev", false); + desc.addUntracked("folder", "GEM/Efficiency/GEMCSCSegment"); + descriptions.addWithDefaultLabel(desc); } void GEMEffByGEMCSCSegmentSource::bookHistograms(DQMStore::IBooker& ibooker, - edm::Run const&, + edm::Run const& run, edm::EventSetup const& setup) { - const edm::ESHandle& gem = setup.getHandle(kGEMTokenBeginRun_); - if (not gem.isValid()) { - edm::LogError(kLogCategory_) << "invalid GEMGeometry"; + const GEMGeometry* gem = nullptr; + if (auto handle = setup.getHandle(kGEMGeometryTokenBeginRun_)) { + gem = handle.product(); + } else { + edm::LogError(kLogCategory_ + "|bookHistograms") << "failed to get GEMGeometry"; return; } - bookEfficiencyChamber(ibooker, gem); - bookMisc(ibooker, gem); -} - -void GEMEffByGEMCSCSegmentSource::bookEfficiencyChamber(DQMStore::IBooker& ibooker, - const edm::ESHandle& gem) { - ibooker.setCurrentFolder(kFolder_ + "/Efficiency"); + ibooker.setCurrentFolder(kFolder_); for (const GEMStation* station : gem->stations()) { const int region_id = station->region(); const int station_id = station->station(); + if (skipGEMStation(station_id)) + continue; + if (station_id == 1) { - // GE11 - const std::vector superchambers = station->superChambers(); - if (not checkRefs(superchambers)) { - edm::LogError(kLogCategory_) << "failed to get a valid vector of GEMSuperChamber ptrs"; + //////////////////////////////////////////////////////////////////////////// + // Region - Station - Layer + //////////////////////////////////////////////////////////////////////////// + const std::vector superchamber_vec = station->superChambers(); + if (not checkRefs(superchamber_vec)) { + edm::LogError(kLogCategory_) << "got an invalid ptr from GEMStation::superChambers"; return; } - const int num_chambers = superchambers.size(); - for (const GEMChamber* chamber : superchambers.at(0)->chambers()) { - const int layer_id = chamber->id().layer(); - - const TString name_suffix = GEMUtils::getSuffixName(region_id, station_id, layer_id); - const TString title_suffix = GEMUtils::getSuffixTitle(region_id, station_id, layer_id); - const GEMDetId key = getReStLaKey(chamber->id()); - - me_chamber_[key] = ibooker.book1D("chamber" + name_suffix, title_suffix, num_chambers, 0.5, num_chambers + 0.5); - me_chamber_[key]->setAxisTitle("Chamber", 1); - for (int binx = 1; binx <= num_chambers; binx++) { - me_chamber_[key]->setBinLabel(binx, std::to_string(binx), 1); - } - me_chamber_matched_[key] = bookNumerator1D(ibooker, me_chamber_[key]); - - if (kUseMuon_) { - me_muon_chamber_[key] = - ibooker.book1D("muon_chamber" + name_suffix, title_suffix, num_chambers, 0.5, num_chambers + 0.5); - me_muon_chamber_[key]->setAxisTitle("Chamber", 1); - for (int binx = 1; binx <= num_chambers; binx++) { - me_muon_chamber_[key]->setBinLabel(binx, std::to_string(binx), 1); - } - me_muon_chamber_matched_[key] = bookNumerator1D(ibooker, me_muon_chamber_[key]); - } - } // layer - - } else { - LogDebug(kLogCategory_) << "skip " << station->getName(); - continue; - } - } // station -} - -void GEMEffByGEMCSCSegmentSource::bookMisc(DQMStore::IBooker& ibooker, const edm::ESHandle& gem) { - ibooker.setCurrentFolder(kFolder_ + "/Misc"); - - for (const GEMStation* station : gem->stations()) { - const int region_id = station->region(); - const int station_id = station->station(); - - if (station_id == 1) { - // GE11 - const std::vector superchambers = station->superChambers(); - if (not checkRefs(superchambers)) { - edm::LogError(kLogCategory_) << "failed to get a valid vector of GEMSuperChamber ptrs"; + const std::vector chamber_vec = superchamber_vec.front()->chambers(); + if (not checkRefs(chamber_vec)) { + edm::LogError(kLogCategory_) << "got an invalid ptr from GEMSuperChamber::chambers"; return; } - for (const GEMChamber* chamber : superchambers.at(0)->chambers()) { + // we actually loop over layers + for (const GEMChamber* chamber : chamber_vec) { const int layer_id = chamber->id().layer(); - - const TString name_suffix = GEMUtils::getSuffixName(region_id, station_id, layer_id); - const TString title_suffix = GEMUtils::getSuffixTitle(region_id, station_id, layer_id); const GEMDetId key = getReStLaKey(chamber->id()); + const TString suffix = GEMUtils::getSuffixName(region_id, station_id, layer_id); + const TString title = GEMUtils::getSuffixTitle(region_id, station_id, layer_id); - // num_csc_hits - me_num_csc_hits_[key] = ibooker.book1D("num_csc_hits" + name_suffix, title_suffix, 4, 2.5, 6.5); - me_num_csc_hits_[key]->setAxisTitle("Number of CSCRecHits", 1); - - me_num_csc_hits_matched_[key] = bookNumerator1D(ibooker, me_num_csc_hits_[key]); - - // reduced_chi2 - me_reduced_chi2_[key] = ibooker.book1D("reduced_chi2" + name_suffix, title_suffix, 30, 0, 3); - me_reduced_chi2_[key]->setAxisTitle("#chi^{2} / dof", 1); - - me_reduced_chi2_matched_[key] = bookNumerator1D(ibooker, me_reduced_chi2_[key]); + // book MEs for the efficiency vs the GEM chambver id + me_chamber_[key] = bookChamber(ibooker, "chamber" + suffix, title, station); + me_chamber_matched_[key] = bookNumerator1D(ibooker, me_chamber_[key]); - // CSC chamber type - // https://github.com/cms-sw/cmssw/blob/CMSSW_12_3_0_pre5/DataFormats/MuonDetId/interface/CSCDetId.h#L187-L193 - me_csc_chamber_type_[key] = ibooker.book1D("csc_chamber_type" + name_suffix, title_suffix, 10, 0.5, 10.5); - me_csc_chamber_type_[key]->setAxisTitle("CSC chamber type", 1); - for (int chamber_type = 1; chamber_type <= 10; chamber_type++) { - const std::string label = CSCDetId::chamberName(chamber_type); - me_csc_chamber_type_[key]->setBinLabel(chamber_type, label, 1); + if (kUseMuonSegment_) { + me_chamber_muon_segment_[key] = bookChamber(ibooker, "muon_chamber" + suffix, title, station); + me_chamber_muon_segment_matched_[key] = bookNumerator1D(ibooker, me_chamber_muon_segment_[key]); } - me_csc_chamber_type_matched_[key] = bookNumerator1D(ibooker, me_csc_chamber_type_[key]); + if (kModeDev_) { + // book MEs for the efficiency vs the number of CSC hits in a CSC segment + // CSCSegAlgoRU: min hits = 4, max hits = CSC layers = 6 + me_num_csc_hits_[key] = ibooker.book1D("num_csc_hits" + suffix, title, 4, 2.5, 6.5); + me_num_csc_hits_[key]->setAxisTitle("Number of CSC Hits", 1); + me_num_csc_hits_matched_[key] = bookNumerator1D(ibooker, me_num_csc_hits_[key]); - } // layer + me_csc_reduced_chi2_[key] = ibooker.book1D("reduced_chi2" + suffix, title, 100, 0.0, 10.0); + me_csc_reduced_chi2_[key]->setAxisTitle("#chi^{2} / N_{dof} of CSC Segment", 1); + me_csc_reduced_chi2_matched_[key] = bookNumerator1D(ibooker, me_csc_reduced_chi2_[key]); + me_csc_chamber_type_[key] = bookCSCChamberType(ibooker, "csc_chamber_type" + suffix, title); + me_csc_chamber_type_matched_[key] = bookNumerator1D(ibooker, me_csc_chamber_type_[key]); + } + } // GEMChamber } else { - LogDebug(kLogCategory_) << "skip " << station->getName(); + edm::LogWarning(kLogCategory_) << "The monitoring for "; // TODO continue; } - } // region-station + } // GEMStataion } -dqm::impl::MonitorElement* GEMEffByGEMCSCSegmentSource::bookNumerator1D(DQMStore::IBooker& ibooker, - MonitorElement* me) { - const std::string name = me->getName() + "_matched"; - TH1F* hist = dynamic_cast(me->getTH1F()->Clone(name.c_str())); - return ibooker.book1D(name, hist); +// https://github.com/cms-sw/cmssw/blob/CMSSW_12_3_0_pre5/DataFormats/MuonDetId/interface/CSCDetId.h#L187-L193 +dqm::impl::MonitorElement* GEMEffByGEMCSCSegmentSource::bookCSCChamberType(DQMStore::IBooker& ibooker, + const TString& name, + const TString& title) { + MonitorElement* monitor_element = ibooker.book1D(name, title, 10, 0.5, 10.5); + monitor_element->setAxisTitle("CSC chamber type", 1); + for (int chamber_type = 1; chamber_type <= 10; chamber_type++) { + const std::string label = CSCDetId::chamberName(chamber_type); + monitor_element->setBinLabel(chamber_type, label, 1); + } + return monitor_element; } void GEMEffByGEMCSCSegmentSource::analyze(const edm::Event& event, const edm::EventSetup& setup) { ////////////////////////////////////////////////////////////////////////////// - // get data from Event & EventSetup + // get data from event + ////////////////////////////////////////////////////////////////////////////// const GEMCSCSegmentCollection* gemcsc_segment_collection = nullptr; - if (const edm::Handle handle = event.getHandle(kGEMCSCSegmentToken_)) { + if (const edm::Handle handle = event.getHandle(kGEMCSCSegmentCollectionToken_)) { gemcsc_segment_collection = handle.product(); } else { @@ -162,8 +139,8 @@ void GEMEffByGEMCSCSegmentSource::analyze(const edm::Event& event, const edm::Ev } const reco::MuonCollection* muon_collection = nullptr; - if (kUseMuon_) { - if (const edm::Handle handle = event.getHandle(kMuonToken_)) { + if (kUseMuonSegment_) { + if (const edm::Handle handle = event.getHandle(kMuonCollectionToken_)) { muon_collection = handle.product(); } else { @@ -172,21 +149,36 @@ void GEMEffByGEMCSCSegmentSource::analyze(const edm::Event& event, const edm::Ev } } + const GEMOHStatusCollection* oh_status_collection = nullptr; + const GEMVFATStatusCollection* vfat_status_collection = nullptr; + if (kMaskChamberWithError_) { + if (auto handle = event.getHandle(kGEMOHStatusCollectionToken_)) { + oh_status_collection = handle.product(); + } else { + edm::LogError(kLogCategory_) << "failed to get OHVFATStatusCollection"; + return; + } + + if (auto handle = event.getHandle(kGEMVFATStatusCollectionToken_)) { + vfat_status_collection = handle.product(); + } else { + edm::LogError(kLogCategory_) << "failed to get GEMVFATStatusCollection"; + return; + } + } + + ////////////////////////////////////////////////////////////////////////////// + // NOTE ////////////////////////////////////////////////////////////////////////////// - // quick check if (gemcsc_segment_collection->size() < 1) { LogDebug(kLogCategory_) << "empty GEMCSCSegment"; return; } - ////////////////////////////////////////////////////////////////////////////// - // - if (kUseMuon_) { + if (kUseMuonSegment_) { findMatchedME11Segments(muon_collection); } - ////////////////////////////////////////////////////////////////////////////// - // main loop for (edm::OwnVector::const_iterator iter = gemcsc_segment_collection->begin(); iter != gemcsc_segment_collection->end(); iter++) { @@ -194,7 +186,7 @@ void GEMEffByGEMCSCSegmentSource::analyze(const edm::Event& event, const edm::Ev const CSCDetId csc_id = gemcsc_segment.cscDetId(); if (csc_id.isME11()) { - analyzeME11GE11Segment(gemcsc_segment); + analyzeGE11ME11Segment(gemcsc_segment, oh_status_collection, vfat_status_collection); } else { LogDebug(kLogCategory_) << "skip " << csc_id; @@ -203,7 +195,10 @@ void GEMEffByGEMCSCSegmentSource::analyze(const edm::Event& event, const edm::Ev } // GEMCSCSegment } -void GEMEffByGEMCSCSegmentSource::analyzeME11GE11Segment(const GEMCSCSegment& gemcsc_segment) { +// TODO doc +void GEMEffByGEMCSCSegmentSource::analyzeGE11ME11Segment(const GEMCSCSegment& gemcsc_segment, + const GEMOHStatusCollection* oh_status_collection, + const GEMVFATStatusCollection* vfat_status_collection) { const GEMRecHit* ge11_hit_layer1 = nullptr; const GEMRecHit* ge11_hit_layer2 = nullptr; @@ -218,6 +213,13 @@ void GEMEffByGEMCSCSegmentSource::analyzeME11GE11Segment(const GEMCSCSegment& ge return; } + if (kMaskChamberWithError_) { + const bool has_error = maskChamberWithError(gem_id.chamberId(), oh_status_collection, vfat_status_collection); + if (has_error) { + return; + } + } + const int layer = gem_id.layer(); if (layer == 1) { ge11_hit_layer1 = &gem_hit; @@ -235,6 +237,7 @@ void GEMEffByGEMCSCSegmentSource::analyzeME11GE11Segment(const GEMCSCSegment& ge checkCoincidenceGE11(ge11_hit_layer2, ge11_hit_layer1, gemcsc_segment); } +// TODO doc void GEMEffByGEMCSCSegmentSource::checkCoincidenceGE11(const GEMRecHit* trigger_layer_hit, const GEMRecHit* detection_layer_hit, const GEMCSCSegment& gemcsc_segment) { @@ -250,44 +253,54 @@ void GEMEffByGEMCSCSegmentSource::checkCoincidenceGE11(const GEMRecHit* trigger_ const GEMDetId key{trigger_layer_id.region(), 1, trigger_layer_id.station(), detection_layer, 0, 0}; const int chamber = trigger_layer_id.chamber(); - const bool is_matched = kUseMuon_ ? isME11SegmentMatched(gemcsc_segment.cscSegment()) : false; + const bool is_matched = kUseMuonSegment_ ? isME11SegmentMatched(gemcsc_segment.cscSegment()) : false; - const int num_csc_hits = gemcsc_segment.cscRecHits().size(); - // TODO fillMEWithinLimits - const double reduced_chi2 = std::min(gemcsc_segment.chi2() / gemcsc_segment.degreesOfFreedom(), 2.9999); + const int num_csc_hits = static_cast(gemcsc_segment.cscRecHits().size()); + const double reduced_chi2 = gemcsc_segment.chi2() / gemcsc_segment.degreesOfFreedom(); const int csc_chamber_type = gemcsc_segment.cscDetId().iChamberType(); + if (kModeDev_) { + fillME(me_num_csc_hits_, key, num_csc_hits); + fillMEWithinLimits(me_csc_reduced_chi2_, key, reduced_chi2); + fillME(me_csc_chamber_type_, key, csc_chamber_type); + + if (detection_layer_hit) { + fillME(me_num_csc_hits_matched_, key, num_csc_hits); + fillMEWithinLimits(me_csc_reduced_chi2_matched_, key, reduced_chi2); + fillME(me_csc_chamber_type_matched_, key, csc_chamber_type); + } + } + // TODO add a method - const bool is_good = gemcsc_segment.cscRecHits().size() >= kMinCSCRecHits_; + const bool is_good = num_csc_hits >= kMinCSCRecHits_; + if (not is_good) { + return; + } - fillME(me_num_csc_hits_, key, num_csc_hits); - fillME(me_reduced_chi2_, key, reduced_chi2); - fillME(me_csc_chamber_type_, key, csc_chamber_type); - if (detection_layer_hit) { - fillME(me_num_csc_hits_matched_, key, num_csc_hits); - fillME(me_reduced_chi2_matched_, key, reduced_chi2); - fillME(me_csc_chamber_type_matched_, key, csc_chamber_type); + // twofold coincidence rate + fillME(me_chamber_, key, chamber); + if (is_matched) { + fillME(me_chamber_muon_segment_, key, chamber); } - if (is_good) { - // twofold coincidence rate - fillME(me_chamber_, key, chamber); + // threefold coincidence rate + if (detection_layer_hit) { + fillME(me_chamber_matched_, key, chamber); if (is_matched) { - fillME(me_muon_chamber_, key, chamber); - } - - // threefold coincidence rate - if (detection_layer_hit) { - fillME(me_chamber_matched_, key, chamber); - if (is_matched) { - fillME(me_muon_chamber_matched_, key, chamber); - } + fillME(me_chamber_muon_segment_matched_, key, chamber); } } } +// TODO docs void GEMEffByGEMCSCSegmentSource::findMatchedME11Segments(const reco::MuonCollection* muon_collection) { matched_me11_segment_vector_.clear(); + + if (muon_collection == nullptr) { + // TODO log + return; + } + for (unsigned int idx = 0; idx < muon_collection->size(); idx++) { const reco::Muon& muon = muon_collection->at(idx); diff --git a/DQM/GEM/plugins/GEMEffByGEMCSCSegmentSource.h b/DQM/GEM/plugins/GEMEffByGEMCSCSegmentSource.h index 64ca3d12d4d7c..e3774541a64d5 100644 --- a/DQM/GEM/plugins/GEMEffByGEMCSCSegmentSource.h +++ b/DQM/GEM/plugins/GEMEffByGEMCSCSegmentSource.h @@ -9,7 +9,7 @@ * \author Seungjin Yang */ -#include "DQM/GEM/interface/GEMOfflineDQMBase.h" +#include "DQM/GEM/interface/GEMDQMEfficiencySourceBase.h" #include "FWCore/Utilities/interface/EDGetToken.h" #include "FWCore/Framework/interface/ESHandle.h" @@ -20,7 +20,7 @@ #include "DataFormats/MuonReco/interface/MuonFwd.h" #include "Geometry/Records/interface/MuonGeometryRecord.h" -class GEMEffByGEMCSCSegmentSource : public GEMOfflineDQMBase { +class GEMEffByGEMCSCSegmentSource : public GEMDQMEfficiencySourceBase { public: explicit GEMEffByGEMCSCSegmentSource(const edm::ParameterSet &); ~GEMEffByGEMCSCSegmentSource() override; @@ -30,40 +30,44 @@ class GEMEffByGEMCSCSegmentSource : public GEMOfflineDQMBase { void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override; void analyze(const edm::Event &event, const edm::EventSetup &eventSetup) override; - void bookEfficiencyChamber(DQMStore::IBooker &, const edm::ESHandle &); - void bookMisc(DQMStore::IBooker &, const edm::ESHandle &); - MonitorElement *bookNumerator1D(DQMStore::IBooker &, MonitorElement *); + MonitorElement *bookCSCChamberType(DQMStore::IBooker &, const TString &, const TString &); - // ME11-GE11 segments - void analyzeME11GE11Segment(const GEMCSCSegment &); + // GE11_ME11 segments + void analyzeGE11ME11Segment(const GEMCSCSegment &, const GEMOHStatusCollection *, const GEMVFATStatusCollection *); void checkCoincidenceGE11(const GEMRecHit *, const GEMRecHit *, const GEMCSCSegment &); void findMatchedME11Segments(const reco::MuonCollection *); bool isME11SegmentMatched(const CSCSegment &); - // const member data (mainly parameters) - const edm::ESGetToken kGEMTokenBeginRun_; - const edm::EDGetTokenT kGEMCSCSegmentToken_; - const edm::EDGetTokenT kMuonToken_; - const bool kUseMuon_; - const uint32_t kMinCSCRecHits_; + ////////////////////////////////////////////////////////////////////////////// + // const member data + ////////////////////////////////////////////////////////////////////////////// + + const edm::ESGetToken kGEMGeometryTokenBeginRun_; + const edm::EDGetTokenT kGEMCSCSegmentCollectionToken_; + const edm::EDGetTokenT kMuonCollectionToken_; + const int kMinCSCRecHits_; + const bool kModeDev_; + const bool kUseMuonSegment_; const std::string kFolder_; - const std::string kLogCategory_; - // member data + ////////////////////////////////////////////////////////////////////////////// + // non-const member data + ////////////////////////////////////////////////////////////////////////////// std::vector matched_me11_segment_vector_; // MonitorElement - MEMap me_chamber_; // 1D, (region, station, layer) + MEMap me_chamber_; MEMap me_chamber_matched_; - MEMap me_muon_chamber_; // 1D, (region, station, layer) - MEMap me_muon_chamber_matched_; - // misc + //// dev MEMap me_num_csc_hits_; MEMap me_num_csc_hits_matched_; - MEMap me_reduced_chi2_; - MEMap me_reduced_chi2_matched_; + MEMap me_csc_reduced_chi2_; + MEMap me_csc_reduced_chi2_matched_; MEMap me_csc_chamber_type_; MEMap me_csc_chamber_type_matched_; + //// dev with muon + MEMap me_chamber_muon_segment_; + MEMap me_chamber_muon_segment_matched_; }; #endif // DQM_GEM_GEMEffByGEMCSCSegmentSource_h diff --git a/DQM/GEM/plugins/GEMEfficiencyAnalyzer.cc b/DQM/GEM/plugins/GEMEfficiencyAnalyzer.cc index 57d5b3b3f0988..dc44a9646a058 100644 --- a/DQM/GEM/plugins/GEMEfficiencyAnalyzer.cc +++ b/DQM/GEM/plugins/GEMEfficiencyAnalyzer.cc @@ -3,201 +3,265 @@ #include "FWCore/Framework/interface/ConsumesCollector.h" #include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" #include "TrackingTools/Records/interface/TransientTrackRecord.h" -#include "DataFormats/Math/interface/deltaPhi.h" #include "DataFormats/GeometryCommonDetAlgo/interface/ErrorFrameTransformer.h" #include "DataFormats/GeometrySurface/interface/SimpleDiskBounds.h" +#include "DataFormats/Math/interface/deltaPhi.h" #include "Geometry/CommonTopologies/interface/StripTopology.h" #include "Validation/MuonHits/interface/MuonHitHelper.h" #include "Validation/MuonGEMHits/interface/GEMValidationUtils.h" -GEMEfficiencyAnalyzer::GEMEfficiencyAnalyzer(const edm::ParameterSet& pset) - : GEMOfflineDQMBase(pset), - gemToken1_(esConsumes()), - gemToken2_(esConsumes()), - globalGeomToken_(esConsumes()), - trasientTrackToken_( - esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))) { - name_ = pset.getUntrackedParameter("name"); - folder_ = pset.getUntrackedParameter("folder"); - - rechit_token_ = consumes(pset.getParameter("recHitTag")); - muon_token_ = consumes >(pset.getParameter("muonTag")); - - is_cosmics_ = pset.getUntrackedParameter("isCosmics"); - use_global_muon_ = pset.getUntrackedParameter("useGlobalMuon"); - use_skip_layer_ = pset.getParameter("useSkipLayer"); - use_only_me11_ = pset.getParameter("useOnlyME11"); - residual_rphi_cut_ = static_cast(pset.getParameter("residualRPhiCut")); - use_prop_r_error_cut_ = pset.getParameter("usePropRErrorCut"); - prop_r_error_cut_ = pset.getParameter("propRErrorCut"); - use_prop_phi_error_cut_ = pset.getParameter("usePropPhiErrorCut"); - prop_phi_error_cut_ = pset.getParameter("propPhiErrorCut"); - pt_bins_ = pset.getUntrackedParameter >("ptBins"); - eta_nbins_ = pset.getUntrackedParameter("etaNbins"); - eta_low_ = pset.getUntrackedParameter("etaLow"); - eta_up_ = pset.getUntrackedParameter("etaUp"); - monitor_ge11_ = pset.getUntrackedParameter("monitorGE11"); - monitor_ge21_ = pset.getUntrackedParameter("monitorGE21"); - monitor_ge0_ = pset.getUntrackedParameter("monitorGE0"); - - const edm::ParameterSet muon_service_parameter = pset.getParameter("ServiceParameters"); - muon_service_ = new MuonServiceProxy(muon_service_parameter, consumesCollector()); - - const double eps = std::numeric_limits::epsilon(); - pt_clamp_max_ = pt_bins_.back() - eps; - eta_clamp_max_ = eta_up_ - eps; - - // TODO pt, eta, quality check for muons +GEMEfficiencyAnalyzer::GEMEfficiencyAnalyzer(const edm::ParameterSet& ps) + : GEMDQMEfficiencySourceBase(ps), + kGEMGeometryTokenBeginRun_(esConsumes()), + kTransientTrackBuilderToken_( + esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), + kGEMRecHitCollectionToken_(consumes(ps.getUntrackedParameter("recHitTag"))), + kMuonViewToken_(consumes >(ps.getUntrackedParameter("muonTag"))), + kMuonTrackTypeName_(ps.getUntrackedParameter("muonTrackType")), + kMuonTrackType_(getMuonTrackType(kMuonTrackTypeName_)), + kMuonName_(TString(ps.getUntrackedParameter("muonName"))), + kFolder_(ps.getUntrackedParameter("folder")), + kScenario_(getScenarioOption(ps.getUntrackedParameter("scenario"))), + kStartingStateType_(getStartingStateType(ps.getUntrackedParameter("startingStateType"))), + kMuonSubdetForGEM_({ + ps.getUntrackedParameter >("muonSubdetForGE0"), + ps.getUntrackedParameter >("muonSubdetForGE11"), + ps.getUntrackedParameter >("muonSubdetForGE21"), + }), + kCSCForGEM_({ + ps.getUntrackedParameter >("cscForGE0"), + ps.getUntrackedParameter >("cscForGE11"), + ps.getUntrackedParameter >("cscForGE21"), + }), + kMuonSegmentMatchDRCut_(static_cast(ps.getUntrackedParameter("muonSegmentMatchDRCut"))), + kMuonPtMinCuts_({ + ps.getUntrackedParameter("muonPtMinCutGE0"), + ps.getUntrackedParameter("muonPtMinCutGE11"), + ps.getUntrackedParameter("muonPtMinCutGE21"), + }), + kMuonEtaMinCuts_({ + ps.getUntrackedParameter("muonEtaMinCutGE0"), + ps.getUntrackedParameter("muonEtaMinCutGE11"), + ps.getUntrackedParameter("muonEtaMinCutGE21"), + }), + kMuonEtaMaxCuts_({ + ps.getUntrackedParameter("muonEtaMaxCutGE0"), + ps.getUntrackedParameter("muonEtaMaxCutGE11"), + ps.getUntrackedParameter("muonEtaMaxCutGE21"), + }), + kPropagationErrorRCut_(static_cast(ps.getUntrackedParameter("propagationErrorRCut"))), + kPropagationErrorPhiCut_(static_cast(ps.getUntrackedParameter("propagationErrorPhiCut"))), + kBoundsErrorScale_(static_cast(ps.getUntrackedParameter("boundsErrorScale"))), + kMatchingMetric_(getMatchingMetric(ps.getUntrackedParameter("matchingMetric"))), + kMatchingCut_(static_cast(ps.getUntrackedParameter("matchingCut"))), + kMuonPtBins_(ps.getUntrackedParameter >("muonPtBins")), + kMuonEtaNbins_({ + ps.getUntrackedParameter("muonEtaNbinsGE0"), + ps.getUntrackedParameter("muonEtaNbinsGE11"), + ps.getUntrackedParameter("muonEtaNbinsGE21"), + }), + kMuonEtaLow_({ + ps.getUntrackedParameter("muonEtaLowGE0"), + ps.getUntrackedParameter("muonEtaLowGE11"), + ps.getUntrackedParameter("muonEtaLowGE21"), + }), + kMuonEtaUp_({ + ps.getUntrackedParameter("muonEtaUpGE0"), + ps.getUntrackedParameter("muonEtaUpGE11"), + ps.getUntrackedParameter("muonEtaUpGE21"), + }), + kModeDev_(ps.getUntrackedParameter("modeDev")) { + muon_service_ = + std::make_unique(ps.getParameter("ServiceParameters"), consumesCollector()); } GEMEfficiencyAnalyzer::~GEMEfficiencyAnalyzer() {} void GEMEfficiencyAnalyzer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { - // beam scenario - { - edm::ParameterSetDescription desc; - desc.addUntracked("name", "GlobalMuon"); - desc.addUntracked("folder", "GEM/Efficiency/type0"); - desc.add("recHitTag", edm::InputTag("gemRecHits")); - desc.add("muonTag", edm::InputTag("muons")); - desc.addUntracked("isCosmics", false); - desc.addUntracked("useGlobalMuon", true); - desc.add("useSkipLayer", true); - desc.add("useOnlyME11", false); - desc.add("residualRPhiCut", 2.0); // TODO need to be tuned - desc.add("usePropRErrorCut", false); - desc.add("propRErrorCut", 1.0); - desc.add("usePropPhiErrorCut", false); - desc.add("propPhiErrorCut", 0.01); - desc.addUntracked >("ptBins", {20., 30., 40., 50., 60., 70., 80., 90., 100., 120.}); - desc.addUntracked("etaNbins", 9); - desc.addUntracked("etaLow", 1.4); - desc.addUntracked("etaUp", 2.3); - desc.addUntracked("monitorGE11", true); - desc.addUntracked("monitorGE21", false); - desc.addUntracked("monitorGE0", false); - { - edm::ParameterSetDescription psd0; - psd0.setAllowAnything(); - desc.add("ServiceParameters", psd0); - } - descriptions.add("gemEfficiencyAnalyzerDefault", desc); - } // beam scenario + edm::ParameterSetDescription desc; + // GEMDQMEfficiencySourceBase + desc.addUntracked("ohStatusTag", edm::InputTag("muonGEMDigis", "OHStatus")); + desc.addUntracked("vfatStatusTag", edm::InputTag("muonGEMDigis", "VFATStatus")); + desc.addUntracked("monitorGE11", true); + desc.addUntracked("monitorGE21", false); + desc.addUntracked("monitorGE0", false); + desc.addUntracked("maskChamberWithError", false); + desc.addUntracked("logCategory", "GEMEfficiencyAnalyzer"); + + // GEMEfficiencyAnalyzer + desc.addUntracked("recHitTag", edm::InputTag("gemRecHits")); + desc.addUntracked("muonTag", edm::InputTag("muons")); + desc.addUntracked("modeDev", false); + desc.addUntracked("muonTrackType", "OuterTrack"); + desc.addUntracked("muonName", "STA Muon"); + desc.addUntracked("folder", "GEM/Efficiency/muonSTA"); + desc.addUntracked("scenario", "pp"); + // + desc.addUntracked("startingStateType", "OutermostMeasurementState"); + desc.addUntracked("muonSegmentMatchDRCut", 5.0f); // for cosmics, in cm, TODO tune + // muon pt cut + desc.addUntracked("muonPtMinCutGE0", 20.0f); + desc.addUntracked("muonPtMinCutGE11", 20.0f); + desc.addUntracked("muonPtMinCutGE21", 20.0f); + // muon abs eta cut for GE11 + desc.addUntracked("muonEtaMinCutGE11", 1.5); + desc.addUntracked("muonEtaMaxCutGE11", 2.2); + // muon abs eta cut for GE21 + desc.addUntracked("muonEtaMinCutGE21", 1.5); + desc.addUntracked("muonEtaMaxCutGE21", 2.5); + // muon abs eta cut for GE0 + desc.addUntracked("muonEtaMinCutGE0", 2.0); + desc.addUntracked("muonEtaMaxCutGE0", 3.0); + // propagation error cuts + desc.addUntracked("propagationErrorRCut", 0.5); // cm + desc.addUntracked("propagationErrorPhiCut", 0.2); // degree + // + desc.addUntracked("boundsErrorScale", -2.0); // TODO tune + // matching + desc.addUntracked("matchingMetric", "DeltaPhi"); + desc.addUntracked("matchingCut", 0.2); // DeltaPhi for pp, in degree TODO tune + // for MinotorElement + const std::vector default_pt_bins{ + 0, 5, 10., 20., 30., 40., 50., 60., 70., 80., 90., 100., 110.}; // actually edges + desc.addUntracked >("muonPtBins", default_pt_bins); + // GE11 + desc.addUntracked("muonEtaNbinsGE11", 9); // bin width = 0.1 + desc.addUntracked("muonEtaLowGE11", 1.4); + desc.addUntracked("muonEtaUpGE11", 2.3); + // GE21 + desc.addUntracked("muonEtaNbinsGE21", 12); // bin width = 0.1 + desc.addUntracked("muonEtaLowGE21", 1.4); + desc.addUntracked("muonEtaUpGE21", 2.6); + // GE0 + desc.addUntracked("muonEtaNbinsGE0", 12); // bin width = 0.1 + desc.addUntracked("muonEtaLowGE0", 1.9); + desc.addUntracked("muonEtaUpGE0", 3.1); + + // MuonSubdetId's are listed in DataFormats/MuonDetId/interface/MuonSubdetId.h + desc.addUntracked >("muonSubdetForGE0", {}); // allow all muon subdetectors. TODO optimzie. + desc.addUntracked >("muonSubdetForGE11", {}); + desc.addUntracked >("muonSubdetForGE21", {}); + // INFO when muonTrackType is "CombinedTrack" or "OuterTrack" + // https://github.com/cms-sw/cmssw/blob/CMSSW_12_4_0_pre3/DataFormats/MuonDetId/interface/CSCDetId.h#L187-L193 + // assumed to be the same area. + desc.addUntracked >("cscForGE11", {1, 2}); // ME1a, ME1b + desc.addUntracked >("cscForGE21", {}); // all CSCSegments allowed + desc.addUntracked >("cscForGE0", {}); // all CSCSegments allowed + + // ServiceParameters for MuonServiceProxy + // This will be initialized in the cfi file + edm::ParameterSetDescription service_parameters; + service_parameters.setAllowAnything(); + desc.add("ServiceParameters", service_parameters); + + descriptions.add("gemEfficiencyAnalyzerDefault", desc); } -void GEMEfficiencyAnalyzer::bookHistograms(DQMStore::IBooker& ibooker, - edm::Run const& run, - edm::EventSetup const& isetup) { - edm::ESHandle gem; - gem = isetup.getHandle(gemToken1_); +// convert a string to enum +GEMEfficiencyAnalyzer::MatchingMetric GEMEfficiencyAnalyzer::getMatchingMetric(const std::string name) { + MatchingMetric method; - if (not gem.isValid()) { - edm::LogError(kLogCategory_) << "GEMGeometry is invalid" << std::endl; - return; + if (name == "DeltaPhi") { + method = MatchingMetric::kDeltaPhi; + + } else if (name == "RdPhi") { + method = MatchingMetric::kRdPhi; + + } else { + edm::LogError(kLogCategory_) << "received an unexpected MatchingMetric: " << name + << " -> MatchingMetric::kDeltaPhi will be used instead."; + method = MatchingMetric::kDeltaPhi; } - bookEfficiencyMomentum(ibooker, gem); - bookEfficiencyChamber(ibooker, gem); - bookEfficiencyEtaPartition(ibooker, gem); - bookEfficiencyDetector(ibooker, gem); - bookResolution(ibooker, gem); - bookMisc(ibooker, gem); + return method; } -dqm::impl::MonitorElement* GEMEfficiencyAnalyzer::bookNumerator1D(DQMStore::IBooker& ibooker, MonitorElement* me) { - const std::string name = me->getName() + "_matched"; - TH1F* hist = dynamic_cast(me->getTH1F()->Clone(name.c_str())); - return ibooker.book1D(name, hist); -} +// convert a string to enum +GEMEfficiencyAnalyzer::StartingStateType GEMEfficiencyAnalyzer::getStartingStateType(const std::string name) { + StartingStateType type; -dqm::impl::MonitorElement* GEMEfficiencyAnalyzer::bookNumerator2D(DQMStore::IBooker& ibooker, MonitorElement* me) { - const std::string name = me->getName() + "_matched"; - TH2F* hist = dynamic_cast(me->getTH2F()->Clone(name.c_str())); - return ibooker.book2D(name, hist); -} + if (name == "InnermostMeasurementState") { + type = StartingStateType::kInnermostMeasurementState; -void GEMEfficiencyAnalyzer::bookEfficiencyMomentum(DQMStore::IBooker& ibooker, const edm::ESHandle& gem) { - // TODO Efficiency/Source - ibooker.setCurrentFolder(folder_ + "/Efficiency"); + } else if (name == "OutermostMeasurementState") { + type = StartingStateType::kOutermostMeasurementState; - const TString pt_x_title = "Muon p_{T} [GeV]"; - const int pt_nbinsx = pt_bins_.size() - 1; + } else if (name == "StateOnSurfaceWithCSCSegment") { + type = StartingStateType::kStateOnSurfaceWithCSCSegment; - const std::string eta_x_title = "Muon |#eta|"; - const std::string phi_x_title = "Muon #phi [rad]"; + } else if (name == "AlignmentStyle") { + type = StartingStateType::kAlignmentStyle; - for (const GEMStation* station : gem->stations()) { - const int region_id = station->region(); - const int station_id = station->station(); + } else { + edm::LogError(kLogCategory_) << "received an unexpected StartingStateType: " << name + << " -> StartingStateType::kOutermostMeasurementState will be used instead."; + type = StartingStateType::kOutermostMeasurementState; + } - if (skipGEMStation(station_id)) { - continue; - } + return type; +} - const GEMDetId key = getReStKey(region_id, station_id); - const TString name_suffix = GEMUtils::getSuffixName(region_id, station_id); - const TString title_suffix = GEMUtils::getSuffixTitle(region_id, station_id); +// convert a string to enum +reco::Muon::MuonTrackType GEMEfficiencyAnalyzer::getMuonTrackType(const std::string name) { + reco::Muon::MuonTrackType muon_track_type; - const TString title = name_.c_str() + title_suffix; + // DO NOT ALLOW TYPO + if (name == "InnerTrack") { + muon_track_type = reco::Muon::MuonTrackType::InnerTrack; - TH1F* h_muon_pt = new TH1F("muon_pt" + name_suffix, title, pt_nbinsx, &pt_bins_[0]); - h_muon_pt->SetXTitle(pt_x_title); - me_muon_pt_[key] = ibooker.book1D(h_muon_pt->GetName(), h_muon_pt); - me_muon_pt_matched_[key] = bookNumerator1D(ibooker, me_muon_pt_[key]); + } else if (name == "OuterTrack") { + muon_track_type = reco::Muon::MuonTrackType::OuterTrack; - me_muon_eta_[key] = ibooker.book1D("muon_eta" + name_suffix, title, eta_nbins_, eta_low_, eta_up_); - me_muon_eta_[key]->setXTitle(eta_x_title); - me_muon_eta_matched_[key] = bookNumerator1D(ibooker, me_muon_eta_[key]); + } else if (name == "CombinedTrack") { + muon_track_type = reco::Muon::MuonTrackType::CombinedTrack; - me_muon_phi_[key] = ibooker.book1D("muon_phi" + name_suffix, title, 36, -M_PI, M_PI); - me_muon_phi_[key]->setAxisTitle(phi_x_title); - me_muon_phi_matched_[key] = bookNumerator1D(ibooker, me_muon_phi_[key]); - } // station -} + } else { + edm::LogError(kLogCategory_) << "received an unexpected reco::Muon::MuonTrackType: " << name + << " --> OuterTrack will be used instead."; -void GEMEfficiencyAnalyzer::bookEfficiencyChamber(DQMStore::IBooker& ibooker, const edm::ESHandle& gem) { - // TODO Efficiency/Source - ibooker.setCurrentFolder(folder_ + "/Efficiency"); + muon_track_type = reco::Muon::MuonTrackType::OuterTrack; + } - for (const GEMStation* station : gem->stations()) { - const int region_id = station->region(); - const int station_id = station->station(); + return muon_track_type; +} - if (skipGEMStation(station_id)) { - continue; - } +GEMEfficiencyAnalyzer::ScenarioOption GEMEfficiencyAnalyzer::getScenarioOption(const std::string name) { + ScenarioOption scenario; + if (name == "pp") { + scenario = ScenarioOption::kPP; - const std::vector superchambers = station->superChambers(); - if (not checkRefs(superchambers)) { - edm::LogError(kLogCategory_) << "failed to get a valid vector of GEMSuperChamber ptrs" << std::endl; - return; - } + } else if (name == "cosmics") { + scenario = ScenarioOption::kCosmics; - const int num_chambers = superchambers.size(); - for (const GEMChamber* chamber : superchambers[0]->chambers()) { - const int layer_id = chamber->id().layer(); + } else if (name == "HeavyIons") { + scenario = ScenarioOption::kHeavyIons; - const TString name_suffix = GEMUtils::getSuffixName(region_id, station_id, layer_id); - const TString title_suffix = GEMUtils::getSuffixTitle(region_id, station_id, layer_id); - const GEMDetId key = getReStLaKey(chamber->id()); + edm::LogInfo(kLogCategory_) << "The scenario is set to \"HeavyIons\"" + << " but there is no strategy dedicated to" + << "\"HeavyIons\" scenario. The strategy for " + << "the \"pp\" scenario will be used insteqad."; - me_chamber_[key] = - ibooker.book1D("chamber" + name_suffix, name_.c_str() + title_suffix, num_chambers, 0.5, num_chambers + 0.5); - me_chamber_[key]->setAxisTitle("Chamber"); - me_chamber_[key]->getTH1F()->SetNdivisions(-num_chambers, "Y"); - for (int binx = 1; binx <= num_chambers; binx++) { - me_chamber_[key]->setBinLabel(binx, std::to_string(binx)); - } + } else { + scenario = ScenarioOption::kPP; - me_chamber_matched_[key] = bookNumerator1D(ibooker, me_chamber_[key]); - } // layer - } // station + edm::LogError(kLogCategory_) << "received an unexpected ScenarioOption: " << name + << ". Choose from (\"pp\", \"cosmics\", \"HeavyIons\")" + << " --> pp will be used instead."; + } + + return scenario; } -void GEMEfficiencyAnalyzer::bookEfficiencyEtaPartition(DQMStore::IBooker& ibooker, - const edm::ESHandle& gem) { - // TODO Efficiency/Source - ibooker.setCurrentFolder(folder_ + "/Efficiency"); +void GEMEfficiencyAnalyzer::bookHistograms(DQMStore::IBooker& ibooker, edm::Run const&, edm::EventSetup const& setup) { + ibooker.setCurrentFolder(kFolder_); + + const GEMGeometry* gem = nullptr; + if (auto handle = setup.getHandle(kGEMGeometryTokenBeginRun_)) { + gem = handle.product(); + } else { + edm::LogError(kLogCategory_ + "|bookHistograms") << "failed to get GEMGeometry"; + return; + } for (const GEMStation* station : gem->stations()) { const int region_id = station->region(); @@ -207,585 +271,971 @@ void GEMEfficiencyAnalyzer::bookEfficiencyEtaPartition(DQMStore::IBooker& ibooke continue; } - const std::vector superchambers = station->superChambers(); - if (not checkRefs(superchambers)) { - edm::LogError(kLogCategory_) << "failed to get a valid vector of GEMSuperChamber ptrs" << std::endl; + //////////////////////////////////////////////////////////////////////////// + // Region-Station + //////////////////////////////////////////////////////////////////////////// + { // shadowing to reuse short variable names + const GEMDetId key = getReStKey(region_id, station_id); + const TString suffix = GEMUtils::getSuffixName(region_id, station_id); + const TString title = kMuonName_ + GEMUtils::getSuffixTitle(region_id, station_id); + + // sources for eff. vs muon pt + TH1F* h_muon_pt = new TH1F("muon_pt" + suffix, title, kMuonPtBins_.size() - 1, &kMuonPtBins_[0]); + me_muon_pt_[key] = ibooker.book1D(h_muon_pt->GetName(), h_muon_pt); + me_muon_pt_[key]->setAxisTitle("Muon p_{T} [GeV]", 1); + me_muon_pt_matched_[key] = bookNumerator1D(ibooker, me_muon_pt_[key]); + + // sources for eff. vs muon eta + me_muon_eta_[key] = ibooker.book1D("muon_eta" + suffix, + title, + kMuonEtaNbins_.at(station_id), + kMuonEtaLow_.at(station_id), + kMuonEtaUp_.at(station_id)); + me_muon_eta_[key]->setAxisTitle("Muon |#eta|", 1); + me_muon_eta_matched_[key] = bookNumerator1D(ibooker, me_muon_eta_[key]); + + // sources for eff. vs muon phi + me_muon_phi_[key] = ibooker.book1D("muon_phi" + suffix, title, 36, -180, 180); + me_muon_phi_[key]->setAxisTitle("Muon #phi [deg]"); + me_muon_phi_matched_[key] = bookNumerator1D(ibooker, me_muon_phi_[key]); + + if (kModeDev_) { + // without cuts except the fiducial cut + TH1F* h_muon_pt_all = new TH1F("muon_pt_all" + suffix, title, kMuonPtBins_.size() - 1, &kMuonPtBins_[0]); + me_muon_pt_all_[key] = ibooker.book1D(h_muon_pt_all->GetName(), h_muon_pt_all); + me_muon_pt_all_[key]->setAxisTitle("Muon p_{T} [GeV]", 1); + me_muon_pt_all_matched_[key] = bookNumerator1D(ibooker, me_muon_pt_all_[key]); + + me_muon_eta_all_[key] = ibooker.book1D("muon_eta_all" + suffix, + title, + kMuonEtaNbins_.at(station_id), + kMuonEtaLow_.at(station_id), + kMuonEtaUp_.at(station_id)); + me_muon_eta_all_[key]->setAxisTitle("Muon |#eta|", 1); + me_muon_eta_all_matched_[key] = bookNumerator1D(ibooker, me_muon_eta_all_[key]); + + me_muon_charge_[key] = ibooker.book1D("muon_charge" + suffix, title, 3, -1.5, 1.5); + me_muon_charge_[key]->setAxisTitle("Muon charge", 1); + me_muon_charge_matched_[key] = bookNumerator1D(ibooker, me_muon_charge_[key]); + } + } // shadowing + + //////////////////////////////////////////////////////////////////////////// + // Region - Station - Layer + //////////////////////////////////////////////////////////////////////////// + const std::vector superchamber_vec = station->superChambers(); + if (not checkRefs(superchamber_vec)) { + edm::LogError(kLogCategory_) << "got an invalid ptr from GEMStation::superChambers"; + return; + } + + const std::vector chamber_vec = superchamber_vec.front()->chambers(); + if (not checkRefs(chamber_vec)) { + edm::LogError(kLogCategory_) << "got an invalid ptr from GEMSuperChamber::chambers"; return; } - for (const GEMChamber* chamber : superchambers[0]->chambers()) { + // we actually loop over layers + for (const GEMChamber* chamber : chamber_vec) { const int layer_id = chamber->id().layer(); - const int num_ieta = chamber->nEtaPartitions(); - const TString name_suffix = GEMUtils::getSuffixName(region_id, station_id, layer_id); - const TString title_suffix = GEMUtils::getSuffixTitle(region_id, station_id, layer_id); - const GEMDetId key = getReStLaKey(chamber->id()); + { // shadowing + const GEMDetId key = getReStLaKey(chamber->id()); + const TString suffix = GEMUtils::getSuffixName(region_id, station_id, layer_id); + const TString title = kMuonName_ + GEMUtils::getSuffixTitle(region_id, station_id, layer_id); + + me_chamber_ieta_[key] = bookChamberEtaPartition(ibooker, "chamber_ieta" + suffix, title, station); + me_chamber_ieta_matched_[key] = bookNumerator2D(ibooker, me_chamber_ieta_[key]); + + if (kModeDev_) { + me_prop_path_length_[key] = ibooker.book1D("prop_path_length" + suffix, title, 50, 0.0, 5.0); + me_prop_path_length_[key]->setAxisTitle("Propagation path length [cm]", 1); + me_prop_path_length_matched_[key] = bookNumerator1D(ibooker, me_prop_path_length_[key]); + + // prop. r error in the global coordinates + me_prop_err_r_[key] = ibooker.book1D("prop_err_r" + suffix, title, 60, 0.0, 3.0); + me_prop_err_r_[key]->setAxisTitle("Propagation global #sigma_{R} [cm]", 1); + me_prop_err_r_matched_[key] = bookNumerator1D(ibooker, me_prop_err_r_[key]); + + // prop. r error in the global coordinates + me_prop_err_phi_[key] = ibooker.book1D("prop_err_phi" + suffix, title, 50, 0.0, 1.0); + me_prop_err_phi_[key]->setAxisTitle("Propagation's global #sigma_{#phi} [deg]", 1); + me_prop_err_phi_matched_[key] = bookNumerator1D(ibooker, me_prop_err_phi_[key]); + + // cutflow + me_cutflow_[key] = ibooker.book1D("cutflow" + suffix, title, 5, 0.5, 5.5); + me_cutflow_[key]->setBinLabel(1, "All"); + me_cutflow_[key]->setBinLabel(2, Form("#sigma_{R} < %.3f cm", kPropagationErrorRCut_)); + me_cutflow_[key]->setBinLabel(3, Form("#sigma_{phi} < %.3f deg", kPropagationErrorPhiCut_)); + me_cutflow_[key]->setBinLabel(4, Form("p_{T} > %.1f GeV", kMuonPtMinCuts_.at(station_id))); + me_cutflow_[key]->setBinLabel( + 5, Form("%.2f < |#eta| < %.2f", kMuonEtaMinCuts_.at(station_id), kMuonEtaMaxCuts_.at(station_id))); + + me_cutflow_matched_[key] = bookNumerator1D(ibooker, me_cutflow_.at(key)); + } + } // shadowing + } // GEMChamber + + //////////////////////////////////////////////////////////////////////////// + // Region - Station - iEta + //////////////////////////////////////////////////////////////////////////// + const std::vector eta_partition_vec = chamber_vec.front()->etaPartitions(); + if (not checkRefs(eta_partition_vec)) { + edm::LogError(kLogCategory_) << "got an invalid ptr from GEMChamber::etaPartitions"; + continue; + } - me_ieta_[key] = ibooker.book1D("ieta" + name_suffix, name_.c_str() + title_suffix, num_ieta, 0.5, num_ieta + 0.5); - me_ieta_[key]->setAxisTitle("i#eta"); - me_ieta_[key]->getTH1F()->SetNdivisions(-num_ieta, "Y"); - for (int binx = 1; binx <= num_ieta; binx++) { - me_ieta_[key]->setBinLabel(binx, std::to_string(binx)); - } + for (const GEMEtaPartition* eta_partition : eta_partition_vec) { + const int ieta = eta_partition->id().ieta(); + + { // shadowing + const GEMDetId key = getReStEtKey(eta_partition->id()); + const TString gem_label = TString::Format("GE%d1-%c-E%d", station_id, (region_id > 0 ? 'P' : 'M'), ieta); + const TString suffix = "_" + gem_label; + const TString title = kMuonName_ + " " + gem_label; + + // FIXME + const float dphi_up = (kMatchingMetric_ == MatchingMetric::kDeltaPhi) ? kMatchingCut_ + : (kScenario_ == ScenarioOption::kCosmics) ? 1.0 + : 0.2; + me_residual_phi_[key] = ibooker.book1D("residual_phi" + suffix, title, 41, -dphi_up, dphi_up); + me_residual_phi_[key]->setAxisTitle("Residual in global #phi [deg]", 1); + + if (kModeDev_) { + // matching metric + std::string matching_metric_x_title; + if (kMatchingMetric_ == MatchingMetric::kDeltaPhi) { + matching_metric_x_title = "#Delta#phi [deg]"; + + } else if (kMatchingMetric_ == MatchingMetric::kRdPhi) { + matching_metric_x_title = "R#Delta#phi [cm]"; + + } else { + matching_metric_x_title = "UNKNOWN METRIC"; + } + + // matching metrics without any cuts + me_matching_metric_all_[key] = + ibooker.book1D("matching_metric_all" + suffix, title, 101, -3 * kMatchingCut_, 3 * kMatchingCut_); + me_matching_metric_all_[key]->setAxisTitle(matching_metric_x_title, 1); + + // matching metrics after cuts + me_matching_metric_[key] = + ibooker.book1D("matching_metric" + suffix, title, 101, -kMatchingCut_, kMatchingCut_); + me_matching_metric_[key]->setAxisTitle(matching_metric_x_title, 1); + + // residuals in the global phi for muons (q < 0) + me_residual_phi_muon_[key] = + ibooker.book1D("residual_phi_muon" + suffix, title + " (#mu, q < 0)", 50, -0.5, 0.5); + me_residual_phi_muon_[key]->setAxisTitle("Residual in global #phi [deg]", 1); + me_residual_phi_muon_[key]->setAxisTitle("Number of muons", 2); + + // residuals in the global phi for anti-muons (q > 0) + me_residual_phi_antimuon_[key] = + ibooker.book1D("residual_phi_antimuon" + suffix, title + " (#tilde{#mu}, q > 0)", 50, -0.5, 0.5); + me_residual_phi_antimuon_[key]->setAxisTitle("Residual in global #phi [deg]", 1); + me_residual_phi_antimuon_[key]->setAxisTitle("Number of anti-muons", 2); + + // residuals in the local x + me_residual_x_[key] = ibooker.book1D("residual_x" + suffix, title, 60, -1.5, 1.5); + me_residual_x_[key]->setAxisTitle("Residual in local X [cm]", 1); + + // residuals in the local y + me_residual_y_[key] = ibooker.book1D("residual_y" + suffix, title, 48, -12.0, 12.0); + me_residual_y_[key]->setAxisTitle("Residual in local Y [cm]", 1); + + // the strip difference + me_residual_strip_[key] = ibooker.book1D("residual_strip" + suffix, title, 21, -10.0, 10.0); + me_residual_strip_[key]->setAxisTitle("propagation strip - hit strip", 1); + } + } // shadowing + } // GEMEtaPartition + } // GEMStataion +} - me_ieta_matched_[key] = bookNumerator1D(ibooker, me_ieta_[key]); - } // layer - } // station +// In the `cosmics` scenario, TODO doc +bool GEMEfficiencyAnalyzer::isInsideOut(const reco::Track& track) { + return track.innerPosition().mag2() > track.outerPosition().mag2(); } -void GEMEfficiencyAnalyzer::bookEfficiencyDetector(DQMStore::IBooker& ibooker, const edm::ESHandle& gem) { - // TODO Efficiency/Source - ibooker.setCurrentFolder(folder_ + "/Efficiency"); +// +void GEMEfficiencyAnalyzer::buildGEMLayers(const GEMGeometry* gem) { + std::map > chambers_per_layer; for (const GEMStation* station : gem->stations()) { const int region_id = station->region(); const int station_id = station->station(); + const bool is_ge11 = station_id == 1; if (skipGEMStation(station_id)) { continue; } - const std::vector superchambers = station->superChambers(); - if (not checkRefs(superchambers)) { - edm::LogError(kLogCategory_) << "failed to get a valid vector of GEMSuperChamber ptrs" << std::endl; - return; - } + for (const GEMSuperChamber* superchamber : station->superChambers()) { + // GE11: chamber == 0 for even chambers, chamber == 1 for odd chambers + // GE21 and GE0: chamber == 0 for all chambers + const int chamber_id = is_ge11 ? superchamber->id().chamber() % 2 : 0; - const int num_ch = superchambers.size(); + for (const GEMChamber* chamber : superchamber->chambers()) { + const int layer_id = chamber->id().layer(); - for (const GEMChamber* chamber : superchambers[0]->chambers()) { - const int layer_id = chamber->id().layer(); - const int num_ieta = chamber->nEtaPartitions(); - - const TString name_suffix = GEMUtils::getSuffixName(region_id, station_id, layer_id); - const TString title_suffix = GEMUtils::getSuffixTitle(region_id, station_id, layer_id); - const GEMDetId key = getReStLaKey(chamber->id()); - - me_detector_[key] = ibooker.book2D("detector" + name_suffix, - name_.c_str() + title_suffix, - num_ch, - 0.5, - num_ch + 0.5, - num_ieta, - 0.5, - num_ieta + 0.5); - setDetLabelsEta(me_detector_[key], station); - - me_detector_matched_[key] = bookNumerator2D(ibooker, me_detector_[key]); - } // layer - } // station + const GEMDetId key{region_id, 1, station_id, layer_id, chamber_id, 0}; + + if (chambers_per_layer.find(key) == chambers_per_layer.end()) { + chambers_per_layer.insert({key, std::vector()}); + } + chambers_per_layer.at(key).push_back(chamber); + } // GEMChamber => iterate over layer ids + } // GEMSuperChamber => iterate over chamber ids + } // GEMStation + + gem_layers_.reserve(chambers_per_layer.size()); + for (auto [gem_id, chambers] : chambers_per_layer) { + // layer position and rotation + const float z_origin = chambers.front()->position().z(); + Surface::PositionType position{0.f, 0.f, z_origin}; + Surface::RotationType rotation; + + // eta partitions should have same R and Z spans. + // XXX is it true? + auto [r_min, r_max] = chambers.front()->surface().rSpan(); + auto [z_min, z_max] = chambers.front()->surface().zSpan(); + + z_min -= z_origin; + z_max -= z_origin; + + // the bounds from min and max R and Z in the local coordinates. + SimpleDiskBounds* bounds = new SimpleDiskBounds(r_min, r_max, z_min, z_max); + const Disk::DiskPointer layer = Disk::build(position, rotation, bounds); + + gem_layers_.emplace_back(layer, chambers, gem_id); + + LogDebug(kLogCategory_) << gem_id + << Form(" ==> (z_origin, z_min, z_max) = (%.2f, %.2f, %.2f)", z_origin, z_min, z_max); + } // ring } -void GEMEfficiencyAnalyzer::bookResolution(DQMStore::IBooker& ibooker, const edm::ESHandle& gem) { - ibooker.setCurrentFolder(folder_ + "/Resolution"); - for (const GEMStation* station : gem->stations()) { - const int region_id = station->region(); - const int station_id = station->station(); +// TODO doc +// See https://twiki.cern.ch/twiki/pub/CMS/GEMPPDOfflineDQM/check-muon-direction.pdf +bool GEMEfficiencyAnalyzer::checkPropagationDirection(const reco::Track* track, const GEMLayer& layer) { + const bool is_same_region = track->eta() * layer.id.region() > 0; - if (skipGEMStation(station_id)) { - continue; - } + bool skip = false; + if (kScenario_ == ScenarioOption::kCosmics) { + float p2_in = track->innerMomentum().mag2(); + float p2_out = track->outerMomentum().mag2(); + if (isInsideOut(*track)) + std::swap(p2_in, p2_out); + const bool is_outgoing = p2_in > p2_out; - const std::vector superchambers = station->superChambers(); - if (not checkRefs(superchambers)) { - edm::LogError(kLogCategory_) << "failed to get a valid vector of GEMSuperChamber ptrs" << std::endl; - return; - } + skip = (is_outgoing xor is_same_region); - const std::vector chambers = superchambers[0]->chambers(); - if (not checkRefs(chambers)) { - edm::LogError(kLogCategory_) << "failed to get a valid vector of GEMChamber ptrs" << std::endl; - return; - } + } else { + // beam scenario + skip = not is_same_region; + } + + return skip; +} + +GEMEfficiencyAnalyzer::StartingState GEMEfficiencyAnalyzer::buildStartingState( + const reco::Muon& muon, const reco::TransientTrack& transient_track, const GEMLayer& gem_layer) { + bool found = false; + TrajectoryStateOnSurface state; + DetId det_id; - for (const GEMEtaPartition* eta_partition : chambers[0]->etaPartitions()) { - const int ieta = eta_partition->id().roll(); + switch (kStartingStateType_) { + case StartingStateType::kOutermostMeasurementState: { + std::tie(found, state, det_id) = getOutermostMeasurementState(transient_track); + break; + } + case StartingStateType::kInnermostMeasurementState: { + std::tie(found, state, det_id) = getInnermostMeasurementState(transient_track); + break; + } + case StartingStateType::kStateOnSurfaceWithCSCSegment: { + std::tie(found, state, det_id) = buildStateOnSurfaceWithCSCSegment(muon, transient_track, gem_layer); + break; + } + case StartingStateType::kAlignmentStyle: { + std::tie(found, state, det_id) = buildStartingStateAlignmentStyle(muon, transient_track, gem_layer); + break; + } + default: { + edm::LogError(kLogCategory_) << "got an unexpected StartingStateType"; + break; + } + } - const GEMDetId key = getReStEtKey(eta_partition->id()); - // TODO - const TString name_suffix = TString::Format("_GE%+.2d_R%d", region_id * (station_id * 10 + 1), ieta); - const TString title = - name_.c_str() + TString::Format(" : GE%+.2d Roll %d", region_id * (station_id * 10 + 1), ieta); + found &= state.isValid(); - me_residual_rphi_[key] = - ibooker.book1D("residual_rphi" + name_suffix, title, 50, -residual_rphi_cut_, residual_rphi_cut_); - me_residual_rphi_[key]->setAxisTitle("Residual in R#phi [cm]"); + if (found and (det_id.det() == DetId::Detector::Muon)) { + found &= isMuonSubdetAllowed(det_id, gem_layer.id.station()); + } - me_residual_y_[key] = ibooker.book1D("residual_y" + name_suffix, title, 60, -12.0, 12.0); - me_residual_y_[key]->setAxisTitle("Residual in Local Y [cm]"); + if (found) { + if (MuonHitHelper::isGEM(det_id)) { + const GEMDetId start_id{det_id}; + + const bool are_same_region = gem_layer.id.region() == start_id.region(); + const bool are_same_station = gem_layer.id.station() == start_id.station(); + const bool are_same_layer = gem_layer.id.layer() == start_id.layer(); + if (are_same_region and are_same_station and are_same_layer) { + LogDebug(kLogCategory_) + << "The starting detector of the muon propagation is same with the destination. Skip this propagation."; + found = false; + } + } // isGEM + } // found - me_pull_y_[key] = ibooker.book1D("pull_y" + name_suffix, title, 60, -3.0, 3.0); - me_pull_y_[key]->setAxisTitle("Pull in Local Y"); - } // ieta - } // station + return std::make_tuple(found, state, det_id); } -void GEMEfficiencyAnalyzer::bookMisc(DQMStore::IBooker& ibooker, const edm::ESHandle& gem) { - ibooker.setCurrentFolder(folder_ + "/Misc"); - // FIXME the range shoule be dependent on the scenario - me_prop_r_err_ = ibooker.book1D("prop_r_err", ";Propagation Global R Error [cm];Entries", 20, 0.0, 20.0); - me_prop_phi_err_ = ibooker.book1D("prop_phi_err", "Propagation Global Phi Error [rad];Entries", 20, 0.0, M_PI); - me_all_abs_residual_rphi_ = ibooker.book1D("all_abs_residual_rphi", ";Residual in R#phi [cm];Entries", 20, 0.0, 20.0); +// Use the innermost measurement state as an initial state for the muon propagation. +// NOTE If the analyzer uses global or standalone muons and GEM hits are used in the +// muon reconstruction, the result should be biased. +// In 12_4_0_pre3, GEM hits are used in the pp scenario, but not in the cosmics scenario. +// https://github.com/cms-sw/cmssw/blob/CMSSW_12_4_0_pre3/RecoMuon/StandAloneMuonProducer/python/standAloneMuons_cfi.py#L111-L127 +// https://github.com/cms-sw/cmssw/blob/CMSSW_12_4_0_pre3/RecoMuon/CosmicMuonProducer/python/cosmicMuons_cfi.py +GEMEfficiencyAnalyzer::StartingState GEMEfficiencyAnalyzer::getInnermostMeasurementState( + const reco::TransientTrack& transient_track) { + TrajectoryStateOnSurface state; + DetId det_id; + + const reco::Track& track = transient_track.track(); + // get real innermost state + if (isInsideOut(track)) { + state = transient_track.outermostMeasurementState(); + det_id = track.outerDetId(); - for (const GEMStation* station : gem->stations()) { - const int region_id = station->region(); - const int station_id = station->station(); - - if (skipGEMStation(station_id)) { - continue; - } + } else { + state = transient_track.innermostMeasurementState(); + det_id = track.innerDetId(); + } - const std::vector superchambers = station->superChambers(); - if (not checkRefs(superchambers)) { - edm::LogError(kLogCategory_) << "failed to get a valid vector of GEMSuperChamber ptrs" << std::endl; - return; - } - // ignore layer ids - const int num_ch = superchambers.size(); - - const GEMDetId key = getReStKey(region_id, station_id); - const TString name_suffix = GEMUtils::getSuffixName(region_id, station_id); - const TString title_suffix = GEMUtils::getSuffixTitle(region_id, station_id); - me_prop_chamber_[key] = ibooker.book1D("prop_chamber" + name_suffix, title_suffix, num_ch, 0.5, num_ch + 0.5); - me_prop_chamber_[key]->setAxisTitle("Destination Chamber Id", 1); - me_prop_chamber_[key]->setAxisTitle("Entries", 2); - } // station + return std::make_tuple(true, state, det_id); } -void GEMEfficiencyAnalyzer::analyze(const edm::Event& event, const edm::EventSetup& setup) { - edm::Handle rechit_collection; - event.getByToken(rechit_token_, rechit_collection); - if (not rechit_collection.isValid()) { - edm::LogError(kLogCategory_) << "GEMRecHitCollection is invalid" << std::endl; - return; - } +// Use the outermost measurement state as an initial state for the muon propagation. +GEMEfficiencyAnalyzer::StartingState GEMEfficiencyAnalyzer::getOutermostMeasurementState( + const reco::TransientTrack& transient_track) { + const reco::Track& track = transient_track.track(); - edm::Handle > muon_view; - event.getByToken(muon_token_, muon_view); - if (not muon_view.isValid()) { - edm::LogError(kLogCategory_) << "View is invalid" << std::endl; - return; - } + TrajectoryStateOnSurface state; + DetId det_id; - edm::ESHandle gem; - gem = setup.getHandle(gemToken2_); + // get real innermost state + if (isInsideOut(track)) { + state = transient_track.innermostMeasurementState(); + det_id = track.innerDetId(); - if (not gem.isValid()) { - edm::LogError(kLogCategory_) << "GEMGeometry is invalid" << std::endl; - return; + } else { + state = transient_track.outermostMeasurementState(); + det_id = track.outerDetId(); } - edm::ESHandle global_tracking_geometry; + return std::make_tuple(true, state, det_id); +} + +// Find the nearest CSC segment to the given GEM layer and then use a trajectory +// state on the surface with the segment as an initial state. +// XXX This method results in the residual phi distribution with two peaks +// because the muon and antimuon make different peaks. +GEMEfficiencyAnalyzer::StartingState GEMEfficiencyAnalyzer::buildStateOnSurfaceWithCSCSegment( + const reco::Muon& muon, const reco::TransientTrack& transient_track, const GEMLayer& gem_layer) { + bool found = false; + TrajectoryStateOnSurface state; + DetId det_id; - global_tracking_geometry = setup.getHandle(globalGeomToken_); + if (const CSCSegment* csc_segment = findCSCSegment(muon, transient_track, gem_layer)) { + const GeomDet* det = muon_service_->trackingGeometry()->idToDet(csc_segment->cscDetId()); + const GlobalPoint global_position = det->toGlobal(csc_segment->localPosition()); - if (not global_tracking_geometry.isValid()) { - edm::LogError(kLogCategory_) << "GlobalTrackingGeometry is invalid" << std::endl; - return; + found = true; + state = transient_track.stateOnSurface(global_position); + det_id = csc_segment->geographicalId(); } - edm::ESHandle transient_track_builder; - transient_track_builder = setup.getHandle(trasientTrackToken_); + return std::make_tuple(found, state, det_id); +} - if (not transient_track_builder.isValid()) { - edm::LogError(kLogCategory_) << "TransientTrackRecord is invalid" << std::endl; - return; - } +// Find an ME11 segment and the build an initial state using the location and +// direction of the ME11 segment. If the muon has an inner track, the outerP of +// the inner track is used as the momentum magnitude. If not, the momentum +// magnitude is set to 1 GeV. +// https://github.com/gem-sw/alignment/blob/713e8fa/GEMCSCBendingAnalyzer/MuonAnalyser/plugins/analyser.cc#L435-L446 +GEMEfficiencyAnalyzer::StartingState GEMEfficiencyAnalyzer::buildStartingStateAlignmentStyle( + const reco::Muon& muon, const reco::TransientTrack& transient_track, const GEMLayer& gem_layer) { + bool found = false; + TrajectoryStateOnSurface state; + DetId det_id; - muon_service_->update(setup); - edm::ESHandle propagator = muon_service_->propagator("SteppingHelixPropagatorAny"); - if (not propagator.isValid()) { - edm::LogError(kLogCategory_) << "Propagator is invalid" << std::endl; - return; - } + if (const CSCSegment* csc_segment = findCSCSegment(muon, transient_track, gem_layer)) { + found = true; + det_id = csc_segment->geographicalId(); - if (rechit_collection->size() < 1) { - edm::LogInfo(kLogCategory_) << "empty rechit collection" << std::endl; - return; - } + // position + const LocalPoint position = csc_segment->localPosition(); + // momentum + const reco::TrackRef inner_track = muon.innerTrack(); + const float momentum_magnitude = inner_track.isNonnull() ? inner_track.get()->outerP() : 1.0f; + const LocalVector momentum = momentum_magnitude * csc_segment->localDirection(); - if (muon_view->empty()) { - edm::LogInfo(kLogCategory_) << "empty muon collection" << std::endl; - return; + // trajectory parameter + const LocalTrajectoryParameters trajectory_parameters{position, momentum, muon.charge()}; + + // trajectory error + const LocalTrajectoryError trajectory_error = + asSMatrix<5>(csc_segment->parametersError().similarityT(csc_segment->projectionMatrix())); + + // surface + const Plane& surface = muon_service_->trackingGeometry()->idToDet(det_id)->surface(); + + state = + TrajectoryStateOnSurface{trajectory_parameters, trajectory_error, surface, &*muon_service_->magneticField()}; } - const std::vector layer_vector = buildGEMLayers(gem); + return std::make_tuple(found, state, det_id); +} - for (const reco::Muon& muon : *muon_view) { - const reco::Track* track = getTrack(muon); - if (track == nullptr) { - edm::LogError(kLogCategory_) << "failed to get a muon track" << std::endl; +// +// for beam scenario +const CSCSegment* GEMEfficiencyAnalyzer::findCSCSegmentBeam(const reco::TransientTrack& transient_track, + const GEMLayer& gem_layer) { + const CSCSegment* best_csc_segment = nullptr; + double min_z_distance = std::numeric_limits::infinity(); // in cm + + for (trackingRecHit_iterator tracking_rechit_iter = transient_track.recHitsBegin(); + tracking_rechit_iter != transient_track.recHitsEnd(); + tracking_rechit_iter++) { + const TrackingRecHit* tracking_rechit = *tracking_rechit_iter; + if (not tracking_rechit->isValid()) { + LogDebug(kLogCategory_) << "got an invalid trackingRecHit_iterator from transient_track. skip it."; continue; } - const reco::TransientTrack transient_track = transient_track_builder->build(track); - if (not transient_track.isValid()) { - edm::LogError(kLogCategory_) << "failed to build TransientTrack" << std::endl; + const DetId det_id = tracking_rechit->geographicalId(); + if (not MuonHitHelper::isCSC(det_id)) { continue; } - for (const GEMLayerData& layer : layer_vector) { - if (use_skip_layer_ and skipLayer(track, layer)) { - edm::LogInfo(kLogCategory_) << "skip GEM Layer" << std::endl; - continue; - } + if (tracking_rechit->dimension() != kCSCSegmentDimension_) { + continue; + } - const auto [start_state, start_id] = getStartingState(transient_track, layer, global_tracking_geometry); + const CSCDetId csc_id{det_id}; + if (not isCSCAllowed(csc_id, gem_layer.id.station())) { + continue; + } - if (not start_state.isValid()) { - edm::LogInfo(kLogCategory_) << "failed to get a starting state" << std::endl; + if (auto csc_segment = dynamic_cast(tracking_rechit)) { + const GeomDet* det = muon_service_->trackingGeometry()->idToDet(csc_id); + if (det == nullptr) { + edm::LogError(kLogCategory_) << "GlobalTrackingGeometry::idToDet returns nullptr; CSCDetId=" << csc_id; continue; } + const GlobalPoint global_position = det->toGlobal(csc_segment->localPosition()); + const float z_distance = std::abs(gem_layer.disk->localZclamped(global_position)); - if (use_only_me11_ and (not isME11(start_id))) { - edm::LogInfo(kLogCategory_) << "skip a starting state because it is not ME11" << std::endl; - continue; + if (z_distance < min_z_distance) { + best_csc_segment = csc_segment; + min_z_distance = z_distance; } - // the trajectory state on the destination surface - const TrajectoryStateOnSurface dest_state = propagator->propagate(start_state, *(layer.disk)); - if (not dest_state.isValid()) { - edm::LogInfo(kLogCategory_) << "failed to propagate a muon" << std::endl; - continue; - } + } else { + edm::LogError(kLogCategory_) + << "failed to perform the conversion from `const TrackingRechit*` to `const CSCSegment*`"; + } + } // trackingRecHit_iterator - const GlobalPoint dest_global_pos = dest_state.globalPosition(); + return best_csc_segment; +} - if (not checkBounds(dest_global_pos, (*layer.disk))) { - edm::LogInfo(kLogCategory_) << "failed to pass checkBounds" << std::endl; - continue; - } +const CSCSegment* GEMEfficiencyAnalyzer::findCSCSegmentCosmics(const reco::Muon& muon, const GEMLayer& gem_layer) { + const CSCSegment* best_csc_segment = nullptr; - const GEMEtaPartition* eta_partition = findEtaPartition(dest_global_pos, layer.chambers); - if (eta_partition == nullptr) { - edm::LogInfo(kLogCategory_) << "failed to find an eta partition" << std::endl; + for (const reco::MuonChamberMatch& chamber_match : muon.matches()) { + if (not MuonHitHelper::isCSC(chamber_match.id)) { + continue; + } + + const CSCDetId csc_id{chamber_match.id}; + if (not isCSCAllowed(csc_id, gem_layer.id.station())) { + continue; + } + + const float x_track = chamber_match.x; + const float y_track = chamber_match.y; + + for (const reco::MuonSegmentMatch& segment_match : chamber_match.segmentMatches) { + if (not segment_match.isMask(reco::MuonSegmentMatch::BestInStationByDR)) { continue; } - const BoundPlane surface = eta_partition->surface(); - - const LocalPoint dest_local_pos = eta_partition->toLocal(dest_global_pos); - const LocalError dest_local_err = dest_state.localError().positionError(); - const GlobalError dest_global_err = ErrorFrameTransformer().transform(dest_local_err, surface); + const float dr = std::hypot(x_track - segment_match.x, y_track - segment_match.y); + std::cout << kLogCategory_ << ": dr=" << dr << std::endl; - const double dest_global_r_err = std::sqrt(dest_global_err.rerr(dest_global_pos)); - const double dest_global_phi_err = std::sqrt(dest_global_err.phierr(dest_global_pos)); + if (dr > kMuonSegmentMatchDRCut_) { + LogDebug(kLogCategory_) << "too large dR(muon, segment)"; + break; + } - const GEMDetId gem_id = eta_partition->id(); - const GEMDetId rs_key = getReStKey(gem_id); - const GEMDetId rsl_key = getReStLaKey(gem_id); - const GEMDetId rse_key = getReStEtKey(gem_id); + if (segment_match.cscSegmentRef.isNonnull()) { + best_csc_segment = segment_match.cscSegmentRef.get(); + } + } // MuonSegmentMatch + } // MuonChamberMatch - const int chamber_id = gem_id.chamber(); - const int ieta = gem_id.ieta(); + return best_csc_segment; +} - // FIXME clever way to clamp values? - me_prop_r_err_->Fill(std::min(dest_global_r_err, 19.999)); - me_prop_phi_err_->Fill(std::min(dest_global_r_err, M_PI - 0.0001)); - me_prop_chamber_[rs_key]->Fill(gem_id.chamber()); +// just thin wrapper +const CSCSegment* GEMEfficiencyAnalyzer::findCSCSegment(const reco::Muon& muon, + const reco::TransientTrack& transient_track, + const GEMLayer& gem_layer) { + if (kScenario_ == ScenarioOption::kCosmics) { + return findCSCSegmentCosmics(muon, gem_layer); + } else { + // pp or HI + return findCSCSegmentBeam(transient_track, gem_layer); + } +} - if (use_prop_r_error_cut_ and (dest_global_r_err > prop_r_error_cut_)) { - edm::LogInfo(kLogCategory_) << "failed to pass a propagation global R error cut" << std::endl; - continue; - } +bool GEMEfficiencyAnalyzer::isMuonSubdetAllowed(const DetId& det_id, const int gem_station) { + if ((gem_station < 0) or (gem_station > 2)) { + edm::LogError(kLogCategory_) << "got unexpected gem station " << gem_station; + return false; + } - if (use_prop_phi_error_cut_ and (dest_global_phi_err > prop_phi_error_cut_)) { - edm::LogInfo(kLogCategory_) << "failed to pass a propagation global phi error cut" << std::endl; - continue; - } + if (det_id.det() != DetId::Detector::Muon) { + edm::LogError(kLogCategory_) << Form( + "(Detector, Subdetector) = (%d, %d)", static_cast(det_id.det()), det_id.subdetId()); + return false; + } - const double muon_pt = std::min(muon.pt(), pt_clamp_max_); - const double muon_eta = std::clamp(std::fabs(muon.eta()), eta_low_, eta_clamp_max_); + const std::vector allowed = kMuonSubdetForGEM_.at(gem_station); + return allowed.empty() or (std::find(allowed.begin(), allowed.end(), det_id.subdetId()) != allowed.end()); +} - fillME(me_muon_pt_, rs_key, muon_pt); - fillME(me_muon_eta_, rs_key, muon_eta); - fillME(me_muon_phi_, rs_key, muon.phi()); +// Returns a bool value indicating whether or not the CSC detector can be used +// as a start detector for a given GEM station. +// See https://github.com/cms-sw/cmssw/blob/CMSSW_12_4_0_pre3/DataFormats/MuonDetId/interface/CSCDetId.h#L187-L193 +// This method is used when using `buildStateOnSurfaceWithCSCSegment` or +// `buildStartingStateAlignmentStyle` +bool GEMEfficiencyAnalyzer::isCSCAllowed(const CSCDetId& csc_id, const int gem_station) { + if ((gem_station < 0) or (gem_station > 2)) { + edm::LogError(kLogCategory_) << "got unexpected gem station " << gem_station; + return false; + } - fillME(me_chamber_, rsl_key, chamber_id); - fillME(me_ieta_, rsl_key, ieta); - fillME(me_detector_, rsl_key, chamber_id, ieta); + // unsigned short to int + const int csc_chamber_type = static_cast(csc_id.iChamberType()); - const auto [hit, residual_rphi] = findClosetHit(dest_global_pos, rechit_collection->get(gem_id), eta_partition); + const std::vector allowed = kCSCForGEM_.at(gem_station); + return allowed.empty() or (std::find(allowed.begin(), allowed.end(), csc_chamber_type) != allowed.end()); +} - if (hit == nullptr) { - edm::LogInfo(kLogCategory_) << "failed to find a hit" << std::endl; - continue; - } +bool GEMEfficiencyAnalyzer::checkBounds(const Plane& plane, const GlobalPoint& global_point) { + const LocalPoint local_point = plane.toLocal(global_point); + const LocalPoint local_point_2d(local_point.x(), local_point.y(), 0.0f); + return plane.bounds().inside(local_point_2d); +} - me_all_abs_residual_rphi_->Fill(std::min(std::abs(residual_rphi), 19.999f)); - if (std::abs(residual_rphi) > residual_rphi_cut_) { - edm::LogInfo(kLogCategory_) << "failed to pass the residual rphi cut" << std::endl; - continue; - } +// TODO comment on the scale +// https://github.com/cms-sw/cmssw/blob/CMSSW_12_0_0_pre3/DataFormats/GeometrySurface/src/SimpleDiskBounds.cc#L20-L35 +bool GEMEfficiencyAnalyzer::checkBounds(const Plane& plane, + const GlobalPoint& global_point, + const GlobalError& global_error, + const float scale) { + const LocalPoint local_point = plane.toLocal(global_point); + const LocalError local_error = ErrorFrameTransformer::transform(global_error, plane); - fillME(me_muon_pt_matched_, rs_key, muon_pt); - fillME(me_muon_eta_matched_, rs_key, muon_eta); - fillME(me_muon_phi_matched_, rs_key, muon.phi()); + const LocalPoint local_point_2d{local_point.x(), local_point.y(), 0.0f}; + return plane.bounds().inside(local_point_2d, local_error, scale); +} - fillME(me_chamber_matched_, rsl_key, gem_id.chamber()); - fillME(me_ieta_matched_, rsl_key, gem_id.ieta()); - fillME(me_detector_matched_, rsl_key, gem_id.chamber(), ieta); +const GEMEtaPartition* GEMEfficiencyAnalyzer::findEtaPartition(const GlobalPoint& global_point, + const GlobalError& global_error, + const std::vector& chamber_vector) { + const GEMEtaPartition* bound = nullptr; + for (const GEMChamber* chamber : chamber_vector) { + if (not checkBounds(chamber->surface(), global_point, global_error, kBoundsErrorScale_)) { + continue; + } - const LocalPoint hit_local_pos = hit->localPosition(); - const LocalError hit_local_err = hit->localPositionError(); + for (const GEMEtaPartition* eta_partition : chamber->etaPartitions()) { + if (checkBounds(eta_partition->surface(), global_point, global_error, kBoundsErrorScale_)) { + bound = eta_partition; + break; + } + } // GEMEtaPartition + } // GEMChamber - const float residual_y = dest_local_pos.y() - hit_local_pos.y(); - const float pull_y = residual_y / std::sqrt(dest_local_err.yy() + hit_local_err.yy()); + return bound; +} - fillME(me_residual_rphi_, rse_key, residual_rphi); - fillME(me_residual_y_, rse_key, residual_y); - fillME(me_pull_y_, rse_key, pull_y); - } // layer - } // Muon +// Borrowed from https://github.com/gem-sw/alignment/blob/713e8fa/GEMCSCBendingAnalyzer/MuonAnalyser/plugins/analyser.cc#L321-L327 +float GEMEfficiencyAnalyzer::computeRdPhi(const GlobalPoint& prop_global_pos, + const LocalPoint& hit_local_pos, + const GEMEtaPartition* eta_partition) { + const StripTopology& topology = eta_partition->specificTopology(); + const LocalPoint prop_local_pos = eta_partition->toLocal(prop_global_pos); + + const float dx = prop_local_pos.x() - hit_local_pos.x(); + const float dy = prop_local_pos.y() - hit_local_pos.y(); + const float hit_strip = eta_partition->strip(hit_local_pos); + const float hit_phi = topology.stripAngle(hit_strip); + const float rdphi = std::cos(hit_phi) * dx - std::sin(hit_phi) * dy; + return rdphi; } -bool GEMEfficiencyAnalyzer::skipGEMStation(const int station) { - bool skip = false; +// Returns a global delta phi between a propagated muon and a reconstructed hit. +float GEMEfficiencyAnalyzer::computeDeltaPhi(const GlobalPoint& prop_global_pos, + const LocalPoint& hit_local_pos, + const GEMEtaPartition* eta_partition) { + const GlobalPoint hit_global_pos = eta_partition->toGlobal(hit_local_pos); + const float dphi = Geom::convertRadToDeg(prop_global_pos.phi() - hit_global_pos.phi()); + return dphi; +} - if (station == 1) { - if (not monitor_ge11_) { - LogDebug(kLogCategory_) << "skip GE11 because monitorGE11 is " << std::boolalpha << monitor_ge11_; - skip = true; +// a thin wrapper to hide a messy conditional statement +float GEMEfficiencyAnalyzer::computeMatchingMetric(const GlobalPoint& prop_global_pos, + const LocalPoint& hit_local_pos, + const GEMEtaPartition* eta_partition) { + float metric; + switch (kMatchingMetric_) { + case MatchingMetric::kDeltaPhi: { + metric = computeDeltaPhi(prop_global_pos, hit_local_pos, eta_partition); + break; } - - } else if (station == 2) { - if (not monitor_ge21_) { - LogDebug(kLogCategory_) << "skip GE21 because monitorGE21 is " << std::boolalpha << monitor_ge21_; - skip = true; + case MatchingMetric::kRdPhi: { + metric = computeRdPhi(prop_global_pos, hit_local_pos, eta_partition); + break; } - - } else if (station == 0) { - if (not monitor_ge0_) { - LogDebug(kLogCategory_) << "skip GE0 because monitorGE0 is " << std::boolalpha << monitor_ge0_; - skip = true; + default: { + edm::LogError(kLogCategory_) << "unknown MatchingMetric."; // TODO + metric = std::numeric_limits::infinity(); } - - } else { - edm::LogError(kLogCategory_) << "got an unexpected GEM station " << station << ". skip this station."; - skip = true; } - return skip; + return metric; } -std::vector GEMEfficiencyAnalyzer::buildGEMLayers( - const edm::ESHandle& gem) { - std::vector layer_vector; +// This method finds the closest hit to a propagated muon in the eta partition +// with that propagated muon. Adjacent eta partitions are excluded from the area +// of interst to avoid ambiguity in defining the detection efficiency of each +// eta partition. +std::pair GEMEfficiencyAnalyzer::findClosestHit(const GlobalPoint& prop_global_pos, + const GEMRecHitCollection::range& rechit_range, + const GEMEtaPartition* eta_partition) { + const GEMRecHit* closest_hit = nullptr; + float min_metric = std::numeric_limits::infinity(); - for (const GEMStation* station : gem->stations()) { - const int region_id = station->region(); - const int station_id = station->station(); - const bool is_ge11 = station_id == 1; + for (auto hit = rechit_range.first; hit != rechit_range.second; ++hit) { + const LocalPoint hit_local_pos = hit->localPosition(); - if (skipGEMStation(station_id)) { - continue; + const float metric = computeMatchingMetric(prop_global_pos, hit_local_pos, eta_partition); + + if (std::abs(metric) < std::abs(min_metric)) { + min_metric = metric; + closest_hit = &(*hit); } + } - // (layer_id, is_odd) - chambers - std::map, std::vector > chambers_per_layer; + return std::make_pair(closest_hit, min_metric); +} - for (const GEMSuperChamber* super_chamber : station->superChambers()) { - // For GE0 and GE21, 'is_odd' is always set to 'false' - const bool is_odd = is_ge11 ? super_chamber->id().chamber() % 2 == 1 : false; +void GEMEfficiencyAnalyzer::dqmBeginRun(edm::Run const&, edm::EventSetup const& setup) { + const GEMGeometry* gem = nullptr; + if (auto handle = setup.getHandle(kGEMGeometryTokenBeginRun_)) { + gem = handle.product(); + } else { + edm::LogError(kLogCategory_ + "|dqmBeginRun") << "failed to get GEMGeometry"; + return; + } - for (const GEMChamber* chamber : super_chamber->chambers()) { - const int layer_id = chamber->id().layer(); - const std::pair key{layer_id, is_odd}; + buildGEMLayers(gem); +} - if (chambers_per_layer.find(key) == chambers_per_layer.end()) - chambers_per_layer.insert({key, std::vector()}); +void GEMEfficiencyAnalyzer::analyze(const edm::Event& event, const edm::EventSetup& setup) { + ////////////////////////////////////////////////////////////////////////////// + // get data from Event + ////////////////////////////////////////////////////////////////////////////// + const GEMRecHitCollection* rechit_collection = nullptr; + if (auto handle = event.getHandle(kGEMRecHitCollectionToken_)) { + rechit_collection = handle.product(); + } else { + edm::LogError(kLogCategory_) << "failed to get GEMRecHitCollection"; + return; + } - chambers_per_layer.at(key).push_back(chamber); - } // GEMChamber - } // GEMSuperChamber + const edm::View* muon_view = nullptr; + if (auto handle = event.getHandle(kMuonViewToken_)) { + muon_view = handle.product(); + } else { + edm::LogError(kLogCategory_) << "failed to get View"; + return; + } - for (auto [key, chamber_vector] : chambers_per_layer) { - const int layer_id = key.first; + const GEMOHStatusCollection* oh_status_collection = nullptr; + const GEMVFATStatusCollection* vfat_status_collection = nullptr; + if (kMaskChamberWithError_) { + if (auto handle = event.getHandle(kGEMOHStatusCollectionToken_)) { + oh_status_collection = handle.product(); + } else { + edm::LogError(kLogCategory_) << "failed to get OHVFATStatusCollection"; + return; + } - // chambers should have same R and Z spans. - auto [rmin, rmax] = chamber_vector[0]->surface().rSpan(); - auto [zmin, zmax] = chamber_vector[0]->surface().zSpan(); + if (auto handle = event.getHandle(kGEMVFATStatusCollectionToken_)) { + vfat_status_collection = handle.product(); + } else { + edm::LogError(kLogCategory_) << "failed to get GEMVFATStatusCollection"; + return; + } + } - // layer position and rotation - const float layer_z = chamber_vector[0]->position().z(); - Surface::PositionType position{0.f, 0.f, layer_z}; - Surface::RotationType rotation; + ////////////////////////////////////////////////////////////////////////////// + // get data from EventSetup + ////////////////////////////////////////////////////////////////////////////// + const TransientTrackBuilder* transient_track_builder = nullptr; + if (auto handle = setup.getHandle(kTransientTrackBuilderToken_)) { + transient_track_builder = handle.product(); + } else { + edm::LogError(kLogCategory_) << "failed to get TransientTrackBuilder"; + return; + } - zmin -= layer_z; - zmax -= layer_z; + ////////////////////////////////////////////////////////////////////////////// + // get more data from EventSetup using MuonServiceProxy + ////////////////////////////////////////////////////////////////////////////// + muon_service_->update(setup); - // the bounds from min and max R and Z in the local coordinates. - SimpleDiskBounds* bounds = new SimpleDiskBounds(rmin, rmax, zmin, zmax); - const Disk::DiskPointer layer = Disk::build(position, rotation, bounds); + // TODO StraightLinePropagator if B < epsilon else SteppingHelixPropagatorAny + const Propagator* propagator = nullptr; + if (auto handle = muon_service_->propagator("SteppingHelixPropagatorAny")) { + propagator = handle.product(); + } else { + edm::LogError(kLogCategory_) << "failed to get Propagator"; + return; + } - layer_vector.emplace_back(layer, chamber_vector, region_id, station_id, layer_id); - } // layer - } // GEMStation + ////////////////////////////////////////////////////////////////////////////// + // Main loop + ////////////////////////////////////////////////////////////////////////////// - return layer_vector; -} + for (const reco::Muon& muon : *muon_view) { + const reco::Track* track = muon.muonTrack(kMuonTrackType_).get(); + if (track == nullptr) { + LogDebug(kLogCategory_) << "failed to get a " << kMuonTrackTypeName_; + continue; + } -const reco::Track* GEMEfficiencyAnalyzer::getTrack(const reco::Muon& muon) { - const reco::Track* track = nullptr; + const reco::TransientTrack transient_track = transient_track_builder->build(track); + if (not transient_track.isValid()) { + edm::LogError(kLogCategory_) << "failed to build TransientTrack"; + continue; + } - if (is_cosmics_) { - if (muon.outerTrack().isNonnull()) - track = muon.outerTrack().get(); + for (const GEMLayer& layer : gem_layers_) { + if (checkPropagationDirection(track, layer)) { + LogDebug(kLogCategory_) << "bad flight path. skip this propagation."; + continue; + } - } else { - // beams, i.e. pp or heavy ions - if (use_global_muon_ and muon.globalTrack().isNonnull()) - track = muon.globalTrack().get(); + const auto [found_start_state, start_state, start_id] = buildStartingState(muon, transient_track, layer); + if (not found_start_state) { + LogDebug(kLogCategory_) << "propagation starting state not found"; + continue; + } - else if ((not use_global_muon_) and muon.outerTrack().isNonnull()) - track = muon.outerTrack().get(); - } + // the trajectory state on the destination surface + const auto [propagated_state, prop_path_length] = propagator->propagateWithPath(start_state, *(layer.disk)); + if (not propagated_state.isValid()) { + LogDebug(kLogCategory_) << "failed to propagate a muon from " + << Form("(Detector, Subdetector) = (%d, %d)", + static_cast(start_id.det()), + start_id.subdetId()) + << " to " << layer.id << ". The path length is " << prop_path_length; + continue; + } - return track; -} + const GlobalPoint prop_global_pos = propagated_state.globalPosition(); + const GlobalError& prop_global_err = + ErrorFrameTransformer::transform(propagated_state.localError().positionError(), *layer.disk); -std::pair GEMEfficiencyAnalyzer::getStartingState( - const reco::TransientTrack& transient_track, - const GEMLayerData& layer, - const edm::ESHandle& geometry) { - TrajectoryStateOnSurface starting_state; - DetId starting_id; + if (not checkBounds(*layer.disk, prop_global_pos, prop_global_err, kBoundsErrorScale_)) { + LogDebug(kLogCategory_) << "failed to pass checkBounds"; + continue; + } - if (use_global_muon_) { - std::tie(starting_state, starting_id) = findStartingState(transient_track, layer, geometry); + const GEMEtaPartition* eta_partition = findEtaPartition(prop_global_pos, prop_global_err, layer.chambers); + if (eta_partition == nullptr) { + LogDebug(kLogCategory_) << "failed to find an eta partition"; + continue; + } - } else { - // if outer track - const reco::Track& track = transient_track.track(); - const bool is_insideout = isInsideOut(track); + const GEMDetId gem_id = eta_partition->id(); - const DetId inner_id{(is_insideout ? track.outerDetId() : track.innerDetId())}; - if (MuonHitHelper::isGEM(inner_id.rawId())) { - std::tie(starting_state, starting_id) = findStartingState(transient_track, layer, geometry); + if (kMaskChamberWithError_) { + const bool has_error = maskChamberWithError(gem_id.chamberId(), oh_status_collection, vfat_status_collection); + if (has_error) { + LogDebug(kLogCategory_) << gem_id.chamberId() << " has an erorr. Skip this propagation."; + continue; + } + } - } else { - starting_id = inner_id; - if (is_insideout) - starting_state = transient_track.outermostMeasurementState(); - else - starting_state = transient_track.innermostMeasurementState(); - } - } + ////////////////////////////////////////////////////////////////////////// + // + ////////////////////////////////////////////////////////////////////////// + const GEMDetId rs_key = getReStKey(gem_id); // region-station + const GEMDetId rsl_key = getReStLaKey(gem_id); // region-station-layer + const GEMDetId rse_key = getReStEtKey(gem_id); // region-station-ieta - return std::make_pair(starting_state, starting_id); -} + const int station_id = gem_id.station(); + const int chamber_id = gem_id.chamber(); + const int ieta = gem_id.ieta(); -std::pair GEMEfficiencyAnalyzer::findStartingState( - const reco::TransientTrack& transient_track, - const GEMLayerData& layer, - const edm::ESHandle& geometry) { - GlobalPoint starting_point; - DetId starting_id; - float min_distance = 1e12; - bool found = false; + const double muon_pt = muon.pt(); + const double muon_eta = std::fabs(muon.eta()); + const double muon_phi = Geom::convertRadToDeg(muon.phi()); + + const double prop_global_err_r = std::sqrt(prop_global_err.rerr(prop_global_pos)); + const double prop_global_err_phi = Geom::convertRadToDeg(std::sqrt(prop_global_err.phierr(prop_global_pos))); + + // cuts + const bool passed_prop_err_r_cut = (prop_global_err_r < kPropagationErrorRCut_); + const bool passed_prop_err_phi_cut = (prop_global_err_phi < kPropagationErrorPhiCut_); + const bool passed_pt_cut = muon_pt > kMuonPtMinCuts_.at(station_id); + const bool passed_eta_cut = + (muon_eta > kMuonEtaMinCuts_.at(station_id)) and (muon_eta < kMuonEtaMaxCuts_.at(station_id)); + + const bool passed_prop_err_cuts = passed_prop_err_r_cut and passed_prop_err_phi_cut; + const bool passed_all_cuts = passed_prop_err_cuts and passed_pt_cut and passed_eta_cut; + + const int cutflow_last = not kModeDev_ ? 0 + : not passed_prop_err_r_cut ? 1 + : not passed_prop_err_phi_cut ? 2 + : not passed_pt_cut ? 3 + : not passed_eta_cut ? 4 + : 5; + + ////////////////////////////////////////////////////////////////////////// + // Fill denominators + ////////////////////////////////////////////////////////////////////////// + if (passed_eta_cut and passed_prop_err_cuts) { + fillMEWithinLimits(me_muon_pt_, rs_key, muon_pt); + } - // TODO optimize this loop because hits should be ordered.. - for (auto rechit = transient_track.recHitsBegin(); rechit != transient_track.recHitsEnd(); rechit++) { - const DetId det_id = (*rechit)->geographicalId(); + if (passed_pt_cut and passed_prop_err_cuts) { + fillMEWithinLimits(me_muon_eta_, rs_key, muon_eta); + } - if (MuonHitHelper::isGEM(det_id.rawId())) { - continue; - } + if (passed_all_cuts) { + fillME(me_chamber_ieta_, rsl_key, chamber_id, ieta); + fillME(me_muon_phi_, rs_key, muon_phi); + } - const GeomDet* det = geometry->idToDet(det_id); - const GlobalPoint global_position = det->toGlobal((*rechit)->localPosition()); - const float distance = std::abs(layer.disk->localZclamped(global_position)); - if (distance < min_distance) { - found = true; - min_distance = distance; - starting_point = global_position; - starting_id = det_id; - } - } + if (kModeDev_) { + fillMEWithinLimits(me_prop_path_length_, rsl_key, prop_path_length); + fillMEWithinLimits(me_prop_err_r_, rsl_key, prop_global_err_r); + fillMEWithinLimits(me_prop_err_phi_, rsl_key, prop_global_err_phi); - TrajectoryStateOnSurface starting_state; - if (found) { - starting_state = transient_track.stateOnSurface(starting_point); - } - return std::make_pair(starting_state, starting_id); -} + fillMEWithinLimits(me_muon_pt_all_, rs_key, muon_pt); + fillMEWithinLimits(me_muon_eta_all_, rs_key, muon_eta); -bool GEMEfficiencyAnalyzer::isME11(const DetId& det_id) { - if (not MuonHitHelper::isCSC(det_id)) - return false; - const CSCDetId csc_id{det_id}; - return (csc_id.station() == 1) or ((csc_id.ring() == 1) or (csc_id.ring() == 4)); -} + fillME(me_muon_charge_, rs_key, muon.charge()); -bool GEMEfficiencyAnalyzer::skipLayer(const reco::Track* track, const GEMLayerData& layer) { - const bool is_same_region = track->eta() * layer.region > 0; + for (int bin = 1; bin <= cutflow_last; bin++) { + fillME(me_cutflow_, rsl_key, bin); + } - bool skip = false; - if (is_cosmics_) { - float p2_in = track->innerMomentum().mag2(); - float p2_out = track->outerMomentum().mag2(); - if (isInsideOut(*track)) - std::swap(p2_in, p2_out); - const bool is_outgoing = p2_in > p2_out; + } // dev mode - skip = (is_outgoing xor is_same_region); + ////////////////////////////////////////////////////////////////////////// + // Find a closet hit + ////////////////////////////////////////////////////////////////////////// + const auto [hit, matching_metric] = + findClosestHit(prop_global_pos, rechit_collection->get(gem_id), eta_partition); - } else { - // beam scenario - skip = not is_same_region; - } + if (hit == nullptr) { + LogDebug(kLogCategory_) << "hit not found"; + continue; + } - return skip; -} + if (kModeDev_) { + fillMEWithinLimits(me_matching_metric_all_, rse_key, matching_metric); + } -bool GEMEfficiencyAnalyzer::checkBounds(const GlobalPoint& global_point, const Plane& plane) { - const LocalPoint local_point = plane.toLocal(global_point); - const LocalPoint local_point_2d(local_point.x(), local_point.y(), 0.0f); - return plane.bounds().inside(local_point_2d); -} + if (std::abs(matching_metric) > kMatchingCut_) { + LogDebug(kLogCategory_) << "failed to pass the residual rphi cut"; + continue; + } -const GEMEtaPartition* GEMEfficiencyAnalyzer::findEtaPartition(const GlobalPoint& global_point, - const std::vector& chamber_vector) { - const GEMEtaPartition* bound = nullptr; - for (const GEMChamber* chamber : chamber_vector) { - if (not checkBounds(global_point, chamber->surface())) - continue; + ////////////////////////////////////////////////////////////////////////// + // Fill numerators + ////////////////////////////////////////////////////////////////////////// + if (passed_eta_cut and passed_prop_err_cuts) { + fillMEWithinLimits(me_muon_pt_matched_, rs_key, muon_pt); + } - for (const GEMEtaPartition* eta_partition : chamber->etaPartitions()) { - if (checkBounds(global_point, eta_partition->surface())) { - bound = eta_partition; - break; + if (passed_pt_cut and passed_prop_err_cuts) { + fillMEWithinLimits(me_muon_eta_matched_, rs_key, muon_eta); } - } // GEMEtaPartition - } // GEMChamber - return bound; -} + if (passed_all_cuts) { + fillME(me_chamber_ieta_matched_, rsl_key, chamber_id, ieta); + fillME(me_muon_phi_matched_, rs_key, muon_phi); + } -std::pair GEMEfficiencyAnalyzer::findClosetHit(const GlobalPoint& dest_global_pos, - const GEMRecHitCollection::range& range, - const GEMEtaPartition* eta_partition) { - const StripTopology& topology = eta_partition->specificTopology(); - const LocalPoint dest_local_pos = eta_partition->toLocal(dest_global_pos); - const float dest_local_x = dest_local_pos.x(); - const float dest_local_y = dest_local_pos.y(); + if (kModeDev_) { + fillMEWithinLimits(me_prop_path_length_matched_, rsl_key, prop_path_length); - const GEMRecHit* closest_hit = nullptr; - float min_residual_rphi = 1e6; + fillMEWithinLimits(me_prop_err_r_matched_, rsl_key, prop_global_err_r); + fillMEWithinLimits(me_prop_err_phi_matched_, rsl_key, prop_global_err_phi); - for (auto hit = range.first; hit != range.second; ++hit) { - const LocalPoint hit_local_pos = hit->localPosition(); - const float hit_local_phi = topology.stripAngle(eta_partition->strip(hit_local_pos)); + fillMEWithinLimits(me_muon_pt_all_matched_, rs_key, muon_pt); + fillMEWithinLimits(me_muon_eta_all_matched_, rs_key, muon_eta); - const float residual_x = dest_local_x - hit_local_pos.x(); - const float residual_y = dest_local_y - hit_local_pos.y(); - const float residual_rphi = std::cos(hit_local_phi) * residual_x + std::sin(hit_local_phi) * residual_y; + fillME(me_muon_charge_matched_, rs_key, muon.charge()); - if (std::abs(residual_rphi) < std::abs(min_residual_rphi)) { - min_residual_rphi = residual_rphi; - closest_hit = &(*hit); - } - } + if (passed_all_cuts) { + for (int bin = 1; bin <= cutflow_last; bin++) { + fillME(me_cutflow_matched_, rsl_key, bin); + } + } + } - return std::make_pair(closest_hit, min_residual_rphi); -} + ////////////////////////////////////////////////////////////////////////// + // Fill resolutions + ////////////////////////////////////////////////////////////////////////// + if (passed_all_cuts) { + const LocalPoint hit_local_pos = hit->localPosition(); + const GlobalPoint& hit_global_pos = eta_partition->toGlobal(hit_local_pos); + const float residual_phi = Geom::convertRadToDeg(prop_global_pos.phi() - hit_global_pos.phi()); + + fillMEWithinLimits(me_residual_phi_, rse_key, residual_phi); + + if (kModeDev_) { + const LocalPoint prop_local_pos = eta_partition->toLocal(prop_global_pos); + const StripTopology& topology = eta_partition->specificTopology(); + + const float residual_x = prop_local_pos.x() - hit_local_pos.x(); + const float residual_y = prop_local_pos.y() - hit_local_pos.y(); + const float residual_strip = topology.strip(prop_local_pos) - topology.strip(hit_local_pos); + + fillMEWithinLimits(me_matching_metric_, rse_key, matching_metric); + fillMEWithinLimits(me_residual_x_, rse_key, residual_x); + fillMEWithinLimits(me_residual_y_, rse_key, residual_y); + fillMEWithinLimits(me_residual_strip_, rse_key, residual_strip); + + if (muon.charge() < 0) { + fillMEWithinLimits(me_residual_phi_muon_, rse_key, residual_phi); + } else { + fillMEWithinLimits(me_residual_phi_antimuon_, rse_key, residual_phi); + } + } // kModeDev_ + } // passed_all_cuts + } // destination + } // Muon +} // analyze diff --git a/DQM/GEM/plugins/GEMEfficiencyAnalyzer.h b/DQM/GEM/plugins/GEMEfficiencyAnalyzer.h index d0ed5e397aa01..9b5ba674efdcc 100644 --- a/DQM/GEM/plugins/GEMEfficiencyAnalyzer.h +++ b/DQM/GEM/plugins/GEMEfficiencyAnalyzer.h @@ -2,14 +2,19 @@ #define DQM_GEM_GEMEfficiencyAnalyzer_h /** \class GEMEfficiencyAnalyzer - * + * * DQM monitoring source for GEM efficiency and resolution * based on https://github.com/CPLUOS/MuonPerformance/blob/master/MuonAnalyser/plugins/SliceTestEfficiencyAnalysis.cc * + * TODO muonEta{Min,Max}Cut{GE11,GE21,GE0} depending on a magnetic field for + * a cosmic scenario + * TODO cscForGE21, cscForGE0 + * TODO use "StraightLinePropagator" if B=0 for a cosmic scenario + * * \author Seungjin Yang */ -#include "DQM/GEM/interface/GEMOfflineDQMBase.h" +#include "DQM/GEM/interface/GEMDQMEfficiencySourceBase.h" #include "FWCore/Utilities/interface/EDGetToken.h" #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" @@ -20,123 +25,166 @@ #include "TrackingTools/TransientTrack/interface/TransientTrack.h" #include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" #include "TrackingTools/Records/interface/TransientTrackRecord.h" -#include "Geometry/CommonTopologies/interface/GlobalTrackingGeometry.h" -#include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h" #include "Geometry/GEMGeometry/interface/GEMGeometry.h" #include "Geometry/Records/interface/MuonGeometryRecord.h" -class GEMEfficiencyAnalyzer : public GEMOfflineDQMBase { +class GEMEfficiencyAnalyzer : public GEMDQMEfficiencySourceBase { public: explicit GEMEfficiencyAnalyzer(const edm::ParameterSet &); ~GEMEfficiencyAnalyzer() override; static void fillDescriptions(edm::ConfigurationDescriptions &); -protected: - void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override; - void analyze(const edm::Event &event, const edm::EventSetup &eventSetup) override; + // currently only for STA muons + enum class StartingStateType { + kOutermostMeasurementState = 0, + kInnermostMeasurementState, + kStateOnSurfaceWithCSCSegment, + kAlignmentStyle, + }; -private: - struct GEMLayerData { - GEMLayerData(Disk::DiskPointer disk, std::vector chambers, int region, int station, int layer) - : disk(disk), chambers(chambers), region(region), station(station), layer(layer) {} + // Define the metric as the smaller the absolute value, the better the matching. + enum class MatchingMetric { + kDeltaPhi = 0, // computeDeltaPhi + kRdPhi, // computeRdPhi + }; + + // https://github.com/cms-sw/cmssw/blob/CMSSW_12_4_0_pre3/Configuration/Applications/python/ConfigBuilder.py#L35 + enum class ScenarioOption { + kPP = 0, + kCosmics, + kHeavyIons, + }; + + struct GEMLayer { + GEMLayer(Disk::DiskPointer disk, std::vector chambers, GEMDetId id) + : disk(disk), chambers(chambers), id(id) {} Disk::DiskPointer disk; std::vector chambers; - int region, station, layer; + GEMDetId id; }; - const edm::ESGetToken gemToken1_; - const edm::ESGetToken gemToken2_; - const edm::ESGetToken globalGeomToken_; - const edm::ESGetToken trasientTrackToken_; + using StartingState = std::tuple; - MonitorElement *bookNumerator1D(DQMStore::IBooker &, MonitorElement *); - MonitorElement *bookNumerator2D(DQMStore::IBooker &, MonitorElement *); - - void bookEfficiencyMomentum(DQMStore::IBooker &, const edm::ESHandle &); - void bookEfficiencyChamber(DQMStore::IBooker &, const edm::ESHandle &); - void bookEfficiencyEtaPartition(DQMStore::IBooker &, const edm::ESHandle &); - void bookEfficiencyDetector(DQMStore::IBooker &, const edm::ESHandle &); - void bookResolution(DQMStore::IBooker &, const edm::ESHandle &); - void bookMisc(DQMStore::IBooker &, const edm::ESHandle &); +protected: + void dqmBeginRun(edm::Run const &, edm::EventSetup const &) override; + void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override; + void analyze(const edm::Event &event, const edm::EventSetup &eventSetup) override; +private: + StartingStateType getStartingStateType(const std::string); + MatchingMetric getMatchingMetric(const std::string); + reco::Muon::MuonTrackType getMuonTrackType(const std::string); + ScenarioOption getScenarioOption(const std::string); + + void buildGEMLayers(const GEMGeometry *); + + bool checkPropagationDirection(const reco::Track *, const GEMLayer &); + + StartingState buildStartingState(const reco::Muon &, const reco::TransientTrack &, const GEMLayer &); + StartingState getInnermostMeasurementState(const reco::TransientTrack &); + StartingState getOutermostMeasurementState(const reco::TransientTrack &); + StartingState buildStateOnSurfaceWithCSCSegment(const reco::Muon &, const reco::TransientTrack &, const GEMLayer &); + StartingState buildStartingStateAlignmentStyle(const reco::Muon &, const reco::TransientTrack &, const GEMLayer &); + + // for kStateOnSurfaceWithCSCSegment and AlignmentStyle + const CSCSegment *findCSCSegment(const reco::Muon &, const reco::TransientTrack &, const GEMLayer &); + const CSCSegment *findCSCSegmentBeam(const reco::TransientTrack &, const GEMLayer &); + const CSCSegment *findCSCSegmentCosmics(const reco::Muon &, const GEMLayer &); + bool isMuonSubdetAllowed(const DetId &, const int); + bool isCSCAllowed(const CSCDetId &, const int); + + bool checkBounds(const Plane &, const GlobalPoint &); + bool checkBounds(const Plane &, const GlobalPoint &, const GlobalError &, float); + const GEMEtaPartition *findEtaPartition(const GlobalPoint &, + const GlobalError &, + const std::vector &); + + float computeRdPhi(const GlobalPoint &, const LocalPoint &, const GEMEtaPartition *); + float computeDeltaPhi(const GlobalPoint &, const LocalPoint &, const GEMEtaPartition *); + float computeMatchingMetric(const GlobalPoint &, const LocalPoint &, const GEMEtaPartition *); + + std::pair findClosestHit(const GlobalPoint &, + const GEMRecHitCollection::range &, + const GEMEtaPartition *); + + // some helpers inline bool isInsideOut(const reco::Track &); - bool skipGEMStation(const int); - std::vector buildGEMLayers(const edm::ESHandle &); - const reco::Track *getTrack(const reco::Muon &); - std::pair getStartingState(const reco::TransientTrack &, - const GEMLayerData &, - const edm::ESHandle &); - std::pair findStartingState(const reco::TransientTrack &, - const GEMLayerData &, - const edm::ESHandle &); - bool isME11(const DetId &); - bool skipLayer(const reco::Track *, const GEMLayerData &); - bool checkBounds(const GlobalPoint &, const Plane &); - const GEMEtaPartition *findEtaPartition(const GlobalPoint &, const std::vector &); - std::pair findClosetHit(const GlobalPoint &, - const GEMRecHitCollection::range &, - const GEMEtaPartition *); - - // data members - - // parameters - std::string name_; - std::string folder_; - edm::EDGetTokenT rechit_token_; - edm::EDGetTokenT > muon_token_; - bool is_cosmics_; - bool use_global_muon_; - bool use_skip_layer_; - bool use_only_me11_; - float residual_rphi_cut_; - bool use_prop_r_error_cut_; - double prop_r_error_cut_; - bool use_prop_phi_error_cut_; - double prop_phi_error_cut_; - std::vector pt_bins_; - int eta_nbins_; - double eta_low_; - double eta_up_; - bool monitor_ge11_; - bool monitor_ge21_; - bool monitor_ge0_; - - // data mebers derived from parameters - MuonServiceProxy *muon_service_; - double pt_clamp_max_; - double eta_clamp_max_; - - // MonitorElement - // efficiency - MEMap me_muon_pt_; // 1D, region-station - MEMap me_muon_pt_matched_; - MEMap me_muon_eta_; // 1D, region-station - MEMap me_muon_eta_matched_; - MEMap me_muon_phi_; // 1D, region-station - MEMap me_muon_phi_matched_; - MEMap me_chamber_; // 2D, region-station-layer - MEMap me_chamber_matched_; - MEMap me_ieta_; // 1D, region-station-layer - MEMap me_ieta_matched_; - MEMap me_detector_; // 2D, region-station-layer - MEMap me_detector_matched_; - // resolution - MEMap me_residual_rphi_; // global - MEMap me_residual_y_; // local - MEMap me_pull_y_; - // MEs for optimizing cut values - MonitorElement *me_prop_r_err_; // clamped - MonitorElement *me_prop_phi_err_; // clamped - MonitorElement *me_all_abs_residual_rphi_; - MEMap me_prop_chamber_; + ////////////////////////////////////////////////////////////////////////////// + // const data members initialized in the member initializer list + // mainly retrieved from edm::ParameterSet + ////////////////////////////////////////////////////////////////////////////// + // ES + const edm::ESGetToken kGEMGeometryTokenBeginRun_; + const edm::ESGetToken kTransientTrackBuilderToken_; + // ED + const edm::EDGetTokenT kGEMRecHitCollectionToken_; + const edm::EDGetTokenT > kMuonViewToken_; + // + const std::string kMuonTrackTypeName_; + const reco::Muon::MuonTrackType kMuonTrackType_; + const TString kMuonName_; + const std::string kFolder_; + const ScenarioOption kScenario_; + // cuts + const StartingStateType kStartingStateType_; + const std::vector > kMuonSubdetForGEM_; + const std::vector > kCSCForGEM_; // when using StartingStateType::kStateOnSurfaceWithCSCSegment + const float kMuonSegmentMatchDRCut_; // for cosmics + + const std::vector kMuonPtMinCuts_; // station as index + const std::vector kMuonEtaMinCuts_; // station as index + const std::vector kMuonEtaMaxCuts_; // station as index + const float kPropagationErrorRCut_; // cm + const float kPropagationErrorPhiCut_; // degree + const float kBoundsErrorScale_; // TODO doc + // matching + const MatchingMetric kMatchingMetric_; + const float kMatchingCut_; + // for MinotorElement + const std::vector kMuonPtBins_; // station as index + const std::vector kMuonEtaNbins_; // station as index + const std::vector kMuonEtaLow_; // station as index + const std::vector kMuonEtaUp_; // station as index // const - const std::string kLogCategory_ = "GEMEfficiencyAnalyzer"; + const bool kModeDev_; + + ////////////////////////////////////////////////////////////////////////////// + // const data members + // FIXME static? + ////////////////////////////////////////////////////////////////////////////// + // https://github.com/cms-sw/cmssw/blob/CMSSW_12_4_0_pre3/DataFormats/CSCRecHit/interface/CSCSegment.h#L60 + const int kCSCSegmentDimension_ = 4; + + ////////////////////////////////////////////////////////////////////////////// + // non-const data members + ////////////////////////////////////////////////////////////////////////////// + std::unique_ptr muon_service_; + std::vector gem_layers_; + + // montitor elements + // XXX how about introducing EffPair ? + MEMap me_chamber_ieta_, me_chamber_ieta_matched_; + MEMap me_muon_pt_, me_muon_pt_matched_; + MEMap me_muon_eta_, me_muon_eta_matched_; + MEMap me_muon_phi_, me_muon_phi_matched_; + MEMap me_residual_phi_; // in global + // dev mode + MEMap me_matching_metric_all_; + MEMap me_matching_metric_; + MEMap me_residual_phi_muon_; // in global + MEMap me_residual_phi_antimuon_; // in global + MEMap me_residual_x_; // in local + MEMap me_residual_y_; // in global + MEMap me_residual_strip_; + MEMap me_prop_path_length_, me_prop_path_length_matched_; + MEMap me_prop_err_r_, me_prop_err_r_matched_; + MEMap me_prop_err_phi_, me_prop_err_phi_matched_; + MEMap me_muon_pt_all_, me_muon_pt_all_matched_; + MEMap me_muon_eta_all_, me_muon_eta_all_matched_; + MEMap me_muon_charge_, me_muon_charge_matched_; + MEMap me_cutflow_, me_cutflow_matched_; }; -inline bool GEMEfficiencyAnalyzer::isInsideOut(const reco::Track &track) { - return track.innerPosition().mag2() > track.outerPosition().mag2(); -} - #endif // DQM_GEM_GEMEfficiencyAnalyzer_h diff --git a/DQM/GEM/plugins/GEMEfficiencyHarvester.cc b/DQM/GEM/plugins/GEMEfficiencyHarvester.cc index 03c962905448d..599458fe411e2 100644 --- a/DQM/GEM/plugins/GEMEfficiencyHarvester.cc +++ b/DQM/GEM/plugins/GEMEfficiencyHarvester.cc @@ -3,383 +3,79 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/Utilities/interface/isFinite.h" -#include "TEfficiency.h" - -GEMEfficiencyHarvester::GEMEfficiencyHarvester(const edm::ParameterSet& pset) { - folder_ = pset.getUntrackedParameter("folder"); - log_category_ = "GEMEfficiencyHarvester"; -} +GEMEfficiencyHarvester::GEMEfficiencyHarvester(const edm::ParameterSet& ps) + : GEMDQMEfficiencyClientBase(ps), kFolders_(ps.getUntrackedParameter >("folders")) {} GEMEfficiencyHarvester::~GEMEfficiencyHarvester() {} void GEMEfficiencyHarvester::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; - desc.addUntracked("folder", "GEM/Efficiency/type0"); - descriptions.add("gemEfficiencyHarvester", desc); -} - -TProfile* GEMEfficiencyHarvester::computeEfficiency( - const TH1F* passed, const TH1F* total, const char* name, const char* title, const double confidence_level) { - if (not TEfficiency::CheckConsistency(*passed, *total)) { - edm::LogError(log_category_) << "failed to pass TEfficiency::CheckConsistency. " << name << std::endl; - return nullptr; - } - - const TAxis* total_x = total->GetXaxis(); - - TProfile* eff_profile = new TProfile(name, title, total_x->GetNbins(), total_x->GetXmin(), total_x->GetXmax()); - eff_profile->GetXaxis()->SetTitle(total_x->GetTitle()); - eff_profile->GetYaxis()->SetTitle("Efficiency"); - - for (int bin = 1; bin <= total->GetNbinsX(); bin++) { - double num_passed = passed->GetBinContent(bin); - double num_total = total->GetBinContent(bin); - - if (num_total < 1) { - eff_profile->SetBinEntries(bin, 0); - continue; - } - - double efficiency = num_passed / num_total; - double lower_bound = TEfficiency::ClopperPearson(num_total, num_passed, confidence_level, false); - double upper_bound = TEfficiency::ClopperPearson(num_total, num_passed, confidence_level, true); - - double width = std::max(efficiency - lower_bound, upper_bound - efficiency); - double error = std::hypot(efficiency, width); - - eff_profile->SetBinContent(bin, efficiency); - eff_profile->SetBinError(bin, error); - eff_profile->SetBinEntries(bin, 1); - } - - return eff_profile; -} - -TH2F* GEMEfficiencyHarvester::computeEfficiency(const TH2F* passed, - const TH2F* total, - const char* name, - const char* title) { - if (not TEfficiency::CheckConsistency(*passed, *total)) { - edm::LogError(log_category_) << "failed to pass TEfficiency::CheckConsistency. " << name << std::endl; - return nullptr; - } - - TEfficiency eff(*passed, *total); - TH2F* eff_hist = dynamic_cast(eff.CreateHistogram()); - eff_hist->SetName(name); - eff_hist->SetTitle(title); - - const TAxis* total_x = total->GetXaxis(); - TAxis* eff_hist_x = eff_hist->GetXaxis(); - eff_hist_x->SetTitle(total_x->GetTitle()); - for (int bin = 1; bin <= total->GetNbinsX(); bin++) { - const char* label = total_x->GetBinLabel(bin); - eff_hist_x->SetBinLabel(bin, label); - } - - const TAxis* total_y = total->GetYaxis(); - TAxis* eff_hist_y = eff_hist->GetYaxis(); - eff_hist_y->SetTitle(total_y->GetTitle()); - for (int bin = 1; bin <= total->GetNbinsY(); bin++) { - const char* label = total_y->GetBinLabel(bin); - eff_hist_y->SetBinLabel(bin, label); - } + // GEMDQMEfficiencyClientBase + desc.addUntracked("confidenceLevel", 0.683); // 1-sigma + desc.addUntracked("logCategory", "GEMEfficiencyHarvester"); - return eff_hist; + // GEMEfficiencyHarvester + desc.addUntracked >("folders", {"GEM/Efficiency/muonSTA"}); + descriptions.add("gemEfficiencyHarvester", desc); } -void GEMEfficiencyHarvester::doEfficiency(DQMStore::IBooker& ibooker, DQMStore::IGetter& igetter) { - const std::string efficiency_folder = folder_ + "/Efficiency/"; - ibooker.setCurrentFolder(efficiency_folder); - igetter.setCurrentFolder(efficiency_folder); - - std::map > me_pairs; - - const std::string matched = "_matched"; - - for (const std::string& name : igetter.getMEs()) { - const std::string fullpath = efficiency_folder + name; - const MonitorElement* me = igetter.get(fullpath); - if (me == nullptr) { - edm::LogError(log_category_) << "failed to get " << fullpath << std::endl; - continue; - } - - const bool is_matched = name.find(matched) != std::string::npos; - - std::string key = name; - if (is_matched) - key.erase(key.find(matched), matched.length()); - - if (me_pairs.find(key) == me_pairs.end()) { - me_pairs[key] = {nullptr, nullptr}; - } - - if (is_matched) - me_pairs[key].first = me; - else - me_pairs[key].second = me; - } +// boook MEs for +// - efficiency vs camber id +// - efficiency vs ieta +// by projecting MEs used for 2d chamber-ieta efficiency. +void GEMEfficiencyHarvester::bookDetector1DEfficiency(DQMStore::IBooker& ibooker, + DQMStore::IGetter& igetter, + const std::string& folder) { + const std::map me_pairs = makeEfficiencySourcePair(ibooker, igetter, folder, "chamber_ieta_"); for (const auto& [key, value] : me_pairs) { - const auto& [me_passed, me_total] = value; - if (me_passed == nullptr) { - edm::LogError(log_category_) << "numerator is missing. " << key << std::endl; - continue; - } - - if (me_total == nullptr) { - edm::LogError(log_category_) << "denominator is missing. " << key << std::endl; - continue; - } - - if (me_passed->kind() != me_total->kind()) { - edm::LogError(log_category_) << "inconsistency between kinds of passed and total" << key << std::endl; - continue; - } - - const std::string name = "eff_" + me_total->getName(); - const std::string title = me_passed->getTitle(); - - if (me_passed->kind() == MonitorElement::Kind::TH1F) { - TH1F* h_passed = me_passed->getTH1F(); - if (h_passed == nullptr) { - edm::LogError(log_category_) << "failed to get TH1F from passed " << key << std::endl; - continue; - } - h_passed->Sumw2(); - - TH1F* h_total = me_total->getTH1F(); - if (h_total == nullptr) { - edm::LogError(log_category_) << "failed to get TH1F from total" << key << std::endl; - continue; - } - h_total->Sumw2(); - - TProfile* eff = computeEfficiency(h_passed, h_total, name.c_str(), title.c_str()); - if (eff == nullptr) { - edm::LogError(log_category_) << "failed to compute the efficiency " << key << std::endl; - continue; - } - - ibooker.bookProfile(name, eff); + // numerator and denominator + const auto& [me_num, me_den] = value; - } else if (me_passed->kind() == MonitorElement::Kind::TH2F) { - TH2F* h_passed = me_passed->getTH2F(); - if (h_passed == nullptr) { - edm::LogError(log_category_) << "failed to get TH1F from passed " << key << std::endl; - continue; - } - h_passed->Sumw2(); - - TH2F* h_total = me_total->getTH2F(); - if (h_total == nullptr) { - edm::LogError(log_category_) << "failed to get TH1F from total" << key << std::endl; - continue; - } - h_total->Sumw2(); - - TH2F* eff = computeEfficiency(h_passed, h_total, name.c_str(), title.c_str()); - if (eff == nullptr) { - edm::LogError(log_category_) << "failed to compute the efficiency " << key << std::endl; - continue; - } - - ibooker.book2D(name, eff); - - } else { - edm::LogError(log_category_) << "not implemented" << std::endl; + if (me_num->kind() != MonitorElement::Kind::TH2F) { + edm::LogError(kLogCategory_) << key << "expected TH2F but got "; // TODO continue; } - } // me_pairs -} -std::vector GEMEfficiencyHarvester::splitString(std::string name, const std::string delimiter) { - std::vector tokens; - size_t delimiter_pos; - size_t delimiter_len = delimiter.length(); - while ((delimiter_pos = name.find('_')) != std::string::npos) { - tokens.push_back(name.substr(0, delimiter_pos)); - name.erase(0, delimiter_pos + delimiter_len); - } - tokens.push_back(name); - return tokens; -} - -std::tuple GEMEfficiencyHarvester::parseResidualName(const std::string org_name, - const std::string prefix) { - std::string name = org_name; - - // e.g. residual_rdphi_GE-11_R4 -> _GE-11_R4 - name.erase(name.find(prefix), prefix.length()); - - // _GE-11_R4 -> -11_R4 - name.erase(name.find("_GE"), 3); - - // -11_R4 -> (-11, R4) - const std::vector tokens = splitString(name, "_"); - const size_t num_tokens = tokens.size(); - - if (num_tokens != 2) { - return std::make_tuple("", -1, -1); - } - - // '-'11 - std::string region_sign = tokens.front().substr(0, 1); - // -'1'1 - TString station_str = tokens.front().substr(1, 1); - - // R'4' or R'16' - TString ieta_str = tokens.back().substr(1); - - const int station = station_str.IsDigit() ? station_str.Atoi() : -1; - const int ieta = ieta_str.IsDigit() ? ieta_str.Atoi() : -1; - - return std::make_tuple(region_sign, station, ieta); -} - -void GEMEfficiencyHarvester::doResolution(DQMStore::IBooker& ibooker, - DQMStore::IGetter& igetter, - const std::string prefix) { - const std::string resolution_folder = folder_ + "/Resolution/"; - - igetter.setCurrentFolder(resolution_folder); - ibooker.setCurrentFolder(resolution_folder); - - // (histogram, (region_sign, station), ieta) - std::vector, int> > hist_vector; - // (region_sign, station) - std::vector > re_st_vec; - // ieta - std::vector ieta_vec; - - for (const std::string& name : igetter.getMEs()) { - if (name.find(prefix) == std::string::npos) - continue; - - const std::string fullpath = resolution_folder + name; - const MonitorElement* me = igetter.get(fullpath); - if (me == nullptr) { - edm::LogError(log_category_) << "failed to get " << fullpath << std::endl; + const TH2F* h_num = me_num->getTH2F(); + if (h_num == nullptr) { + edm::LogError(kLogCategory_) << "numerator: failed to get TH2F from MonitorElement" << key; continue; } - const TH1F* hist = me->getTH1F(); - if (hist == nullptr) { - edm::LogError(log_category_) << "failed to get TH1F" << std::endl; + const TH2F* h_den = me_den->getTH2F(); + if (h_den == nullptr) { + edm::LogError(kLogCategory_) << "denominator: failed to get TH2F from MonitorElement" << key; continue; } - const auto [region_sign, station, ieta] = parseResidualName(name, prefix); - if (region_sign.empty() or station < 0 or ieta < 0) { - edm::LogError(log_category_) << "failed to parse the name of the residual histogram: " << name << std::endl; + const auto [parsing_success, var_name, gem_name, is_matched] = parseEfficiencySourceName(me_den->getName()); + if (not parsing_success) { + edm::LogError(kLogCategory_) << "failed to parse " << me_den->getName(); continue; } - std::pair region_station(region_sign, station); - - hist_vector.emplace_back(hist, region_station, ieta); - if (std::find(re_st_vec.begin(), re_st_vec.end(), region_station) == re_st_vec.end()) - re_st_vec.push_back(region_station); - if (std::find(ieta_vec.begin(), ieta_vec.end(), ieta) == ieta_vec.end()) - ieta_vec.push_back(ieta); - } // MonitorElement - - if (hist_vector.empty()) { - edm::LogError(log_category_) << "failed to find " << prefix << std::endl; - return; - } - - // NOTE - // GE-2/1, GE-1/1, GE-0/1, GE+0/1, GE+1/1, GE+2/1 - auto f_sort = [](const std::pair& lhs, const std::pair& rhs) -> bool { - if (lhs.first == rhs.first) { - if (lhs.first == "-") - return lhs.second > rhs.second; - else - return lhs.second < rhs.second; - - } else { - return (lhs.first == "-"); - } - }; - - std::sort(re_st_vec.begin(), re_st_vec.end(), f_sort); - std::sort(ieta_vec.begin(), ieta_vec.end()); - - const int num_st = re_st_vec.size(); - const int num_ieta = ieta_vec.size(); - // NOTE - TString tmp_title{std::get<0>(hist_vector.front())->GetTitle()}; - - const TObjArray* tokens = tmp_title.Tokenize(":"); - const TString title_prefix = dynamic_cast(tokens->At(0))->GetString(); - - const TString h_mean_name = prefix + "_mean"; - const TString h_stddev_name = prefix + "_stddev"; - const TString h_skewness_name = prefix + "_skewness"; - - const TString h_mean_title = title_prefix + " : Mean"; - const TString h_stddev_title = title_prefix + " : Standard Deviation"; - const TString h_skewness_title = title_prefix + " : Skewness"; - - TH2F* h_mean = new TH2F(h_mean_name, h_mean_title, num_ieta, 0.5, num_ieta + 0.5, num_st, 0.5, num_st + 0.5); - // x-axis - h_mean->GetXaxis()->SetTitle("i#eta"); - for (unsigned int idx = 0; idx < ieta_vec.size(); idx++) { - const int xbin = idx + 1; - const char* label = Form("%d", ieta_vec[idx]); - h_mean->GetXaxis()->SetBinLabel(xbin, label); - } - // y-axis - for (unsigned int idx = 0; idx < re_st_vec.size(); idx++) { - auto [region_sign, station] = re_st_vec[idx]; - const char* label = Form("GE%s%d/1", region_sign.c_str(), station); - const int ybin = idx + 1; - h_mean->GetYaxis()->SetBinLabel(ybin, label); - } - - TH2F* h_stddev = dynamic_cast(h_mean->Clone(h_stddev_name)); - TH2F* h_skewness = dynamic_cast(h_mean->Clone(h_skewness_name)); - - h_stddev->SetTitle(h_stddev_title); - h_skewness->SetTitle(h_skewness_title); - - // NOTE - for (auto [hist, region_station, ieta] : hist_vector) { - const int xbin = findResolutionBin(ieta, ieta_vec); - if (xbin < 0) { - edm::LogError(log_category_) << "found a wrong x bin = " << xbin << std::endl; - continue; + // TODO sanity-check + const TH1F* h_chamber_num = projectHistogram(h_num, TH1::kXaxis); + const TH1F* h_chamber_den = projectHistogram(h_den, TH1::kXaxis); + const char* eff_chamber_name = Form("eff_chamber_%s", gem_name.c_str()); + if (TH1F* eff = makeEfficiency(h_chamber_num, h_chamber_den, eff_chamber_name)) { + ibooker.book1D(eff_chamber_name, eff); } - const int ybin = findResolutionBin(region_station, re_st_vec); - if (ybin < 0) { - edm::LogError(log_category_) << "found a wrong y bin = " << ybin << std::endl; - continue; + const TH1F* h_ieta_num = projectHistogram(h_num, TH1::kYaxis); + const TH1F* h_ieta_den = projectHistogram(h_den, TH1::kYaxis); + const char* eff_ieta_name = Form("eff_ieta_%s", gem_name.c_str()); + if (TH1F* eff = makeEfficiency(h_ieta_num, h_ieta_den, eff_ieta_name)) { + ibooker.book1D(eff_ieta_name, eff); } - - h_mean->SetBinContent(xbin, ybin, hist->GetMean()); - h_stddev->SetBinContent(xbin, ybin, hist->GetStdDev()); - - // FIXME - // `GetSkewness` seems to returns nan when its histogram has no entry.. - const double skewness = hist->GetSkewness(); - if (edm::isFinite(skewness)) - h_skewness->SetBinContent(xbin, ybin, skewness); - - h_mean->SetBinError(xbin, ybin, hist->GetMeanError()); - h_stddev->SetBinError(xbin, ybin, hist->GetStdDevError()); - h_skewness->SetBinError(xbin, ybin, hist->GetSkewness(11)); - } - - for (auto& each : {h_mean, h_stddev, h_skewness}) { - ibooker.book2D(each->GetName(), each); - } + } // pairs } void GEMEfficiencyHarvester::dqmEndJob(DQMStore::IBooker& ibooker, DQMStore::IGetter& igetter) { - doEfficiency(ibooker, igetter); - doResolution(ibooker, igetter, "residual_rphi"); + for (const std::string& folder : kFolders_) { + bookEfficiencyAuto(ibooker, igetter, folder); + bookDetector1DEfficiency(ibooker, igetter, folder); + } } diff --git a/DQM/GEM/plugins/GEMEfficiencyHarvester.h b/DQM/GEM/plugins/GEMEfficiencyHarvester.h index d6778dc4d7585..d0cab45b97809 100644 --- a/DQM/GEM/plugins/GEMEfficiencyHarvester.h +++ b/DQM/GEM/plugins/GEMEfficiencyHarvester.h @@ -1,23 +1,20 @@ #ifndef DQM_GEM_GEMEfficiencyHarvester_h #define DQM_GEM_GEMEfficiencyHarvester_h -/** \class GEMEfficiencyAnalyzer +/** \class GEMEfficiencyHarvester * * DQM monitoring client for GEM efficiency and resolution * based on Validation/MuonGEMHits/MuonGEMBaseHarvestor * + * TODO bookSummaryPlot + * * \author Seungjin Yang */ -#include "DQMServices/Core/interface/DQMEDHarvester.h" -#include "DQMServices/Core/interface/DQMStore.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DQM/GEM/interface/GEMDQMEfficiencyClientBase.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" -#include -#include - -class GEMEfficiencyHarvester : public DQMEDHarvester { +class GEMEfficiencyHarvester : public GEMDQMEfficiencyClientBase { public: GEMEfficiencyHarvester(const edm::ParameterSet&); ~GEMEfficiencyHarvester() override; @@ -25,25 +22,9 @@ class GEMEfficiencyHarvester : public DQMEDHarvester { void dqmEndJob(DQMStore::IBooker&, DQMStore::IGetter&) override; private: - TProfile* computeEfficiency(const TH1F*, const TH1F*, const char*, const char*, const double confidence_level = 0.683); - TH2F* computeEfficiency(const TH2F*, const TH2F*, const char*, const char*); - std::vector splitString(std::string, const std::string); - std::tuple parseResidualName(std::string, const std::string); - void doEfficiency(DQMStore::IBooker&, DQMStore::IGetter&); - void doResolution(DQMStore::IBooker&, DQMStore::IGetter&, const std::string); + void bookDetector1DEfficiency(DQMStore::IBooker&, DQMStore::IGetter&, const std::string&); - template - int findResolutionBin(const T&, const std::vector&); - - std::string folder_; - std::string log_category_; + const std::vector kFolders_; }; -template -int GEMEfficiencyHarvester::findResolutionBin(const T& elem, const std::vector& vec) { - auto iter = std::find(vec.begin(), vec.end(), elem); - int bin = (iter != vec.end()) ? std::distance(vec.begin(), iter) + 1 : -1; - return bin; -} - #endif // DQM_GEM_GEMEfficiencyHarvester_h diff --git a/DQM/GEM/python/gemEfficiencyAnalyzerCosmics_cff.py b/DQM/GEM/python/gemEfficiencyAnalyzerCosmics_cff.py index 6d1f6ddbb8852..1905808fbe65d 100644 --- a/DQM/GEM/python/gemEfficiencyAnalyzerCosmics_cff.py +++ b/DQM/GEM/python/gemEfficiencyAnalyzerCosmics_cff.py @@ -2,17 +2,29 @@ from DQM.GEM.gemEfficiencyAnalyzer_cfi import * gemEfficiencyAnalyzerCosmics = gemEfficiencyAnalyzer.clone( - isCosmics = True, + scenario = "cosmics", + propagationErrorRCut = 0.5, # cm + propagationErrorPhiCut = 0.1, # degree + muonPtMinCutGE11 = 0, # GeV + muonEtaMinCutGE11 = 0.5, + muonEtaMaxCutGE11 = 10.0, + muonEtaNbinsGE11 = 30, + muonEtaLowGE11 = 0.0, + muonEtaUpGE11 = 3.0, ) -gemEfficiencyAnalyzerCosmicsTwoLeg = gemEfficiencyAnalyzerCosmics.clone( +gemEfficiencyAnalyzerCosmicsGlb = gemEfficiencyAnalyzerCosmics.clone( muonTag = 'muons', - name = 'Cosmic 2-Leg STA Muon', - folder = 'GEM/Efficiency/type1' + muonTrackType = 'CombinedTrack', + startingStateType = "OutermostMeasurementState", + folder = 'GEM/Efficiency/muonGLB', + muonName = 'Cosmic 2-Leg GLB Muon', ) -gemEfficiencyAnalyzerCosmicsOneLeg = gemEfficiencyAnalyzerCosmics.clone( - muonTag = 'muons1Leg', - name = 'Cosmic 1-Leg STA Muon', - folder = 'GEM/Efficiency/type2' +gemEfficiencyAnalyzerCosmicsSta = gemEfficiencyAnalyzerCosmics.clone( + muonTag = 'muons', + muonTrackType = 'OuterTrack', + startingStateType = "OutermostMeasurementState", + folder = 'GEM/Efficiency/muonSTA', + muonName = 'Cosmic 2-Leg STA Muon', ) diff --git a/DQM/GEM/python/gemEfficiencyAnalyzer_cff.py b/DQM/GEM/python/gemEfficiencyAnalyzer_cff.py index 89a0f1f5d2b4f..76c1f503602e9 100644 --- a/DQM/GEM/python/gemEfficiencyAnalyzer_cff.py +++ b/DQM/GEM/python/gemEfficiencyAnalyzer_cff.py @@ -1,45 +1,63 @@ import FWCore.ParameterSet.Config as cms from DQM.GEM.gemEfficiencyAnalyzer_cfi import * -gemOfflineDQMTightGlbMuons = cms.EDFilter("MuonSelector", - src = cms.InputTag('muons'), +################################################################################ +# Tight global muons +################################################################################ + +# FIXME +# the folowing expression doesn't work since 12_3_?: +# "&& passed('CutBasedIdTight')" +# so characters are replaced with the number +# CutBasedIdTight = 1UL << 3 = 8 +# see https://github.com/cms-sw/cmssw/blob/master/DataFormats/MuonReco/interface/Muon.h#L205 + +gemDQMTightGlbMuons = cms.EDFilter("MuonSelector", + src = cms.InputTag("muons"), cut = cms.string( - '(pt > 20)' - '&& isGlobalMuon' - '&& globalTrack.isNonnull' - '&& passed(\'CutBasedIdTight\')' + "isGlobalMuon" + "&& globalTrack.isNonnull" + "&& passed(8)" # CutBasedIdTight = 1UL << 3 = 8 ), filter = cms.bool(False) ) -gemOfflineDQMStaMuons = cms.EDFilter("MuonSelector", - src = cms.InputTag('muons'), +gemEfficiencyAnalyzerTightGlb = gemEfficiencyAnalyzer.clone( + muonTag = "gemDQMTightGlbMuons", + muonTrackType = "CombinedTrack", + startingStateType = "OutermostMeasurementState", + folder = "GEM/Efficiency/muonGLB", + muonName = "Tight GLB Muon", + propagationErrorRCut = 0.5, # cm + propagationErrorPhiCut = 0.1, # degree +) + +gemEfficiencyAnalyzerTightGlbSeq = cms.Sequence( + cms.ignore(gemDQMTightGlbMuons) * + gemEfficiencyAnalyzerTightGlb) + +################################################################################ +# Standalone muons +################################################################################ +gemDQMStaMuons = cms.EDFilter("MuonSelector", + src = cms.InputTag("muons"), cut = cms.string( - '(pt > 20)' - '&& isStandAloneMuon' - '&& outerTrack.isNonnull' + "isStandAloneMuon" + "&& outerTrack.isNonnull" ), filter = cms.bool(False) ) -gemEfficiencyAnalyzerTightGlb = gemEfficiencyAnalyzer.clone( - folder = 'GEM/Efficiency/type1', - muonTag = 'gemOfflineDQMTightGlbMuons', - name = 'Tight GLB Muon', - useGlobalMuon = True -) - gemEfficiencyAnalyzerSta = gemEfficiencyAnalyzer.clone( - muonTag = "gemOfflineDQMStaMuons", - folder = 'GEM/Efficiency/type2', - name = 'STA Muon', - useGlobalMuon = False + muonTag = "gemDQMStaMuons", + muonTrackType = "OuterTrack", + startingStateType = "OutermostMeasurementState", + folder = "GEM/Efficiency/muonSTA", + muonName = "STA Muon", + propagationErrorRCut = 0.5, # cm + propagationErrorPhiCut = 0.2, # degree ) -gemEfficiencyAnalyzerTightGlbSeq = cms.Sequence( - cms.ignore(gemOfflineDQMTightGlbMuons) * - gemEfficiencyAnalyzerTightGlb) - gemEfficiencyAnalyzerStaSeq = cms.Sequence( - cms.ignore(gemOfflineDQMStaMuons) * + cms.ignore(gemDQMStaMuons) * gemEfficiencyAnalyzerSta) diff --git a/DQM/GEM/python/gemEfficiencyAnalyzer_cfi.py b/DQM/GEM/python/gemEfficiencyAnalyzer_cfi.py index 0b3a01d41783a..a63c296154034 100644 --- a/DQM/GEM/python/gemEfficiencyAnalyzer_cfi.py +++ b/DQM/GEM/python/gemEfficiencyAnalyzer_cfi.py @@ -4,13 +4,11 @@ from TrackingTools.TransientTrack.TransientTrackBuilder_cfi import * gemEfficiencyAnalyzer = _gemEfficiencyAnalyzerDefault.clone( - ServiceParameters = MuonServiceProxy.ServiceParameters.clone(), + ServiceParameters = MuonServiceProxy.ServiceParameters.clone() ) from Configuration.Eras.Modifier_phase2_GEM_cff import phase2_GEM phase2_GEM.toModify(gemEfficiencyAnalyzer, monitorGE21 = True, monitorGE0 = True, - etaNbins = 15, - etaUp = 3.0, ) diff --git a/DQM/GEM/python/gemEfficiencyHarvesterCosmics_cff.py b/DQM/GEM/python/gemEfficiencyHarvesterCosmics_cff.py index dbb6f2a814cc5..23702b0d61808 100644 --- a/DQM/GEM/python/gemEfficiencyHarvesterCosmics_cff.py +++ b/DQM/GEM/python/gemEfficiencyHarvesterCosmics_cff.py @@ -1,13 +1,13 @@ import FWCore.ParameterSet.Config as cms from DQM.GEM.gemEfficiencyHarvester_cfi import gemEfficiencyHarvester -from DQM.GEM.gemEfficiencyAnalyzerCosmics_cff import gemEfficiencyAnalyzerCosmicsTwoLeg as _gemEfficiencyAnalyzerCosmicsTwoLeg -from DQM.GEM.gemEfficiencyAnalyzerCosmics_cff import gemEfficiencyAnalyzerCosmicsOneLeg as _gemEfficiencyAnalyzerCosmicsOneLeg +from DQM.GEM.gemEfficiencyAnalyzerCosmics_cff import gemEfficiencyAnalyzerCosmicsGlb as _gemEfficiencyAnalyzerCosmicsGlb +from DQM.GEM.gemEfficiencyAnalyzerCosmics_cff import gemEfficiencyAnalyzerCosmicsSta as _gemEfficiencyAnalyzerCosmicsSta -gemEfficiencyHarvesterCosmicsTwoLeg = gemEfficiencyHarvester.clone( - folder = _gemEfficiencyAnalyzerCosmicsTwoLeg.folder.value() +gemEfficiencyHarvesterCosmicsGlb = gemEfficiencyHarvester.clone( + folders = [_gemEfficiencyAnalyzerCosmicsGlb.folder.value()] ) -gemEfficiencyHarvesterCosmicsOneLeg = gemEfficiencyHarvester.clone( - folder = _gemEfficiencyAnalyzerCosmicsOneLeg.folder.value() +gemEfficiencyHarvesterCosmicsSta = gemEfficiencyHarvester.clone( + folders = [_gemEfficiencyAnalyzerCosmicsSta.folder.value()] ) diff --git a/DQM/GEM/python/gemEfficiencyHarvester_cff.py b/DQM/GEM/python/gemEfficiencyHarvester_cff.py index 4cc87719af45c..adc33e1ecb8ca 100644 --- a/DQM/GEM/python/gemEfficiencyHarvester_cff.py +++ b/DQM/GEM/python/gemEfficiencyHarvester_cff.py @@ -5,9 +5,9 @@ from DQM.GEM.gemEfficiencyAnalyzer_cff import gemEfficiencyAnalyzerSta as _gemEfficiencyAnalyzerSta gemEfficiencyHarvesterTightGlb = gemEfficiencyHarvester.clone( - folder = _gemEfficiencyAnalyzerTightGlb.folder.value() + folders = [_gemEfficiencyAnalyzerTightGlb.folder.value()] ) gemEfficiencyHarvesterSta = gemEfficiencyHarvester.clone( - folder = _gemEfficiencyAnalyzerSta.folder.value() + folders = [_gemEfficiencyAnalyzerSta.folder.value()] ) diff --git a/DQM/GEM/python/gem_dqm_offline_client_cosmics_cff.py b/DQM/GEM/python/gem_dqm_offline_client_cosmics_cff.py index 9471115511e06..4df1b893e1e55 100644 --- a/DQM/GEM/python/gem_dqm_offline_client_cosmics_cff.py +++ b/DQM/GEM/python/gem_dqm_offline_client_cosmics_cff.py @@ -5,6 +5,6 @@ gemClientsCosmics = cms.Sequence( GEMDQMHarvester * - gemEfficiencyHarvesterCosmicsTwoLeg * - gemEfficiencyHarvesterCosmicsOneLeg + gemEfficiencyHarvesterCosmicsGlb * + gemEfficiencyHarvesterCosmicsSta ) diff --git a/DQM/GEM/python/gem_dqm_offline_source_cosmics_cff.py b/DQM/GEM/python/gem_dqm_offline_source_cosmics_cff.py index 05debab7f41b1..40c2ab2b07f59 100644 --- a/DQM/GEM/python/gem_dqm_offline_source_cosmics_cff.py +++ b/DQM/GEM/python/gem_dqm_offline_source_cosmics_cff.py @@ -10,6 +10,6 @@ gemSourcesCosmics = cms.Sequence( GEMDigiSource * GEMRecHitSource * - gemEfficiencyAnalyzerCosmicsTwoLeg * - gemEfficiencyAnalyzerCosmicsOneLeg + gemEfficiencyAnalyzerCosmicsGlb * + gemEfficiencyAnalyzerCosmicsSta ) diff --git a/DQM/GEM/src/GEMDQMEfficiencyCalculator.cc b/DQM/GEM/src/GEMDQMEfficiencyCalculator.cc deleted file mode 100644 index 173ba8c1abc50..0000000000000 --- a/DQM/GEM/src/GEMDQMEfficiencyCalculator.cc +++ /dev/null @@ -1,190 +0,0 @@ -#include "DQM/GEM/interface/GEMDQMEfficiencyCalculator.h" - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Utilities/interface/isFinite.h" - -#include "TEfficiency.h" - -GEMDQMEfficiencyCalculator::GEMDQMEfficiencyCalculator() {} - -GEMDQMEfficiencyCalculator::~GEMDQMEfficiencyCalculator() {} - -// -TProfile* GEMDQMEfficiencyCalculator::computeEfficiency(const TH1F* passed, - const TH1F* total, - const char* name, - const char* title) { - if (not TEfficiency::CheckConsistency(*passed, *total)) { - edm::LogError(kLogCategory_) << "failed to pass TEfficiency::CheckConsistency. " << name; - return nullptr; - } - - const TAxis* total_x = total->GetXaxis(); - - TProfile* eff_profile = new TProfile(name, title, total_x->GetNbins(), total_x->GetXmin(), total_x->GetXmax()); - eff_profile->GetXaxis()->SetTitle(total_x->GetTitle()); - eff_profile->GetYaxis()->SetTitle("Efficiency"); - - for (int bin = 1; bin <= total->GetNbinsX(); bin++) { - const double num_passed = passed->GetBinContent(bin); - const double num_total = total->GetBinContent(bin); - - if (num_total < 1) { - eff_profile->SetBinEntries(bin, 0); - continue; - } - - const double efficiency = num_passed / num_total; - const double lower_boundary = TEfficiency::ClopperPearson(num_total, num_passed, kConfidenceLevel_, false); - const double upper_boundary = TEfficiency::ClopperPearson(num_total, num_passed, kConfidenceLevel_, true); - const double error = std::max(efficiency - lower_boundary, upper_boundary - efficiency); - // NOTE tprofile - const double profile_error = std::hypot(efficiency, error); - - eff_profile->SetBinContent(bin, efficiency); - eff_profile->SetBinError(bin, profile_error); - eff_profile->SetBinEntries(bin, 1); - } - - return eff_profile; -} - -// -TH2F* GEMDQMEfficiencyCalculator::computeEfficiency(const TH2F* passed, - const TH2F* total, - const char* name, - const char* title) { - if (not TEfficiency::CheckConsistency(*passed, *total)) { - edm::LogError(kLogCategory_) << "failed to pass TEfficiency::CheckConsistency. " << name; - return nullptr; - } - - TEfficiency eff(*passed, *total); - auto eff_hist = dynamic_cast(eff.CreateHistogram()); - eff_hist->SetName(name); - eff_hist->SetTitle(title); - - const TAxis* total_x = total->GetXaxis(); - TAxis* eff_hist_x = eff_hist->GetXaxis(); - eff_hist_x->SetTitle(total_x->GetTitle()); - for (int bin = 1; bin <= total->GetNbinsX(); bin++) { - const char* label = total_x->GetBinLabel(bin); - eff_hist_x->SetBinLabel(bin, label); - } - - const TAxis* total_y = total->GetYaxis(); - TAxis* eff_hist_y = eff_hist->GetYaxis(); - eff_hist_y->SetTitle(total_y->GetTitle()); - for (int bin = 1; bin <= total->GetNbinsY(); bin++) { - const char* label = total_y->GetBinLabel(bin); - eff_hist_y->SetBinLabel(bin, label); - } - - return eff_hist; -} - -void GEMDQMEfficiencyCalculator::drawEfficiency(DQMStore::IBooker& ibooker, - DQMStore::IGetter& igetter, - const std::string& folder) { - ibooker.setCurrentFolder(folder); - igetter.setCurrentFolder(folder); - - std::map > me_pairs; - - for (const std::string& name : igetter.getMEs()) { - const std::string fullpath = folder + "/" + name; - const MonitorElement* me = igetter.get(fullpath); - if (me == nullptr) { - edm::LogError(kLogCategory_) << "failed to get " << fullpath; - continue; - } - - const bool is_matched = name.find(kMatchedSuffix_) != std::string::npos; - - std::string key = name; - if (is_matched) - key.erase(key.find(kMatchedSuffix_), kMatchedSuffix_.length()); - - if (me_pairs.find(key) == me_pairs.end()) { - me_pairs[key] = {nullptr, nullptr}; - } - - if (is_matched) - me_pairs[key].first = me; - else - me_pairs[key].second = me; - } - - for (auto& [key, value] : me_pairs) { - const auto& [me_passed, me_total] = value; - if (me_passed == nullptr) { - LogDebug(kLogCategory_) << "numerator is missing. " << key; - continue; - } - - if (me_total == nullptr) { - LogDebug(kLogCategory_) << "denominator is missing. " << key; - continue; - } - - if (me_passed->kind() != me_total->kind()) { - edm::LogError(kLogCategory_) << "inconsistency between kinds of passed and total" << key; - continue; - } - - const std::string name = "eff_" + me_total->getName(); - const std::string title = me_passed->getTitle(); - - if (me_passed->kind() == MonitorElement::Kind::TH1F) { - TH1F* h_passed = me_passed->getTH1F(); - if (h_passed == nullptr) { - edm::LogError(kLogCategory_) << "failed to get TH1F from passed " << key; - continue; - } - // h_passed->Sumw2(); - - TH1F* h_total = me_total->getTH1F(); - if (h_total == nullptr) { - edm::LogError(kLogCategory_) << "failed to get TH1F from total" << key; - continue; - } - // h_total->Sumw2(); - - TProfile* eff = computeEfficiency(h_passed, h_total, name.c_str(), title.c_str()); - if (eff == nullptr) { - edm::LogError(kLogCategory_) << "failed to compute the efficiency " << key; - continue; - } - - ibooker.bookProfile(name, eff); - - } else if (me_passed->kind() == MonitorElement::Kind::TH2F) { - TH2F* h_passed = me_passed->getTH2F(); - if (h_passed == nullptr) { - edm::LogError(kLogCategory_) << "failed to get TH1F from passed " << key; - continue; - } - // h_passed->Sumw2(); - - TH2F* h_total = me_total->getTH2F(); - if (h_total == nullptr) { - edm::LogError(kLogCategory_) << "failed to get TH1F from total" << key; - continue; - } - // h_total->Sumw2(); - - TH2F* eff = computeEfficiency(h_passed, h_total, name.c_str(), title.c_str()); - if (eff == nullptr) { - edm::LogError(kLogCategory_) << "failed to compute the efficiency " << key; - continue; - } - - ibooker.book2D(name, eff); - - } else { - edm::LogError(kLogCategory_) << "not implemented"; - continue; - } - - } // me_pairs -} diff --git a/DQM/GEM/src/GEMDQMEfficiencyClientBase.cc b/DQM/GEM/src/GEMDQMEfficiencyClientBase.cc new file mode 100644 index 0000000000000..c5811c5f91306 --- /dev/null +++ b/DQM/GEM/src/GEMDQMEfficiencyClientBase.cc @@ -0,0 +1,415 @@ +#include "DQM/GEM/interface/GEMDQMEfficiencyClientBase.h" + +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/Utilities/interface/isFinite.h" + +#include "TEfficiency.h" +#include "TPRegexp.h" +#include + +GEMDQMEfficiencyClientBase::GEMDQMEfficiencyClientBase(const edm::ParameterSet& ps) + : kConfidenceLevel_(ps.getUntrackedParameter("confidenceLevel")), + kLogCategory_(ps.getUntrackedParameter("logCategory")) {} + +// Returns a tuple of +// - a boolean indicating whether the parsing is successful or not +// - name of a variable used in the efficiency monitoring +// - GEM subdetector name like GE11-P-L1 +// - a boolean indicating whether the name is a numerator name. +std::tuple GEMDQMEfficiencyClientBase::parseEfficiencySourceName( + std::string name) { + // NOTE This expression must be consistent with TODO + // TODO use regex + const bool success = TPRegexp("\\w+(?:_match)?_GE\\d1-(P|M)[0-9\\-]*").MatchB(name); + if (not success) { + return std::make_tuple(success, "", "", false); + } + + const std::string numerator_pattern = "_match"; + const auto numerator_pattern_start = name.find(numerator_pattern); + const bool is_numerator = numerator_pattern_start != std::string::npos; + if (is_numerator) { + // keep a delimiter between a variable name and a GEM name + // e.g. 'muon_pt_matched_GE11-L1' --> 'muon_pt_GE11-L1' + name.erase(numerator_pattern_start, numerator_pattern.length()); + } + // find the position of the delimiter. + // Because variable name can has "_", find the last one. + // NOTE The GEM name must not contains "_" + const unsigned long last_pos = name.find_last_of('_'); + + // "muon_pt" + const std::string var_name = name.substr(0, last_pos); + + // "GE11-L1" + const std::string gem_name = name.substr(last_pos + 1); + return std::make_tuple(success, var_name, gem_name, is_numerator); +} + +GEMDetId GEMDQMEfficiencyClientBase::parseGEMLabel(const std::string gem_label, const std::string delimiter) { + // GE11-P + // GE11-P-L1 + // GE11-P-E1 + + int region = 0; + int station = 0; + int layer = 0; + int chamber = 0; + int ieta = 0; + + std::vector tokens; + + // static const? + const std::regex re_station{"GE\\d1"}; + const std::regex re_region{"(P|M)"}; + const std::regex re_layer{"L\\d"}; + const std::regex re_chamber_layer{"\\d+L\\d"}; + const std::regex re_ieta{"E\\d+"}; + + std::string::size_type last_pos = gem_label.find_first_not_of(delimiter, 0); + std::string::size_type pos = gem_label.find_first_of(delimiter, last_pos); + while ((pos != std::string::npos) or (last_pos != std::string::npos)) { + const std::string token = gem_label.substr(last_pos, pos - last_pos); + + if (std::regex_match(token, re_region)) { + region = (token == "P") ? 1 : -1; + + } else if (std::regex_match(token, re_station)) { + station = std::stoi(token.substr(2, 1)); + + } else if (std::regex_match(token, re_layer)) { + layer = std::stoi(token.substr(1)); + + } else if (std::regex_match(token, re_chamber_layer)) { + const unsigned long layer_prefix_pos = token.find('L'); + chamber = std::stoi(token.substr(0, layer_prefix_pos)); + layer = std::stoi(token.substr(layer_prefix_pos + 1)); + + } else if (std::regex_match(token, re_ieta)) { + ieta = std::stoi(token.substr(1)); + + } else { + edm::LogError(kLogCategory_) << "unknown pattern: " << gem_label << " --> " << token; + } + } + + const GEMDetId id{region, 1, station, layer, chamber, ieta}; + return id; +} + +std::map GEMDQMEfficiencyClientBase::makeEfficiencySourcePair( + DQMStore::IBooker& ibooker, DQMStore::IGetter& igetter, const std::string& folder, const std::string prefix) { + ibooker.setCurrentFolder(folder); + igetter.setCurrentFolder(folder); + + std::map me_pairs; + + for (const std::string& name : igetter.getMEs()) { + // If name doesn't start with prefix + // The default prefix is empty string. + if (name.rfind(prefix, 0) != 0) { + // TODO LogDebug + continue; + } + + const std::string fullpath = folder + "/" + name; + const MonitorElement* me = igetter.get(fullpath); + if (me == nullptr) { + edm::LogError(kLogCategory_) << "failed to get " << fullpath; + continue; + } + + const auto [parsing_success, var_name, gem_name, is_matched] = parseEfficiencySourceName(name); + if (not parsing_success) { + // TODO LogDebug + continue; + } + + const std::string key = var_name + "_" + gem_name; + + if (me_pairs.find(key) == me_pairs.end()) { + me_pairs[key] = {nullptr, nullptr}; + } + + if (is_matched) + me_pairs[key].first = me; + else + me_pairs[key].second = me; + } + + // remove invalid pairs + for (auto it = me_pairs.cbegin(); it != me_pairs.cend();) { + auto [me_numerator, me_denominator] = (*it).second; + + bool okay = true; + if (me_numerator == nullptr) { + okay = false; + + } else if (me_denominator == nullptr) { + okay = false; + + } else if (me_numerator->kind() != me_denominator->kind()) { + okay = false; + } + + // anyways, move on to the next one + if (okay) { + it++; + + } else { + it = me_pairs.erase(it); + } + } + + return me_pairs; +} + +void GEMDQMEfficiencyClientBase::setBins(TH1F* dst_hist, const TAxis* src_axis) { + const int nbins = src_axis->GetNbins(); + if (src_axis->IsVariableBinSize()) { + std::vector edges; + edges.reserve(nbins + 1); + + for (int bin = 1; bin <= nbins; bin++) { + edges.push_back(src_axis->GetBinLowEdge(bin)); + } + edges.push_back(src_axis->GetBinUpEdge(nbins)); + + dst_hist->SetBins(nbins, &edges[0]); + + } else { + const double xlow = src_axis->GetBinLowEdge(1); + const double xup = src_axis->GetBinUpEdge(nbins); + + dst_hist->SetBins(nbins, xlow, xup); + } + + for (int bin = 1; bin <= nbins; bin++) { + const TString label{src_axis->GetBinLabel(bin)}; + if (label.Length() > 0) { + dst_hist->GetXaxis()->SetBinLabel(bin, label); + } + } +} + +// Returns a boolean indicating whether the numerator and the denominator are +// consistent. +// +// TEfficiency::CheckConsistency raises errors and leads to an exception. +// So, the efficiency client will skip inconsitent two histograms. +// https://github.com/root-project/root/blob/v6-24-06/hist/hist/src/TEfficiency.cxx#L1494-L1512 +bool GEMDQMEfficiencyClientBase::checkConsistency(const TH1& pass, const TH1& total) { + if (pass.GetDimension() != total.GetDimension()) { + edm::LogError(kLogCategory_) << "numerator and denominator have different dimensions: " << pass.GetName() << " & " + << total.GetName(); + return false; + } + + if (not TEfficiency::CheckBinning(pass, total)) { + edm::LogError(kLogCategory_) << "numerator and denominator have different binning: " << pass.GetName() << " & " + << total.GetName(); + return false; + } + + if (not TEfficiency::CheckEntries(pass, total)) { + edm::LogError(kLogCategory_) << "numerator and denominator do not have consistent bin contents " << pass.GetName() + << " & " << total.GetName(); + return false; + } + + return true; +} + +// MonitorElement doesn't support TGraphAsymmErrors +TH1F* GEMDQMEfficiencyClientBase::makeEfficiency(const TH1F* h_numerator, + const TH1F* h_denominator, + const char* name, + const char* title) { + if (h_numerator == nullptr) { + edm::LogError(kLogCategory_) << "numerator is nullptr"; + return nullptr; + } + + if (h_denominator == nullptr) { + edm::LogError(kLogCategory_) << "denominator is nulpptr"; + return nullptr; + } + + if (not checkConsistency(*h_numerator, *h_denominator)) { + return nullptr; + } + + if (name == nullptr) { + name = Form("eff_%s", h_denominator->GetName()); + } + + if (title == nullptr) { + title = h_denominator->GetTitle(); + } + + const TAxis* x_axis = h_denominator->GetXaxis(); + + // create an empty TProfile for storing efficiencies and uncertainties. + TH1F* h_eff = new TH1F(); + h_eff->SetName(name); + h_eff->SetTitle(title); + h_eff->GetXaxis()->SetTitle(x_axis->GetTitle()); + h_eff->GetYaxis()->SetTitle("Efficiency"); + setBins(h_eff, h_denominator->GetXaxis()); + + // efficiency calculation + const int nbins = x_axis->GetNbins(); + for (int bin = 1; bin <= nbins; bin++) { + const double passed = h_numerator->GetBinContent(bin); + const double total = h_denominator->GetBinContent(bin); + + if (total < 1) { + continue; + } + + const double efficiency = passed / total; + const double lower_boundary = TEfficiency::ClopperPearson(total, passed, kConfidenceLevel_, false); + const double upper_boundary = TEfficiency::ClopperPearson(total, passed, kConfidenceLevel_, true); + const double error = std::max(efficiency - lower_boundary, upper_boundary - efficiency); + + h_eff->SetBinContent(bin, efficiency); + h_eff->SetBinError(bin, error); + } + + return h_eff; +} + +// +TH2F* GEMDQMEfficiencyClientBase::makeEfficiency(const TH2F* h_numerator, + const TH2F* h_denominator, + const char* name, + const char* title) { + if (h_numerator == nullptr) { + edm::LogError(kLogCategory_) << "numerator is nullptr"; + return nullptr; + } + + if (h_denominator == nullptr) { + edm::LogError(kLogCategory_) << "denominator is nulpptr"; + return nullptr; + } + + if (not checkConsistency(*h_numerator, *h_denominator)) { + return nullptr; + } + + if (name == nullptr) { + name = Form("eff_%s", h_denominator->GetName()); + } + + if (title == nullptr) { + title = h_denominator->GetTitle(); + } + + TEfficiency eff(*h_numerator, *h_denominator); + auto h_eff = dynamic_cast(eff.CreateHistogram()); + h_eff->SetName(name); + h_eff->SetTitle(title); + + return h_eff; +} + +// FIXME TH2D::ProjectionX looks buggy +TH1F* GEMDQMEfficiencyClientBase::projectHistogram(const TH2F* h_2d, const unsigned int on_which_axis) { + if ((on_which_axis != TH1::kXaxis) and (on_which_axis != TH1::kYaxis)) { + edm::LogError(kLogCategory_) << "invalid choice: " << on_which_axis << "." + << " choose from [TH1::kXaxis (=1), TH1::kYaxis (=2)]"; + return nullptr; + } + + const bool on_x_axis = (on_which_axis == TH1::kXaxis); + + // on which axis is the histogram projected? + const TAxis* src_proj_axis = on_x_axis ? h_2d->GetXaxis() : h_2d->GetYaxis(); + // along which axis do the entries accumulate? + const TAxis* src_accum_axis = on_x_axis ? h_2d->GetYaxis() : h_2d->GetXaxis(); + + const TString prefix = on_x_axis ? "_proj_on_x" : "_proj_on_y"; + const TString name = h_2d->GetName() + prefix; + const TString title = h_2d->GetTitle(); + + TH1F* h_proj = new TH1F(); + h_proj->SetName(name); + h_proj->SetTitle(title); + h_proj->GetXaxis()->SetTitle(src_proj_axis->GetTitle()); + setBins(h_proj, src_proj_axis); + + for (int proj_bin = 1; proj_bin <= src_proj_axis->GetNbins(); proj_bin++) { + double cumsum = 0.0; + for (int accum_bin = 1; accum_bin <= src_accum_axis->GetNbins(); accum_bin++) { + if (on_x_axis) { + cumsum += h_2d->GetBinContent(proj_bin, accum_bin); + } else { + cumsum += h_2d->GetBinContent(accum_bin, proj_bin); + } + } + h_proj->SetBinContent(proj_bin, cumsum); + } + h_proj->Sumw2(); + return h_proj; +} + +void GEMDQMEfficiencyClientBase::bookEfficiencyAuto(DQMStore::IBooker& ibooker, + DQMStore::IGetter& igetter, + const std::string& folder) { + const std::map me_pairs = makeEfficiencySourcePair(ibooker, igetter, folder); + + for (auto& [key, value] : me_pairs) { + const auto& [me_numerator, me_denominator] = value; + + const MonitorElement::Kind me_kind = me_numerator->kind(); + if (me_kind == MonitorElement::Kind::TH1F) { + TH1F* h_numerator = me_numerator->getTH1F(); + if (h_numerator == nullptr) { + edm::LogError(kLogCategory_) << "failed to get TH1F from h_numerator " << key; + continue; + } + + TH1F* h_denominator = me_denominator->getTH1F(); + if (h_denominator == nullptr) { + edm::LogError(kLogCategory_) << "failed to get TH1F from h_denominator" << key; + continue; + } + + if (TH1F* eff = makeEfficiency(h_numerator, h_denominator)) { + ibooker.book1D(eff->GetName(), eff); + + } else { + // makeEfficiency will report the error. + continue; + } + + } else if (me_kind == MonitorElement::Kind::TH2F) { + TH2F* h_numerator = me_numerator->getTH2F(); + if (h_numerator == nullptr) { + edm::LogError(kLogCategory_) << "failed to get TH1F from h_numerator " << key; + continue; + } + + TH2F* h_denominator = me_denominator->getTH2F(); + if (h_denominator == nullptr) { + edm::LogError(kLogCategory_) << "failed to get TH1F from h_denominator" << key; + continue; + } + + if (TH2F* eff = makeEfficiency(h_numerator, h_denominator)) { + ibooker.book2D(eff->GetName(), eff); + + } else { + // makeEfficiency will report the error. + continue; + } + + } else { + edm::LogError(kLogCategory_) << "got an unepxected MonitorElement::Kind " + << "0x" << std::hex << static_cast(me_kind); + continue; + } + + } // me_pairs +} diff --git a/DQM/GEM/src/GEMDQMEfficiencySourceBase.cc b/DQM/GEM/src/GEMDQMEfficiencySourceBase.cc new file mode 100644 index 0000000000000..39f863b4ab8b7 --- /dev/null +++ b/DQM/GEM/src/GEMDQMEfficiencySourceBase.cc @@ -0,0 +1,336 @@ +#include "DQM/GEM/interface/GEMDQMEfficiencySourceBase.h" + +#include "FWCore/Utilities/interface/Likely.h" + +#include "TPRegexp.h" + +GEMDQMEfficiencySourceBase::GEMDQMEfficiencySourceBase(const edm::ParameterSet& ps) + : kGEMOHStatusCollectionToken_( + consumes(ps.getUntrackedParameter("ohStatusTag"))), + kGEMVFATStatusCollectionToken_( + consumes(ps.getUntrackedParameter("vfatStatusTag"))), + kMonitorGE11_(ps.getUntrackedParameter("monitorGE11")), + kMonitorGE21_(ps.getUntrackedParameter("monitorGE21")), + kMonitorGE0_(ps.getUntrackedParameter("monitorGE0")), + kMaskChamberWithError_(ps.getUntrackedParameter("maskChamberWithError")), + kLogCategory_(ps.getUntrackedParameter("logCategory")) {} + +// NOTE GEMDQMEfficiencyClientBase::parseEfficiencySourceName +std::string GEMDQMEfficiencySourceBase::nameNumerator(const std::string& denominator) { + const bool success = TPRegexp("\\w+_GE\\d1-(P|M)[0-9\\-]*").MatchB(denominator); + if (not success) { + edm::LogError(kLogCategory_) << "denominator name not understood: " << denominator; + return std::string{}; + } + + const std::string delimiter = "_"; + const std::string::size_type delimiter_pos = denominator.find_last_of(delimiter); + const std::string var_name = denominator.substr(0, delimiter_pos); + const std::string gem_name = denominator.substr(delimiter_pos + 1); + + const std::string numerator = var_name + "_match" + delimiter + gem_name; + // e.g. denominator_name = "prop_GE11-P-L1" + // tokens = {"prop", "11-P-L1"} + + return numerator; +} + +// TODO doc +dqm::impl::MonitorElement* GEMDQMEfficiencySourceBase::bookNumerator1D(DQMStore::IBooker& ibooker, + MonitorElement* denominator) { + if (denominator == nullptr) { + edm::LogError(kLogCategory_) << "denominator is nullptr"; + return nullptr; + } + + const std::string name = nameNumerator(denominator->getName()); + if (name.empty()) { + edm::LogError(kLogCategory_) << "denominator's name is " << denominator->getName() + << " but nameNumerator returns an empty string"; + return nullptr; + } + TH1F* hist = dynamic_cast(denominator->getTH1F()->Clone(name.c_str())); + return ibooker.book1D(name, hist); +} + +// TODO doc +dqm::impl::MonitorElement* GEMDQMEfficiencySourceBase::bookNumerator2D(DQMStore::IBooker& ibooker, + MonitorElement* denominator) { + if (denominator == nullptr) { + edm::LogError(kLogCategory_) << "denominator is nullptr"; + return nullptr; + } + + const std::string name = nameNumerator(denominator->getName()); + if (name.empty()) { + edm::LogError(kLogCategory_) << "denominator's name is " << denominator->getName() + << " but nameNumerator returns an empty string"; + return nullptr; + } + + // TODO check if getTH2F is not None + TH2F* hist = dynamic_cast(denominator->getTH2F()->Clone(name.c_str())); + return ibooker.book2D(name, hist); +} + +// TODO docs +std::tuple GEMDQMEfficiencySourceBase::getChamberRange(const GEMStation* station) { + if (station == nullptr) { + return std::make_tuple(false, 0, 0); + } + + const std::vector superchamber_vec = station->superChambers(); + if (not checkRefs(superchamber_vec)) { + edm::LogError(kLogCategory_) << "GEMStation::superChambers"; // FIXME + return std::make_tuple(false, 0, 0); + } + + std::vector id_vec; + std::transform(superchamber_vec.begin(), + superchamber_vec.end(), + std::back_inserter(id_vec), + [](const GEMSuperChamber* superchamber) -> int { return superchamber->id().chamber(); }); + const auto [first_chamber, last_chamber] = std::minmax_element(id_vec.begin(), id_vec.end()); + if ((first_chamber == id_vec.end()) or (last_chamber == id_vec.end())) { + edm::LogError(kLogCategory_) << ""; // TODO + return std::make_tuple(false, 0, 0); + } + + return std::make_tuple(true, *first_chamber, *last_chamber); +} + +// TODO docs +std::tuple GEMDQMEfficiencySourceBase::getEtaPartitionRange(const GEMStation* station) { + if (station == nullptr) { + return std::make_tuple(false, 0, 0); + } + + const std::vector superchamber_vec = station->superChambers(); + if (not checkRefs(superchamber_vec)) { + edm::LogError(kLogCategory_) << "GEMStation::superChambers"; // FIXME + return std::make_tuple(false, 0, 0); + } + + const std::vector chamber_vec = superchamber_vec.front()->chambers(); + if (not checkRefs(chamber_vec)) { + edm::LogError(kLogCategory_) << ""; // TODO + return std::make_tuple(false, 0, 0); + } + const std::vector eta_partition_vec = chamber_vec.front()->etaPartitions(); + if (not checkRefs(eta_partition_vec)) { + edm::LogError(kLogCategory_) << ""; // TODO + return std::make_tuple(false, 0, 0); + } + + std::vector ieta_vec; + std::transform(eta_partition_vec.begin(), + eta_partition_vec.end(), + std::back_inserter(ieta_vec), + [](const GEMEtaPartition* each) -> int { return each->id().ieta(); }); + const auto [first_ieta, last_ieta] = std::minmax_element(ieta_vec.begin(), ieta_vec.end()); + if ((first_ieta == ieta_vec.end()) or (last_ieta == ieta_vec.end())) { + edm::LogError(kLogCategory_) << "failed to find minmax"; + return std::make_tuple(false, 0, 0); + } + + return std::make_tuple(true, *first_ieta, *last_ieta); +} + +// TODO docs +dqm::impl::MonitorElement* GEMDQMEfficiencySourceBase::bookChamber(DQMStore::IBooker& ibooker, + const TString& name, + const TString& title, + const GEMStation* station) { + if (station == nullptr) { + edm::LogError(kLogCategory_) << ""; // TODO + return nullptr; + } + + auto [success, first_chamber, last_chamber] = getChamberRange(station); + if (not success) { + edm::LogError(kLogCategory_) << "failed to get chambers: " << station->getName(); + return nullptr; + } + + const double xlow = first_chamber - 0.5; + const double xup = last_chamber + 0.5; + const int nbinsx = last_chamber - first_chamber + 1; + + MonitorElement* me = ibooker.book1D(name, title, nbinsx, xlow, xup); + me->setAxisTitle("Chamber", 1); + + for (int chamber = first_chamber; chamber <= last_chamber; chamber++) { + const std::string label = std::to_string(chamber); + me->setBinLabel(chamber, label, 1); + } + + return me; +} + +// TODO docs +dqm::impl::MonitorElement* GEMDQMEfficiencySourceBase::bookChamberEtaPartition(DQMStore::IBooker& ibooker, + const TString& name, + const TString& title, + const GEMStation* station) { + if (station == nullptr) { + edm::LogError(kLogCategory_) << "station is nullptr"; + return nullptr; + } + + auto [chamber_success, first_chamber, last_chamber] = getChamberRange(station); + if (not chamber_success) { + edm::LogError(kLogCategory_) << "getChamberRange failed"; + return nullptr; + } + + auto [ieta_success, first_ieta, last_ieta] = getEtaPartitionRange(station); + if (not ieta_success) { + edm::LogError(kLogCategory_) << "getEtaPartitionRange failed"; + return nullptr; + } + + const double xlow = first_chamber - 0.5; + const double xup = last_chamber + 0.5; + const int nbinsx = last_chamber - first_chamber + 1; + + const double ylow = first_ieta - 0.5; + const double yup = last_ieta + 0.5; + const int nbinsy = last_ieta - first_ieta + 1; + + MonitorElement* me = ibooker.book2D(name, title, nbinsx, xlow, xup, nbinsy, ylow, yup); + me->setAxisTitle("Chamber", 1); + me->setAxisTitle("i#eta", 2); + + for (int chamber = first_chamber; chamber <= last_chamber; chamber++) { + const std::string label = std::to_string(chamber); + me->setBinLabel(chamber, label, 1); + } + + for (int ieta = first_ieta; ieta <= last_ieta; ieta++) { + const std::string label = std::to_string(ieta); + me->setBinLabel(ieta, label, 2); + } + + return me; +} + +// TODO docs +bool GEMDQMEfficiencySourceBase::skipGEMStation(const int station) { + bool skip = false; + + if (station == 0) { + skip = not kMonitorGE0_; + + } else if (station == 1) { + skip = not kMonitorGE11_; + + } else if (station == 2) { + skip = not kMonitorGE21_; + + } else { + edm::LogError(kLogCategory_) << "got an unexpected GEM station " << station << ". skip this station."; + skip = true; + } + + return skip; +} + +bool GEMDQMEfficiencySourceBase::maskChamberWithError(const GEMDetId& chamber_id, + const GEMOHStatusCollection* oh_status_collection, + const GEMVFATStatusCollection* vfat_status_collection) { + const bool mask = true; + + for (auto iter = oh_status_collection->begin(); iter != oh_status_collection->end(); iter++) { + const auto [oh_id, range] = (*iter); + if (chamber_id != oh_id) { + continue; + } + + for (auto oh_status = range.first; oh_status != range.second; oh_status++) { + if (oh_status->isBad()) { + // GEMOHStatus is bad. Mask this chamber. + return mask; + } // isBad + } // range + } // collection + + for (auto iter = vfat_status_collection->begin(); iter != vfat_status_collection->end(); iter++) { + const auto [vfat_id, range] = (*iter); + if (chamber_id != vfat_id.chamberId()) { + continue; + } + for (auto vfat_status = range.first; vfat_status != range.second; vfat_status++) { + if (vfat_status->isBad()) { + return mask; + } + } // range + } // collection + + return not mask; +} + +// TODO docs +bool GEMDQMEfficiencySourceBase::hasMEKey(const MEMap& me_map, const GEMDetId& key) { + const bool has_key = me_map.find(key) != me_map.end(); + + if UNLIKELY (not has_key) { + const std::string hint = me_map.empty() ? "empty" : me_map.begin()->second->getName(); + edm::LogError(kLogCategory_) << "got an invalid key: " << key << ", hint=" << hint; + } + return has_key; +} + +void GEMDQMEfficiencySourceBase::fillME(MEMap& me_map, const GEMDetId& key, const double x) { + if (hasMEKey(me_map, key)) { + me_map[key]->Fill(x); + } +} + +void GEMDQMEfficiencySourceBase::fillME(MEMap& me_map, const GEMDetId& key, const double x, const double y) { + if (hasMEKey(me_map, key)) { + me_map[key]->Fill(x, y); + } +} + +double GEMDQMEfficiencySourceBase::clampWithAxis(const double value, const TAxis* axis) { + const double first_bin_center = axis->GetBinCenter(1); + const double last_bin_center = axis->GetBinCenter(axis->GetNbins()); + return std::clamp(value, first_bin_center, last_bin_center); +} + +// https://github.com/cms-sw/cmssw/blob/CMSSW_12_0_0_pre3/DQMOffline/L1Trigger/src/L1TFillWithinLimits.cc +void GEMDQMEfficiencySourceBase::fillMEWithinLimits(MonitorElement* me, const double x) { + if (me == nullptr) { + edm::LogError(kLogCategory_) << "MonitorElement is nullptr"; + return; + } + // FIXME assume that GEMDQMEfficiencySourceBase uses only TH1F fo 1d histograms + const TAxis* x_axis = me->getTH1F()->GetXaxis(); + me->Fill(clampWithAxis(x, x_axis)); +} + +// https://github.com/cms-sw/cmssw/blob/CMSSW_12_0_0_pre3/DQMOffline/L1Trigger/src/L1TFillWithinLimits.cc +void GEMDQMEfficiencySourceBase::fillMEWithinLimits(MonitorElement* me, const double x, const double y) { + if (me == nullptr) { + edm::LogError(kLogCategory_) << "MonitorElement is nullptr"; + return; + } + // FIXME assume that GEMDQMEfficiencySourceBase uses only TH2F fo 2d histograms + const TH2F* hist = me->getTH2F(); + const TAxis* x_axis = hist->GetXaxis(); + const TAxis* y_axis = hist->GetYaxis(); + + me->Fill(clampWithAxis(x, x_axis), clampWithAxis(y, y_axis)); +} + +void GEMDQMEfficiencySourceBase::fillMEWithinLimits(MEMap& me_map, const GEMDetId& key, const double x) { + if (hasMEKey(me_map, key)) { + fillMEWithinLimits(me_map[key], x); + } +} + +void GEMDQMEfficiencySourceBase::fillMEWithinLimits(MEMap& me_map, const GEMDetId& key, const double x, const double y) { + if (hasMEKey(me_map, key)) { + fillMEWithinLimits(me_map[key], x, y); + } +} diff --git a/DQM/GEM/src/GEMOfflineDQMBase.cc b/DQM/GEM/src/GEMOfflineDQMBase.cc deleted file mode 100644 index bc546e7d601c5..0000000000000 --- a/DQM/GEM/src/GEMOfflineDQMBase.cc +++ /dev/null @@ -1,104 +0,0 @@ -#include "DQM/GEM/interface/GEMOfflineDQMBase.h" -#include "FWCore/Utilities/interface/Likely.h" - -GEMOfflineDQMBase::GEMOfflineDQMBase(const edm::ParameterSet& pset) {} - -int GEMOfflineDQMBase::getDetOccXBin(const GEMDetId& gem_id, const edm::ESHandle& gem) { - const GEMSuperChamber* superchamber = gem->superChamber(gem_id); - if (superchamber == nullptr) { - return -1; - } - return getDetOccXBin(gem_id.chamber(), gem_id.layer(), superchamber->nChambers()); -} - -void GEMOfflineDQMBase::setDetLabelsVFAT(MonitorElement* me, const GEMStation* station) { - if (me == nullptr) { - edm::LogError(log_category_) << "MonitorElement* is nullptr" << std::endl; - return; - } - - me->setAxisTitle("Superchamber / Chamber", 1); - for (const GEMSuperChamber* superchamber : station->superChambers()) { - const int num_chambers = superchamber->nChambers(); - for (const GEMChamber* chamber : superchamber->chambers()) { - const int sc = chamber->id().chamber(); - const int ch = chamber->id().layer(); - const int xbin = getDetOccXBin(sc, ch, num_chambers); - const char* label = Form("%d/%d", sc, ch); - me->setBinLabel(xbin, label, 1); - } - } - - me->setAxisTitle("VFAT (i#eta)", 2); - const int max_vfat = getMaxVFAT(station->station()); - if (max_vfat < 0) { - edm::LogError(log_category_) << "Wrong max VFAT: " << max_vfat << " at Station " << station->station() << std::endl; - return; - } - - const int num_etas = getNumEtaPartitions(station); - for (int ieta = 1; ieta <= num_etas; ieta++) { - for (int vfat_phi = 1; vfat_phi <= max_vfat; vfat_phi++) { - const int ybin = getVFATNumber(station->station(), ieta, vfat_phi); - const char* label = Form("%d (%d)", ybin, ieta); - me->setBinLabel(ybin, label, 2); - } - } -} - -void GEMOfflineDQMBase::setDetLabelsEta(MonitorElement* me, const GEMStation* station) { - if (me == nullptr) { - edm::LogError(log_category_) << "MonitorElement* is nullptr" << std::endl; - return; - } - - me->setAxisTitle("Chamber", 1); - for (const GEMSuperChamber* superchamber : station->superChambers()) { - const int chamber = superchamber->id().chamber(); - const std::string&& label = std::to_string(chamber); - me->setBinLabel(chamber, label, 1); - } - - const int num_etas = getNumEtaPartitions(station); - me->setAxisTitle("i#eta", 2); - for (int ieta = 1; ieta <= num_etas; ieta++) { - const std::string&& label = std::to_string(ieta); - me->setBinLabel(ieta, label, 2); - } -} - -int GEMOfflineDQMBase::getNumEtaPartitions(const GEMStation* station) { - const auto&& superchambers = station->superChambers(); - if (not checkRefs(superchambers)) { - edm::LogError(log_category_) << "failed to get a valid vector of GEMSuperChamber ptrs" << std::endl; - return 0; - } - - const auto& chambers = superchambers.front()->chambers(); - if (not checkRefs(chambers)) { - edm::LogError(log_category_) << "failed to get a valid vector of GEMChamber ptrs" << std::endl; - return 0; - } - - return chambers.front()->nEtaPartitions(); -} - -void GEMOfflineDQMBase::fillME(MEMap& me_map, const GEMDetId& key, const float x) { - if UNLIKELY (me_map.find(key) == me_map.end()) { - const std::string hint = me_map.empty() ? "empty" : me_map.begin()->second->getName(); - edm::LogError(log_category_) << "got an invalid key: " << key << ", hint=" << hint << std::endl; - - } else { - me_map[key]->Fill(x); - } -} - -void GEMOfflineDQMBase::fillME(MEMap& me_map, const GEMDetId& key, const float x, const float y) { - if UNLIKELY (me_map.find(key) == me_map.end()) { - const std::string hint = me_map.empty() ? "empty" : me_map.begin()->second->getName(); - edm::LogError(log_category_) << "got an invalid key: " << key << ", hint=" << hint << std::endl; - - } else { - me_map[key]->Fill(x, y); - } -} diff --git a/DQM/GEM/test/test.py b/DQM/GEM/test/test.py index 78af4f0ce8806..b02f18121db1d 100644 --- a/DQM/GEM/test/test.py +++ b/DQM/GEM/test/test.py @@ -17,7 +17,7 @@ process.load("Configuration.StandardSequences.GeometryRecoDB_cff") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(None, 'auto:phase1_2021_cosmics', '') +process.GlobalTag = GlobalTag(None, 'auto:phase1_2022_cosmics', '') #process.load("DQM.Integration.config.FrontierCondition_GT_cfi") diff --git a/DQM/GEM/test/testGEMEffByGEMCSCSegment.py b/DQM/GEM/test/testGEMEffByGEMCSCSegment.py index bfa95ce390a74..a3f385b2f8236 100644 --- a/DQM/GEM/test/testGEMEffByGEMCSCSegment.py +++ b/DQM/GEM/test/testGEMEffByGEMCSCSegment.py @@ -13,7 +13,7 @@ process.load("Configuration.StandardSequences.GeometryRecoDB_cff") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(None, 'auto:phase1_2021_cosmics', '') +process.GlobalTag = GlobalTag(None, 'auto:phase1_2022_cosmics', '') process.load("DQM.Integration.config.environment_cfi") process.dqmEnv.subSystemFolder = "GEM" diff --git a/DQM/HcalTasks/plugins/HcalGPUComparisonTask.cc b/DQM/HcalTasks/plugins/HcalGPUComparisonTask.cc index e39aa8b208e2c..6a57cd01b7a9c 100644 --- a/DQM/HcalTasks/plugins/HcalGPUComparisonTask.cc +++ b/DQM/HcalTasks/plugins/HcalGPUComparisonTask.cc @@ -43,7 +43,7 @@ class HcalGPUComparisonTask : public hcaldqm::DQTask { // GPU reco test verification hcaldqm::Container2D energyGPUvsCPU_subdet_; hcaldqm::Container1D energyDiffGPUCPU_subdet_; - hcaldqm::Container2D energyDiffGPUCPU_depth_; + hcaldqm::ContainerProf2D energyDiffGPUCPU_depth_; }; HcalGPUComparisonTask::HcalGPUComparisonTask(edm::ParameterSet const& ps) @@ -127,13 +127,16 @@ HcalGPUComparisonTask::HcalGPUComparisonTask(edm::ParameterSet const& ps) if (mRecHitEnergy[did] != 0.) { energyDiffGPUCPU_subdet_.fill(did, (energy - mRecHitEnergy[did]) / mRecHitEnergy[did]); - energyDiffGPUCPU_depth_.fill(did, (energy - mRecHitEnergy[did]) / mRecHitEnergy[did]); + if (energy > 0.1) + energyDiffGPUCPU_depth_.fill(did, (energy - mRecHitEnergy[did]) / mRecHitEnergy[did]); } else if (mRecHitEnergy[did] == 0. && energy == 0.) { energyDiffGPUCPU_subdet_.fill(did, 0.); - energyDiffGPUCPU_depth_.fill(did, 0.); + if (energy > 0.1) + energyDiffGPUCPU_depth_.fill(did, 0.); } else { energyDiffGPUCPU_subdet_.fill(did, -1.); - energyDiffGPUCPU_depth_.fill(did, -1.); + if (energy > 0.1) + energyDiffGPUCPU_depth_.fill(did, -1.); } mRecHitEnergy.erase(did); diff --git a/DQM/Integration/python/clients/beamhlt_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beamhlt_dqm_sourceclient-live_cfg.py index 913f42d1cf0c2..21a8e3806e5b1 100644 --- a/DQM/Integration/python/clients/beamhlt_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beamhlt_dqm_sourceclient-live_cfg.py @@ -150,8 +150,12 @@ # Set rawDataRepacker (HI and live) or rawDataCollector (for all the rest) if (process.runType.getRunType() == process.runType.hi_run and live): rawDataInputTag = "rawDataRepacker" -else: +elif unitTest: + # This is needed until we update the streamer files used for the unitTest rawDataInputTag = "rawDataCollector" +else: + # Use raw data from selected TCDS FEDs (1024, 1025) + rawDataInputTag = "hltFEDSelectorTCDS" process.tcdsDigis.InputLabel = rawDataInputTag diff --git a/DQM/Integration/python/clients/ecal_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/ecal_dqm_sourceclient-live_cfg.py index d2ccb842dd8bb..10a275094eba5 100644 --- a/DQM/Integration/python/clients/ecal_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/ecal_dqm_sourceclient-live_cfg.py @@ -136,10 +136,10 @@ process.tcdsDigis = tcdsRawToDigi.clone( InputLabel = "rawDataCollector" ) -###### LumiScalars to get the PU/luminosity info ###### -process.hltScalersRawToDigi = cms.EDProducer( "ScalersRawToDigi", - scalersInputTag = cms.InputTag( "rawDataCollector" ) -) + +###### For OnlineLuminosityRecord to get the PU/luminosity info ###### +process.load('EventFilter.OnlineMetaDataRawToDigi.onlineMetaDataRawToDigi_cfi') +process.onlineMetaDataDigis = cms.EDProducer('OnlineMetaDataRawToDigi') process.dqmEnv.subSystemFolder = 'Ecal' process.dqmSaver.tag = 'Ecal' @@ -173,7 +173,7 @@ ### Paths ### -process.ecalMonitorPath = cms.Path(process.hltScalersRawToDigi+process.preScaler+process.ecalPreRecoSequence+process.ecalPhysicsFilter+process.ecalRecoSequence+process.tcdsDigis+process.ecalMonitorTask) +process.ecalMonitorPath = cms.Path(process.onlineMetaDataDigis+process.preScaler+process.ecalPreRecoSequence+process.ecalPhysicsFilter+process.ecalRecoSequence+process.tcdsDigis+process.ecalMonitorTask) process.ecalClientPath = cms.Path(process.preScaler+process.ecalPreRecoSequence+process.ecalPhysicsFilter+process.ecalMonitorClient) process.dqmEndPath = cms.EndPath(process.dqmEnv) diff --git a/DQM/Integration/python/clients/hcalgpu_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/hcalgpu_dqm_sourceclient-live_cfg.py new file mode 100644 index 0000000000000..f78ac97e5416c --- /dev/null +++ b/DQM/Integration/python/clients/hcalgpu_dqm_sourceclient-live_cfg.py @@ -0,0 +1,149 @@ +#------------------------------------- +# Hcal DQM Application using New DQM Sources/Clients +#------------------------------------- + +#------------------------------------- +# Standard Python Imports +#------------------------------------- +import os, sys, socket, string + +#------------------------------------- +# Standard CMSSW Imports/Definitions +#------------------------------------- +import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Run3_cff import Run3 +process = cms.Process('HCALDQM', Run3) +subsystem = 'Hcal' +cmssw = os.getenv("CMSSW_VERSION").split("_") +debugstr = "### HcalDQM::cfg::DEBUG: " +warnstr = "### HcalDQM::cfg::WARN: " +errorstr = "### HcalDQM::cfg::ERROR:" +useOfflineGT = False +useFileInput = False +useMap = False + +unitTest = False +if 'unitTest=True' in sys.argv: + unitTest=True + useFileInput=False + +#------------------------------------- +# Central DQM Stuff imports +#------------------------------------- +from DQM.Integration.config.online_customizations_cfi import * +if useOfflineGT: + process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") + process.GlobalTag.globaltag = autoCond['run3_data_prompt'] +else: + process.load('DQM.Integration.config.FrontierCondition_GT_cfi') +if unitTest: + process.load("DQM.Integration.config.unittestinputsource_cfi") + from DQM.Integration.config.unittestinputsource_cfi import options +elif useFileInput: + process.load("DQM.Integration.config.fileinputsource_cfi") + from DQM.Integration.config.fileinputsource_cfi import options +else: + process.load('DQM.Integration.config.inputsource_cfi') + from DQM.Integration.config.inputsource_cfi import options +process.load('DQM.Integration.config.environment_cfi') + +#------------------------------------- +# Central DQM Customization +#------------------------------------- +process.source.streamLabel = cms.untracked.string("DQMGPUvsCPU") +process.dqmEnv.subSystemFolder = subsystem +process.dqmSaver.tag = subsystem +process.dqmSaver.runNumber = options.runNumber +process.dqmSaverPB.tag = subsystem +process.dqmSaverPB.runNumber = options.runNumber +process = customise(process) +process.DQMStore.verbose = 0 +if not unitTest and not useFileInput : + if not options.BeamSplashRun : + process.source.minEventsPerLumi = 100 + +#------------------------------------- +# CMSSW/Hcal non-DQM Related Module import +#------------------------------------- +process.load("Configuration.StandardSequences.GeometryRecoDB_cff") +process.load('FWCore.MessageLogger.MessageLogger_cfi') +process.load("EventFilter.HcalRawToDigi.HcalRawToDigi_cfi") +process.load('EventFilter.CastorRawToDigi.CastorRawToDigi_cff') +process.load("SimCalorimetry.HcalTrigPrimProducers.hcaltpdigi_cff") + +#------------------------------------- +# CMSSW/Hcal non-DQM Related Module Settings +# -> runType +# -> Generic Input tag for the Raw Collection +# -> cmssw version +# -> Turn off default blocking of dead channels from rechit collection +# -> Drop Channel Status Bits (had benn 'HcalCellOff', "HcalCellDead") +# -> For Trigger Primitives Emulation +# -> L1 GT setting +# -> Rename the hbheprereco to hbhereco +#------------------------------------- +runType = process.runType.getRunType() +runTypeName = process.runType.getRunTypeName() +isCosmicRun = runTypeName=="cosmic_run" or runTypeName=="cosmic_run_stage1" +isHeavyIon = runTypeName=="hi_run" +cmssw = os.getenv("CMSSW_VERSION").split("_") + + +#------------------------------------- +# Hcal DQM Tasks and Harvesters import +# New Style +#------------------------------------- +process.load('DQM.HcalTasks.hcalGPUComparisonTask_cfi') +process.load('DQM.HcalTasks.HcalOnlineHarvesting') +process.load('DQM.HcalTasks.HcalQualityTests') + +#------------------------------------- +# Some Settings before Finishing up +# New Style Modules +#------------------------------------- +oldsubsystem = subsystem +process.hcalGPUComparisonTask.tagHBHE_ref = "hltHbherecoFromGPU" +process.hcalGPUComparisonTask.tagHBHE_target = "hltHbherecoLegacy" +process.hcalGPUComparisonTask.runkeyVal = runType +process.hcalGPUComparisonTask.runkeyName = runTypeName + +#------------------------------------- +# Hcal DQM Tasks/Clients Sequences Definition +#------------------------------------- +process.tasksPath = cms.Path( + process.hcalGPUComparisonTask +) + +#------------------------------------- +# Paths/Sequences Definitions +#------------------------------------- + +process.dqmPath = cms.EndPath( + process.dqmEnv) +process.dqmPath1 = cms.EndPath( + process.dqmSaver + *process.dqmSaverPB +) + +process.schedule = cms.Schedule( + process.tasksPath, + process.dqmPath, + process.dqmPath1 +) + +#------------------------------------- +# Scheduling and Process Customizations +#------------------------------------- +process.options = cms.untracked.PSet( + Rethrow = cms.untracked.vstring( + "ProductNotFound", + "TooManyProducts", + "TooFewProducts" + ) +) +process.options.wantSummary = True + +# tracer +#process.Tracer = cms.Service("Tracer") +print("Final Source settings:", process.source) +process = customise(process) diff --git a/DQM/Integration/python/clients/rpc_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/rpc_dqm_sourceclient-live_cfg.py index 823cf0d18ed03..8602def8eb49e 100644 --- a/DQM/Integration/python/clients/rpc_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/rpc_dqm_sourceclient-live_cfg.py @@ -100,11 +100,11 @@ ### DQM - from legacy process.load("DQM.RPCMonitorDigi.RPCDigiMonitoring_cfi") process.rpcdigidqm.UseMuon = useMuons -process.rpcdigidqm.NoiseFolder = "AllHits" +process.rpcdigidqm.NoiseFolder = "AllHitsLegacy" process.rpcdigidqm.RecHitLabel = "rpcRecHits" ### DQM - from Merger process.rpcMergerdigidqm = process.rpcdigidqm.clone( - NoiseFolder = "AllHitsMerger", + NoiseFolder = "AllHits", RecHitLabel = "rpcMergerRecHits" ) @@ -116,10 +116,10 @@ process.rpcdqmclient.DiagnosticPrescale = 1 process.rpcdqmclient.MinimumRPCEvents = 100 process.rpcdqmclient.OfflineDQM = isOfflineDQM -process.rpcdqmclient.RecHitTypeFolder = "AllHits" +process.rpcdqmclient.RecHitTypeFolder = "AllHitsLegacy" ### Merger process.rpcMergerdqmclient = process.rpcdqmclient.clone( - RecHitTypeFolder = "AllHitsMerger" + RecHitTypeFolder = "AllHits" ) ################# Other Clients ################# #process.load("DQM.RPCMonitorClient.RPCMon_SS_Dbx_Global_cfi") @@ -133,10 +133,10 @@ process.load("DQM.RPCMonitorClient.RPCEventSummary_cfi") process.rpcEventSummary.OfflineDQM = isOfflineDQM process.rpcEventSummary.MinimumRPCEvents = 10000 -process.rpcEventSummary.RecHitTypeFolder = "AllHits" +process.rpcEventSummary.RecHitTypeFolder = "AllHitsLegacy" ### Merger process.rpcEventSummaryMerger = process.rpcEventSummary.clone( - RecHitTypeFolder = "AllHitsMerger" + RecHitTypeFolder = "AllHits" ) ################# Quality Tests ################# diff --git a/DQM/L1TMonitor/interface/L1TStage2uGMT.h b/DQM/L1TMonitor/interface/L1TStage2uGMT.h index 9e3c6bb6f7978..a508f006a38f6 100644 --- a/DQM/L1TMonitor/interface/L1TStage2uGMT.h +++ b/DQM/L1TMonitor/interface/L1TStage2uGMT.h @@ -44,7 +44,6 @@ class L1TStage2uGMT : public DQMEDAnalyzer { const float etaScale_; const float phiScale_; - MonitorElement* ugmtBMTFBX; MonitorElement* ugmtBMTFnMuons; MonitorElement* ugmtBMTFhwPt; MonitorElement* ugmtBMTFhwPtUnconstrained; @@ -61,7 +60,6 @@ class L1TStage2uGMT : public DQMEDAnalyzer { MonitorElement* ugmtBMTFMuMuDPhi; MonitorElement* ugmtBMTFMuMuDR; - MonitorElement* ugmtOMTFBX; MonitorElement* ugmtOMTFnMuons; MonitorElement* ugmtOMTFhwPt; MonitorElement* ugmtOMTFhwEta; @@ -79,7 +77,6 @@ class L1TStage2uGMT : public DQMEDAnalyzer { MonitorElement* ugmtOMTFMuMuDPhi; MonitorElement* ugmtOMTFMuMuDR; - MonitorElement* ugmtEMTFBX; MonitorElement* ugmtEMTFnMuons; MonitorElement* ugmtEMTFhwPt; MonitorElement* ugmtEMTFhwPtUnconstrained; @@ -100,8 +97,6 @@ class L1TStage2uGMT : public DQMEDAnalyzer { MonitorElement* ugmtEMTFMuMuDR; MonitorElement* ugmtEMTFShowerTypeOccupancyPerSector; - MonitorElement* ugmtEMTFShowerTypeOccupancyPerBx; - MonitorElement* ugmtEMTFShowerSectorOccupancyPerBx; MonitorElement* ugmtBOMTFposMuMuDEta; MonitorElement* ugmtBOMTFposMuMuDPhi; @@ -117,11 +112,6 @@ class L1TStage2uGMT : public DQMEDAnalyzer { MonitorElement* ugmtEOMTFnegMuMuDPhi; MonitorElement* ugmtEOMTFnegMuMuDR; - MonitorElement* ugmtBMTFBXvsProcessor; - MonitorElement* ugmtOMTFBXvsProcessor; - MonitorElement* ugmtEMTFBXvsProcessor; - MonitorElement* ugmtBXvsLink; - MonitorElement* ugmtMuonBX; MonitorElement* ugmtnMuons; MonitorElement* ugmtMuonIndex; diff --git a/DQM/L1TMonitor/interface/L1TStage2uGMTInputBxDistributions.h b/DQM/L1TMonitor/interface/L1TStage2uGMTInputBxDistributions.h new file mode 100644 index 0000000000000..05a99175ddded --- /dev/null +++ b/DQM/L1TMonitor/interface/L1TStage2uGMTInputBxDistributions.h @@ -0,0 +1,59 @@ +#ifndef DQM_L1TMonitor_L1TStage2uGMTInputBxDistributions_h +#define DQM_L1TMonitor_L1TStage2uGMTInputBxDistributions_h + +#include "DataFormats/L1Trigger/interface/Muon.h" +#include "DataFormats/L1TMuon/interface/RegionalMuonCand.h" +#include "DataFormats/L1Trigger/interface/MuonShower.h" +#include "DataFormats/L1TMuon/interface/RegionalMuonShower.h" +#include "L1Trigger/L1TMuon/interface/MicroGMTConfiguration.h" + +#include "DQMServices/Core/interface/DQMEDAnalyzer.h" +#include "DQMServices/Core/interface/DQMStore.h" + +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" + +class L1TStage2uGMTInputBxDistributions : public DQMEDAnalyzer { +public: + L1TStage2uGMTInputBxDistributions(const edm::ParameterSet& ps); + ~L1TStage2uGMTInputBxDistributions() override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + +protected: + void bookHistograms(DQMStore::IBooker&, const edm::Run&, const edm::EventSetup&) override; + void analyze(const edm::Event&, const edm::EventSetup&) override; + +private: + edm::EDGetTokenT ugmtBMTFToken_; + edm::EDGetTokenT ugmtOMTFToken_; + edm::EDGetTokenT ugmtEMTFToken_; + edm::EDGetTokenT ugmtMuonToken_; + edm::EDGetTokenT ugmtEMTFShowerToken_; + edm::EDGetTokenT ugmtMuonShowerToken_; + std::string monitorDir_; + bool emul_; + bool verbose_; + bool hadronicShowers_; + + MonitorElement* ugmtBMTFBX; + + MonitorElement* ugmtOMTFBX; + + MonitorElement* ugmtEMTFBX; + + MonitorElement* ugmtEMTFShowerTypeOccupancyPerBx; + MonitorElement* ugmtEMTFShowerSectorOccupancyPerBx; + + MonitorElement* ugmtBMTFBXvsProcessor; + MonitorElement* ugmtOMTFBXvsProcessor; + MonitorElement* ugmtEMTFBXvsProcessor; + MonitorElement* ugmtBXvsLink; + + static constexpr unsigned IDX_TIGHT_SHOWER{2}; + static constexpr unsigned IDX_NOMINAL_SHOWER{1}; +}; + +#endif diff --git a/DQM/L1TMonitor/plugins/SealModule.cc b/DQM/L1TMonitor/plugins/SealModule.cc index 7ce8d179e5f37..0d5311f961517 100644 --- a/DQM/L1TMonitor/plugins/SealModule.cc +++ b/DQM/L1TMonitor/plugins/SealModule.cc @@ -33,6 +33,9 @@ DEFINE_FWK_MODULE(L1TStage2CaloLayer2); #include "DQM/L1TMonitor/interface/L1TStage2uGMT.h" DEFINE_FWK_MODULE(L1TStage2uGMT); +#include "DQM/L1TMonitor/interface/L1TStage2uGMTInputBxDistributions.h" +DEFINE_FWK_MODULE(L1TStage2uGMTInputBxDistributions); + #include "DQM/L1TMonitor/interface/L1TObjectsTiming.h" DEFINE_FWK_MODULE(L1TObjectsTiming); diff --git a/DQM/L1TMonitor/python/L1TStage2uGMTInputBxDistributions_cfi.py b/DQM/L1TMonitor/python/L1TStage2uGMTInputBxDistributions_cfi.py new file mode 100644 index 0000000000000..ba08e9c7548fd --- /dev/null +++ b/DQM/L1TMonitor/python/L1TStage2uGMTInputBxDistributions_cfi.py @@ -0,0 +1,21 @@ +import FWCore.ParameterSet.Config as cms + +# the uGMT DQM module +from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer +l1tStage2uGMTInputBxDistributions = DQMEDAnalyzer( + "L1TStage2uGMTInputBxDistributions", + bmtfProducer = cms.InputTag("gmtStage2Digis", "BMTF"), + omtfProducer = cms.InputTag("gmtStage2Digis", "OMTF"), + emtfProducer = cms.InputTag("gmtStage2Digis", "EMTF"), + emtfShowerProducer = cms.InputTag("gmtStage2Digis", "EMTF"), + muonProducer = cms.InputTag("gmtStage2Digis", "Muon"), + muonShowerProducer = cms.InputTag("gmtStage2Digis", "MuonShower"), + monitorDir = cms.untracked.string("L1T/L1TStage2uGMT"), + emulator = cms.untracked.bool(False), + verbose = cms.untracked.bool(False), + hadronicShowers = cms.untracked.bool(False) +) + +## Era: Run3_2021; Displaced muons from BMTF used in uGMT from Run-3 +from Configuration.Eras.Modifier_stage2L1Trigger_2021_cff import stage2L1Trigger_2021 +stage2L1Trigger_2021.toModify(l1tStage2uGMTInputBxDistributions, hadronicShowers = cms.untracked.bool(True)) diff --git a/DQM/L1TMonitor/python/L1TStage2uGMT_cff.py b/DQM/L1TMonitor/python/L1TStage2uGMT_cff.py index 8abe852460628..db52a2912c0ed 100644 --- a/DQM/L1TMonitor/python/L1TStage2uGMT_cff.py +++ b/DQM/L1TMonitor/python/L1TStage2uGMT_cff.py @@ -2,6 +2,7 @@ # the uGMT DQM module from DQM.L1TMonitor.L1TStage2uGMT_cfi import * +from DQM.L1TMonitor.L1TStage2uGMTInputBxDistributions_cfi import * # the uGMT intermediate muon DQM modules from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer @@ -58,64 +59,13 @@ stage2L1Trigger_2021.toModify(l1tStage2uGMTIntermediateEMTFNeg, displacedQuantities = cms.untracked.bool(True)) stage2L1Trigger_2021.toModify(l1tStage2uGMTIntermediateEMTFPos, displacedQuantities = cms.untracked.bool(True)) -# zero suppression DQM -l1tStage2uGMTZeroSupp = DQMEDAnalyzer( - "L1TMP7ZeroSupp", - fedIds = cms.vint32(1402), - rawData = cms.InputTag("rawDataCollector"), - # mask for inputs (pt==0 defines empty muon) - maskCapId1 = cms.untracked.vint32(0x000001FF, - 0x00000000, - 0x000001FF, - 0x00000000, - 0x000001FF, - 0x00000000), - # mask for outputs (pt==0 defines empty muon) - maskCapId2 = cms.untracked.vint32(0x0007FC00, - 0x00000000, - 0x0007FC00, - 0x00000000, - 0x0007FC00, - 0x00000000), - # mask for validation event outputs (pt==0 defines empty muon) - maskCapId3 = cms.untracked.vint32(0x0007FC00, - 0x00000000, - 0x0007FC00, - 0x00000000, - 0x0007FC00, - 0x00000000), - # no masks defined for caption IDs 0 and 4-11 - maxFEDReadoutSize = cms.untracked.int32(10000), - monitorDir = cms.untracked.string("L1T/L1TStage2uGMT/zeroSuppression/AllEvts"), - verbose = cms.untracked.bool(False), -) - -## Era: Run3_2021; Changed data format for Run-3 -from Configuration.Eras.Modifier_stage2L1Trigger_2021_cff import stage2L1Trigger_2021 -stage2L1Trigger_2021.toModify(l1tStage2uGMTZeroSupp, maskCapId2 = cms.untracked.vint32(0x00000000, - 0x00000000, - 0x0007FC00, - 0x00000000, - 0x0007FC00, - 0x00000000), - # mask for validation event outputs (pt==0 defines empty muon) - maskCapId3 = cms.untracked.vint32(0x00000000, - 0x00000000, - 0x0007FC00, - 0x00000000, - 0x0007FC00, - 0x00000000)) - -# ZS of validation events (to be used after fat event filter) -l1tStage2uGMTZeroSuppFatEvts = l1tStage2uGMTZeroSupp.clone() -l1tStage2uGMTZeroSuppFatEvts.monitorDir = cms.untracked.string("L1T/L1TStage2uGMT/zeroSuppression/FatEvts") - # List of bins to ignore ignoreBins = { - 'Bmtf' : [1], - 'Omtf' : [1], - 'Emtf' : [1], - 'EmtfShowers' : [1] + 'OutputCopies' : [1], + 'Bmtf' : [1], + 'Omtf' : [1], + 'Emtf' : [1], + 'EmtfShowers' : [1] } # compares the unpacked BMTF output regional muon collection with the unpacked uGMT input regional muon collection from BMTF @@ -193,12 +143,14 @@ muonCollection2Title = cms.untracked.string("uGMT muons copy 1"), summaryTitle = cms.untracked.string("Summary of comparison between uGMT muons and uGMT muon copy 1"), verbose = cms.untracked.bool(False), - displacedQuantities = cms.untracked.bool(False) + displacedQuantities = cms.untracked.bool(False), + ignoreBin = cms.untracked.vint32(), ) -## Era: Run3_2021; Displaced muons from BMTF used in uGMT from Run-3 +## Era: Run3_2021; Displaced muons used in uGMT from Run-3 + # Additionally: Ignore BX range mismatches. This is necessary because we only read out the central BX for the output copies. from Configuration.Eras.Modifier_stage2L1Trigger_2021_cff import stage2L1Trigger_2021 -stage2L1Trigger_2021.toModify(l1tStage2uGMTMuonVsuGMTMuonCopy1, displacedQuantities = cms.untracked.bool(True)) +stage2L1Trigger_2021.toModify(l1tStage2uGMTMuonVsuGMTMuonCopy1, displacedQuantities = cms.untracked.bool(True), ignoreBin = cms.untracked.vint32(ignoreBins['OutputCopies'])) l1tStage2uGMTMuonVsuGMTMuonCopy2 = l1tStage2uGMTMuonVsuGMTMuonCopy1.clone( muonCollection2 = "gmtStage2Digis:MuonCopy2", @@ -232,7 +184,8 @@ muonShowerCollection1Title = cms.untracked.string("uGMT muon showers"), muonShowerCollection2Title = cms.untracked.string("uGMT muon showers copy 1"), summaryTitle = cms.untracked.string("Summary of comparison between uGMT showers and uGMT shower copy 1"), - verbose = cms.untracked.bool(False) + verbose = cms.untracked.bool(False), + ignoreBin = cms.untracked.vint32(ignoreBins['OutputCopies']), # Ignore BX range mismatches. This is necessary because we only read out the central BX for the output copies. ) l1tStage2uGMTMuonShowerVsuGMTMuonShowerCopy2 = l1tStage2uGMTMuonShowerVsuGMTMuonShowerCopy1.clone( @@ -263,19 +216,18 @@ # sequences l1tStage2uGMTOnlineDQMSeq = cms.Sequence( l1tStage2uGMT + + l1tStage2uGMTInputBxDistributions + l1tStage2uGMTIntermediateBMTF + l1tStage2uGMTIntermediateOMTFNeg + l1tStage2uGMTIntermediateOMTFPos + l1tStage2uGMTIntermediateEMTFNeg + l1tStage2uGMTIntermediateEMTFPos + - l1tStage2uGMTZeroSupp + l1tStage2BmtfOutVsuGMTIn + l1tStage2OmtfOutVsuGMTIn + l1tStage2EmtfOutVsuGMTIn ) l1tStage2uGMTValidationEventOnlineDQMSeq = cms.Sequence( - l1tStage2uGMTZeroSuppFatEvts + l1tStage2uGMTMuonVsuGMTMuonCopy1 + l1tStage2uGMTMuonVsuGMTMuonCopy2 + l1tStage2uGMTMuonVsuGMTMuonCopy3 + @@ -284,19 +236,25 @@ ) -## Era: Run3_2021; Hadronic showers from EMTF used in uGMT from Run-3 +## Era: Run3_2021; Hadronic showers from EMTF used in uGMT from Run-3. Comparing output copies routinely, but moving the uGMT BX distribution plots behind the fat event filter so the BX comparisons aren't biased. from Configuration.Eras.Modifier_stage2L1Trigger_2021_cff import stage2L1Trigger_2021 -## TODO: To be enabled once we have unpacked EMTF showers -# _run3_l1tStage2uGMTOnlineDQMSeq = cms.Sequence(l1tStage2uGMTOnlineDQMSeq.copy() + l1tStage2EmtfOutVsuGMTInShowers) -# stage2L1Trigger_2021.toReplaceWith(l1tStage2uGMTOnlineDQMSeq, _run3_l1tStage2uGMTOnlineDQMSeq) - -_run3_l1tStage2uGMTValidationEventOnlineDQMSeq = cms.Sequence(l1tStage2uGMTValidationEventOnlineDQMSeq.copy() + +_run3_l1tStage2uGMTOnlineDQMSeq = cms.Sequence(l1tStage2uGMTOnlineDQMSeq.copy() + + l1tStage2uGMTMuonVsuGMTMuonCopy1 + + l1tStage2uGMTMuonVsuGMTMuonCopy2 + + l1tStage2uGMTMuonVsuGMTMuonCopy3 + + l1tStage2uGMTMuonVsuGMTMuonCopy4 + + l1tStage2uGMTMuonVsuGMTMuonCopy5 + + l1tStage2EmtfOutVsuGMTInShowers + l1tStage2uGMTMuonShowerVsuGMTMuonShowerCopy1 + l1tStage2uGMTMuonShowerVsuGMTMuonShowerCopy2 + l1tStage2uGMTMuonShowerVsuGMTMuonShowerCopy3 + l1tStage2uGMTMuonShowerVsuGMTMuonShowerCopy4 + l1tStage2uGMTMuonShowerVsuGMTMuonShowerCopy5 ) -stage2L1Trigger_2021.toReplaceWith(l1tStage2uGMTValidationEventOnlineDQMSeq, _run3_l1tStage2uGMTValidationEventOnlineDQMSeq) +_run3_l1tStage2uGMTOnlineDQMSeq.remove(l1tStage2uGMTInputBxDistributions) +stage2L1Trigger_2021.toReplaceWith(l1tStage2uGMTOnlineDQMSeq, _run3_l1tStage2uGMTOnlineDQMSeq) +# The following needs to go after the fat events filter, because inputs are read out with only the central BX for the standard events, so the BX distributions would otherwise be heavily biased toward the central BX. +_run3_l1tStage2uGMTValidationEventOnlineDQMSeq = cms.Sequence(l1tStage2uGMTInputBxDistributions) +stage2L1Trigger_2021.toReplaceWith(l1tStage2uGMTValidationEventOnlineDQMSeq, _run3_l1tStage2uGMTValidationEventOnlineDQMSeq) diff --git a/DQM/L1TMonitor/python/L1TdeGEMTPG_cfi.py b/DQM/L1TMonitor/python/L1TdeGEMTPG_cfi.py index 20a4a24ea995d..ca6f36743c8cf 100644 --- a/DQM/L1TMonitor/python/L1TdeGEMTPG_cfi.py +++ b/DQM/L1TMonitor/python/L1TdeGEMTPG_cfi.py @@ -4,7 +4,7 @@ monitorDir = cms.string("L1TEMU/L1TdeGEMTPG"), verbose = cms.bool(False), ## when multiple chambers are enabled, order them by station number! - chambers = cms.vstring("GE11"), + chambers = cms.vstring("GE11", "GE21"), dataEmul = cms.vstring("data","emul"), clusterVars = cms.vstring("size", "pad", "bx"), clusterNBin = cms.vuint32(20,384,10), diff --git a/DQM/L1TMonitor/python/L1TdeStage2uGMT_cff.py b/DQM/L1TMonitor/python/L1TdeStage2uGMT_cff.py index 61e7d3bb4c10f..baf0a3861c70d 100644 --- a/DQM/L1TMonitor/python/L1TdeStage2uGMT_cff.py +++ b/DQM/L1TMonitor/python/L1TdeStage2uGMT_cff.py @@ -10,7 +10,9 @@ ugmtEmuImdMuDqmDir = ugmtEmuDqmDir+"/intermediate_muons" # List of bins to ignore -ignoreBins = [7, 8, 12, 13] +ignoreFinalsBinsRun3 = [1] +ignoreIntermediatesBins = [7, 8, 12, 13] +ignoreIntermediatesBinsRun3 = [1, 7, 8, 12, 13] # fills histograms with all uGMT emulated muons # uGMT input muon histograms from track finders are not filled since they are identical to the data DQM plots @@ -87,9 +89,10 @@ ignoreBin = cms.untracked.vint32(), ) -## Era: Run3_2021; Displaced muons from BMTF used in uGMT from Run-3 +## Era: Run3_2021; Displaced muons used in uGMT from Run-3 + # Additionally: Ignore BX range mismatches. This is necessary because we only read out the central BX for the inputs, so that is what the emulator has to work on. from Configuration.Eras.Modifier_stage2L1Trigger_2021_cff import stage2L1Trigger_2021 -stage2L1Trigger_2021.toModify(l1tdeStage2uGMT, displacedQuantities = cms.untracked.bool(True)) +stage2L1Trigger_2021.toModify(l1tdeStage2uGMT, displacedQuantities = cms.untracked.bool(True), ignoreBin = ignoreFinalsBinsRun3) # compares the unpacked uGMT muon shower collection to the emulated uGMT muon shower collection # only showers that do not match are filled in the histograms @@ -102,7 +105,7 @@ muonShowerCollection2Title = cms.untracked.string("uGMT emulator"), summaryTitle = cms.untracked.string("Summary of comparison between uGMT showers and uGMT emulator showers"), verbose = cms.untracked.bool(False), - ignoreBin = cms.untracked.vint32(), + ignoreBin = cms.untracked.vint32(ignoreFinalsBinsRun3), # Ignore BX range mismatches. This is necessary because we only read out the central BX for the inputs, so that is what the emulator has to work on. ) # compares the unpacked uGMT intermediate muon collection to the emulated uGMT intermediate muon collection @@ -112,15 +115,18 @@ muonCollection2 = (emulatorModule, "imdMuonsBMTF"), monitorDir = ugmtEmuImdMuDqmDir+"/BMTF/data_vs_emulator_comparison", summaryTitle = "Summary of uGMT intermediate muon from BMTF comparison between unpacked and emulated", - ignoreBin = ignoreBins + ignoreBin = ignoreIntermediatesBins ) +## Era: Run3_2021; Ignore BX range mismatches. This is necessary because we only read out the central BX for the inputs, so that is what the emulator has to work on. +from Configuration.Eras.Modifier_stage2L1Trigger_2021_cff import stage2L1Trigger_2021 +stage2L1Trigger_2021.toModify(l1tdeStage2uGMTIntermediateBMTF, ignoreBin = ignoreIntermediatesBinsRun3) + l1tdeStage2uGMTIntermediateOMTFNeg = l1tdeStage2uGMTIntermediateBMTF.clone( displacedQuantities = False, muonCollection1 = (unpackerModule, "imdMuonsOMTFNeg"), muonCollection2 = (emulatorModule, "imdMuonsOMTFNeg"), monitorDir = (ugmtEmuImdMuDqmDir+"/OMTF_neg/data_vs_emulator_comparison"), summaryTitle = ("Summary of uGMT intermediate muon from OMTF- comparison between unpacked and emulated"), - ignoreBin = ignoreBins ) l1tdeStage2uGMTIntermediateOMTFPos = l1tdeStage2uGMTIntermediateBMTF.clone( displacedQuantities = False, @@ -128,7 +134,6 @@ muonCollection2 = (emulatorModule, "imdMuonsOMTFPos"), monitorDir = (ugmtEmuImdMuDqmDir+"/OMTF_pos/data_vs_emulator_comparison"), summaryTitle = "Summary of uGMT intermediate muon from OMTF+ comparison between unpacked and emulated", - ignoreBin = ignoreBins ) l1tdeStage2uGMTIntermediateEMTFNeg = l1tdeStage2uGMTIntermediateBMTF.clone( displacedQuantities = False, @@ -136,7 +141,6 @@ muonCollection2 = (emulatorModule, "imdMuonsEMTFNeg"), monitorDir = (ugmtEmuImdMuDqmDir+"/EMTF_neg/data_vs_emulator_comparison"), summaryTitle = "Summary of uGMT intermediate muon from EMTF- comparison between unpacked and emulated", - ignoreBin = ignoreBins ) l1tdeStage2uGMTIntermediateEMTFPos = l1tdeStage2uGMTIntermediateBMTF.clone( displacedQuantities = False, @@ -144,7 +148,6 @@ muonCollection2 = (emulatorModule, "imdMuonsEMTFPos"), monitorDir = (ugmtEmuImdMuDqmDir+"/EMTF_pos/data_vs_emulator_comparison"), summaryTitle = "Summary of uGMT intermediate muon from EMTF+ comparison between unpacked and emulated", - ignoreBin = ignoreBins ) # sequences l1tStage2uGMTEmulatorOnlineDQMSeq = cms.Sequence( diff --git a/DQM/L1TMonitor/src/L1TStage2uGMT.cc b/DQM/L1TMonitor/src/L1TStage2uGMT.cc index cda7d7855a031..ca07458eb827e 100644 --- a/DQM/L1TMonitor/src/L1TStage2uGMT.cc +++ b/DQM/L1TMonitor/src/L1TStage2uGMT.cc @@ -46,9 +46,6 @@ void L1TStage2uGMT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, // BMTF Input ibooker.setCurrentFolder(monitorDir_ + "/BMTFInput"); - ugmtBMTFBX = ibooker.book1D("ugmtBMTFBX", "uGMT BMTF Input BX", 7, -3.5, 3.5); - ugmtBMTFBX->setAxisTitle("BX", 1); - ugmtBMTFnMuons = ibooker.book1D("ugmtBMTFnMuons", "uGMT BMTF Input Muon Multiplicity", 37, -0.5, 36.5); ugmtBMTFnMuons->setAxisTitle("Muon Multiplicity (BX == 0)", 1); @@ -107,9 +104,6 @@ void L1TStage2uGMT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, // OMTF Input ibooker.setCurrentFolder(monitorDir_ + "/OMTFInput"); - ugmtOMTFBX = ibooker.book1D("ugmtOMTFBX", "uGMT OMTF Input BX", 7, -3.5, 3.5); - ugmtOMTFBX->setAxisTitle("BX", 1); - ugmtOMTFnMuons = ibooker.book1D("ugmtOMTFnMuons", "uGMT OMTF Input Muon Multiplicity", 37, -0.5, 36.5); ugmtOMTFnMuons->setAxisTitle("Muon Multiplicity (BX == 0)", 1); @@ -174,9 +168,6 @@ void L1TStage2uGMT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, // EMTF Input ibooker.setCurrentFolder(monitorDir_ + "/EMTFInput"); - ugmtEMTFBX = ibooker.book1D("ugmtEMTFBX", "uGMT EMTF Input BX", 7, -3.5, 3.5); - ugmtEMTFBX->setAxisTitle("BX", 1); - ugmtEMTFnMuons = ibooker.book1D("ugmtEMTFnMuons", "uGMT EMTF Input Muon Multiplicity", 37, -0.5, 36.5); ugmtEMTFnMuons->setAxisTitle("Muon Multiplicity (BX == 0)", 1); @@ -269,30 +260,6 @@ void L1TStage2uGMT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, ugmtEMTFShowerTypeOccupancyPerSector->setAxisTitle("Shower type", 2); ugmtEMTFShowerTypeOccupancyPerSector->setBinLabel(IDX_TIGHT_SHOWER, "Tight", 2); ugmtEMTFShowerTypeOccupancyPerSector->setBinLabel(IDX_NOMINAL_SHOWER, "Nominal", 2); - - ugmtEMTFShowerTypeOccupancyPerBx = - ibooker.book2D("ugmtEMTFShowerTypeOccupancyPerBx", "Shower type occupancy per BX", 7, -3.5, 3.5, 2, 1, 3); - ugmtEMTFShowerTypeOccupancyPerBx->setAxisTitle("BX", 1); - ugmtEMTFShowerTypeOccupancyPerBx->setAxisTitle("Shower type", 2); - ugmtEMTFShowerTypeOccupancyPerBx->setBinLabel(IDX_TIGHT_SHOWER, "Tight", 2); - ugmtEMTFShowerTypeOccupancyPerBx->setBinLabel(IDX_NOMINAL_SHOWER, "Nominal", 2); - - ugmtEMTFShowerSectorOccupancyPerBx = ibooker.book2D( - "ugmtEMTFShowerSectorOccupancyPerBx", "Shower BX occupancy per sector", 7, -3.5, 3.5, 12, 1, 13); - ugmtEMTFShowerSectorOccupancyPerBx->setAxisTitle("BX", 1); - ugmtEMTFShowerSectorOccupancyPerBx->setAxisTitle("Processor", 2); - ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(12, "+6", 2); - ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(11, "+5", 2); - ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(10, "+4", 2); - ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(9, "+3", 2); - ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(8, "+2", 2); - ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(7, "+1", 2); - ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(6, "-6", 2); - ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(5, "-5", 2); - ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(4, "-4", 2); - ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(3, "-3", 2); - ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(2, "-2", 2); - ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(1, "-1", 2); } // inter-TF muon correlations @@ -350,128 +317,88 @@ void L1TStage2uGMT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, // Subsystem Monitoring and Muon Output ibooker.setCurrentFolder(monitorDir_); - if (!emul_) { - ugmtBMTFBXvsProcessor = - ibooker.book2D("ugmtBXvsProcessorBMTF", "uGMT BMTF Input BX vs Processor", 12, -0.5, 11.5, 5, -2.5, 2.5); - ugmtBMTFBXvsProcessor->setAxisTitle("Wedge", 1); - for (int bin = 1; bin <= 12; ++bin) { - ugmtBMTFBXvsProcessor->setBinLabel(bin, std::to_string(bin), 1); - } - ugmtBMTFBXvsProcessor->setAxisTitle("BX", 2); - - ugmtOMTFBXvsProcessor = - ibooker.book2D("ugmtBXvsProcessorOMTF", "uGMT OMTF Input BX vs Processor", 12, -0.5, 11.5, 5, -2.5, 2.5); - ugmtOMTFBXvsProcessor->setAxisTitle("Sector (Detector Side)", 1); - for (int bin = 1; bin <= 6; ++bin) { - ugmtOMTFBXvsProcessor->setBinLabel(bin, std::to_string(7 - bin) + " (-)", 1); - ugmtOMTFBXvsProcessor->setBinLabel(bin + 6, std::to_string(bin) + " (+)", 1); - } - ugmtOMTFBXvsProcessor->setAxisTitle("BX", 2); - - ugmtEMTFBXvsProcessor = - ibooker.book2D("ugmtBXvsProcessorEMTF", "uGMT EMTF Input BX vs Processor", 12, -0.5, 11.5, 5, -2.5, 2.5); - ugmtEMTFBXvsProcessor->setAxisTitle("Sector (Detector Side)", 1); - for (int bin = 1; bin <= 6; ++bin) { - ugmtEMTFBXvsProcessor->setBinLabel(bin, std::to_string(7 - bin) + " (-)", 1); - ugmtEMTFBXvsProcessor->setBinLabel(bin + 6, std::to_string(bin) + " (+)", 1); - } - ugmtEMTFBXvsProcessor->setAxisTitle("BX", 2); - - ugmtBXvsLink = ibooker.book2D("ugmtBXvsLink", "uGMT BX vs Input Links", 36, 35.5, 71.5, 5, -2.5, 2.5); - ugmtBXvsLink->setAxisTitle("Link", 1); - for (int bin = 1; bin <= 6; ++bin) { - ugmtBXvsLink->setBinLabel(bin, Form("E+%d", bin), 1); - ugmtBXvsLink->setBinLabel(bin + 6, Form("O+%d", bin), 1); - ugmtBXvsLink->setBinLabel(bin + 12, Form("B%d", bin), 1); - ugmtBXvsLink->setBinLabel(bin + 18, Form("B%d", bin + 6), 1); - ugmtBXvsLink->setBinLabel(bin + 24, Form("O-%d", bin), 1); - ugmtBXvsLink->setBinLabel(bin + 30, Form("E-%d", bin), 1); - } - ugmtBXvsLink->setAxisTitle("BX", 2); - } - - ugmtMuonBX = ibooker.book1D("ugmtMuonBX", "uGMT Muon BX", 7, -3.5, 3.5); + ugmtMuonBX = ibooker.book1D("ugmtMuonBX", "uGMT output muon BX", 7, -3.5, 3.5); ugmtMuonBX->setAxisTitle("BX", 1); - ugmtnMuons = ibooker.book1D("ugmtnMuons", "uGMT Muon Multiplicity", 9, -0.5, 8.5); + ugmtnMuons = ibooker.book1D("ugmtnMuons", "uGMT output muon Multiplicity", 9, -0.5, 8.5); ugmtnMuons->setAxisTitle("Muon Multiplicity (BX == 0)", 1); ugmtMuonIndex = ibooker.book1D("ugmtMuonIndex", "uGMT Input Muon Index", 108, -0.5, 107.5); ugmtMuonIndex->setAxisTitle("Index", 1); - ugmtMuonhwPt = ibooker.book1D("ugmtMuonhwPt", "uGMT Muon HW p_{T}", 512, -0.5, 511.5); + ugmtMuonhwPt = ibooker.book1D("ugmtMuonhwPt", "uGMT output muon HW p_{T}", 512, -0.5, 511.5); ugmtMuonhwPt->setAxisTitle("Hardware p_{T}", 1); if (displacedQuantities_) { ugmtMuonhwPtUnconstrained = - ibooker.book1D("ugmtMuonhwPtUnconstrained", "uGMT Muon HW p_{T} unconstrained", 256, -0.5, 255.5); + ibooker.book1D("ugmtMuonhwPtUnconstrained", "uGMT output muon HW p_{T} unconstrained", 256, -0.5, 255.5); ugmtMuonhwPtUnconstrained->setAxisTitle("Hardware p_{T} unconstrained", 1); - ugmtMuonhwDXY = ibooker.book1D("ugmtMuonhwDXY", "uGMT Muon HW impact parameter", 4, -0.5, 3.5); + ugmtMuonhwDXY = ibooker.book1D("ugmtMuonhwDXY", "uGMT output muon HW impact parameter", 4, -0.5, 3.5); ugmtMuonhwDXY->setAxisTitle("Hardware dXY", 1); } - ugmtMuonhwEta = ibooker.book1D("ugmtMuonhwEta", "uGMT Muon HW #eta", 461, -230.5, 230.5); + ugmtMuonhwEta = ibooker.book1D("ugmtMuonhwEta", "uGMT output muon HW #eta", 461, -230.5, 230.5); ugmtMuonhwEta->setAxisTitle("Hardware Eta", 1); - ugmtMuonhwPhi = ibooker.book1D("ugmtMuonhwPhi", "uGMT Muon HW #phi", 577, -1.5, 575.5); + ugmtMuonhwPhi = ibooker.book1D("ugmtMuonhwPhi", "uGMT output muon HW #phi", 577, -1.5, 575.5); ugmtMuonhwPhi->setAxisTitle("Hardware Phi", 1); - ugmtMuonhwEtaAtVtx = ibooker.book1D("ugmtMuonhwEtaAtVtx", "uGMT Muon HW #eta at vertex", 461, -230.5, 230.5); + ugmtMuonhwEtaAtVtx = ibooker.book1D("ugmtMuonhwEtaAtVtx", "uGMT output muon HW #eta at vertex", 461, -230.5, 230.5); ugmtMuonhwEtaAtVtx->setAxisTitle("Hardware Eta at Vertex", 1); - ugmtMuonhwPhiAtVtx = ibooker.book1D("ugmtMuonhwPhiAtVtx", "uGMT Muon HW #phi at vertex", 577, -1.5, 575.5); + ugmtMuonhwPhiAtVtx = ibooker.book1D("ugmtMuonhwPhiAtVtx", "uGMT output muon HW #phi at vertex", 577, -1.5, 575.5); ugmtMuonhwPhiAtVtx->setAxisTitle("Hardware Phi at Vertex", 1); - ugmtMuonhwCharge = ibooker.book1D("ugmtMuonhwCharge", "uGMT Muon HW Charge", 4, -1.5, 2.5); + ugmtMuonhwCharge = ibooker.book1D("ugmtMuonhwCharge", "uGMT output muon HW Charge", 4, -1.5, 2.5); ugmtMuonhwCharge->setAxisTitle("Hardware Charge", 1); - ugmtMuonhwChargeValid = ibooker.book1D("ugmtMuonhwChargeValid", "uGMT Muon ChargeValid", 2, -0.5, 1.5); + ugmtMuonhwChargeValid = ibooker.book1D("ugmtMuonhwChargeValid", "uGMT output muon ChargeValid", 2, -0.5, 1.5); ugmtMuonhwChargeValid->setAxisTitle("ChargeValid", 1); - ugmtMuonhwQual = ibooker.book1D("ugmtMuonhwQual", "uGMT Muon Quality", 16, -0.5, 15.5); + ugmtMuonhwQual = ibooker.book1D("ugmtMuonhwQual", "uGMT output muon Quality", 16, -0.5, 15.5); ugmtMuonhwQual->setAxisTitle("Quality", 1); - ugmtMuonhwIso = ibooker.book1D("ugmtMuonhwIso", "uGMT Muon Isolation", 4, -0.5, 3.5); + ugmtMuonhwIso = ibooker.book1D("ugmtMuonhwIso", "uGMT output muon Isolation", 4, -0.5, 3.5); ugmtMuonhwIso->setAxisTitle("Isolation", 1); - ugmtMuonPt = ibooker.book1D("ugmtMuonPt", "uGMT Muon p_{T}", 128, -0.5, 255.5); + ugmtMuonPt = ibooker.book1D("ugmtMuonPt", "uGMT output muon p_{T}", 128, -0.5, 255.5); ugmtMuonPt->setAxisTitle("p_{T} [GeV]", 1); if (displacedQuantities_) { ugmtMuonPtUnconstrained = - ibooker.book1D("ugmtMuonPtUnconstrained", "uGMT Muon p_{T} unconstrained", 128, -0.5, 255.5); + ibooker.book1D("ugmtMuonPtUnconstrained", "uGMT output muon p_{T} unconstrained", 128, -0.5, 255.5); ugmtMuonPtUnconstrained->setAxisTitle("p_{T} unconstrained [GeV]", 1); } - ugmtMuonEta = ibooker.book1D("ugmtMuonEta", "uGMT Muon #eta", 52, -2.6, 2.6); + ugmtMuonEta = ibooker.book1D("ugmtMuonEta", "uGMT output muon #eta", 52, -2.6, 2.6); ugmtMuonEta->setAxisTitle("#eta", 1); - ugmtMuonPhi = ibooker.book1D("ugmtMuonPhi", "uGMT Muon #phi", 66, -3.3, 3.3); + ugmtMuonPhi = ibooker.book1D("ugmtMuonPhi", "uGMT output muon #phi", 66, -3.3, 3.3); ugmtMuonPhi->setAxisTitle("#phi", 1); - ugmtMuonEtaAtVtx = ibooker.book1D("ugmtMuonEtaAtVtx", "uGMT Muon #eta at vertex", 52, -2.6, 2.6); + ugmtMuonEtaAtVtx = ibooker.book1D("ugmtMuonEtaAtVtx", "uGMT output muon #eta at vertex", 52, -2.6, 2.6); ugmtMuonEtaAtVtx->setAxisTitle("#eta at vertex", 1); - ugmtMuonPhiAtVtx = ibooker.book1D("ugmtMuonPhiAtVtx", "uGMT Muon #phi at vertex", 66, -3.3, 3.3); + ugmtMuonPhiAtVtx = ibooker.book1D("ugmtMuonPhiAtVtx", "uGMT output muon #phi at vertex", 66, -3.3, 3.3); ugmtMuonPhiAtVtx->setAxisTitle("#phi at vertex", 1); - ugmtMuonCharge = ibooker.book1D("ugmtMuonCharge", "uGMT Muon Charge", 3, -1.5, 1.5); + ugmtMuonCharge = ibooker.book1D("ugmtMuonCharge", "uGMT output muon Charge", 3, -1.5, 1.5); ugmtMuonCharge->setAxisTitle("Charge", 1); - ugmtMuonPhiBmtf = ibooker.book1D("ugmtMuonPhiBmtf", "uGMT Muon #phi for BMTF Inputs", 66, -3.3, 3.3); + ugmtMuonPhiBmtf = ibooker.book1D("ugmtMuonPhiBmtf", "uGMT output muon #phi for BMTF Inputs", 66, -3.3, 3.3); ugmtMuonPhiBmtf->setAxisTitle("#phi", 1); - ugmtMuonPhiOmtf = ibooker.book1D("ugmtMuonPhiOmtf", "uGMT Muon #phi for OMTF Inputs", 66, -3.3, 3.3); + ugmtMuonPhiOmtf = ibooker.book1D("ugmtMuonPhiOmtf", "uGMT output muon #phi for OMTF Inputs", 66, -3.3, 3.3); ugmtMuonPhiOmtf->setAxisTitle("#phi", 1); - ugmtMuonPhiEmtf = ibooker.book1D("ugmtMuonPhiEmtf", "uGMT Muon #phi for EMTF Inputs", 66, -3.3, 3.3); + ugmtMuonPhiEmtf = ibooker.book1D("ugmtMuonPhiEmtf", "uGMT output muon #phi for EMTF Inputs", 66, -3.3, 3.3); ugmtMuonPhiEmtf->setAxisTitle("#phi", 1); const float dPhiScale = 4 * phiScale_; const float dEtaScale = etaScale_; ugmtMuonDEtavsPtBmtf = ibooker.book2D("ugmtMuonDEtavsPtBmtf", - "uGMT Muon from BMTF #eta_{at vertex} - #eta_{at muon system} vs p_{T}", + "uGMT output muon from BMTF #eta_{at vertex} - #eta_{at muon system} vs p_{T}", 32, 0, 64, @@ -482,7 +409,7 @@ void L1TStage2uGMT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, ugmtMuonDEtavsPtBmtf->setAxisTitle("#eta_{at vertex} - #eta", 2); ugmtMuonDPhivsPtBmtf = ibooker.book2D("ugmtMuonDPhivsPtBmtf", - "uGMT Muon from BMTF #phi_{at vertex} - #phi_{at muon system} vs p_{T}", + "uGMT output muon from BMTF #phi_{at vertex} - #phi_{at muon system} vs p_{T}", 32, 0, 64, @@ -493,7 +420,7 @@ void L1TStage2uGMT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, ugmtMuonDPhivsPtBmtf->setAxisTitle("#phi_{at vertex} - #phi", 2); ugmtMuonDEtavsPtOmtf = ibooker.book2D("ugmtMuonDEtavsPtOmtf", - "uGMT Muon from OMTF #eta_{at vertex} - #eta_{at muon system} vs p_{T}", + "uGMT output muon from OMTF #eta_{at vertex} - #eta_{at muon system} vs p_{T}", 32, 0, 64, @@ -504,7 +431,7 @@ void L1TStage2uGMT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, ugmtMuonDEtavsPtOmtf->setAxisTitle("#eta_{at vertex} - #eta", 2); ugmtMuonDPhivsPtOmtf = ibooker.book2D("ugmtMuonDPhivsPtOmtf", - "uGMT Muon from OMTF #phi_{at vertex} - #phi_{at muon system} vs p_{T}", + "uGMT output muon from OMTF #phi_{at vertex} - #phi_{at muon system} vs p_{T}", 32, 0, 64, @@ -515,7 +442,7 @@ void L1TStage2uGMT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, ugmtMuonDPhivsPtOmtf->setAxisTitle("#phi_{at vertex} - #phi", 2); ugmtMuonDEtavsPtEmtf = ibooker.book2D("ugmtMuonDEtavsPtEmtf", - "uGMT Muon from EMTF #eta_{at vertex} - #eta_{at muon system} vs p_{T}", + "uGMT output muon from EMTF #eta_{at vertex} - #eta_{at muon system} vs p_{T}", 32, 0, 64, @@ -526,7 +453,7 @@ void L1TStage2uGMT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, ugmtMuonDEtavsPtEmtf->setAxisTitle("#eta_{at vertex} - #eta", 2); ugmtMuonDPhivsPtEmtf = ibooker.book2D("ugmtMuonDPhivsPtEmtf", - "uGMT Muon from EMTF #phi_{at vertex} - #phi_{at muon system} vs p_{T}", + "uGMT output muon from EMTF #phi_{at vertex} - #phi_{at muon system} vs p_{T}", 32, 0, 64, @@ -536,24 +463,27 @@ void L1TStage2uGMT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, ugmtMuonDPhivsPtEmtf->setAxisTitle("p_{T} [GeV]", 1); ugmtMuonDPhivsPtEmtf->setAxisTitle("#phi_{at vertex} - #phi", 2); - ugmtMuonPtvsEta = ibooker.book2D("ugmtMuonPtvsEta", "uGMT Muon p_{T} vs #eta", 100, -2.5, 2.5, 128, -0.5, 255.5); + ugmtMuonPtvsEta = + ibooker.book2D("ugmtMuonPtvsEta", "uGMT output muon p_{T} vs #eta", 100, -2.5, 2.5, 128, -0.5, 255.5); ugmtMuonPtvsEta->setAxisTitle("#eta", 1); ugmtMuonPtvsEta->setAxisTitle("p_{T} [GeV]", 2); - ugmtMuonPtvsPhi = ibooker.book2D("ugmtMuonPtvsPhi", "uGMT Muon p_{T} vs #phi", 64, -3.2, 3.2, 128, -0.5, 255.5); + ugmtMuonPtvsPhi = + ibooker.book2D("ugmtMuonPtvsPhi", "uGMT output muon p_{T} vs #phi", 64, -3.2, 3.2, 128, -0.5, 255.5); ugmtMuonPtvsPhi->setAxisTitle("#phi", 1); ugmtMuonPtvsPhi->setAxisTitle("p_{T} [GeV]", 2); - ugmtMuonPhivsEta = ibooker.book2D("ugmtMuonPhivsEta", "uGMT Muon #phi vs #eta", 100, -2.5, 2.5, 64, -3.2, 3.2); + ugmtMuonPhivsEta = ibooker.book2D("ugmtMuonPhivsEta", "uGMT output muon #phi vs #eta", 100, -2.5, 2.5, 64, -3.2, 3.2); ugmtMuonPhivsEta->setAxisTitle("#eta", 1); ugmtMuonPhivsEta->setAxisTitle("#phi", 2); ugmtMuonPhiAtVtxvsEtaAtVtx = ibooker.book2D( - "ugmtMuonPhiAtVtxvsEtaAtVtx", "uGMT Muon #phi at vertex vs #eta at vertex", 100, -2.5, 2.5, 64, -3.2, 3.2); + "ugmtMuonPhiAtVtxvsEtaAtVtx", "uGMT output muon #phi at vertex vs #eta at vertex", 100, -2.5, 2.5, 64, -3.2, 3.2); ugmtMuonPhiAtVtxvsEtaAtVtx->setAxisTitle("#eta at vertex", 1); ugmtMuonPhiAtVtxvsEtaAtVtx->setAxisTitle("#phi at vertex", 2); - ugmtMuonBXvsLink = ibooker.book2D("ugmtMuonBXvsLink", "uGMT Muon BX vs Input Links", 36, 35.5, 71.5, 5, -2.5, 2.5); + ugmtMuonBXvsLink = + ibooker.book2D("ugmtMuonBXvsLink", "uGMT output muon BX vs Input Links", 36, 35.5, 71.5, 5, -2.5, 2.5); ugmtMuonBXvsLink->setAxisTitle("Muon Input Links", 1); for (int bin = 1; bin <= 6; ++bin) { ugmtMuonBXvsLink->setBinLabel(bin, Form("E+%d", bin), 1); @@ -566,7 +496,7 @@ void L1TStage2uGMT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, ugmtMuonBXvsLink->setAxisTitle("BX", 2); ugmtMuonChargevsLink = - ibooker.book2D("ugmtMuonChargevsLink", "uGMT Muon Charge vs Input Links", 36, 35.5, 71.5, 3, -1.5, 1.5); + ibooker.book2D("ugmtMuonChargevsLink", "uGMT output muon Charge vs Input Links", 36, 35.5, 71.5, 3, -1.5, 1.5); ugmtMuonChargevsLink->setAxisTitle("Muon Input Links", 1); for (int bin = 1; bin <= 6; ++bin) { ugmtMuonChargevsLink->setBinLabel(bin, Form("E+%d", bin), 1); @@ -587,33 +517,38 @@ void L1TStage2uGMT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, ugmtMuonShowerTypeOccupancyPerBx->setBinLabel(IDX_NOMINAL_SHOWER, "Nominal", 2); } - ugmtMuonBXvshwPt = ibooker.book2D("ugmtMuonBXvshwPt", "uGMT Muon BX vs HW p_{T}", 128, -0.5, 511.5, 5, -2.5, 2.5); + ugmtMuonBXvshwPt = + ibooker.book2D("ugmtMuonBXvshwPt", "uGMT output muon BX vs HW p_{T}", 128, -0.5, 511.5, 5, -2.5, 2.5); ugmtMuonBXvshwPt->setAxisTitle("Hardware p_{T}", 1); ugmtMuonBXvshwPt->setAxisTitle("BX", 2); - ugmtMuonBXvshwEta = ibooker.book2D("ugmtMuonBXvshwEta", "uGMT Muon BX vs HW #eta", 93, -232.5, 232.5, 5, -2.5, 2.5); + ugmtMuonBXvshwEta = + ibooker.book2D("ugmtMuonBXvshwEta", "uGMT output muon BX vs HW #eta", 93, -232.5, 232.5, 5, -2.5, 2.5); ugmtMuonBXvshwEta->setAxisTitle("Hardware #eta", 1); ugmtMuonBXvshwEta->setAxisTitle("BX", 2); - ugmtMuonBXvshwPhi = ibooker.book2D("ugmtMuonBXvshwPhi", "uGMT Muon BX vs HW #phi", 116, -2.5, 577.5, 5, -2.5, 2.5); + ugmtMuonBXvshwPhi = + ibooker.book2D("ugmtMuonBXvshwPhi", "uGMT output muon BX vs HW #phi", 116, -2.5, 577.5, 5, -2.5, 2.5); ugmtMuonBXvshwPhi->setAxisTitle("Hardware #phi", 1); ugmtMuonBXvshwPhi->setAxisTitle("BX", 2); ugmtMuonBXvshwCharge = - ibooker.book2D("ugmtMuonBXvshwCharge", "uGMT Muon BX vs HW Charge", 2, -0.5, 1.5, 5, -2.5, 2.5); + ibooker.book2D("ugmtMuonBXvshwCharge", "uGMT output muon BX vs HW Charge", 2, -0.5, 1.5, 5, -2.5, 2.5); ugmtMuonBXvshwCharge->setAxisTitle("Hardware Charge", 1); ugmtMuonBXvshwCharge->setAxisTitle("BX", 2); ugmtMuonBXvshwChargeValid = - ibooker.book2D("ugmtMuonBXvshwChargeValid", "uGMT Muon BX vs ChargeValid", 2, -0.5, 1.5, 5, -2.5, 2.5); + ibooker.book2D("ugmtMuonBXvshwChargeValid", "uGMT output muon BX vs ChargeValid", 2, -0.5, 1.5, 5, -2.5, 2.5); ugmtMuonBXvshwChargeValid->setAxisTitle("ChargeValid", 1); ugmtMuonBXvshwChargeValid->setAxisTitle("BX", 2); - ugmtMuonBXvshwQual = ibooker.book2D("ugmtMuonBXvshwQual", "uGMT Muon BX vs Quality", 16, -0.5, 15.5, 5, -2.5, 2.5); + ugmtMuonBXvshwQual = + ibooker.book2D("ugmtMuonBXvshwQual", "uGMT output muon BX vs Quality", 16, -0.5, 15.5, 5, -2.5, 2.5); ugmtMuonBXvshwQual->setAxisTitle("Quality", 1); ugmtMuonBXvshwQual->setAxisTitle("BX", 2); - ugmtMuonBXvshwIso = ibooker.book2D("ugmtMuonBXvshwIso", "uGMT Muon BX vs Isolation", 4, -0.5, 3.5, 5, -2.5, 2.5); + ugmtMuonBXvshwIso = + ibooker.book2D("ugmtMuonBXvshwIso", "uGMT output muon BX vs Isolation", 4, -0.5, 3.5, 5, -2.5, 2.5); ugmtMuonBXvshwIso->setAxisTitle("Isolation", 1); ugmtMuonBXvshwIso->setAxisTitle("BX", 2); @@ -627,119 +562,123 @@ void L1TStage2uGMT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&, ibooker.book1D("ugmtMuMuInvMassAtVtx", "uGMT dimuon invariant mass with coordinates at vertex", 200, 0., 200.); ugmtMuMuInvMassAtVtx->setAxisTitle("m(#mu#mu) [GeV]", 1); - ugmtMuMuDEta = ibooker.book1D("ugmtMuMuDEta", "uGMT Muons #Delta#eta", 100, -1., 1.); + ugmtMuMuDEta = ibooker.book1D("ugmtMuMuDEta", "uGMT output muons #Delta#eta", 100, -1., 1.); ugmtMuMuDEta->setAxisTitle("#Delta#eta", 1); - ugmtMuMuDPhi = ibooker.book1D("ugmtMuMuDPhi", "uGMT Muons #Delta#phi", 100, -1., 1.); + ugmtMuMuDPhi = ibooker.book1D("ugmtMuMuDPhi", "uGMT output muons #Delta#phi", 100, -1., 1.); ugmtMuMuDPhi->setAxisTitle("#Delta#phi", 1); - ugmtMuMuDR = ibooker.book1D("ugmtMuMuDR", "uGMT Muons #DeltaR", 50, 0., 1.); + ugmtMuMuDR = ibooker.book1D("ugmtMuMuDR", "uGMT output muons #DeltaR", 50, 0., 1.); ugmtMuMuDR->setAxisTitle("#DeltaR", 1); // barrel - overlap ugmtMuMuDEtaBOpos = - ibooker.book1D("ugmtMuMuDEtaBOpos", "uGMT Muons #Delta#eta barrel-overlap positive side", 100, -1., 1.); + ibooker.book1D("ugmtMuMuDEtaBOpos", "uGMT output muons #Delta#eta barrel-overlap positive side", 100, -1., 1.); ugmtMuMuDEtaBOpos->setAxisTitle("#Delta#eta", 1); ugmtMuMuDPhiBOpos = - ibooker.book1D("ugmtMuMuDPhiBOpos", "uGMT Muons #Delta#phi barrel-overlap positive side", 100, -1., 1.); + ibooker.book1D("ugmtMuMuDPhiBOpos", "uGMT output muons #Delta#phi barrel-overlap positive side", 100, -1., 1.); ugmtMuMuDPhiBOpos->setAxisTitle("#Delta#phi", 1); - ugmtMuMuDRBOpos = ibooker.book1D("ugmtMuMuDRBOpos", "uGMT Muons #DeltaR barrel-overlap positive side", 50, 0., 1.); + ugmtMuMuDRBOpos = + ibooker.book1D("ugmtMuMuDRBOpos", "uGMT output muons #DeltaR barrel-overlap positive side", 50, 0., 1.); ugmtMuMuDRBOpos->setAxisTitle("#DeltaR", 1); ugmtMuMuDEtaBOneg = - ibooker.book1D("ugmtMuMuDEtaBOneg", "uGMT Muons #Delta#eta barrel-overlap negative side", 100, -1., 1.); + ibooker.book1D("ugmtMuMuDEtaBOneg", "uGMT output muons #Delta#eta barrel-overlap negative side", 100, -1., 1.); ugmtMuMuDEtaBOneg->setAxisTitle("#Delta#eta", 1); ugmtMuMuDPhiBOneg = - ibooker.book1D("ugmtMuMuDPhiBOneg", "uGMT Muons #Delta#phi barrel-overlap negative side", 100, -1., 1.); + ibooker.book1D("ugmtMuMuDPhiBOneg", "uGMT output muons #Delta#phi barrel-overlap negative side", 100, -1., 1.); ugmtMuMuDPhiBOneg->setAxisTitle("#Delta#phi", 1); - ugmtMuMuDRBOneg = ibooker.book1D("ugmtMuMuDRBOneg", "uGMT Muons #DeltaR barrel-overlap negative side", 50, 0., 1.); + ugmtMuMuDRBOneg = + ibooker.book1D("ugmtMuMuDRBOneg", "uGMT output muons #DeltaR barrel-overlap negative side", 50, 0., 1.); ugmtMuMuDRBOneg->setAxisTitle("#DeltaR", 1); // endcap - overlap ugmtMuMuDEtaEOpos = - ibooker.book1D("ugmtMuMuDEtaEOpos", "uGMT Muons #Delta#eta endcap-overlap positive side", 100, -1., 1.); + ibooker.book1D("ugmtMuMuDEtaEOpos", "uGMT output muons #Delta#eta endcap-overlap positive side", 100, -1., 1.); ugmtMuMuDEtaEOpos->setAxisTitle("#Delta#eta", 1); ugmtMuMuDPhiEOpos = - ibooker.book1D("ugmtMuMuDPhiEOpos", "uGMT Muons #Delta#phi endcap-overlap positive side", 100, -1., 1.); + ibooker.book1D("ugmtMuMuDPhiEOpos", "uGMT output muons #Delta#phi endcap-overlap positive side", 100, -1., 1.); ugmtMuMuDPhiEOpos->setAxisTitle("#Delta#phi", 1); - ugmtMuMuDREOpos = ibooker.book1D("ugmtMuMuDREOpos", "uGMT Muons #DeltaR endcap-overlap positive side", 50, 0., 1.); + ugmtMuMuDREOpos = + ibooker.book1D("ugmtMuMuDREOpos", "uGMT output muons #DeltaR endcap-overlap positive side", 50, 0., 1.); ugmtMuMuDREOpos->setAxisTitle("#DeltaR", 1); ugmtMuMuDEtaEOneg = - ibooker.book1D("ugmtMuMuDEtaEOneg", "uGMT Muons #Delta#eta endcap-overlap negative side", 100, -1., 1.); + ibooker.book1D("ugmtMuMuDEtaEOneg", "uGMT output muons #Delta#eta endcap-overlap negative side", 100, -1., 1.); ugmtMuMuDEtaEOneg->setAxisTitle("#Delta#eta", 1); ugmtMuMuDPhiEOneg = - ibooker.book1D("ugmtMuMuDPhiEOneg", "uGMT Muons #Delta#phi endcap-overlap negative side", 100, -1., 1.); + ibooker.book1D("ugmtMuMuDPhiEOneg", "uGMT output muons #Delta#phi endcap-overlap negative side", 100, -1., 1.); ugmtMuMuDPhiEOneg->setAxisTitle("#Delta#phi", 1); - ugmtMuMuDREOneg = ibooker.book1D("ugmtMuMuDREOneg", "uGMT Muons #DeltaR endcap-overlap negative side", 50, 0., 1.); + ugmtMuMuDREOneg = + ibooker.book1D("ugmtMuMuDREOneg", "uGMT output muons #DeltaR endcap-overlap negative side", 50, 0., 1.); ugmtMuMuDREOneg->setAxisTitle("#DeltaR", 1); // barrel wedges - ugmtMuMuDEtaB = ibooker.book1D("ugmtMuMuDEtaB", "uGMT Muons #Delta#eta between barrel wedges", 100, -1., 1.); + ugmtMuMuDEtaB = ibooker.book1D("ugmtMuMuDEtaB", "uGMT output muons #Delta#eta between barrel wedges", 100, -1., 1.); ugmtMuMuDEtaB->setAxisTitle("#Delta#eta", 1); - ugmtMuMuDPhiB = ibooker.book1D("ugmtMuMuDPhiB", "uGMT Muons #Delta#phi between barrel wedges", 100, -1., 1.); + ugmtMuMuDPhiB = ibooker.book1D("ugmtMuMuDPhiB", "uGMT output muons #Delta#phi between barrel wedges", 100, -1., 1.); ugmtMuMuDPhiB->setAxisTitle("#Delta#phi", 1); - ugmtMuMuDRB = ibooker.book1D("ugmtMuMuDRB", "uGMT Muons #DeltaR between barrel wedges", 50, 0., 1.); + ugmtMuMuDRB = ibooker.book1D("ugmtMuMuDRB", "uGMT output muons #DeltaR between barrel wedges", 50, 0., 1.); ugmtMuMuDRB->setAxisTitle("#DeltaR", 1); // overlap sectors - ugmtMuMuDEtaOpos = - ibooker.book1D("ugmtMuMuDEtaOpos", "uGMT Muons #Delta#eta between overlap positive side sectors", 100, -1., 1.); + ugmtMuMuDEtaOpos = ibooker.book1D( + "ugmtMuMuDEtaOpos", "uGMT output muons #Delta#eta between overlap positive side sectors", 100, -1., 1.); ugmtMuMuDEtaOpos->setAxisTitle("#Delta#eta", 1); - ugmtMuMuDPhiOpos = - ibooker.book1D("ugmtMuMuDPhiOpos", "uGMT Muons #Delta#phi between overlap positive side sectors", 100, -1., 1.); + ugmtMuMuDPhiOpos = ibooker.book1D( + "ugmtMuMuDPhiOpos", "uGMT output muons #Delta#phi between overlap positive side sectors", 100, -1., 1.); ugmtMuMuDPhiOpos->setAxisTitle("#Delta#phi", 1); ugmtMuMuDROpos = - ibooker.book1D("ugmtMuMuDROpos", "uGMT Muons #DeltaR between overlap positive side sectors", 50, 0., 1.); + ibooker.book1D("ugmtMuMuDROpos", "uGMT output muons #DeltaR between overlap positive side sectors", 50, 0., 1.); ugmtMuMuDROpos->setAxisTitle("#DeltaR", 1); - ugmtMuMuDEtaOneg = - ibooker.book1D("ugmtMuMuDEtaOneg", "uGMT Muons #Delta#eta between overlap negative side sectors", 100, -1., 1.); + ugmtMuMuDEtaOneg = ibooker.book1D( + "ugmtMuMuDEtaOneg", "uGMT output muons #Delta#eta between overlap negative side sectors", 100, -1., 1.); ugmtMuMuDEtaOneg->setAxisTitle("#Delta#eta", 1); - ugmtMuMuDPhiOneg = - ibooker.book1D("ugmtMuMuDPhiOneg", "uGMT Muons #Delta#phi between overlap negative side sectors", 100, -1., 1.); + ugmtMuMuDPhiOneg = ibooker.book1D( + "ugmtMuMuDPhiOneg", "uGMT output muons #Delta#phi between overlap negative side sectors", 100, -1., 1.); ugmtMuMuDPhiOneg->setAxisTitle("#Delta#phi", 1); ugmtMuMuDROneg = - ibooker.book1D("ugmtMuMuDROneg", "uGMT Muons #DeltaR between overlap negative side sectors", 50, 0., 1.); + ibooker.book1D("ugmtMuMuDROneg", "uGMT output muons #DeltaR between overlap negative side sectors", 50, 0., 1.); ugmtMuMuDROneg->setAxisTitle("#DeltaR", 1); // endcap sectors - ugmtMuMuDEtaEpos = - ibooker.book1D("ugmtMuMuDEtaEpos", "uGMT Muons #Delta#eta between endcap positive side sectors", 100, -1., 1.); + ugmtMuMuDEtaEpos = ibooker.book1D( + "ugmtMuMuDEtaEpos", "uGMT output muons #Delta#eta between endcap positive side sectors", 100, -1., 1.); ugmtMuMuDEtaEpos->setAxisTitle("#Delta#eta", 1); - ugmtMuMuDPhiEpos = - ibooker.book1D("ugmtMuMuDPhiEpos", "uGMT Muons #Delta#phi between endcap positive side sectors", 100, -1., 1.); + ugmtMuMuDPhiEpos = ibooker.book1D( + "ugmtMuMuDPhiEpos", "uGMT output muons #Delta#phi between endcap positive side sectors", 100, -1., 1.); ugmtMuMuDPhiEpos->setAxisTitle("#Delta#phi", 1); ugmtMuMuDREpos = - ibooker.book1D("ugmtMuMuDREpos", "uGMT Muons #DeltaR between endcap positive side sectors", 50, 0., 1.); + ibooker.book1D("ugmtMuMuDREpos", "uGMT output muons #DeltaR between endcap positive side sectors", 50, 0., 1.); ugmtMuMuDREpos->setAxisTitle("#DeltaR", 1); - ugmtMuMuDEtaEneg = - ibooker.book1D("ugmtMuMuDEtaEneg", "uGMT Muons #Delta#eta between endcap negative side sectors", 100, -1., 1.); + ugmtMuMuDEtaEneg = ibooker.book1D( + "ugmtMuMuDEtaEneg", "uGMT output muons #Delta#eta between endcap negative side sectors", 100, -1., 1.); ugmtMuMuDEtaEneg->setAxisTitle("#Delta#eta", 1); - ugmtMuMuDPhiEneg = - ibooker.book1D("ugmtMuMuDPhiEneg", "uGMT Muons #Delta#phi between endcap negative side sectors", 100, -1., 1.); + ugmtMuMuDPhiEneg = ibooker.book1D( + "ugmtMuMuDPhiEneg", "uGMT output muons #Delta#phi between endcap negative side sectors", 100, -1., 1.); ugmtMuMuDPhiEneg->setAxisTitle("#Delta#phi", 1); ugmtMuMuDREneg = - ibooker.book1D("ugmtMuMuDREneg", "uGMT Muons #DeltaR between endcap negative side sectors", 50, 0., 1.); + ibooker.book1D("ugmtMuMuDREneg", "uGMT output muons #DeltaR between endcap negative side sectors", 50, 0., 1.); ugmtMuMuDREneg->setAxisTitle("#DeltaR", 1); } @@ -757,7 +696,6 @@ void L1TStage2uGMT::analyze(const edm::Event& e, const edm::EventSetup& c) { for (l1t::RegionalMuonCandBxCollection::const_iterator BMTF = BMTFBxCollection->begin(itBX); BMTF != BMTFBxCollection->end(itBX); ++BMTF) { - ugmtBMTFBX->Fill(itBX); ugmtBMTFhwPt->Fill(BMTF->hwPt()); if (displacedQuantities_) { ugmtBMTFhwPtUnconstrained->Fill(BMTF->hwPtUnconstrained()); @@ -774,9 +712,7 @@ void L1TStage2uGMT::analyze(const edm::Event& e, const edm::EventSetup& c) { l1t::MicroGMTConfiguration::calcGlobalPhi(BMTF->hwPhi(), BMTF->trackFinderType(), BMTF->processor()); ugmtBMTFglbPhi->Fill(global_hw_phi); - ugmtBMTFBXvsProcessor->Fill(BMTF->processor(), itBX); ugmtBMTFProcvshwPhi->Fill(BMTF->hwPhi(), BMTF->processor()); - ugmtBXvsLink->Fill(BMTF->link(), itBX); // Analyse muon correlations for (l1t::RegionalMuonCandBxCollection::const_iterator BMTF2 = BMTF + 1; BMTF2 != BMTFBxCollection->end(itBX); @@ -806,7 +742,6 @@ void L1TStage2uGMT::analyze(const edm::Event& e, const edm::EventSetup& c) { for (l1t::RegionalMuonCandBxCollection::const_iterator OMTF = OMTFBxCollection->begin(itBX); OMTF != OMTFBxCollection->end(itBX); ++OMTF) { - ugmtOMTFBX->Fill(itBX); ugmtOMTFhwPt->Fill(OMTF->hwPt()); ugmtOMTFhwEta->Fill(OMTF->hwEta()); ugmtOMTFhwSign->Fill(OMTF->hwSign()); @@ -820,19 +755,15 @@ void L1TStage2uGMT::analyze(const edm::Event& e, const edm::EventSetup& c) { l1t::tftype trackFinderType = OMTF->trackFinderType(); if (trackFinderType == l1t::omtf_neg) { - ugmtOMTFBXvsProcessor->Fill(5 - OMTF->processor(), itBX); ugmtOMTFhwPhiNeg->Fill(OMTF->hwPhi()); ugmtOMTFglbPhiNeg->Fill(global_hw_phi); ugmtOMTFProcvshwPhiNeg->Fill(OMTF->hwPhi(), OMTF->processor()); } else { - ugmtOMTFBXvsProcessor->Fill(OMTF->processor() + 6, itBX); ugmtOMTFhwPhiPos->Fill(OMTF->hwPhi()); ugmtOMTFglbPhiPos->Fill(global_hw_phi); ugmtOMTFProcvshwPhiPos->Fill(OMTF->hwPhi(), OMTF->processor()); } - ugmtBXvsLink->Fill(OMTF->link(), itBX); - // Analyse muon correlations for (l1t::RegionalMuonCandBxCollection::const_iterator OMTF2 = OMTF + 1; OMTF2 != OMTFBxCollection->end(itBX); ++OMTF2) { @@ -861,7 +792,6 @@ void L1TStage2uGMT::analyze(const edm::Event& e, const edm::EventSetup& c) { for (l1t::RegionalMuonCandBxCollection::const_iterator EMTF = EMTFBxCollection->begin(itBX); EMTF != EMTFBxCollection->end(itBX); ++EMTF) { - ugmtEMTFBX->Fill(itBX); ugmtEMTFhwPt->Fill(EMTF->hwPt()); if (displacedQuantities_) { ugmtEMTFhwPtUnconstrained->Fill(EMTF->hwPtUnconstrained()); @@ -879,19 +809,15 @@ void L1TStage2uGMT::analyze(const edm::Event& e, const edm::EventSetup& c) { l1t::tftype trackFinderType = EMTF->trackFinderType(); if (trackFinderType == l1t::emtf_neg) { - ugmtEMTFBXvsProcessor->Fill(5 - EMTF->processor(), itBX); ugmtEMTFhwPhiNeg->Fill(EMTF->hwPhi()); ugmtEMTFglbPhiNeg->Fill(global_hw_phi); ugmtEMTFProcvshwPhiNeg->Fill(EMTF->hwPhi(), EMTF->processor()); } else { - ugmtEMTFBXvsProcessor->Fill(EMTF->processor() + 6, itBX); ugmtEMTFhwPhiPos->Fill(EMTF->hwPhi()); ugmtEMTFglbPhiPos->Fill(global_hw_phi); ugmtEMTFProcvshwPhiPos->Fill(EMTF->hwPhi(), EMTF->processor()); } - ugmtBXvsLink->Fill(EMTF->link(), itBX); - // Analyse muon correlations for (l1t::RegionalMuonCandBxCollection::const_iterator EMTF2 = EMTF + 1; EMTF2 != EMTFBxCollection->end(itBX); ++EMTF2) { @@ -924,20 +850,14 @@ void L1TStage2uGMT::analyze(const edm::Event& e, const edm::EventSetup& c) { continue; } if (shower->isOneNominalInTime()) { - ugmtEMTFShowerSectorOccupancyPerBx->Fill( - itBX, shower->processor() + 1 + (shower->trackFinderType() == l1t::tftype::emtf_pos ? 6 : 0)); ugmtEMTFShowerTypeOccupancyPerSector->Fill( shower->processor() + 1 + (shower->trackFinderType() == l1t::tftype::emtf_pos ? 6 : 0), IDX_NOMINAL_SHOWER); - ugmtEMTFShowerTypeOccupancyPerBx->Fill(itBX, IDX_NOMINAL_SHOWER); } if (shower->isOneTightInTime()) { - ugmtEMTFShowerSectorOccupancyPerBx->Fill( - itBX, shower->processor() + 1 + (shower->trackFinderType() == l1t::tftype::emtf_pos ? 6 : 0)); ugmtEMTFShowerTypeOccupancyPerSector->Fill( shower->processor() + 1 + (shower->trackFinderType() == l1t::tftype::emtf_pos ? 6 : 0), IDX_TIGHT_SHOWER); - ugmtEMTFShowerTypeOccupancyPerBx->Fill(itBX, IDX_TIGHT_SHOWER); } } } @@ -1158,7 +1078,6 @@ void L1TStage2uGMT::analyze(const edm::Event& e, const edm::EventSetup& c) { } } } - // Fill shower plots if (hadronicShowers_) { edm::Handle showersBxCollection; diff --git a/DQM/L1TMonitor/src/L1TStage2uGMTInputBxDistributions.cc b/DQM/L1TMonitor/src/L1TStage2uGMTInputBxDistributions.cc new file mode 100644 index 0000000000000..a4a535770380c --- /dev/null +++ b/DQM/L1TMonitor/src/L1TStage2uGMTInputBxDistributions.cc @@ -0,0 +1,222 @@ +#include "DQM/L1TMonitor/interface/L1TStage2uGMTInputBxDistributions.h" + +L1TStage2uGMTInputBxDistributions::L1TStage2uGMTInputBxDistributions(const edm::ParameterSet& ps) + : ugmtMuonToken_(consumes(ps.getParameter("muonProducer"))), + ugmtMuonShowerToken_(consumes(ps.getParameter("muonShowerProducer"))), + monitorDir_(ps.getUntrackedParameter("monitorDir")), + emul_(ps.getUntrackedParameter("emulator")), + verbose_(ps.getUntrackedParameter("verbose")), + hadronicShowers_(ps.getUntrackedParameter("hadronicShowers")) { + if (!emul_) { + ugmtBMTFToken_ = consumes(ps.getParameter("bmtfProducer")); + ugmtOMTFToken_ = consumes(ps.getParameter("omtfProducer")); + ugmtEMTFToken_ = consumes(ps.getParameter("emtfProducer")); + ugmtEMTFShowerToken_ = + consumes(ps.getParameter("emtfShowerProducer")); + } +} + +L1TStage2uGMTInputBxDistributions::~L1TStage2uGMTInputBxDistributions() {} + +void L1TStage2uGMTInputBxDistributions::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("muonProducer")->setComment("uGMT output muons."); + + desc.add("bmtfProducer")->setComment("RegionalMuonCands from BMTF."); + desc.add("omtfProducer")->setComment("RegionalMuonCands from OMTF."); + desc.add("emtfProducer")->setComment("RegionalMuonCands from EMTF."); + desc.add("muonShowerProducer")->setComment("uGMT output showers."); + desc.add("emtfShowerProducer")->setComment("RegionalMuonShowers from EMTF."); + desc.addUntracked("monitorDir", "") + ->setComment("Target directory in the DQM file. Will be created if not existing."); + desc.addUntracked("emulator", false) + ->setComment("Create histograms for muonProducer input only. xmtfProducer inputs are ignored."); + desc.addUntracked("verbose", false); + desc.addUntracked("hadronicShowers", false); + descriptions.add("l1tStage2uGMTInputBxDistributions", desc); +} + +void L1TStage2uGMTInputBxDistributions::bookHistograms(DQMStore::IBooker& ibooker, + const edm::Run&, + const edm::EventSetup&) { + if (!emul_) { + // BMTF Input + ibooker.setCurrentFolder(monitorDir_ + "/BMTFInput"); + + ugmtBMTFBX = ibooker.book1D("ugmtBMTFBX", "uGMT BMTF Input BX", 7, -3.5, 3.5); + ugmtBMTFBX->setAxisTitle("BX", 1); + + // OMTF Input + ibooker.setCurrentFolder(monitorDir_ + "/OMTFInput"); + + ugmtOMTFBX = ibooker.book1D("ugmtOMTFBX", "uGMT OMTF Input BX", 7, -3.5, 3.5); + ugmtOMTFBX->setAxisTitle("BX", 1); + + // EMTF Input + ibooker.setCurrentFolder(monitorDir_ + "/EMTFInput"); + + ugmtEMTFBX = ibooker.book1D("ugmtEMTFBX", "uGMT EMTF Input BX", 7, -3.5, 3.5); + ugmtEMTFBX->setAxisTitle("BX", 1); + + // EMTF muon showers + if (hadronicShowers_) { + ibooker.setCurrentFolder(monitorDir_ + "/EMTFInput/Muon showers"); + + ugmtEMTFShowerTypeOccupancyPerBx = + ibooker.book2D("ugmtEMTFShowerTypeOccupancyPerBx", "Shower type occupancy per BX", 7, -3.5, 3.5, 2, 1, 3); + ugmtEMTFShowerTypeOccupancyPerBx->setAxisTitle("BX", 1); + ugmtEMTFShowerTypeOccupancyPerBx->setAxisTitle("Shower type", 2); + ugmtEMTFShowerTypeOccupancyPerBx->setBinLabel(IDX_TIGHT_SHOWER, "Tight", 2); + ugmtEMTFShowerTypeOccupancyPerBx->setBinLabel(IDX_NOMINAL_SHOWER, "Nominal", 2); + + ugmtEMTFShowerSectorOccupancyPerBx = ibooker.book2D( + "ugmtEMTFShowerSectorOccupancyPerBx", "Shower BX occupancy per sector", 7, -3.5, 3.5, 12, 1, 13); + ugmtEMTFShowerSectorOccupancyPerBx->setAxisTitle("BX", 1); + ugmtEMTFShowerSectorOccupancyPerBx->setAxisTitle("Processor", 2); + ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(12, "+6", 2); + ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(11, "+5", 2); + ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(10, "+4", 2); + ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(9, "+3", 2); + ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(8, "+2", 2); + ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(7, "+1", 2); + ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(6, "-6", 2); + ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(5, "-5", 2); + ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(4, "-4", 2); + ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(3, "-3", 2); + ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(2, "-2", 2); + ugmtEMTFShowerSectorOccupancyPerBx->setBinLabel(1, "-1", 2); + } + } + + // Subsystem Monitoring and Muon Output + ibooker.setCurrentFolder(monitorDir_); + + if (!emul_) { + ugmtBMTFBXvsProcessor = + ibooker.book2D("ugmtBXvsProcessorBMTF", "uGMT BMTF Input BX vs Processor", 12, -0.5, 11.5, 5, -2.5, 2.5); + ugmtBMTFBXvsProcessor->setAxisTitle("Wedge", 1); + for (int bin = 1; bin <= 12; ++bin) { + ugmtBMTFBXvsProcessor->setBinLabel(bin, std::to_string(bin), 1); + } + ugmtBMTFBXvsProcessor->setAxisTitle("BX", 2); + + ugmtOMTFBXvsProcessor = + ibooker.book2D("ugmtBXvsProcessorOMTF", "uGMT OMTF Input BX vs Processor", 12, -0.5, 11.5, 5, -2.5, 2.5); + ugmtOMTFBXvsProcessor->setAxisTitle("Sector (Detector Side)", 1); + for (int bin = 1; bin <= 6; ++bin) { + ugmtOMTFBXvsProcessor->setBinLabel(bin, std::to_string(7 - bin) + " (-)", 1); + ugmtOMTFBXvsProcessor->setBinLabel(bin + 6, std::to_string(bin) + " (+)", 1); + } + ugmtOMTFBXvsProcessor->setAxisTitle("BX", 2); + + ugmtEMTFBXvsProcessor = + ibooker.book2D("ugmtBXvsProcessorEMTF", "uGMT EMTF Input BX vs Processor", 12, -0.5, 11.5, 5, -2.5, 2.5); + ugmtEMTFBXvsProcessor->setAxisTitle("Sector (Detector Side)", 1); + for (int bin = 1; bin <= 6; ++bin) { + ugmtEMTFBXvsProcessor->setBinLabel(bin, std::to_string(7 - bin) + " (-)", 1); + ugmtEMTFBXvsProcessor->setBinLabel(bin + 6, std::to_string(bin) + " (+)", 1); + } + ugmtEMTFBXvsProcessor->setAxisTitle("BX", 2); + + ugmtBXvsLink = ibooker.book2D("ugmtBXvsLink", "uGMT BX vs Input Links", 36, 35.5, 71.5, 5, -2.5, 2.5); + ugmtBXvsLink->setAxisTitle("Link", 1); + for (int bin = 1; bin <= 6; ++bin) { + ugmtBXvsLink->setBinLabel(bin, Form("E+%d", bin), 1); + ugmtBXvsLink->setBinLabel(bin + 6, Form("O+%d", bin), 1); + ugmtBXvsLink->setBinLabel(bin + 12, Form("B%d", bin), 1); + ugmtBXvsLink->setBinLabel(bin + 18, Form("B%d", bin + 6), 1); + ugmtBXvsLink->setBinLabel(bin + 24, Form("O-%d", bin), 1); + ugmtBXvsLink->setBinLabel(bin + 30, Form("E-%d", bin), 1); + } + ugmtBXvsLink->setAxisTitle("BX", 2); + } +} + +void L1TStage2uGMTInputBxDistributions::analyze(const edm::Event& e, const edm::EventSetup& c) { + if (verbose_) + edm::LogInfo("L1TStage2uGMTInputBxDistributions") << "L1TStage2uGMTInputBxDistributions: analyze..." << std::endl; + + if (!emul_) { + edm::Handle BMTFBxCollection; + e.getByToken(ugmtBMTFToken_, BMTFBxCollection); + + for (int itBX = BMTFBxCollection->getFirstBX(); itBX <= BMTFBxCollection->getLastBX(); ++itBX) { + for (l1t::RegionalMuonCandBxCollection::const_iterator BMTF = BMTFBxCollection->begin(itBX); + BMTF != BMTFBxCollection->end(itBX); + ++BMTF) { + ugmtBMTFBX->Fill(itBX); + + ugmtBMTFBXvsProcessor->Fill(BMTF->processor(), itBX); + ugmtBXvsLink->Fill(BMTF->link(), itBX); + } + } + + edm::Handle OMTFBxCollection; + e.getByToken(ugmtOMTFToken_, OMTFBxCollection); + + for (int itBX = OMTFBxCollection->getFirstBX(); itBX <= OMTFBxCollection->getLastBX(); ++itBX) { + for (l1t::RegionalMuonCandBxCollection::const_iterator OMTF = OMTFBxCollection->begin(itBX); + OMTF != OMTFBxCollection->end(itBX); + ++OMTF) { + ugmtOMTFBX->Fill(itBX); + + l1t::tftype trackFinderType = OMTF->trackFinderType(); + + if (trackFinderType == l1t::omtf_neg) { + ugmtOMTFBXvsProcessor->Fill(5 - OMTF->processor(), itBX); + } else { + ugmtOMTFBXvsProcessor->Fill(OMTF->processor() + 6, itBX); + } + + ugmtBXvsLink->Fill(OMTF->link(), itBX); + } + } + + edm::Handle EMTFBxCollection; + e.getByToken(ugmtEMTFToken_, EMTFBxCollection); + + for (int itBX = EMTFBxCollection->getFirstBX(); itBX <= EMTFBxCollection->getLastBX(); ++itBX) { + for (l1t::RegionalMuonCandBxCollection::const_iterator EMTF = EMTFBxCollection->begin(itBX); + EMTF != EMTFBxCollection->end(itBX); + ++EMTF) { + ugmtEMTFBX->Fill(itBX); + + l1t::tftype trackFinderType = EMTF->trackFinderType(); + + if (trackFinderType == l1t::emtf_neg) { + ugmtEMTFBXvsProcessor->Fill(5 - EMTF->processor(), itBX); + } else { + ugmtEMTFBXvsProcessor->Fill(EMTF->processor() + 6, itBX); + } + + ugmtBXvsLink->Fill(EMTF->link(), itBX); + } + } + + // Fill shower plots + if (hadronicShowers_) { + edm::Handle EMTFShowersBxCollection; + e.getByToken(ugmtEMTFShowerToken_, EMTFShowersBxCollection); + + for (int itBX = EMTFShowersBxCollection->getFirstBX(); itBX <= EMTFShowersBxCollection->getLastBX(); ++itBX) { + for (l1t::RegionalMuonShowerBxCollection::const_iterator shower = EMTFShowersBxCollection->begin(itBX); + shower != EMTFShowersBxCollection->end(itBX); + ++shower) { + if (not shower->isValid()) { + continue; + } + if (shower->isOneNominalInTime()) { + ugmtEMTFShowerSectorOccupancyPerBx->Fill( + itBX, shower->processor() + 1 + (shower->trackFinderType() == l1t::tftype::emtf_pos ? 6 : 0)); + ugmtEMTFShowerTypeOccupancyPerBx->Fill(itBX, IDX_NOMINAL_SHOWER); + } + if (shower->isOneTightInTime()) { + ugmtEMTFShowerSectorOccupancyPerBx->Fill( + itBX, shower->processor() + 1 + (shower->trackFinderType() == l1t::tftype::emtf_pos ? 6 : 0)); + ugmtEMTFShowerTypeOccupancyPerBx->Fill(itBX, IDX_TIGHT_SHOWER); + } + } + } + } + } +} diff --git a/DQM/L1TMonitorClient/data/L1TStage2uGMTQualityTests.xml b/DQM/L1TMonitorClient/data/L1TStage2uGMTQualityTests.xml index d4943a7c3224f..b91a8aa21ab82 100644 --- a/DQM/L1TMonitorClient/data/L1TStage2uGMTQualityTests.xml +++ b/DQM/L1TMonitorClient/data/L1TStage2uGMTQualityTests.xml @@ -320,19 +320,4 @@ uGMTCopies_MismatchRatioMax0 - - - - ContentsYRange - 0.00 - 0.00 - 0.95 - 0.99 - 1 - - - - zeroSupp_MismatchRatioMax0 - - diff --git a/DQM/L1TMonitorClient/python/L1TStage2uGMTClient_cff.py b/DQM/L1TMonitorClient/python/L1TStage2uGMTClient_cff.py index 7747abebceb38..649ffcbccf551 100644 --- a/DQM/L1TMonitorClient/python/L1TStage2uGMTClient_cff.py +++ b/DQM/L1TMonitorClient/python/L1TStage2uGMTClient_cff.py @@ -5,7 +5,6 @@ # directory path shortening ugmtDqmDir = 'L1T/L1TStage2uGMT' ugmtMuCpyDqmDir = ugmtDqmDir+'/uGMTMuonCopies' -ugmtZSDqmDir = ugmtDqmDir+'/zeroSuppression' # input histograms errHistNumStr = 'errorSummaryNum' errHistDenStr = 'errorSummaryDen' @@ -21,6 +20,9 @@ binomialErr = cms.untracked.bool(True), ignoreBin = cms.untracked.vint32() ) +## Era: Run3_2021; Ignore BX range mismatches. This is necessary because we only read out the central BX for the output copies. +from Configuration.Eras.Modifier_stage2L1Trigger_2021_cff import stage2L1Trigger_2021 +stage2L1Trigger_2021.toModify(l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient, ignoreBin = cms.untracked.vint32(ignoreBins['OutputCopies'])) l1tStage2uGMTMuonVsuGMTMuonCopy2RatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( monitorDir = ugmtMuCpyDqmDir+'/uGMTMuonCopy2', @@ -46,6 +48,44 @@ inputDen = ugmtMuCpyDqmDir+'/uGMTMuonCopy5/'+errHistDenStr, ratioTitle = 'Summary of mismatch rates between uGMT muons and uGMT muon copy 5' ) + +# Showers +l1tStage2uGMTShowerVsuGMTShowerCopy1RatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( + monitorDir = ugmtMuCpyDqmDir+'/uGMTMuonShoweruGMTMuonShowerCopy2', + inputNum = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy1/'+errHistNumStr, + inputDen = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy1/'+errHistDenStr, + ratioTitle = 'Summary of mismatch rates between uGMT showers and uGMT shower copy 1', + ignoreBin = cms.untracked.vint32(ignoreBins['OutputCopies']) +) +l1tStage2uGMTShowerVsuGMTShowerCopy2RatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( + monitorDir = ugmtMuCpyDqmDir+'/uGMTMuonShoweruGMTMuonShowerCopy2', + inputNum = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy2/'+errHistNumStr, + inputDen = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy2/'+errHistDenStr, + ratioTitle = 'Summary of mismatch rates between uGMT showers and uGMT shower copy 2', + ignoreBin = cms.untracked.vint32(ignoreBins['OutputCopies']) +) +l1tStage2uGMTShowerVsuGMTShowerCopy3RatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( + monitorDir = ugmtMuCpyDqmDir+'/uGMTMuonShoweruGMTMuonShowerCopy3', + inputNum = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy3/'+errHistNumStr, + inputDen = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy3/'+errHistDenStr, + ratioTitle = 'Summary of mismatch rates between uGMT showers and uGMT shower copy 3', + ignoreBin = cms.untracked.vint32(ignoreBins['OutputCopies']) +) +l1tStage2uGMTShowerVsuGMTShowerCopy4RatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( + monitorDir = ugmtMuCpyDqmDir+'/uGMTMuonShoweruGMTMuonShowerCopy4', + inputNum = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy4/'+errHistNumStr, + inputDen = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy4/'+errHistDenStr, + ratioTitle = 'Summary of mismatch rates between uGMT showers and uGMT shower copy 4', + ignoreBin = cms.untracked.vint32(ignoreBins['OutputCopies']) +) +l1tStage2uGMTShowerVsuGMTShowerCopy5RatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( + monitorDir = ugmtMuCpyDqmDir+'/uGMTMuonShoweruGMTMuonShowerCopy5', + inputNum = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy5/'+errHistNumStr, + inputDen = ugmtMuCpyDqmDir+'/uGMTMuonShowerCopies/uGMTMuonShowerCopy5/'+errHistDenStr, + ratioTitle = 'Summary of mismatch rates between uGMT showers and uGMT shower copy 5', + ignoreBin = cms.untracked.vint32(ignoreBins['OutputCopies']) +) + # RegionalMuonCands l1tStage2BmtfOutVsuGMTInRatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( monitorDir = ugmtDqmDir+'/BMTFoutput_vs_uGMTinput', @@ -68,20 +108,16 @@ ratioTitle = 'Summary of mismatch rates between EMTF output muons and uGMT input muons from EMTF', ignoreBin = ignoreBins['Emtf'] ) -# zero suppression -l1tStage2uGMTZeroSuppRatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( - monitorDir = ugmtZSDqmDir+'/AllEvts', - inputNum = ugmtZSDqmDir+'/AllEvts/'+errHistNumStr, - inputDen = ugmtZSDqmDir+'/AllEvts/'+errHistDenStr, - ratioTitle = 'Summary of bad zero suppression rates', - yAxisTitle = '# fail / # total' -) -l1tStage2uGMTZeroSuppFatEvtsRatioClient = l1tStage2uGMTZeroSuppRatioClient.clone( - monitorDir = ugmtZSDqmDir+'/FatEvts', - inputNum = ugmtZSDqmDir+'/FatEvts/'+errHistNumStr, - inputDen = ugmtZSDqmDir+'/FatEvts/'+errHistDenStr, - ratioTitle = 'Summary of bad zero suppression rates' + +# RegionalShowerCands +l1tStage2EmtfOutVsuGMTInShowerRatioClient = l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient.clone( + monitorDir = ugmtDqmDir+'/EMTFoutput_vs_uGMTinput/Muon Showers', + inputNum = ugmtDqmDir+'/EMTFoutput_vs_uGMTinput/Muon Showers/'+errHistNumStr, + inputDen = ugmtDqmDir+'/EMTFoutput_vs_uGMTinput/Muon Showers/'+errHistDenStr, + ratioTitle = 'Summary of mismatch rates between EMTF output showers and uGMT input showers from EMTF', + ignoreBin = ignoreBins['EmtfShowers'] ) + # sequences l1tStage2uGMTMuonCompClient = cms.Sequence( l1tStage2uGMTMuonVsuGMTMuonCopy1RatioClient @@ -90,21 +126,28 @@ + l1tStage2uGMTMuonVsuGMTMuonCopy4RatioClient + l1tStage2uGMTMuonVsuGMTMuonCopy5RatioClient ) +# Add shower copy tests for Run-3 +_run3_l1tStage2uGMTMuonCompClient = cms.Sequence( + l1tStage2uGMTMuonCompClient.copy() + + l1tStage2uGMTShowerVsuGMTShowerCopy1RatioClient + + l1tStage2uGMTShowerVsuGMTShowerCopy2RatioClient + + l1tStage2uGMTShowerVsuGMTShowerCopy3RatioClient + + l1tStage2uGMTShowerVsuGMTShowerCopy4RatioClient + + l1tStage2uGMTShowerVsuGMTShowerCopy5RatioClient +) +stage2L1Trigger_2021.toReplaceWith(l1tStage2uGMTMuonCompClient, _run3_l1tStage2uGMTMuonCompClient) l1tStage2uGMTRegionalMuonCandCompClient = cms.Sequence( l1tStage2BmtfOutVsuGMTInRatioClient + l1tStage2OmtfOutVsuGMTInRatioClient + l1tStage2EmtfOutVsuGMTInRatioClient ) - -l1tStage2uGMTZeroSuppCompClient = cms.Sequence( - l1tStage2uGMTZeroSuppRatioClient - + l1tStage2uGMTZeroSuppFatEvtsRatioClient -) +# Add input vs. output shower tests in Run-3. +_run3_l1tStage2uGMTRegionalMuonCandCompClient = cms.Sequence(l1tStage2uGMTRegionalMuonCandCompClient.copy() + l1tStage2EmtfOutVsuGMTInShowerRatioClient) +stage2L1Trigger_2021.toReplaceWith(l1tStage2uGMTRegionalMuonCandCompClient, _run3_l1tStage2uGMTRegionalMuonCandCompClient) l1tStage2uGMTClient = cms.Sequence( l1tStage2uGMTMuonCompClient + l1tStage2uGMTRegionalMuonCandCompClient - + l1tStage2uGMTZeroSuppCompClient ) diff --git a/DQM/L1TMonitorClient/python/L1TStage2uGMTEmulatorClient_cff.py b/DQM/L1TMonitorClient/python/L1TStage2uGMTEmulatorClient_cff.py index 0b1f4f8b85c26..7e389315e3ee8 100644 --- a/DQM/L1TMonitorClient/python/L1TStage2uGMTEmulatorClient_cff.py +++ b/DQM/L1TMonitorClient/python/L1TStage2uGMTEmulatorClient_cff.py @@ -1,6 +1,6 @@ import FWCore.ParameterSet.Config as cms from DQMServices.Core.DQMEDHarvester import DQMEDHarvester -from DQM.L1TMonitor.L1TdeStage2uGMT_cff import ignoreBins +from DQM.L1TMonitor.L1TdeStage2uGMT_cff import ignoreFinalsBinsRun3, ignoreIntermediatesBins, ignoreIntermediatesBinsRun3 # directories ugmtEmuDqmDir = "L1TEMU/L1TdeStage2uGMT" @@ -20,6 +20,21 @@ yAxisTitle = cms.untracked.string('# mismatch / # total'), binomialErr = cms.untracked.bool(True) ) +## Era: Run3_2021; Ignore BX range mismatches. This is necessary because we only read out the central BX for the inputs, so that is what the emulator has to work on. +from Configuration.Eras.Modifier_stage2L1Trigger_2021_cff import stage2L1Trigger_2021 +stage2L1Trigger_2021.toModify(l1tStage2uGMTEmulatorCompRatioClient, ignoreBin = cms.untracked.vint32(ignoreFinalsBinsRun3)) + +# Showers +l1tStage2uGMTShowerEmulatorCompRatioClient = DQMEDHarvester("L1TStage2RatioClient", + monitorDir = cms.untracked.string(ugmtEmuDEDqmDir+"/Muon showers"), + inputNum = cms.untracked.string(ugmtEmuDEDqmDir+'/Muon showers/'+errHistNumStr), + inputDen = cms.untracked.string(ugmtEmuDEDqmDir+'/Muon showers/'+errHistDenStr), + ratioName = cms.untracked.string('mismatchRatio'), + ratioTitle = cms.untracked.string('Summary of mismatch rates between uGMT showers and uGMT emulator showers'), + yAxisTitle = cms.untracked.string('# mismatch / # total'), + binomialErr = cms.untracked.bool(True), + ignoreBin = cms.untracked.vint32(ignoreFinalsBinsRun3), # Ignore BX range mismatches. This is necessary because we only read out the central BX for the inputs, so that is what the emulator has to work on. +) # intermediate muons titleStr = 'Summary of mismatch rates between uGMT intermediate muons and uGMT emulator intermediate muons from ' @@ -28,35 +43,34 @@ l1tStage2uGMTEmulImdMuBMTFCompRatioClient.inputNum = cms.untracked.string(ugmtEmuImdMuDqmDir+'/BMTF/data_vs_emulator_comparison/'+errHistNumStr) l1tStage2uGMTEmulImdMuBMTFCompRatioClient.inputDen = cms.untracked.string(ugmtEmuImdMuDqmDir+'/BMTF/data_vs_emulator_comparison/'+errHistDenStr) l1tStage2uGMTEmulImdMuBMTFCompRatioClient.ratioTitle = cms.untracked.string(titleStr+'BMTF') -l1tStage2uGMTEmulImdMuBMTFCompRatioClient.ignoreBin = cms.untracked.vint32(ignoreBins) +l1tStage2uGMTEmulImdMuBMTFCompRatioClient.ignoreBin = cms.untracked.vint32(ignoreIntermediatesBins) +## Era: Run3_2021; Ignore BX range mismatches. This is necessary because we only read out the central BX for the inputs, so that is what the emulator has to work on. +from Configuration.Eras.Modifier_stage2L1Trigger_2021_cff import stage2L1Trigger_2021 +stage2L1Trigger_2021.toModify(l1tStage2uGMTEmulImdMuBMTFCompRatioClient, ignoreBin = ignoreIntermediatesBinsRun3) -l1tStage2uGMTEmulImdMuOMTFNegCompRatioClient = l1tStage2uGMTEmulatorCompRatioClient.clone() +l1tStage2uGMTEmulImdMuOMTFNegCompRatioClient = l1tStage2uGMTEmulImdMuBMTFCompRatioClient.clone() l1tStage2uGMTEmulImdMuOMTFNegCompRatioClient.monitorDir = cms.untracked.string(ugmtEmuImdMuDqmDir+'/OMTF_neg/data_vs_emulator_comparison') l1tStage2uGMTEmulImdMuOMTFNegCompRatioClient.inputNum = cms.untracked.string(ugmtEmuImdMuDqmDir+'/OMTF_neg/data_vs_emulator_comparison/'+errHistNumStr) l1tStage2uGMTEmulImdMuOMTFNegCompRatioClient.inputDen = cms.untracked.string(ugmtEmuImdMuDqmDir+'/OMTF_neg/data_vs_emulator_comparison/'+errHistDenStr) l1tStage2uGMTEmulImdMuOMTFNegCompRatioClient.ratioTitle = cms.untracked.string(titleStr+'OMTF-') -l1tStage2uGMTEmulImdMuOMTFNegCompRatioClient.ignoreBin = cms.untracked.vint32(ignoreBins) -l1tStage2uGMTEmulImdMuOMTFPosCompRatioClient = l1tStage2uGMTEmulatorCompRatioClient.clone() +l1tStage2uGMTEmulImdMuOMTFPosCompRatioClient = l1tStage2uGMTEmulImdMuBMTFCompRatioClient.clone() l1tStage2uGMTEmulImdMuOMTFPosCompRatioClient.monitorDir = cms.untracked.string(ugmtEmuImdMuDqmDir+'/OMTF_pos/data_vs_emulator_comparison') l1tStage2uGMTEmulImdMuOMTFPosCompRatioClient.inputNum = cms.untracked.string(ugmtEmuImdMuDqmDir+'/OMTF_pos/data_vs_emulator_comparison/'+errHistNumStr) l1tStage2uGMTEmulImdMuOMTFPosCompRatioClient.inputDen = cms.untracked.string(ugmtEmuImdMuDqmDir+'/OMTF_pos/data_vs_emulator_comparison/'+errHistDenStr) l1tStage2uGMTEmulImdMuOMTFPosCompRatioClient.ratioTitle = cms.untracked.string(titleStr+'OMTF+') -l1tStage2uGMTEmulImdMuOMTFPosCompRatioClient.ignoreBin = cms.untracked.vint32(ignoreBins) -l1tStage2uGMTEmulImdMuEMTFNegCompRatioClient = l1tStage2uGMTEmulatorCompRatioClient.clone() +l1tStage2uGMTEmulImdMuEMTFNegCompRatioClient = l1tStage2uGMTEmulImdMuBMTFCompRatioClient.clone() l1tStage2uGMTEmulImdMuEMTFNegCompRatioClient.monitorDir = cms.untracked.string(ugmtEmuImdMuDqmDir+'/EMTF_neg/data_vs_emulator_comparison') l1tStage2uGMTEmulImdMuEMTFNegCompRatioClient.inputNum = cms.untracked.string(ugmtEmuImdMuDqmDir+'/EMTF_neg/data_vs_emulator_comparison/'+errHistNumStr) l1tStage2uGMTEmulImdMuEMTFNegCompRatioClient.inputDen = cms.untracked.string(ugmtEmuImdMuDqmDir+'/EMTF_neg/data_vs_emulator_comparison/'+errHistDenStr) l1tStage2uGMTEmulImdMuEMTFNegCompRatioClient.ratioTitle = cms.untracked.string(titleStr+'EMTF-') -l1tStage2uGMTEmulImdMuEMTFNegCompRatioClient.ignoreBin = cms.untracked.vint32(ignoreBins) -l1tStage2uGMTEmulImdMuEMTFPosCompRatioClient = l1tStage2uGMTEmulatorCompRatioClient.clone() +l1tStage2uGMTEmulImdMuEMTFPosCompRatioClient = l1tStage2uGMTEmulImdMuBMTFCompRatioClient.clone() l1tStage2uGMTEmulImdMuEMTFPosCompRatioClient.monitorDir = cms.untracked.string(ugmtEmuImdMuDqmDir+'/EMTF_pos/data_vs_emulator_comparison') l1tStage2uGMTEmulImdMuEMTFPosCompRatioClient.inputNum = cms.untracked.string(ugmtEmuImdMuDqmDir+'/EMTF_pos/data_vs_emulator_comparison/'+errHistNumStr) l1tStage2uGMTEmulImdMuEMTFPosCompRatioClient.inputDen = cms.untracked.string(ugmtEmuImdMuDqmDir+'/EMTF_pos/data_vs_emulator_comparison/'+errHistDenStr) l1tStage2uGMTEmulImdMuEMTFPosCompRatioClient.ratioTitle = cms.untracked.string(titleStr+'EMTF+') -l1tStage2uGMTEmulImdMuEMTFPosCompRatioClient.ignoreBin = cms.untracked.vint32(ignoreBins) # sequences l1tStage2uGMTEmulatorClient = cms.Sequence( @@ -68,3 +82,6 @@ + l1tStage2uGMTEmulImdMuEMTFPosCompRatioClient ) +# Add shower tests for Run3 +_run3_l1tStage2uGMTEmulatorClient = cms.Sequence(l1tStage2uGMTEmulatorClient.copy() + l1tStage2uGMTShowerEmulatorCompRatioClient) +stage2L1Trigger_2021.toReplaceWith(l1tStage2uGMTEmulatorClient, _run3_l1tStage2uGMTEmulatorClient) diff --git a/DQM/L1TMonitorClient/python/L1TStage2uGTEmulatorClient_cff.py b/DQM/L1TMonitorClient/python/L1TStage2uGTEmulatorClient_cff.py index 5b5d3076de505..4966c63c0a654 100644 --- a/DQM/L1TMonitorClient/python/L1TStage2uGTEmulatorClient_cff.py +++ b/DQM/L1TMonitorClient/python/L1TStage2uGTEmulatorClient_cff.py @@ -1,6 +1,5 @@ import FWCore.ParameterSet.Config as cms from DQMServices.Core.DQMEDHarvester import DQMEDHarvester -from DQM.L1TMonitor.L1TdeStage2uGMT_cff import ignoreBins # directories ugmtEmuDqmDir = "L1TEMU/L1TdeStage2uGT" diff --git a/DQM/SiPixelPhase1Heterogeneous/plugins/SiPixelPhase1CompareVertexSoA.cc b/DQM/SiPixelPhase1Heterogeneous/plugins/SiPixelPhase1CompareVertexSoA.cc index fe824ef013145..0113ea50973d8 100644 --- a/DQM/SiPixelPhase1Heterogeneous/plugins/SiPixelPhase1CompareVertexSoA.cc +++ b/DQM/SiPixelPhase1Heterogeneous/plugins/SiPixelPhase1CompareVertexSoA.cc @@ -44,6 +44,9 @@ class SiPixelPhase1CompareVertexSoA : public DQMEDAnalyzer { MonitorElement* hchi2oNdof_; MonitorElement* hptv2_; MonitorElement* hntrks_; + MonitorElement* hxdiff_; + MonitorElement* hydiff_; + MonitorElement* hzdiff_; }; // @@ -129,9 +132,12 @@ void SiPixelPhase1CompareVertexSoA::analyze(const edm::Event& iEvent, const edm: auto ndofGPU = vsoaGPU.ndof[closestVtxidx]; auto chi2GPU = vsoaGPU.chi2[closestVtxidx]; - hx_->Fill(xc, xg); - hy_->Fill(yc, yg); + hx_->Fill(xc - x0, xg - x0); + hy_->Fill(yc - y0, yg - y0); hz_->Fill(zc, zg); + hxdiff_->Fill(xc - xg); + hydiff_->Fill(yc - yg); + hzdiff_->Fill(zc - zg); hchi2_->Fill(chi2CPU, chi2GPU); hchi2oNdof_->Fill(chi2CPU / ndofCPU, chi2GPU / ndofGPU); hptv2_->Fill(vsoaCPU.ptv2[sic], vsoaGPU.ptv2[closestVtxidx]); @@ -146,21 +152,23 @@ void SiPixelPhase1CompareVertexSoA::analyze(const edm::Event& iEvent, const edm: void SiPixelPhase1CompareVertexSoA::bookHistograms(DQMStore::IBooker& ibooker, edm::Run const& iRun, edm::EventSetup const& iSetup) { - //std::string top_folder = ""// ibooker.cd(); ibooker.setCurrentFolder(topFolderName_); // FIXME: all the 2D correlation plots are quite heavy in terms of memory consumption, so a as soon as DQM supports either TH2I or THnSparse // these should be moved to a less resource consuming format hnVertex_ = ibooker.book2I("nVertex", "# of Vertex;CPU;GPU", 101, -0.5, 100.5, 101, -0.5, 100.5); - hx_ = ibooker.book2I("vx", "Vertez x;CPU;GPU", 20, -0.1, 0.1, 20, -0.1, 0.1); - hy_ = ibooker.book2I("vy", "Vertez y;CPU;GPU", 20, -0.1, 0.1, 20, -0.1, 0.1); + hx_ = ibooker.book2I("vx", "Vertez x - Beamspot x;CPU;GPU", 50, -0.1, 0.1, 50, -0.1, 0.1); + hy_ = ibooker.book2I("vy", "Vertez y - Beamspot y;CPU;GPU", 50, -0.1, 0.1, 50, -0.1, 0.1); hz_ = ibooker.book2I("vz", "Vertez z;CPU;GPU", 30, -30., 30., 30, -30., 30.); hchi2_ = ibooker.book2I("chi2", "Vertex chi-squared;CPU;GPU", 40, 0., 20., 40, 0., 20.); hchi2oNdof_ = ibooker.book2I("chi2oNdof", "Vertex chi-squared/Ndof;CPU;GPU", 40, 0., 20., 40, 0., 20.); hptv2_ = ibooker.book2I("ptsq", "Vertex p_T squared;CPU;GPU", 200, 0., 200., 200, 0., 200.); hntrks_ = ibooker.book2I("ntrk", "#tracks associated;CPU;GPU", 100, -0.5, 99.5, 100, -0.5, 99.5); hntrks_ = ibooker.book2I("ntrk", "#tracks associated;CPU;GPU", 100, -0.5, 99.5, 100, -0.5, 99.5); + hxdiff_ = ibooker.book1D("vxdiff", ";Vertex x difference (CPU - GPU);#entries", 100, -0.001, 0.001); + hydiff_ = ibooker.book1D("vydiff", ";Vertex y difference (CPU - GPU);#entries", 100, -0.001, 0.001); + hzdiff_ = ibooker.book1D("vzdiff", ";Vertex z difference (CPU - GPU);#entries", 100, -2.5, 2.5); } void SiPixelPhase1CompareVertexSoA::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { diff --git a/DQM/SiPixelPhase1Heterogeneous/plugins/SiPixelPhase1MonitorTrackSoA.cc b/DQM/SiPixelPhase1Heterogeneous/plugins/SiPixelPhase1MonitorTrackSoA.cc index 47bde4f171ede..622895ba07bcc 100644 --- a/DQM/SiPixelPhase1Heterogeneous/plugins/SiPixelPhase1MonitorTrackSoA.cc +++ b/DQM/SiPixelPhase1Heterogeneous/plugins/SiPixelPhase1MonitorTrackSoA.cc @@ -144,18 +144,18 @@ void SiPixelPhase1MonitorTrackSoA::bookHistograms(DQMStore::IBooker& iBook, toRep = "Number of all RecHits per track (quality #geq loose)"; hnHits = iBook.book1D("nRecHits", fmt::sprintf(";%s;#tracks",toRep), 15, -0.5, 14.5); - hnHitsVsPhi = iBook.bookProfile("nHitsPerTrackVsPhi", fmt::sprintf("%s vs track #eta;Track #eta;%s",toRep,toRep), 30, -3., 3., 0., 15.); - hnHitsVsEta = iBook.bookProfile("nHitsPerTrackVsEta", fmt::sprintf("%s vs track #phi;Track #phi;%s",toRep,toRep), 30,-M_PI,-M_PI,0.,15.); + hnHitsVsPhi = iBook.bookProfile("nHitsPerTrackVsPhi", fmt::sprintf("%s vs track #phi;Track #phi;%s",toRep,toRep), 30, -M_PI, M_PI,0., 15.); + hnHitsVsEta = iBook.bookProfile("nHitsPerTrackVsEta", fmt::sprintf("%s vs track #eta;Track #eta;%s",toRep,toRep), 30, -3., 3., 0., 15.); toRep = "Number of all layers per track (quality #geq loose)"; hnLayers = iBook.book1D("nLayers", fmt::sprintf(";%s;#tracks",toRep), 15, -0.5, 14.5); - hnLayersVsPhi = iBook.bookProfile("nLayersPerTrackVsPhi", fmt::sprintf("%s vs track #eta;Track #eta;%s",toRep,toRep), 30, -3., 3., 0., 15.); - hnLayersVsEta = iBook.bookProfile("nLayersPerTrackVsEta", fmt::sprintf("%s vs track #phi;Track #phi;%s",toRep,toRep), 30,-M_PI,-M_PI,0.,15.); + hnLayersVsPhi = iBook.bookProfile("nLayersPerTrackVsPhi", fmt::sprintf("%s vs track #phi;Track #phi;%s",toRep,toRep), 30, -M_PI, M_PI,0., 15.); + hnLayersVsEta = iBook.bookProfile("nLayersPerTrackVsEta", fmt::sprintf("%s vs track #eta;Track #eta;%s",toRep,toRep), 30, -3., 3., 0., 15.); toRep = "Track (quality #geq loose) #chi^{2}/ndof"; hchi2 = iBook.book1D("nChi2ndof", fmt::sprintf(";%s;#tracks",toRep), 40, 0., 20.); - hChi2VsPhi = iBook.bookProfile("nChi2ndofVsPhi", fmt::sprintf("%s vs track #eta;Track #eta;%s",toRep,toRep), 30, -3., 3., 0., 20.); - hChi2VsEta = iBook.bookProfile("nChi2ndofVsEta", fmt::sprintf("%s vs track #phi;Track #phi;%s",toRep,toRep), 30, -M_PI, -M_PI, 0., 20.); + hChi2VsPhi = iBook.bookProfile("nChi2ndofVsPhi", fmt::sprintf("%s vs track #phi;Track #phi;%s",toRep,toRep), 30, -M_PI, M_PI, 0., 20.); + hChi2VsEta = iBook.bookProfile("nChi2ndofVsEta", fmt::sprintf("%s vs track #eta;Track #eta;%s",toRep,toRep), 30, -3., 3., 0., 20.); // clang-format on hpt = iBook.book1D("pt", ";Track (quality #geq loose) p_{T} [GeV];#tracks", 200, 0., 200.); diff --git a/DQM/SiPixelPhase1Heterogeneous/plugins/SiPixelPhase1MonitorVertexSoA.cc b/DQM/SiPixelPhase1Heterogeneous/plugins/SiPixelPhase1MonitorVertexSoA.cc index 02f04f0050960..af6c240a69172 100644 --- a/DQM/SiPixelPhase1Heterogeneous/plugins/SiPixelPhase1MonitorVertexSoA.cc +++ b/DQM/SiPixelPhase1Heterogeneous/plugins/SiPixelPhase1MonitorVertexSoA.cc @@ -109,9 +109,9 @@ void SiPixelPhase1MonitorVertexSoA::bookHistograms(DQMStore::IBooker& ibooker, ibooker.cd(); ibooker.setCurrentFolder(topFolderName_); hnVertex = ibooker.book1D("nVertex", ";# of Vertex;#entries", 101, -0.5, 100.5); - hx = ibooker.book1D("vx", ";Vertez x;#entries", 10, -5., 5.); - hy = ibooker.book1D("vy", ";Vertez y;#entries", 10, -5., 5.); - hz = ibooker.book1D("vz", ";Vertez z;#entries", 30, -30., 30); + hx = ibooker.book1D("vx", ";Vertex x;#entries", 10, -5., 5.); + hy = ibooker.book1D("vy", ";Vertex y;#entries", 10, -5., 5.); + hz = ibooker.book1D("vz", ";Vertex z;#entries", 30, -30., 30); hchi2 = ibooker.book1D("chi2", ";Vertex chi-squared;#entries", 40, 0., 20.); hchi2oNdof = ibooker.book1D("chi2oNdof", ";Vertex chi-squared/Ndof;#entries", 40, 0., 20.); hptv2 = ibooker.book1D("ptsq", ";Vertex p_T squared;#entries", 200, 0., 200.); diff --git a/DQM/TrackerRemapper/interface/Phase1PixelROCMaps.h b/DQM/TrackerRemapper/interface/Phase1PixelROCMaps.h index ee4351c41fbe5..8cd6fffe8605e 100644 --- a/DQM/TrackerRemapper/interface/Phase1PixelROCMaps.h +++ b/DQM/TrackerRemapper/interface/Phase1PixelROCMaps.h @@ -8,6 +8,7 @@ #include "TLine.h" #include "TLatex.h" +#include #include #include #include diff --git a/DQM/TrackerRemapper/interface/Phase1PixelSummaryMap.h b/DQM/TrackerRemapper/interface/Phase1PixelSummaryMap.h index e875dfc2cdf49..5f05cc2d0b6e4 100644 --- a/DQM/TrackerRemapper/interface/Phase1PixelSummaryMap.h +++ b/DQM/TrackerRemapper/interface/Phase1PixelSummaryMap.h @@ -10,6 +10,7 @@ #include "TLatex.h" #include "TStyle.h" +#include #include #include #include diff --git a/DQM/TrackerRemapper/plugins/TrackerRemapper.cc b/DQM/TrackerRemapper/plugins/TrackerRemapper.cc index ae8e44c736687..945a0d8e5f007 100644 --- a/DQM/TrackerRemapper/plugins/TrackerRemapper.cc +++ b/DQM/TrackerRemapper/plugins/TrackerRemapper.cc @@ -6,6 +6,7 @@ // // system include files +#include #include #include #include diff --git a/DQM/TrackerRemapper/src/SiStripTkMaps.cc b/DQM/TrackerRemapper/src/SiStripTkMaps.cc index a770be5104307..230374a961169 100644 --- a/DQM/TrackerRemapper/src/SiStripTkMaps.cc +++ b/DQM/TrackerRemapper/src/SiStripTkMaps.cc @@ -19,6 +19,7 @@ #include "TStyle.h" // STL includes +#include #include #include #include diff --git a/DQM/TrackerRemapper/test/SiPixelPhase1Analyzer_cfg.py b/DQM/TrackerRemapper/test/SiPixelPhase1Analyzer_cfg.py index 3e6f7f4f9ee5e..e46eba1ad78d6 100644 --- a/DQM/TrackerRemapper/test/SiPixelPhase1Analyzer_cfg.py +++ b/DQM/TrackerRemapper/test/SiPixelPhase1Analyzer_cfg.py @@ -5,7 +5,7 @@ process.load("Configuration.StandardSequences.GeometryRecoDB_cff") process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # MessageLogger process.load("FWCore.MessageLogger.MessageLogger_cfi") diff --git a/DQMOffline/Alignment/python/ALCARECOTkAlDQM_cff.py b/DQMOffline/Alignment/python/ALCARECOTkAlDQM_cff.py index eb3d1231c384c..2531b42096bf7 100644 --- a/DQMOffline/Alignment/python/ALCARECOTkAlDQM_cff.py +++ b/DQMOffline/Alignment/python/ALCARECOTkAlDQM_cff.py @@ -380,6 +380,37 @@ #ALCARECOTkAlMinBiasDQM = cms.Sequence( ALCARECOTkAlMinBiasTrackingDQM + ALCARECOTkAlMinBiasTkAlDQM+ALCARECOTkAlMinBiasHLTDQM+ALCARECOTkAlMinBiasNOTHLTDQM) ALCARECOTkAlMinBiasDQM = cms.Sequence( ALCARECOTkAlMinBiasTrackingDQM + ALCARECOTkAlMinBiasTkAlDQM ) +######################################################## +#############--- TkAlJetHT ---####################### +######################################################## +__selectionName = 'TkAlJetHT' +ALCARECOTkAlJetHTTrackingDQM = ALCARECOTkAlZMuMuTrackingDQM.clone( + #names and desigantions + TrackProducer = 'ALCARECO'+__selectionName, + AlgoName = 'ALCARECO'+__selectionName, + FolderName = "AlCaReco/"+__selectionName, + BSFolderName = "AlCaReco/"+__selectionName+"/BeamSpot", + # margins and settings + TkSizeBin = 71, + TkSizeMin = -0.5, + TkSizeMax = 70.5, + TrackPtMax = 30 +) + +ALCARECOTkAlJetHTTkAlDQM = ALCARECOTkAlZMuMuTkAlDQM.clone( + #names and desigantions + TrackProducer = 'ALCARECO'+__selectionName, + AlgoName = 'ALCARECO'+__selectionName, + FolderName = "AlCaReco/"+__selectionName, + # margins and settings + fillInvariantMass = False, + TrackPtMax = 30, + SumChargeBin = 101, + SumChargeMin = -50.5, + SumChargeMax = 50.5 +) + +ALCARECOTkAlJetHTDQM = cms.Sequence( ALCARECOTkAlJetHTTrackingDQM + ALCARECOTkAlJetHTTkAlDQM) ######################################################## #############--- TkAlMinBiasHI ---##################### diff --git a/DQMOffline/Lumi/plugins/ZCounting.cc b/DQMOffline/Lumi/plugins/ZCounting.cc index a01ff1fc49f69..8795ddaad3d7c 100644 --- a/DQMOffline/Lumi/plugins/ZCounting.cc +++ b/DQMOffline/Lumi/plugins/ZCounting.cc @@ -348,10 +348,6 @@ void ZCounting::analyzeMuons(const edm::Event& iEvent, const edm::EventSetup& iS h_npv->Fill(iEvent.luminosityBlock(), nvtx); - // Good vertex requirement - if (nvtx == 0) - return; - //------------------------------- //--- Trigger //------------------------------- @@ -565,7 +561,7 @@ void ZCounting::analyzeMuons(const edm::Event& iEvent, const edm::EventSetup& iS continue; bool isTrackCentral = false; - if (fabs(eta2) > MUON_BOUND) + if (fabs(eta2) < MUON_BOUND) isTrackCentral = true; if (itTrk.hitPattern().trackerLayersWithMeasurement() >= 6 && itTrk.hitPattern().numberOfValidPixelHits() >= 1) { @@ -864,6 +860,20 @@ bool ZCounting::isMuonTriggerObj(const ZCountingTrigger::TTrigger& triggerMenu, return false; } +//-------------------------------------------------------------------------------------------------- +// Definition of the CustomTightID function +bool ZCounting::isCustomTightMuon(const reco::Muon& muon) { + if (!muon.isPFMuon() || !muon.isGlobalMuon()) + return false; + + bool muID = isGoodMuon(muon, muon::GlobalMuonPromptTight) && (muon.numberOfMatchedStations() > 1); + + bool muIdAndHits = muID && muon.innerTrack()->hitPattern().trackerLayersWithMeasurement() > 5 && + muon.innerTrack()->hitPattern().numberOfValidPixelHits() > 0; + + return muIdAndHits; +} + //-------------------------------------------------------------------------------------------------- bool ZCounting::passMuonID( const reco::Muon& muon, @@ -876,6 +886,8 @@ bool ZCounting::passMuonID( return true; else if (idType == TightID && muon::isTightMuon(muon, vtx)) return true; + else if (idType == CustomTightID && isCustomTightMuon(muon)) + return true; else if (idType == NoneID) return true; else diff --git a/DQMOffline/Lumi/plugins/ZCounting.h b/DQMOffline/Lumi/plugins/ZCounting.h index 0ae922243ef50..313c25c1d8c42 100644 --- a/DQMOffline/Lumi/plugins/ZCounting.h +++ b/DQMOffline/Lumi/plugins/ZCounting.h @@ -43,7 +43,7 @@ class ZCounting : public DQMEDAnalyzer { ZCounting(const edm::ParameterSet& ps); ~ZCounting() override; - enum MuonIDTypes { NoneID, LooseID, MediumID, TightID }; + enum MuonIDTypes { NoneID, LooseID, MediumID, TightID, CustomTightID }; enum MuonIsoTypes { NoneIso, TrackerIso, PFIso }; protected: @@ -59,6 +59,7 @@ class ZCounting : public DQMEDAnalyzer { bool isMuonTriggerObj(const ZCountingTrigger::TTrigger& triggerMenu, const TriggerObjects& hltMatchBits); bool passMuonID(const reco::Muon& muon, const reco::Vertex& vtx, const MuonIDTypes& idType); bool passMuonIso(const reco::Muon& muon, const MuonIsoTypes& isoType, const float isoCut); + bool isCustomTightMuon(const reco::Muon& muon); // Electron-specific functions bool isElectronTrigger(ZCountingTrigger::TTrigger triggerMenu, TriggerBits hltBits); diff --git a/DQMOffline/Lumi/python/ZCounting_cff.py b/DQMOffline/Lumi/python/ZCounting_cff.py index a9465aacbb1d5..88311ecadf5b6 100644 --- a/DQMOffline/Lumi/python/ZCounting_cff.py +++ b/DQMOffline/Lumi/python/ZCounting_cff.py @@ -17,15 +17,15 @@ beamspotName = cms.InputTag('offlineBeamSpot'), conversionsName = cms.InputTag('conversions'), - MuonTriggerNames = cms.vstring("HLT_IsoMu27_v*"), - MuonTriggerObjectNames = cms.vstring("hltL3crIsoL1sMu22Or25L1f0L2f10QL3f27QL3trkIsoFiltered0p07"), + MuonTriggerNames = cms.vstring("HLT_IsoMu24_v*"), + MuonTriggerObjectNames = cms.vstring("hltL3crIsoL1sSingleMu22L1f0L2f10QL3f24QL3trkIsoFiltered0p07"), - IDType = cms.untracked.string("Tight"),# Tight, Medium, Loose + IDType = cms.untracked.string("CustomTight"), # Tight, Medium, Loose, CustomTight IsoType = cms.untracked.string("NULL"), # Tracker-based, PF-based IsoCut = cms.untracked.double(0.), # {0.05, 0.10} for Tracker-based, {0.15, 0.25} for PF-based - PtCutL1 = cms.untracked.double(30.0), - PtCutL2 = cms.untracked.double(30.0), + PtCutL1 = cms.untracked.double(27.0), + PtCutL2 = cms.untracked.double(27.0), EtaCutL1 = cms.untracked.double(2.4), EtaCutL2 = cms.untracked.double(2.4), @@ -38,17 +38,17 @@ ElectronIDType = cms.untracked.string("TIGHT"), - MassBin = cms.untracked.int32(50), - MassMin = cms.untracked.double(66.0), - MassMax = cms.untracked.double(116.0), + MassBin = cms.untracked.int32(80), + MassMin = cms.untracked.double(50.0), + MassMax = cms.untracked.double(130.0), LumiBin = cms.untracked.int32(2500), LumiMin = cms.untracked.double(0.5), LumiMax = cms.untracked.double(2500.5), - PVBin = cms.untracked.int32(60), + PVBin = cms.untracked.int32(100), PVMin = cms.untracked.double(0.5), - PVMax = cms.untracked.double(60.5), + PVMax = cms.untracked.double(100.5), VtxNTracksFitMin = cms.untracked.double(0.), VtxNdofMin = cms.untracked.double(4.), diff --git a/DQMOffline/MuonDPG/src/BaseTnPEfficiencyTask.cc b/DQMOffline/MuonDPG/src/BaseTnPEfficiencyTask.cc index 7e6ffd72bfeff..ea018c5b82776 100644 --- a/DQMOffline/MuonDPG/src/BaseTnPEfficiencyTask.cc +++ b/DQMOffline/MuonDPG/src/BaseTnPEfficiencyTask.cc @@ -20,6 +20,7 @@ #include "TRegexp.h" #include +#include BaseTnPEfficiencyTask::BaseTnPEfficiencyTask(const edm::ParameterSet& config) : m_nEvents(0), @@ -187,7 +188,9 @@ bool BaseTnPEfficiencyTask::hasTrigger(std::vector& trigIndices, float dR2match = 999.; for (int trigIdx : trigIndices) { const std::vector trigModuleLabels = m_hltConfig.moduleLabels(trigIdx); - const unsigned trigModuleIndex = trigModuleLabels.size() - 2; + + const unsigned trigModuleIndex = + std::find(trigModuleLabels.begin(), trigModuleLabels.end(), "hltBoolEnd") - trigModuleLabels.begin() - 1; const unsigned hltFilterIndex = trigEvent->filterIndex(edm::InputTag(trigModuleLabels[trigModuleIndex], "", "HLT")); if (hltFilterIndex < trigEvent->sizeFilters()) { const trigger::Keys keys = trigEvent->filterKeys(hltFilterIndex); @@ -202,5 +205,6 @@ bool BaseTnPEfficiencyTask::hasTrigger(std::vector& trigIndices, } } } + return dR2match < 0.01; } diff --git a/DQMServices/FileIO/plugins/DQMFileSaverPB.cc b/DQMServices/FileIO/plugins/DQMFileSaverPB.cc index 2a881f50cba71..caf067eb07014 100644 --- a/DQMServices/FileIO/plugins/DQMFileSaverPB.cc +++ b/DQMServices/FileIO/plugins/DQMFileSaverPB.cc @@ -259,9 +259,9 @@ void DQMFileSaverPB::savePB(DQMStore* store, std::string const& filename, int ru } else { // Compress ME blob with zlib int maxOutputSize = this->getMaxCompressedSize(buffer.Length()); - char compression_output[maxOutputSize]; - uLong total_out = this->compressME(buffer, maxOutputSize, compression_output); - histo.set_streamed_histo(compression_output, total_out); + std::vector compression_output(maxOutputSize); + uLong total_out = this->compressME(buffer, maxOutputSize, compression_output.data()); + histo.set_streamed_histo(compression_output.data(), total_out); } // Save quality reports diff --git a/DataFormats/CTPPSDetId/interface/TotemTimingDetId.h b/DataFormats/CTPPSDetId/interface/TotemTimingDetId.h index 67ab25c6d1dcf..36121e147a076 100644 --- a/DataFormats/CTPPSDetId/interface/TotemTimingDetId.h +++ b/DataFormats/CTPPSDetId/interface/TotemTimingDetId.h @@ -33,7 +33,12 @@ class TotemTimingDetId : public CTPPSDetId { TotemTimingDetId(const CTPPSDetId& id) : CTPPSDetId(id) {} /// Construct from hierarchy indices. - TotemTimingDetId(uint32_t arm, uint32_t station, uint32_t romanPot = 0, uint32_t plane = 0, uint32_t channel = 0); + TotemTimingDetId(uint32_t arm, + uint32_t station, + uint32_t romanPot = 0, + uint32_t plane = 0, + uint32_t channel = 0, + uint32_t subdet = sdTimingFastSilicon); static constexpr uint32_t startPlaneBit = 17, maskPlane = 0x3, maxPlane = 3, lowMaskPlane = 0x1FFFF; static constexpr uint32_t startDetBit = 12, maskChannel = 0x1F, maxChannel = 31, lowMaskChannel = 0xFFF; @@ -41,7 +46,8 @@ class TotemTimingDetId : public CTPPSDetId { /// returns true if the raw ID is a PPS-timing one static bool check(unsigned int raw) { return (((raw >> DetId::kDetOffset) & 0xF) == DetId::VeryForward && - ((raw >> DetId::kSubdetOffset) & 0x7) == sdTimingFastSilicon); + (((raw >> DetId::kSubdetOffset) & 0x7) == sdTimingFastSilicon || + ((raw >> DetId::kSubdetOffset) & 0x7) == sdTimingDiamond)); } //-------------------- getting and setting methods -------------------- diff --git a/DataFormats/CTPPSDetId/src/TotemTimingDetId.cc b/DataFormats/CTPPSDetId/src/TotemTimingDetId.cc index f62afd14d342f..f343b688fa15d 100644 --- a/DataFormats/CTPPSDetId/src/TotemTimingDetId.cc +++ b/DataFormats/CTPPSDetId/src/TotemTimingDetId.cc @@ -18,8 +18,9 @@ TotemTimingDetId::TotemTimingDetId(uint32_t id) : CTPPSDetId(id) { //---------------------------------------------------------------------------------------------------- -TotemTimingDetId::TotemTimingDetId(uint32_t arm, uint32_t station, uint32_t romanPot, uint32_t plane, uint32_t channel) - : CTPPSDetId(sdTimingFastSilicon, arm, station, romanPot) { +TotemTimingDetId::TotemTimingDetId( + uint32_t arm, uint32_t station, uint32_t romanPot, uint32_t plane, uint32_t channel, uint32_t subdet) + : CTPPSDetId(subdet, arm, station, romanPot) { if (arm > maxArm || station > maxStation || romanPot > maxRP || plane > maxPlane || channel > maxChannel) { throw cms::Exception("InvalidDetId") << "TotemTimingDetId ctor:" << " Invalid parameters:" diff --git a/DataFormats/GEMDigi/interface/GEMAMC.h b/DataFormats/GEMDigi/interface/GEMAMC.h index 129dec4be1af7..55bbdf8424b87 100644 --- a/DataFormats/GEMDigi/interface/GEMAMC.h +++ b/DataFormats/GEMDigi/interface/GEMAMC.h @@ -17,6 +17,7 @@ class GEMAMC { }; union AMCheader2 { uint64_t word; + // v301 dataformat struct { uint64_t boardID : 16; // 8bit long GLIB serial number uint64_t orbitNum : 16; // Orbit number, Reset by EC0 @@ -26,14 +27,22 @@ class GEMAMC { uint64_t runType : 4; // run types like physics, cosmics, threshold scan, latency scan, etc.. uint64_t formatVer : 4; // Current format version = 0x0 }; + // v302 dataformat + struct { + uint64_t softSrcId : 12; // FED ID - Configruation Error if does not match with CDF header + uint64_t softSlot : 4; // AMC slot number - Configuation Error if does not match with AMC13 AHn header + uint64_t orbitNumV302 : 32; // Orbit counter, Reset by EC0 - Error if does not match AMC BH header + uint64_t : 12; // unused + uint64_t FVv302 : 4; // Current version = 0x1 + }; }; union AMCTrailer { uint64_t word; struct { uint64_t dataLength : 20; // Number of 64bit words in this event - uint64_t : 4; - uint64_t l1AID : 8; // L1A number (first 8 bits) - uint64_t crc : 32; // CRC added by the AMC13 + uint64_t : 4; // unused + uint64_t l1AID : 8; // L1A number (first 8 bits) + uint64_t crc : 32; // CRC added by the AMC13 }; }; union EventHeader { @@ -51,6 +60,7 @@ class GEMAMC { }; union EventTrailer { uint64_t word; + // v301 dataformat struct { uint64_t BCL : 4; // 1st bit, BC0 locked - If 0, this is a bad condition indicating a // problem in the clock or TTC command stream (critical condition) @@ -62,6 +72,25 @@ class GEMAMC { // different chambers in this event (1 bit) uint64_t linkTo : 24; // Link timeout flags (one bit for each link indicating timeout condition) }; + // v302 dataformat + struct { + uint64_t L1aNF : 1; // L1A FIFO near full - Warning + uint64_t L1aF : 1; // L1A FIFO full - Error + uint64_t : 1; // unused + uint64_t BCLv302 : 1; // BC0 locked - If 0, this is a bad condition indicating a + // problem in the clock or TTC command stream (critical condition) + uint64_t DRv302 : 1; // DAQ Ready - If 0, this means that AMC13 is not ready to take data (critical condition) + uint64_t CLv302 : 1; // DAQ clock locked- If 0, this indicates a problem in the DAQ clock (critical condition) + uint64_t MLv302 : 1; // MMCM locked - Should always be 1 + uint64_t BPv302 : 1; // Backpressure - If this is 1, it means that we are receiving backpressure from AMC13 + uint64_t param3 : 8; // RunPar - Controlled by software, normally used only for calibrations + uint64_t param2 : 8; // RunPar - Controlled by software, normally used only for calibrations + uint64_t param1 : 8; // RunPar - Controlled by software, normally used only for calibrations + uint64_t runType : 4; // Type of Run - Controlled by software, “physics” is assigned 0x1, + // hits from events with other run types should be discarded + uint64_t : 4; // unused + uint64_t linkToV302 : 24; // Link timeout flags (one bit for each link indicating timeout condition) + }; }; GEMAMC() : amch1_(0), amch2_(0), amct_(0), eh_(0), et_(0){}; @@ -87,17 +116,39 @@ class GEMAMC { void setGEMeventTrailer(uint64_t word) { et_ = word; } uint64_t getGEMeventTrailer() const { return et_; } + // v301 uint32_t dataLength() const { return AMCTrailer{amct_}.dataLength; } uint16_t bunchCrossing() const { return AMCheader1{amch1_}.bxID; } uint32_t lv1Id() const { return AMCheader1{amch1_}.l1AID; } uint8_t amcNum() const { return AMCheader1{amch1_}.AMCnum; } uint16_t boardId() const { return AMCheader2{amch2_}.boardID; } - uint16_t orbitNumber() const { return AMCheader2{amch2_}.orbitNum; } - uint8_t param3() const { return AMCheader2{amch2_}.param3; } - uint8_t param2() const { return AMCheader2{amch2_}.param2; } - uint8_t param1() const { return AMCheader2{amch2_}.param1; } - uint8_t runType() const { return AMCheader2{amch2_}.runType; } + uint32_t orbitNumber() const { + if (formatVer() == 0) + return AMCheader2{amch2_}.orbitNum; + return AMCheader2{amch2_}.orbitNumV302; + } + uint8_t param3() const { + if (formatVer() == 0) + return AMCheader2{amch2_}.param3; + return EventTrailer{et_}.param3; + } + uint8_t param2() const { + if (formatVer() == 0) + return AMCheader2{amch2_}.param2; + return EventTrailer{et_}.param2; + } + uint8_t param1() const { + if (formatVer() == 0) + return AMCheader2{amch2_}.param1; + return EventTrailer{et_}.param1; + } + uint8_t runType() const { + if (formatVer() == 0) + return AMCheader2{amch2_}.runType; + return EventTrailer{et_}.runType; + } + // SAME in V301 and V302 uint8_t formatVer() const { return AMCheader2{amch2_}.formatVer; } uint8_t lv1Idt() const { return AMCTrailer{amct_}.l1AID; } @@ -116,6 +167,13 @@ class GEMAMC { uint8_t oosGlib() const { return EventTrailer{et_}.oosGlib; } uint32_t linkTo() const { return EventTrailer{et_}.linkTo; } + // v302 + uint16_t softSrcId() const { return AMCheader2{amch2_}.softSrcId; } + uint8_t softSlot() const { return AMCheader2{amch2_}.softSlot; } + + uint8_t l1aNF() const { return EventTrailer{et_}.L1aNF; } + uint8_t l1aF() const { return EventTrailer{et_}.L1aF; } + //!Adds GEB data to vector void addGEB(GEMOptoHybrid g) { gebd_.push_back(g); } //!Returns a vector of GEB data diff --git a/DataFormats/GEMDigi/interface/GEMAMCStatus.h b/DataFormats/GEMDigi/interface/GEMAMCStatus.h index b91fcff479547..a57dd44ad6ca0 100644 --- a/DataFormats/GEMDigi/interface/GEMAMCStatus.h +++ b/DataFormats/GEMDigi/interface/GEMAMCStatus.h @@ -19,6 +19,8 @@ class GEMAMCStatus { uint16_t DAQclocklocked : 1; uint16_t DAQnotReday : 1; uint16_t BC0locked : 1; + uint16_t badFEDId : 1; + uint16_t L1AFull : 1; }; }; union Warnings { @@ -26,6 +28,7 @@ class GEMAMCStatus { struct { uint8_t InValidOH : 1; uint8_t backPressure : 1; + uint8_t L1ANearFull : 1; }; }; @@ -38,17 +41,24 @@ class GEMAMCStatus { error.badBC = !((amc13->bunchCrossing() == amc.bunchCrossing()) || (amc13->bunchCrossing() == 0 && amc.bunchCrossing() == GEMAMC13::lastBC)); error.badRunType = amc.runType() != 0x1; - // Last OC in AMC13 is different to TCDS, AMC, and VFAT - error.badOC = !((uint16_t(amc13->orbitNumber()) == amc.orbitNumber()) || - (amc13->bunchCrossing() == 0 && uint16_t(amc.orbitNumber() + 1) == uint16_t(amc13->orbitNumber()))); + if (amc.formatVer() == 0) + // Last OC in AMC13 is different to TCDS, AMC, and VFAT + error.badOC = + !((uint16_t(amc13->orbitNumber()) == amc.orbitNumber()) || + (amc13->bunchCrossing() == 0 && uint16_t(amc.orbitNumber() + 1) == uint16_t(amc13->orbitNumber()))); + else + error.badOC = (amc13->orbitNumber() != amc.orbitNumber()); error.MMCMlocked = !amc.mmcmLocked(); error.DAQclocklocked = !amc.daqClockLocked(); error.DAQnotReday = !amc.daqReady(); error.BC0locked = !amc.bc0locked(); + error.badFEDId = (amc13->sourceId() != amc.softSrcId() and amc.formatVer() != 0); + error.L1AFull = (amc.l1aF() and amc.formatVer() != 0); errors_ = error.ecodes; Warnings warn{0}; warn.backPressure = amc.backPressure(); + warn.L1ANearFull = (amc.l1aNF() and amc.formatVer() != 0); warnings_ = warn.wcodes; } diff --git a/DataFormats/GEMDigi/interface/GEMOHStatus.h b/DataFormats/GEMDigi/interface/GEMOHStatus.h index 850356cb1618c..33a35eadc01ef 100644 --- a/DataFormats/GEMDigi/interface/GEMOHStatus.h +++ b/DataFormats/GEMDigi/interface/GEMOHStatus.h @@ -39,7 +39,7 @@ class GEMOHStatus { Errors error{0}; error.EvtF = oh.evtF(); error.InF = oh.inF(); - error.L1aF = oh.l1aF(); + error.L1aF = (oh.l1aF() and (oh.version() == 0)); error.EvtSzOFW = oh.evtSzOFW(); error.Inv = oh.inv(); error.OOScAvV = oh.oOScAvV(); @@ -53,7 +53,7 @@ class GEMOHStatus { Warnings warn{0}; warn.EvtNF = oh.evtNF(); warn.InNF = oh.inNF(); - warn.L1aNF = oh.l1aNF(); + warn.L1aNF = (oh.l1aNF() and (oh.version() == 0)); warn.EvtSzW = oh.evtSzW(); warnings_ = warn.wcodes; } diff --git a/DataFormats/GEMDigi/interface/GEMOptoHybrid.h b/DataFormats/GEMDigi/interface/GEMOptoHybrid.h index b0054f5fd2a5d..2a19b39aecd5a 100644 --- a/DataFormats/GEMDigi/interface/GEMOptoHybrid.h +++ b/DataFormats/GEMDigi/interface/GEMOptoHybrid.h @@ -7,6 +7,7 @@ class GEMOptoHybrid { public: union GEBchamberHeader { uint64_t word; + // v301 dataformat struct { uint64_t : 10; // unused uint64_t BxmVvV : 1; // 1st bit BX mismatch VFAT vs VFAT @@ -27,10 +28,32 @@ class GEMOptoHybrid { uint64_t CALIB_CHAN : 7; // Calibration channel number uint64_t : 17; // unused }; + // v302 dataformat + struct { + uint64_t : 10; // unused + uint64_t BxmVvVv302 : 1; // 1st bit BX mismatch VFAT vs VFAT + uint64_t BxmAvVv302 : 1; // BX mismatch AMC vs VFAT + uint64_t OOScVvVv302 : 1; // Out of Sync (EC mismatch) VFAT vs VFAT + uint64_t OOScAvVv302 : 1; // Out of Sync (EC mismatch) AMC vs VFAT + uint64_t InvV302 : 1; // Invalid event + uint64_t EvtSzWv302 : 1; // Event size warning + uint64_t : 1; // unused + uint64_t InNFv302 : 1; // Input FIFO near full + uint64_t EvtNFv302 : 1; // Event FIFO near full + uint64_t EvtSzOFWv302 : 1; // Event size overflow + uint64_t : 1; // unused + uint64_t InFv302 : 1; // Input FIFO full + uint64_t EvtFv302 : 1; // Event FIFO full + uint64_t VfWdCntV302 : 12; // VFAT word count (in number of 64-bit words) + uint64_t InputIDv302 : 5; // Input link ID + uint64_t CALIB_CHANv302 : 7; // Calibration channel number + uint64_t : 17; // unused + }; }; union GEBchamberTrailer { uint64_t word; + // v301 dataformat struct { uint64_t ecOH : 20; // NOT USED - OptoHybrid event counter uint64_t bcOH : 13; // NOT USED - OptoHybrid bunch crossing @@ -40,11 +63,22 @@ class GEMOptoHybrid { uint64_t VfWdCntT : 12; // VFAT word count (in number of 64-bit words) uint64_t crc16 : 16; // CRC of OptoHybrid data (currently not available – filled with 0) }; + // v302 dataformat + struct { + uint64_t VFATMask : 24; // Enabled VFAT, Set 1 if the VFAT is enabled + uint64_t ZSMask : 24; // Zero-suppressed VFAT, Set 1 if the VFAT payload has been zero-suppressed + uint64_t : 3; // unused + uint64_t InUfwV302 : 1; // Input FIFO underflow + uint64_t VfWdCntTv302 : 12; // VFAT word count (in number of 64-bit words) + }; }; GEMOptoHybrid() : ch_(0), ct_(0){}; ~GEMOptoHybrid() { vfatd_.clear(); } + void setVersion(uint8_t i) { ver_ = i; } + uint8_t version() const { return ver_; } + //!Read chamberHeader from the block. void setChamberHeader(uint64_t word) { ch_ = word; } void setChamberHeader(uint16_t vfatWordCnt, uint8_t inputID) { @@ -66,9 +100,22 @@ class GEMOptoHybrid { } uint64_t getChamberTrailer() const { return ct_; } - uint16_t vfatWordCnt() const { return GEBchamberHeader{ch_}.VfWdCnt; } - uint8_t inputID() const { return GEBchamberHeader{ch_}.InputID; } - uint16_t vfatWordCntT() const { return GEBchamberTrailer{ct_}.VfWdCntT; } + // v301 + uint16_t vfatWordCnt() const { + if (ver_ == 0) + return GEBchamberHeader{ch_}.VfWdCnt; + return GEBchamberHeader{ch_}.VfWdCntV302; + } + uint8_t inputID() const { + if (ver_ == 0) + return GEBchamberHeader{ch_}.InputID; + return GEBchamberHeader{ch_}.InputIDv302; + } + uint16_t vfatWordCntT() const { + if (ver_ == 0) + return GEBchamberTrailer{ct_}.VfWdCntT; + return GEBchamberTrailer{ch_}.VfWdCntTv302; + } bool bxmVvV() const { return GEBchamberHeader{ch_}.BxmVvV; } bool bxmAvV() const { return GEBchamberHeader{ch_}.BxmAvV; } @@ -76,19 +123,29 @@ class GEMOptoHybrid { bool oOScAvV() const { return GEBchamberHeader{ch_}.OOScAvV; } bool inv() const { return GEBchamberHeader{ch_}.Inv; } bool evtSzW() const { return GEBchamberHeader{ch_}.EvtSzW; } - bool l1aNF() const { return GEBchamberHeader{ch_}.L1aNF; } bool inNF() const { return GEBchamberHeader{ch_}.InNF; } bool evtNF() const { return GEBchamberHeader{ch_}.EvtNF; } bool evtSzOFW() const { return GEBchamberHeader{ch_}.EvtSzOFW; } - bool l1aF() const { return GEBchamberHeader{ch_}.L1aF; } bool inF() const { return GEBchamberHeader{ch_}.InF; } bool evtF() const { return GEBchamberHeader{ch_}.EvtF; } - bool inUfw() const { return GEBchamberTrailer{ct_}.InUfw; } + bool inUfw() const { + if (ver_ == 0) + return GEBchamberTrailer{ct_}.InUfw; + return GEBchamberTrailer{ct_}.InUfwV302; + } bool noVFAT() const { return false; } // to be removed bool stuckData() const { return false; } // to be removed bool evUfw() const { return false; } // to be removed + // v301 + bool l1aNF() const { return GEBchamberHeader{ch_}.L1aNF; } + bool l1aF() const { return GEBchamberHeader{ch_}.L1aF; } + + // v302 + uint32_t vfatMask() const { return GEBchamberTrailer{ct_}.VFATMask; } + uint32_t zsMask() const { return GEBchamberTrailer{ct_}.ZSMask; } + //!Adds VFAT data to the vector void addVFAT(GEMVFAT v) { vfatd_.push_back(v); } //!Returns the vector of VFAT data @@ -99,6 +156,8 @@ class GEMOptoHybrid { static const int sizeGebID = 5; private: + uint8_t ver_; // Data Format version + uint64_t ch_; // GEBchamberHeader uint64_t ct_; // GEBchamberTrailer diff --git a/DataFormats/L1TMuon/interface/RegionalMuonCand.h b/DataFormats/L1TMuon/interface/RegionalMuonCand.h index 92c0290dabb40..c25a5d70cf066 100644 --- a/DataFormats/L1TMuon/interface/RegionalMuonCand.h +++ b/DataFormats/L1TMuon/interface/RegionalMuonCand.h @@ -144,6 +144,8 @@ namespace l1t { void setTFIdentifiers(int processor, tftype trackFinder); // this is left to still be compatible with OMTF void setLink(int link) { m_link = link; }; + // Set the muon index on the link (i.e., 0, 1, or 2) + void setMuIdx(int muIdx) { m_muIdx = muIdx; }; // Set the 64 bit word from two 32 words. bits 0-31->lsbs, bits 32-63->msbs void setDataword(uint32_t msbs, uint32_t lsbs) { m_dataword = (((uint64_t)msbs) << 32) + lsbs; }; // Set the 64 bit word coming from HW directly @@ -175,6 +177,8 @@ namespace l1t { const int hwQual() const { return m_hwQuality; }; /// Get link on which the MicroGMT receives the candidate const int link() const { return m_link; }; + /// Get muon index (i.e., 0, 1, or 2) + const int muIdx() const { return m_muIdx; }; /// Get processor ID on which the candidate was found (0..5 for OMTF/EMTF; 0..11 for BMTF) const int processor() const { return m_processor; }; /// Get track-finder which found the muon (bmtf, emtf_pos/emtf_neg or omtf_pos/omtf_neg) @@ -216,6 +220,7 @@ namespace l1t { /// This is the 64 bit word as transmitted in HW uint64_t m_dataword; + int m_muIdx{-1}; }; } // namespace l1t diff --git a/DataFormats/L1TMuon/src/RegionalMuonCand.cc b/DataFormats/L1TMuon/src/RegionalMuonCand.cc index 861dee51c8725..b353d00c7deb8 100644 --- a/DataFormats/L1TMuon/src/RegionalMuonCand.cc +++ b/DataFormats/L1TMuon/src/RegionalMuonCand.cc @@ -28,7 +28,7 @@ namespace l1t { return m_hwPt == rhs.hwPt() && m_hwPtUnconstrained == rhs.hwPtUnconstrained() && m_hwDXY == rhs.hwDXY() && m_hwPhi == rhs.hwPhi() && m_hwEta == rhs.hwEta() && m_hwHF == (bool)rhs.hwHF() && m_hwSign == rhs.hwSign() && m_hwSignValid == rhs.hwSignValid() && m_hwQuality == rhs.hwQual() && m_link == rhs.link() && - m_processor == rhs.processor() && m_trackFinder == rhs.trackFinderType() && + m_muIdx == rhs.muIdx() && m_processor == rhs.processor() && m_trackFinder == rhs.trackFinderType() && m_trackAddress == rhs.trackAddress(); } diff --git a/DataFormats/L1TMuon/src/classes_def.xml b/DataFormats/L1TMuon/src/classes_def.xml index 07cb26f030624..f48356e54bbde 100644 --- a/DataFormats/L1TMuon/src/classes_def.xml +++ b/DataFormats/L1TMuon/src/classes_def.xml @@ -1,7 +1,8 @@ - + + @@ -81,7 +82,8 @@ - + + diff --git a/DataFormats/ParticleFlowReco/src/PFTrajectoryPoint.cc b/DataFormats/ParticleFlowReco/src/PFTrajectoryPoint.cc index 6cde031383cdf..3e35d5f096373 100644 --- a/DataFormats/ParticleFlowReco/src/PFTrajectoryPoint.cc +++ b/DataFormats/ParticleFlowReco/src/PFTrajectoryPoint.cc @@ -1,4 +1,5 @@ #include "DataFormats/ParticleFlowReco/interface/PFTrajectoryPoint.h" +#include #include #include diff --git a/EventFilter/CSCRawToDigi/test/testCSCDigi2Raw_cfg.py b/EventFilter/CSCRawToDigi/test/testCSCDigi2Raw_cfg.py index c034f67ea9785..a48b6ad29930a 100644 --- a/EventFilter/CSCRawToDigi/test/testCSCDigi2Raw_cfg.py +++ b/EventFilter/CSCRawToDigi/test/testCSCDigi2Raw_cfg.py @@ -45,7 +45,7 @@ ## global tag from Configuration.AlCa.GlobalTag import GlobalTag if options.mc: - process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') + process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') else: process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run3_data', '') diff --git a/EventFilter/CSCRawToDigi/test/testPackingUnpackingPreTriggers_cfg.py b/EventFilter/CSCRawToDigi/test/testPackingUnpackingPreTriggers_cfg.py index 5e5ff059620d9..a8a2c30f644d4 100644 --- a/EventFilter/CSCRawToDigi/test/testPackingUnpackingPreTriggers_cfg.py +++ b/EventFilter/CSCRawToDigi/test/testPackingUnpackingPreTriggers_cfg.py @@ -35,7 +35,7 @@ ## global tag from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.XMLFromDBSource.label = cms.string("Extended") process.genstepfilter.triggerConditions=cms.vstring("generation_step") diff --git a/EventFilter/CTPPSRawToDigi/src/RawToDigiConverter.cc b/EventFilter/CTPPSRawToDigi/src/RawToDigiConverter.cc index 601273c439ddb..975cf6ec52448 100644 --- a/EventFilter/CTPPSRawToDigi/src/RawToDigiConverter.cc +++ b/EventFilter/CTPPSRawToDigi/src/RawToDigiConverter.cc @@ -101,6 +101,7 @@ void RawToDigiConverter::runCommon(const VFATFrameCollection &input, stopProcessing = true; } } + // check the id mismatch if (testID != tfNoTest && record.frame->isIDPresent() && (record.frame->getChipID() & 0xFFF) != (record.info->hwID & 0xFFF)) { @@ -331,11 +332,10 @@ void RawToDigiConverter::run(const VFATFrameCollection &coll, eventInfoTmp); // calculate ids TotemTimingDetId detId(record.info->symbolicID.symbolicID); - const TotemDAQMapping::TotemTimingPlaneChannelPair SWpair = mapping.getTimingChannel(totemSampicFrame.getHardwareId()); // for FW Version > 0 plane and channel are encoded in the dataframe - if (totemSampicFrame.getFWVersion() < 0x30) // Mapping not present in HW, read from SW for FW versions < 3.0 + if (totemSampicFrame.getFWVersion() == 0) // Mapping not present in HW, read from SW for FW versions == 0 { if (SWpair.plane == -1 || SWpair.channel == -1) { if (verbosity > 0) @@ -345,7 +345,6 @@ void RawToDigiConverter::run(const VFATFrameCollection &coll, } else { detId.setPlane(SWpair.plane % 4); detId.setChannel(SWpair.channel); - detId.setRP(SWpair.plane / 4); // Top:0 or Bottom:1 } } else // Mapping read from HW, checked by SW { @@ -368,7 +367,6 @@ void RawToDigiConverter::run(const VFATFrameCollection &coll, } detId.setPlane(HWplane % 4); detId.setChannel(HWchannel); - detId.setRP(HWplane / 4); // Top:0 or Bottom:1 } DetSet &digiDetSet = digi.find_or_insert(detId); diff --git a/EventFilter/CTPPSRawToDigi/test/test_pixels_only_cfg_eraRun3_562.py b/EventFilter/CTPPSRawToDigi/test/test_pixels_only_cfg_eraRun3_562.py index d718caed4da45..0c1828abf308f 100644 --- a/EventFilter/CTPPSRawToDigi/test/test_pixels_only_cfg_eraRun3_562.py +++ b/EventFilter/CTPPSRawToDigi/test/test_pixels_only_cfg_eraRun3_562.py @@ -50,7 +50,7 @@ #process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') #from Configuration.AlCa.GlobalTag import GlobalTag -#process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +#process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.load("CondCore.CondDB.CondDB_cfi") diff --git a/EventFilter/EcalRawToDigi/plugins/DeclsForKernels.h b/EventFilter/EcalRawToDigi/plugins/DeclsForKernels.h index c94cfe0c3805f..a7404e99fe7af 100644 --- a/EventFilter/EcalRawToDigi/plugins/DeclsForKernels.h +++ b/EventFilter/EcalRawToDigi/plugins/DeclsForKernels.h @@ -17,7 +17,10 @@ namespace ecal { constexpr auto empty_event_size = EMPTYEVENTSIZE; constexpr uint32_t nfeds_max = 54; - constexpr uint32_t nbytes_per_fed_max = 10 * 1024; + constexpr uint32_t nbytes_per_fed_max = 41616; // max FED size in full readout mode + // DCC header and trailer: 10 words (64bit), + // TCC block: 18 words, SR block 6 words, + // (25 channels per tower * 3 words + 1 header word) * 68 towers struct InputDataCPU { cms::cuda::host::unique_ptr data; diff --git a/EventFilter/EcalRawToDigi/plugins/EcalDumpRaw.cc b/EventFilter/EcalRawToDigi/plugins/EcalDumpRaw.cc index e7229b37557cc..965e1ef5a8340 100644 --- a/EventFilter/EcalRawToDigi/plugins/EcalDumpRaw.cc +++ b/EventFilter/EcalRawToDigi/plugins/EcalDumpRaw.cc @@ -49,8 +49,8 @@ const int EcalDumpRaw::ttId_[nTccTypes_][maxTpgsPerTcc_] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //outer EE - {1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + {1, 2, 3, 4, 5, 6, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 11, 12, 13, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; using namespace std; diff --git a/EventFilter/EcalRawToDigi/test/dumpRaw b/EventFilter/EcalRawToDigi/test/dumpRaw index d8e2b1235c0d4..75cca349eee3e 100755 --- a/EventFilter/EcalRawToDigi/test/dumpRaw +++ b/EventFilter/EcalRawToDigi/test/dumpRaw @@ -183,6 +183,7 @@ process.source.fileNames = cms.vstring( $dataset ) process.source.preScale = cms.uint32( $prescale ) process.source.orderedRead = cms.bool(True) process.source.verbosity = cms.untracked.int32(0) +process.source.firstLuminosityBlockForEachRun = cms.untracked.VLuminosityBlockID() EOF else cat >> "$TMPFILE" <> "$TMPFILE" <> { +class GEMDigiToRawModule : public edm::global::EDProducer> { public: /// Constructor GEMDigiToRawModule(const edm::ParameterSet& pset); // global::EDProducer - std::shared_ptr globalBeginRun(edm::Run const&, edm::EventSetup const&) const override; + std::shared_ptr globalBeginRun(edm::Run const&, edm::EventSetup const&) const override; void produce(edm::StreamID, edm::Event&, edm::EventSetup const&) const override; void globalEndRun(edm::Run const&, edm::EventSetup const&) const override{}; @@ -42,7 +41,7 @@ class GEMDigiToRawModule : public edm::global::EDProducer digi_token; - edm::ESGetToken gemEMapToken_; + edm::ESGetToken gemChMapToken_; bool useDBEMap_; }; @@ -55,7 +54,7 @@ GEMDigiToRawModule::GEMDigiToRawModule(const edm::ParameterSet& pset) useDBEMap_(pset.getParameter("useDBEMap")) { produces(); if (useDBEMap_) { - gemEMapToken_ = esConsumes(); + gemChMapToken_ = esConsumes(); } } @@ -67,20 +66,17 @@ void GEMDigiToRawModule::fillDescriptions(edm::ConfigurationDescriptions& descri descriptions.add("gemPackerDefault", desc); } -std::shared_ptr GEMDigiToRawModule::globalBeginRun(edm::Run const&, edm::EventSetup const& iSetup) const { - auto gemROmap = std::make_shared(); +std::shared_ptr GEMDigiToRawModule::globalBeginRun(edm::Run const&, edm::EventSetup const& iSetup) const { if (useDBEMap_) { - const auto& eMap = iSetup.getData(gemEMapToken_); - auto gemEMap = std::make_unique(eMap); - gemEMap->convert(*gemROmap); - gemEMap.reset(); + const auto& eMap = iSetup.getData(gemChMapToken_); + auto gemChMap = std::make_shared(eMap); + return gemChMap; } else { // no EMap in DB, using dummy - auto gemEMap = std::make_unique(); - gemEMap->convertDummy(*gemROmap); - gemEMap.reset(); + auto gemChMap = std::make_shared(); + gemChMap->setDummy(); + return gemChMap; } - return gemROmap; } void GEMDigiToRawModule::produce(edm::StreamID iID, edm::Event& iEvent, edm::EventSetup const&) const { @@ -93,7 +89,7 @@ void GEMDigiToRawModule::produce(edm::StreamID iID, edm::Event& iEvent, edm::Eve return; } - auto gemROMap = runCache(iEvent.getRun().index()); + auto gemChMap = runCache(iEvent.getRun().index()); std::vector> amc13s; amc13s.reserve(FEDNumbering::MAXGEMFEDID - FEDNumbering::MINGEMFEDID + 1); @@ -125,63 +121,70 @@ void GEMDigiToRawModule::produce(edm::StreamID iID, edm::Event& iEvent, edm::Eve uint32_t amc13EvtLength = 0; std::unique_ptr amc13 = std::make_unique(); - for (uint8_t amcNum = 0; amcNum <= GEMeMap::maxAMCs_; ++amcNum) { + for (uint8_t amcNum = 0; amcNum <= GEMChMap::maxAMCs_; ++amcNum) { uint32_t amcSize = 0; std::unique_ptr amc = std::make_unique(); - for (uint8_t gebId = 0; gebId <= GEMeMap::maxGEBs_; ++gebId) { + for (uint8_t gebId = 0; gebId <= GEMChMap::maxGEBs_; ++gebId) { std::unique_ptr optoH = std::make_unique(); - GEMROMapping::chamEC geb_ec{fedId, amcNum, gebId}; - if (!gemROMap->isValidChamber(geb_ec)) + if (!gemChMap->isValidChamber(fedId, amcNum, gebId)) continue; - GEMROMapping::chamDC geb_dc = gemROMap->chamberPos(geb_ec); - auto vfats = gemROMap->getVfats(geb_dc.detId); - for (auto const& vfat_ec : vfats) { - GEMROMapping::vfatDC vfat_dc = gemROMap->vfatPos(vfat_ec); - GEMDetId gemId = vfat_dc.detId; - uint16_t vfatId = vfat_ec.vfatAdd; + auto geb_dc = gemChMap->chamberPos(fedId, amcNum, gebId); + GEMDetId cid = geb_dc.detId; + int chamberType = geb_dc.chamberType; - for (auto const& gemBx : gemBxMap) { - int bc = BX_id + gemBx.first; + auto vfats = gemChMap->getVfats(chamberType); - bool hasDigi = false; - uint64_t lsData = 0; ///getIEtas(chamberType, vfatId); + for (auto iEta : iEtas) { + GEMDetId gemId(cid.region(), cid.ring(), cid.station(), cid.layer(), cid.chamber(), iEta); - GEMDigiCollection inBxGemDigis = gemBx.second; - const GEMDigiCollection::Range& range = inBxGemDigis.get(gemId); - for (GEMDigiCollection::const_iterator digiIt = range.first; digiIt != range.second; ++digiIt) { - const GEMDigi& digi = (*digiIt); + for (auto const& gemBx : gemBxMap) { + int bc = BX_id + gemBx.first; - int localStrip = digi.strip() - vfat_dc.localPhi * GEMeMap::maxChan_; + bool hasDigi = false; + uint64_t lsData = 0; /// GEMeMap::maxChan_ - 1) - continue; + GEMDigiCollection inBxGemDigis = gemBx.second; + const GEMDigiCollection::Range& range = inBxGemDigis.get(gemId); - hasDigi = true; - GEMROMapping::stripNum stMap = {vfat_dc.vfatType, localStrip}; - GEMROMapping::channelNum chMap = gemROMap->hitPos(stMap); + for (GEMDigiCollection::const_iterator digiIt = range.first; digiIt != range.second; ++digiIt) { + const GEMDigi& digi = (*digiIt); - if (chMap.chNum < 64) - lsData |= 1UL << chMap.chNum; - else - msData |= 1UL << (chMap.chNum - 64); + int strip = digi.strip(); - LogDebug("GEMDigiToRawModule") - << "fed: " << fedId << " amc:" << int(amcNum) << " geb:" << int(gebId) << " vfat id:" << int(vfatId) - << ",type:" << vfat_dc.vfatType << " id:" << gemId << " ch:" << chMap.chNum << " st:" << digi.strip() - << " bx:" << digi.bx(); - } + hasDigi = true; + + if (!gemChMap->isValidStrip(chamberType, iEta, strip)) + continue; + auto chMap = gemChMap->getChannel(chamberType, iEta, strip); + + if (chMap.vfatAdd != vfatId) + continue; - if (!hasDigi) - continue; - // only make vfat with hits - amcSize += 3; - auto vfat = std::make_unique(geb_dc.vfatVer, bc, LV1_id, vfatId, lsData, msData); - optoH->addVFAT(*vfat); + if (chMap.chNum < 64) + lsData |= 1UL << chMap.chNum; + else + msData |= 1UL << (chMap.chNum - 64); + + LogDebug("GEMDigiToRawModule") + << "fed: " << fedId << " amc:" << int(amcNum) << " geb:" << int(gebId) << " vfat id:" << int(vfatId) + << ",type:" << chamberType << " id:" << gemId << " ch:" << chMap.chNum << " st:" << digi.strip() + << " bx:" << digi.bx(); + } + + if (!hasDigi) + continue; + // only make vfat with hits + amcSize += 3; + int vfatVersion = (chamberType < 10) ? 2 : 3; + auto vfat = std::make_unique(vfatVersion, bc, LV1_id, vfatId, lsData, msData); + optoH->addVFAT(*vfat); + } } } // end of vfats in GEB diff --git a/EventFilter/GEMRawToDigi/plugins/GEMRawToDigiModule.cc b/EventFilter/GEMRawToDigi/plugins/GEMRawToDigiModule.cc index 30af0bdbc5113..571ed8bfa0d5c 100644 --- a/EventFilter/GEMRawToDigi/plugins/GEMRawToDigiModule.cc +++ b/EventFilter/GEMRawToDigi/plugins/GEMRawToDigiModule.cc @@ -4,9 +4,8 @@ * \author J. Lee - UoS */ -#include "CondFormats/DataRecord/interface/GEMeMapRcd.h" -#include "CondFormats/GEMObjects/interface/GEMeMap.h" -#include "CondFormats/GEMObjects/interface/GEMROMapping.h" +#include "CondFormats/DataRecord/interface/GEMChMapRcd.h" +#include "CondFormats/GEMObjects/interface/GEMChMap.h" #include "DataFormats/Common/interface/Handle.h" #include "DataFormats/FEDRawData/interface/FEDNumbering.h" #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h" @@ -29,13 +28,13 @@ #include "FWCore/Utilities/interface/Transition.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" -class GEMRawToDigiModule : public edm::global::EDProducer > { +class GEMRawToDigiModule : public edm::global::EDProducer> { public: /// Constructor GEMRawToDigiModule(const edm::ParameterSet& pset); // global::EDProducer - std::shared_ptr globalBeginRun(edm::Run const&, edm::EventSetup const&) const override; + std::shared_ptr globalBeginRun(edm::Run const&, edm::EventSetup const&) const override; void produce(edm::StreamID, edm::Event&, edm::EventSetup const&) const override; void globalEndRun(edm::Run const&, edm::EventSetup const&) const override{}; @@ -44,7 +43,7 @@ class GEMRawToDigiModule : public edm::global::EDProducer fed_token; - edm::ESGetToken gemEMapToken_; + edm::ESGetToken gemChMapToken_; bool useDBEMap_, keepDAQStatus_, readMultiBX_, ge21Off_; unsigned int fedIdStart_, fedIdEnd_; std::unique_ptr gemRawToDigi_; @@ -70,7 +69,7 @@ GEMRawToDigiModule::GEMRawToDigiModule(const edm::ParameterSet& pset) produces("VFATStatus"); } if (useDBEMap_) { - gemEMapToken_ = esConsumes(); + gemChMapToken_ = esConsumes(); } if (ge21Off_ && fedIdStart_ == FEDNumbering::MINGEMFEDID && fedIdEnd_ == FEDNumbering::MAXGEMFEDID) { fedIdEnd_ = FEDNumbering::MINGE21FEDID - 1; @@ -92,20 +91,17 @@ void GEMRawToDigiModule::fillDescriptions(edm::ConfigurationDescriptions& descri descriptions.add("muonGEMDigisDefault", desc); } -std::shared_ptr GEMRawToDigiModule::globalBeginRun(edm::Run const&, edm::EventSetup const& iSetup) const { - auto gemROmap = std::make_shared(); +std::shared_ptr GEMRawToDigiModule::globalBeginRun(edm::Run const&, edm::EventSetup const& iSetup) const { if (useDBEMap_) { - const auto& eMap = iSetup.getData(gemEMapToken_); - auto gemEMap = std::make_unique(eMap); - gemEMap->convert(*gemROmap); - gemEMap.reset(); + const auto& eMap = iSetup.getData(gemChMapToken_); + auto gemChMap = std::make_shared(eMap); + return gemChMap; } else { // no EMap in DB, using dummy - auto gemEMap = std::make_unique(); - gemEMap->convertDummy(*gemROmap); - gemEMap.reset(); + auto gemChMap = std::make_shared(); + gemChMap->setDummy(); + return gemChMap; } - return gemROmap; } void GEMRawToDigiModule::produce(edm::StreamID iID, edm::Event& iEvent, edm::EventSetup const& iSetup) const { @@ -119,7 +115,7 @@ void GEMRawToDigiModule::produce(edm::StreamID iID, edm::Event& iEvent, edm::Eve edm::Handle fed_buffers; iEvent.getByToken(fed_token, fed_buffers); - auto gemROMap = runCache(iEvent.getRun().index()); + auto gemChMap = runCache(iEvent.getRun().index()); for (unsigned int fedId = fedIdStart_; fedId <= fedIdEnd_; ++fedId) { const FEDRawData& fedData = fed_buffers->FEDData(fedId); @@ -145,8 +141,7 @@ void GEMRawToDigiModule::produce(edm::StreamID iID, edm::Event& iEvent, edm::Eve // Read AMC data for (const auto& amc : *(amc13->getAMCpayloads())) { uint8_t amcNum = amc.amcNum(); - GEMROMapping::sectorEC amcEC{fedId, amcNum}; - if (!gemROMap->isValidAMC(amcEC)) { + if (!gemChMap->isValidAMC(fedId, amcNum)) { st_amc13.inValidAMC(); continue; } @@ -167,45 +162,43 @@ void GEMRawToDigiModule::produce(edm::StreamID iID, edm::Event& iEvent, edm::Eve // Read GEB data for (const auto& optoHybrid : *amc.gebs()) { uint8_t gebId = optoHybrid.inputID(); - GEMROMapping::chamEC geb_ec{fedId, amcNum, gebId}; - bool isValidChamber = gemROMap->isValidChamber(geb_ec); + bool isValidChamber = gemChMap->isValidChamber(fedId, amcNum, gebId); if (!isValidChamber) { st_amc.inValidOH(); continue; } - GEMROMapping::chamDC geb_dc = gemROMap->chamberPos(geb_ec); - GEMDetId gemChId = geb_dc.detId; + auto geb_dc = gemChMap->chamberPos(fedId, amcNum, gebId); + GEMDetId cId(geb_dc.detId); + int chamberType = geb_dc.chamberType; GEMOHStatus st_oh(optoHybrid); if (st_oh.isBad()) { LogDebug("GEMRawToDigiModule") << st_oh; if (keepDAQStatus_) { - outOHStatus.get()->insertDigi(gemChId, st_oh); + outOHStatus.get()->insertDigi(cId, st_oh); } } //Read vfat data for (auto vfat : *optoHybrid.vFATs()) { // set vfat fw version - vfat.setVersion(geb_dc.vfatVer); + if (chamberType < 10) + vfat.setVersion(2); + else + vfat.setVersion(3); uint16_t vfatId = vfat.vfatId(); - GEMROMapping::vfatEC vfat_ec{vfatId, gemChId}; - if (!gemROMap->isValidChipID(vfat_ec)) { + if (!gemChMap->isValidVFAT(chamberType, vfatId)) { st_oh.inValidVFAT(); continue; } - GEMROMapping::vfatDC vfat_dc = gemROMap->vfatPos(vfat_ec); - vfat.setPhi(vfat_dc.localPhi); - GEMDetId gemId = vfat_dc.detId; - GEMVFATStatus st_vfat(amc, vfat, vfat.phi(), readMultiBX_); if (st_vfat.isBad()) { LogDebug("GEMRawToDigiModule") << st_vfat; if (keepDAQStatus_) { - outVFATStatus.get()->insertDigi(gemId, st_vfat); + outVFATStatus.get()->insertDigi(cId, st_vfat); } continue; } @@ -223,30 +216,31 @@ void GEMRawToDigiModule::produce(edm::StreamID iID, edm::Event& iEvent, edm::Eve if (chan0xf == 0) continue; - GEMROMapping::channelNum chMap{vfat_dc.vfatType, chan}; - GEMROMapping::stripNum stMap = gemROMap->hitPos(chMap); + auto stMap = gemChMap->getStrip(chamberType, vfatId, chan); + + int stripId = stMap.stNum; + int ieta = stMap.iEta; - int stripId = stMap.stNum + vfat.phi() * GEMeMap::maxChan_; + GEMDetId gemId(cId.region(), cId.ring(), cId.station(), cId.layer(), cId.chamber(), ieta); GEMDigi digi(stripId, bx); - LogDebug("GEMRawToDigiModule") - << "fed: " << fedId << " amc:" << int(amcNum) << " geb:" << int(gebId) << " vfat id:" << int(vfatId) - << ",type:" << vfat_dc.vfatType << " id:" << gemId << " ch:" << chMap.chNum << " st:" << digi.strip() - << " bx:" << digi.bx(); + LogDebug("GEMRawToDigiModule") << "fed: " << fedId << " amc:" << int(amcNum) << " geb:" << int(gebId) + << " vfat id:" << int(vfatId) << ",type:" << chamberType << " id:" << gemId + << " ch:" << chan << " st:" << digi.strip() << " bx:" << digi.bx(); outGEMDigis.get()->insertDigi(gemId, digi); } // end of channel loop if (keepDAQStatus_) { - outVFATStatus.get()->insertDigi(gemId, st_vfat); + outVFATStatus.get()->insertDigi(cId, st_vfat); } } // end of vfat loop if (keepDAQStatus_) { - outOHStatus.get()->insertDigi(gemChId, st_oh); + outOHStatus.get()->insertDigi(cId, st_oh); } } // end of optohybrid loop diff --git a/EventFilter/GEMRawToDigi/python/muonGEMDigis_cfi.py b/EventFilter/GEMRawToDigi/python/muonGEMDigis_cfi.py index c14855cd306a6..6711429ca9419 100644 --- a/EventFilter/GEMRawToDigi/python/muonGEMDigis_cfi.py +++ b/EventFilter/GEMRawToDigi/python/muonGEMDigis_cfi.py @@ -7,6 +7,5 @@ from Configuration.Eras.Modifier_phase2_GEM_cff import phase2_GEM run2_GEM_2017.toModify(muonGEMDigis, useDBEMap = True) -# Note that by default we don't unpack the GE2/1 demonstrator digis in run3 -run3_GEM.toModify(muonGEMDigis, useDBEMap = True, ge21Off = True) -phase2_GEM.toModify(muonGEMDigis, useDBEMap = False, readMultiBX = True, ge21Off = False) +run3_GEM.toModify(muonGEMDigis, useDBEMap = True) +phase2_GEM.toModify(muonGEMDigis, useDBEMap = False, readMultiBX = True) diff --git a/EventFilter/GEMRawToDigi/src/GEMRawToDigi.cc b/EventFilter/GEMRawToDigi/src/GEMRawToDigi.cc index 6adaaff75fdbf..6983ddde54820 100644 --- a/EventFilter/GEMRawToDigi/src/GEMRawToDigi.cc +++ b/EventFilter/GEMRawToDigi/src/GEMRawToDigi.cc @@ -27,6 +27,7 @@ std::unique_ptr GEMRawToDigi::convertWordToGEMAMC13(const uint64_t* wo // Fill GEB for (uint8_t j = 0; j < amc.davCnt(); ++j) { auto oh = GEMOptoHybrid(); + oh.setVersion(amc.formatVer()); oh.setChamberHeader(*(++word)); // Fill vfat diff --git a/EventFilter/GEMRawToDigi/test/runGEMUnpacker_cfg.py b/EventFilter/GEMRawToDigi/test/runGEMUnpacker_cfg.py index 67dc9360cb35c..60987422d398e 100644 --- a/EventFilter/GEMRawToDigi/test/runGEMUnpacker_cfg.py +++ b/EventFilter/GEMRawToDigi/test/runGEMUnpacker_cfg.py @@ -144,7 +144,7 @@ process.GlobalTag = GlobalTag(process.GlobalTag, '112X_dataRun3_Prompt_v5', '') ## for the time being the mapping does not work with the data label. Use MC instead if options.useB904Data: - process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') + process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # dump raw data process.dumpRaw = cms.EDAnalyzer( diff --git a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/MuonUnpacker.cc b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/MuonUnpacker.cc index 7f2c0125debba..5e7644407f2bb 100644 --- a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/MuonUnpacker.cc +++ b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/MuonUnpacker.cc @@ -66,7 +66,7 @@ namespace l1t { if (startIdx + nWords_ <= payload.size()) { // Unpacking showers. // The shower from uGMT is transmitted via four links, each link - // carrying on of the bits of the shower. We therefore have to + // carrying one of the bits of the shower. We therefore have to // determine which link we're looking at and act accordingly. // Output links are odd and input links are even. int link_offset{0}; // This is correct for the uGT unpacker diff --git a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/RegionalMuonGMTUnpacker.cc b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/RegionalMuonGMTUnpacker.cc index 7f498ef48abe4..ef92e2eb31a5e 100644 --- a/EventFilter/L1TRawToDigi/plugins/implementations_stage2/RegionalMuonGMTUnpacker.cc +++ b/EventFilter/L1TRawToDigi/plugins/implementations_stage2/RegionalMuonGMTUnpacker.cc @@ -107,6 +107,7 @@ namespace l1t { } RegionalMuonCand mu; + mu.setMuIdx(nWord / 2); RegionalMuonRawDigiTranslator::fillRegionalMuonCand( mu, raw_data_00_31, raw_data_32_63, processor, trackFinder, isKbmtf_, useEmtfDisplacementInfo_); diff --git a/FWCore/Framework/interface/Callback.h b/FWCore/Framework/interface/Callback.h index dea676d3132c7..caaff7b83bcb3 100644 --- a/FWCore/Framework/interface/Callback.h +++ b/FWCore/Framework/interface/Callback.h @@ -19,6 +19,7 @@ // // system include files +#include #include #include #include diff --git a/FWCore/Framework/interface/EDConsumerBase.h b/FWCore/Framework/interface/EDConsumerBase.h index c19925eb0c098..43c7f89a2b38a 100644 --- a/FWCore/Framework/interface/EDConsumerBase.h +++ b/FWCore/Framework/interface/EDConsumerBase.h @@ -19,6 +19,7 @@ // // system include files +#include #include #include #include diff --git a/FWCore/Framework/interface/PathsAndConsumesOfModules.h b/FWCore/Framework/interface/PathsAndConsumesOfModules.h index 4bad513c8998e..46d709c7bfe64 100644 --- a/FWCore/Framework/interface/PathsAndConsumesOfModules.h +++ b/FWCore/Framework/interface/PathsAndConsumesOfModules.h @@ -18,6 +18,7 @@ #include "FWCore/Framework/interface/ModuleProcessName.h" #include "FWCore/Utilities/interface/BranchType.h" +#include #include #include #include diff --git a/FWCore/Framework/interface/Schedule.h b/FWCore/Framework/interface/Schedule.h index e554cf2ec0477..f3d7baf154a40 100644 --- a/FWCore/Framework/interface/Schedule.h +++ b/FWCore/Framework/interface/Schedule.h @@ -82,6 +82,7 @@ #include "FWCore/Utilities/interface/get_underlying_safe.h" #include "FWCore/Utilities/interface/propagate_const.h" +#include #include #include #include diff --git a/FWCore/Framework/interface/maker/Worker.h b/FWCore/Framework/interface/maker/Worker.h index 45afc397061cb..34703ee30d4df 100644 --- a/FWCore/Framework/interface/maker/Worker.h +++ b/FWCore/Framework/interface/maker/Worker.h @@ -58,6 +58,7 @@ the worker is reset(). #include "FWCore/Framework/interface/Frameworkfwd.h" +#include #include #include #include diff --git a/FWCore/Framework/interface/maker/WorkerT.h b/FWCore/Framework/interface/maker/WorkerT.h index fa566f29c64ac..88154fcd949c2 100644 --- a/FWCore/Framework/interface/maker/WorkerT.h +++ b/FWCore/Framework/interface/maker/WorkerT.h @@ -15,6 +15,7 @@ WorkerT: Code common to all workers. #include "FWCore/ServiceRegistry/interface/ConsumesInfo.h" #include "FWCore/Utilities/interface/propagate_const.h" +#include #include #include #include diff --git a/FWCore/Framework/interface/stream/EDAnalyzerAdaptorBase.h b/FWCore/Framework/interface/stream/EDAnalyzerAdaptorBase.h index 9f1d4c4794f21..5a00546578ddc 100644 --- a/FWCore/Framework/interface/stream/EDAnalyzerAdaptorBase.h +++ b/FWCore/Framework/interface/stream/EDAnalyzerAdaptorBase.h @@ -19,6 +19,7 @@ // // system include files +#include #include #include #include diff --git a/FWCore/Framework/interface/stream/ProducingModuleAdaptorBase.h b/FWCore/Framework/interface/stream/ProducingModuleAdaptorBase.h index 5c51a76ff5590..9456392188bde 100644 --- a/FWCore/Framework/interface/stream/ProducingModuleAdaptorBase.h +++ b/FWCore/Framework/interface/stream/ProducingModuleAdaptorBase.h @@ -19,6 +19,7 @@ // // system include files +#include #include #include #include diff --git a/FWCore/Framework/src/EDConsumerBase.cc b/FWCore/Framework/src/EDConsumerBase.cc index 63433b1222faa..3f17ef96aa81f 100644 --- a/FWCore/Framework/src/EDConsumerBase.cc +++ b/FWCore/Framework/src/EDConsumerBase.cc @@ -11,6 +11,7 @@ // // system include files +#include #include #include #include diff --git a/FWCore/Framework/src/EventProcessor.cc b/FWCore/Framework/src/EventProcessor.cc index d3dc7c16e4133..69ea7a67b8545 100644 --- a/FWCore/Framework/src/EventProcessor.cc +++ b/FWCore/Framework/src/EventProcessor.cc @@ -456,109 +456,121 @@ namespace edm { //make the services available ServiceRegistry::Operate operate(serviceToken_); - if (nStreams > 1) { - edm::Service handler; - handler->willBeUsingThreads(); - } + CMS_SA_ALLOW try { + if (nStreams > 1) { + edm::Service handler; + handler->willBeUsingThreads(); + } - // intialize miscellaneous items - std::shared_ptr common(items.initMisc(*parameterSet)); + // intialize miscellaneous items + std::shared_ptr common(items.initMisc(*parameterSet)); - // intialize the event setup provider - ParameterSet const& eventSetupPset(optionsPset.getUntrackedParameterSet("eventSetup")); - esp_ = espController_->makeProvider( - *parameterSet, items.actReg_.get(), &eventSetupPset, maxConcurrentIOVs, dumpOptions); + // intialize the event setup provider + ParameterSet const& eventSetupPset(optionsPset.getUntrackedParameterSet("eventSetup")); + esp_ = espController_->makeProvider( + *parameterSet, items.actReg_.get(), &eventSetupPset, maxConcurrentIOVs, dumpOptions); - // initialize the looper, if any - if (!loopers.empty()) { - looper_ = fillLooper(*espController_, *esp_, *parameterSet, loopers); - looper_->setActionTable(items.act_table_.get()); - looper_->attachTo(*items.actReg_); - - // in presence of looper do not delete modules - deleteNonConsumedUnscheduledModules_ = false; - } - - preallocations_ = PreallocationConfiguration{nThreads, nStreams, nConcurrentLumis, nConcurrentRuns}; - - lumiQueue_ = std::make_unique(nConcurrentLumis); - streamQueues_.resize(nStreams); - streamLumiStatus_.resize(nStreams); - - processBlockHelper_ = std::make_shared(); - - // initialize the input source - input_ = makeInput(*parameterSet, - *common, - items.preg(), - items.branchIDListHelper(), - get_underlying_safe(processBlockHelper_), - items.thinnedAssociationsHelper(), - items.actReg_, - items.processConfiguration(), - preallocations_); - - // initialize the Schedule - schedule_ = - items.initSchedule(*parameterSet, hasSubProcesses, preallocations_, &processContext_, *processBlockHelper_); - - // set the data members - act_table_ = std::move(items.act_table_); - actReg_ = items.actReg_; - preg_ = items.preg(); - mergeableRunProductProcesses_.setProcessesWithMergeableRunProducts(*preg_); - branchIDListHelper_ = items.branchIDListHelper(); - thinnedAssociationsHelper_ = items.thinnedAssociationsHelper(); - processConfiguration_ = items.processConfiguration(); - processContext_.setProcessConfiguration(processConfiguration_.get()); - principalCache_.setProcessHistoryRegistry(input_->processHistoryRegistry()); - - FDEBUG(2) << parameterSet << std::endl; - - principalCache_.setNumberOfConcurrentPrincipals(preallocations_); - for (unsigned int index = 0; index < preallocations_.numberOfStreams(); ++index) { - // Reusable event principal - auto ep = std::make_shared(preg(), - branchIDListHelper(), - thinnedAssociationsHelper(), - *processConfiguration_, - historyAppender_.get(), - index, - true /*primary process*/, - &*processBlockHelper_); - principalCache_.insert(std::move(ep)); - } - - for (unsigned int index = 0; index < preallocations_.numberOfLuminosityBlocks(); ++index) { - auto lp = - std::make_unique(preg(), *processConfiguration_, historyAppender_.get(), index); - principalCache_.insert(std::move(lp)); - } + // initialize the looper, if any + if (!loopers.empty()) { + looper_ = fillLooper(*espController_, *esp_, *parameterSet, loopers); + looper_->setActionTable(items.act_table_.get()); + looper_->attachTo(*items.actReg_); - { - auto pb = std::make_unique(preg(), *processConfiguration_); - principalCache_.insert(std::move(pb)); - - auto pbForInput = std::make_unique(preg(), *processConfiguration_); - principalCache_.insertForInput(std::move(pbForInput)); - } - - // fill the subprocesses, if there are any - subProcesses_.reserve(subProcessVParameterSet.size()); - for (auto& subProcessPSet : subProcessVParameterSet) { - subProcesses_.emplace_back(subProcessPSet, - *parameterSet, - preg(), - branchIDListHelper(), - *processBlockHelper_, - *thinnedAssociationsHelper_, - SubProcessParentageHelper(), - *espController_, - *actReg_, - token, - serviceregistry::kConfigurationOverrides, - preallocations_, - &processContext_); + // in presence of looper do not delete modules + deleteNonConsumedUnscheduledModules_ = false; + } + + preallocations_ = PreallocationConfiguration{nThreads, nStreams, nConcurrentLumis, nConcurrentRuns}; + + lumiQueue_ = std::make_unique(nConcurrentLumis); + streamQueues_.resize(nStreams); + streamLumiStatus_.resize(nStreams); + + processBlockHelper_ = std::make_shared(); + + // initialize the input source + input_ = makeInput(*parameterSet, + *common, + items.preg(), + items.branchIDListHelper(), + get_underlying_safe(processBlockHelper_), + items.thinnedAssociationsHelper(), + items.actReg_, + items.processConfiguration(), + preallocations_); + + // initialize the Schedule + schedule_ = + items.initSchedule(*parameterSet, hasSubProcesses, preallocations_, &processContext_, *processBlockHelper_); + + // set the data members + act_table_ = std::move(items.act_table_); + actReg_ = items.actReg_; + preg_ = items.preg(); + mergeableRunProductProcesses_.setProcessesWithMergeableRunProducts(*preg_); + branchIDListHelper_ = items.branchIDListHelper(); + thinnedAssociationsHelper_ = items.thinnedAssociationsHelper(); + processConfiguration_ = items.processConfiguration(); + processContext_.setProcessConfiguration(processConfiguration_.get()); + principalCache_.setProcessHistoryRegistry(input_->processHistoryRegistry()); + + FDEBUG(2) << parameterSet << std::endl; + + principalCache_.setNumberOfConcurrentPrincipals(preallocations_); + for (unsigned int index = 0; index < preallocations_.numberOfStreams(); ++index) { + // Reusable event principal + auto ep = std::make_shared(preg(), + branchIDListHelper(), + thinnedAssociationsHelper(), + *processConfiguration_, + historyAppender_.get(), + index, + true /*primary process*/, + &*processBlockHelper_); + principalCache_.insert(std::move(ep)); + } + + for (unsigned int index = 0; index < preallocations_.numberOfLuminosityBlocks(); ++index) { + auto lp = + std::make_unique(preg(), *processConfiguration_, historyAppender_.get(), index); + principalCache_.insert(std::move(lp)); + } + + { + auto pb = std::make_unique(preg(), *processConfiguration_); + principalCache_.insert(std::move(pb)); + + auto pbForInput = std::make_unique(preg(), *processConfiguration_); + principalCache_.insertForInput(std::move(pbForInput)); + } + + // fill the subprocesses, if there are any + subProcesses_.reserve(subProcessVParameterSet.size()); + for (auto& subProcessPSet : subProcessVParameterSet) { + subProcesses_.emplace_back(subProcessPSet, + *parameterSet, + preg(), + branchIDListHelper(), + *processBlockHelper_, + *thinnedAssociationsHelper_, + SubProcessParentageHelper(), + *espController_, + *actReg_, + token, + serviceregistry::kConfigurationOverrides, + preallocations_, + &processContext_); + } + } catch (...) { + //in case of an exception, make sure Services are available + // during the following destructors + espController_ = nullptr; + esp_ = nullptr; + schedule_ = nullptr; + input_ = nullptr; + looper_ = nullptr; + actReg_ = nullptr; + throw; } } diff --git a/FWCore/Framework/src/Schedule.cc b/FWCore/Framework/src/Schedule.cc index 3c3d61e69a0ef..2cec5a71378af 100644 --- a/FWCore/Framework/src/Schedule.cc +++ b/FWCore/Framework/src/Schedule.cc @@ -36,6 +36,7 @@ #include "FWCore/Utilities/interface/TypeID.h" #include "FWCore/Utilities/interface/thread_safety_macros.h" +#include #include #include #include diff --git a/FWCore/Framework/src/stream/EDAnalyzerAdaptorBase.cc b/FWCore/Framework/src/stream/EDAnalyzerAdaptorBase.cc index 04eb875e89719..4ea20648dff95 100644 --- a/FWCore/Framework/src/stream/EDAnalyzerAdaptorBase.cc +++ b/FWCore/Framework/src/stream/EDAnalyzerAdaptorBase.cc @@ -11,6 +11,7 @@ // // system include files +#include #include // user include files diff --git a/FWCore/Framework/src/stream/ProducingModuleAdaptorBase.cc b/FWCore/Framework/src/stream/ProducingModuleAdaptorBase.cc index ed6468b4684b1..b9e0e33c0ef41 100644 --- a/FWCore/Framework/src/stream/ProducingModuleAdaptorBase.cc +++ b/FWCore/Framework/src/stream/ProducingModuleAdaptorBase.cc @@ -11,6 +11,7 @@ // // system include files +#include #include // user include files diff --git a/FWCore/MessageLogger/src/ELseverityLevel.cc b/FWCore/MessageLogger/src/ELseverityLevel.cc index b7239090ac948..82655631a45fb 100644 --- a/FWCore/MessageLogger/src/ELseverityLevel.cc +++ b/FWCore/MessageLogger/src/ELseverityLevel.cc @@ -11,6 +11,7 @@ // // ---------------------------------------------------------------------- +#include #include #include diff --git a/FWCore/Utilities/interface/CMSUnrollLoop.h b/FWCore/Utilities/interface/CMSUnrollLoop.h index 225a75cff294e..960815f476a37 100644 --- a/FWCore/Utilities/interface/CMSUnrollLoop.h +++ b/FWCore/Utilities/interface/CMSUnrollLoop.h @@ -28,6 +28,12 @@ #define CMS_UNROLL_LOOP_COUNT(N) _Pragma(EDM_STRINGIZE(clang loop unroll_count(N))) #define CMS_UNROLL_LOOP_DISABLE _Pragma(EDM_STRINGIZE(clang loop unroll(disable))) +#elif defined(__INTEL_COMPILER) +// Intel icc compiler +#define CMS_UNROLL_LOOP _Pragma(EDM_STRINGIZE(unroll)) +#define CMS_UNROLL_LOOP_COUNT(N) _Pragma(EDM_STRINGIZE(unroll(N))) +#define CMS_UNROLL_LOOP_DISABLE _Pragma(EDM_STRINGIZE(nounroll)) + #elif defined(__GNUC__) // GCC host compiler diff --git a/Fireworks/Calo/plugins/FWCaloClusterProxyBuilder.cc b/Fireworks/Calo/plugins/FWCaloClusterProxyBuilder.cc index d62a9ccf4ae27..f1d0810a8ac26 100644 --- a/Fireworks/Calo/plugins/FWCaloClusterProxyBuilder.cc +++ b/Fireworks/Calo/plugins/FWCaloClusterProxyBuilder.cc @@ -209,7 +209,7 @@ void FWCaloClusterProxyBuilder::build(const reco::CaloCluster &iData, float centerX = (corners[6] + corners[6 + offset]) / 2; float centerY = (corners[7] + corners[7 + offset]) / 2; float radius = fabs(corners[6] - corners[6 + offset]) / 2; - hex_boxset->AddHex(TEveVector(centerX, centerY, corners[2]), radius, 90.0, shapes[3]); + hex_boxset->AddHex(TEveVector(centerX, centerY, corners[2]), radius, shapes[2], shapes[3]); if (heatmap) { energy ? hex_boxset->DigitColor(gradient[0][colorFactor], gradient[1][colorFactor], gradient[2][colorFactor]) : hex_boxset->DigitColor(64, 64, 64); diff --git a/Fireworks/Calo/plugins/FWHGCRecHitProxyBuilder.cc b/Fireworks/Calo/plugins/FWHGCRecHitProxyBuilder.cc index c137c5a1bf928..4927c2f5184df 100644 --- a/Fireworks/Calo/plugins/FWHGCRecHitProxyBuilder.cc +++ b/Fireworks/Calo/plugins/FWHGCRecHitProxyBuilder.cc @@ -139,7 +139,7 @@ void FWHGCRecHitProxyBuilder::build(const HGCRecHit &iData, float centerX = (corners[6] + corners[6 + offset]) / 2; float centerY = (corners[7] + corners[7 + offset]) / 2; float radius = fabs(corners[6] - corners[6 + offset]) / 2; - boxset->AddHex(TEveVector(centerX, centerY, corners[2]), radius, 90.0, shapes[3]); + boxset->AddHex(TEveVector(centerX, centerY, corners[2]), radius, shapes[2], shapes[3]); } if (heatmap) { diff --git a/Fireworks/Calo/plugins/FWHGCalTriggerCellProxyBuilder.cc b/Fireworks/Calo/plugins/FWHGCalTriggerCellProxyBuilder.cc index 70f46c5f93b20..bfb8bcc12ae79 100644 --- a/Fireworks/Calo/plugins/FWHGCalTriggerCellProxyBuilder.cc +++ b/Fireworks/Calo/plugins/FWHGCalTriggerCellProxyBuilder.cc @@ -122,7 +122,7 @@ void FWHGCalTriggerCellProxyBuilder::build(const l1t::HGCalTriggerCell &iData, float centerX = (corners[6] + corners[6 + offset]) / 2; float centerY = (corners[7] + corners[7 + offset]) / 2; float radius = fabs(corners[6] - corners[6 + offset]) / 2; - hex_boxset->AddHex(TEveVector(centerX, centerY, corners[2]), radius, 90.0, shapes[3]); + hex_boxset->AddHex(TEveVector(centerX, centerY, corners[2]), radius, shapes[2], shapes[3]); hex_boxset->DigitColor(energy * 255, 0, 255 - energy * 255); h_hex = true; diff --git a/Fireworks/Calo/plugins/FWHGCalTriggerClusterProxyBuilder.cc b/Fireworks/Calo/plugins/FWHGCalTriggerClusterProxyBuilder.cc index 76255d7767edf..5681f3f499a72 100644 --- a/Fireworks/Calo/plugins/FWHGCalTriggerClusterProxyBuilder.cc +++ b/Fireworks/Calo/plugins/FWHGCalTriggerClusterProxyBuilder.cc @@ -127,7 +127,7 @@ void FWHGCalTriggerClusterProxyBuilder::build(const l1t::HGCalMulticluster &iDat float centerX = (corners[6] + corners[6 + offset]) / 2; float centerY = (corners[7] + corners[7 + offset]) / 2; float radius = fabs(corners[6] - corners[6 + offset]) / 2; - hex_boxset->AddHex(TEveVector(centerX, centerY, corners[2]), radius, 90.0, shapes[3]); + hex_boxset->AddHex(TEveVector(centerX, centerY, corners[2]), radius, shapes[2], shapes[3]); hex_boxset->DigitColor(energy * 255, 0, 255 - energy * 255); h_hex = true; diff --git a/Fireworks/Calo/plugins/FWTracksterHitsProxyBuilder.cc b/Fireworks/Calo/plugins/FWTracksterHitsProxyBuilder.cc index d021387d311aa..3f5e111b96dbb 100644 --- a/Fireworks/Calo/plugins/FWTracksterHitsProxyBuilder.cc +++ b/Fireworks/Calo/plugins/FWTracksterHitsProxyBuilder.cc @@ -232,7 +232,7 @@ void FWTracksterHitsProxyBuilder::build(const ticl::Trackster &iData, float centerX = (corners[6] + corners[6 + offset]) / 2; float centerY = (corners[7] + corners[7 + offset]) / 2; float radius = fabs(corners[6] - corners[6 + offset]) / 2; - hex_boxset->AddHex(TEveVector(centerX, centerY, corners[2]), radius, 90.0, shapes[3]); + hex_boxset->AddHex(TEveVector(centerX, centerY, corners[2]), radius, shapes[2], shapes[3]); if (heatmap_) { energy ? hex_boxset->DigitColor( gradient[0][colorFactor], gradient[1][colorFactor], gradient[2][colorFactor], alpha) diff --git a/Fireworks/Core/src/FWGeometry.cc b/Fireworks/Core/src/FWGeometry.cc index dd13c06c4eee3..c16a1e26ec8dc 100644 --- a/Fireworks/Core/src/FWGeometry.cc +++ b/Fireworks/Core/src/FWGeometry.cc @@ -264,22 +264,21 @@ std::vector FWGeometry::getMatchedIds(Detector det, SubDetector su std::vector FWGeometry::getMatchedIds(Detector det) const { std::vector ids; - std::set cached_wafers; for (const auto& it : m_idToInfo) { if (((it.id >> kDetOffset) & 0xF) != det) continue; - // select only the first cell of each wafer - if (det != HGCalHSc) { - auto key = ~0x3FF & it.id; - if (cached_wafers.find(key) == cached_wafers.end()) { - cached_wafers.insert(key); + // select only the fake DetIds that have all the (u,v) bits set at 1. This + // is used to draw the HGCal Geometry that is wafer-based for the silicon + // part. The Scintillators are treated on a tile-basis. + if (det == HGCalHSc) { + ids.push_back(it.id); + } else { + auto key = 0x3FF; // 10 bits mask of 1s. + if ((it.id | key) == it.id) { ids.push_back(it.id); } - continue; } - - ids.push_back(it.id); } return ids; } @@ -349,25 +348,6 @@ TEveGeoShape* FWGeometry::getEveShape(unsigned int id) const { } TEveGeoShape* FWGeometry::getHGCSiliconEveShape(unsigned int id) const { -#if 0 - const unsigned int type = (id>>26)&0x3; - // select the middle cell of each waifer - id &= ~0x3FF; - id |= (type == 0) ? 0x16B : 0xE7; -#else - float sideToSideWaferSize = 16.7441f; - float dx = sideToSideWaferSize / 2; - float sidey = dx / sqrt(3); - float dy = 2 * sidey; - - int waferUint = (id >> 10) & 0xF; - int waferVint = (id >> 15) & 0xF; - float waferU = ((id >> 14) & 0x1) ? -sideToSideWaferSize * waferUint : sideToSideWaferSize * waferUint; - float waferV = ((id >> 19) & 0x1) ? -sideToSideWaferSize * waferVint : sideToSideWaferSize * waferVint; - - float waferX = (-2 * waferU + waferV) / 2; - float waferY = waferV * sqrt(3) / 2; -#endif IdToInfoItr it = FWGeometry::find(id); if (it == m_idToInfo.end()) { fwLog(fwlog::kWarning) << "no reco geometry found for id " << id << std::endl; @@ -379,18 +359,16 @@ TEveGeoShape* FWGeometry::getHGCSiliconEveShape(unsigned int id) const { TEveGeoManagerHolder gmgr(TEveGeoShape::GetGeoMangeur()); TEveGeoShape* shape = new TEveGeoShape(TString::Format("RecoGeom Id=%u", id)); - float dz = fabs(info.points[14] - info.points[2]) * 0.5; - - info.translation[2] = (info.points[14] + info.points[2]) / 2.0f; - info.translation[0] = waferX * ((0 < info.translation[2]) - (info.translation[2] < 0)); - info.translation[1] = waferY; - TGeoXtru* geoShape = new TGeoXtru(2); - Double_t x[6] = {-dx, -dx, 0.0, dx, dx, 0.0}; - Double_t y[6] = {-sidey, sidey, dy, sidey, -sidey, -dy}; + Double_t x[6]; + Double_t y[6]; + for (unsigned int i = 0; i < 6; ++i) { + x[i] = info.points[i * 3]; + y[i] = info.points[3 * i + 1]; + } geoShape->DefinePolygon(6, x, y); - geoShape->DefineSection(0, -dz); - geoShape->DefineSection(1, dz); + geoShape->DefineSection(0, info.points[2] - 0.0150); // First plane at the Z position of the wafer, minus 150um + geoShape->DefineSection(1, info.points[2] + 0.0150); // Second plane at the Z position of the wafer, minus 150um shape->SetShape(geoShape); double array[16] = {info.matrix[0], @@ -405,9 +383,9 @@ TEveGeoShape* FWGeometry::getHGCSiliconEveShape(unsigned int id) const { info.matrix[5], info.matrix[8], 0., - info.translation[0], - info.translation[1], - info.translation[2], + 0., // translation x + 0., // translation y + 0., // translation z 1.}; // Set transformation matrix from a column-major array shape->SetTransMatrix(array); diff --git a/Fireworks/Geometry/src/FWRecoGeometryESProducer.cc b/Fireworks/Geometry/src/FWRecoGeometryESProducer.cc index 3cd58a6582f00..e17bc32508c89 100644 --- a/Fireworks/Geometry/src/FWRecoGeometryESProducer.cc +++ b/Fireworks/Geometry/src/FWRecoGeometryESProducer.cc @@ -488,6 +488,7 @@ void FWRecoGeometryESProducer::addTECGeometry(FWRecoGeometry& fwRecoGeometry) { void FWRecoGeometryESProducer::addCaloGeometry(FWRecoGeometry& fwRecoGeometry) { std::vector vid = m_caloGeom->getValidDetIds(); // Calo + std::set cache; for (std::vector::const_iterator it = vid.begin(), end = vid.end(); it != end; ++it) { unsigned int id = insert_id(it->rawId(), fwRecoGeometry); if (!((DetId::Forward == it->det()) || (DetId::HGCalEE == it->det()) || (DetId::HGCalHSi == it->det()) || @@ -521,7 +522,10 @@ void FWRecoGeometryESProducer::addCaloGeometry(FWRecoGeometry& fwRecoGeometry) { fwRecoGeometry.idToName[id].points[(cor.size() - 1) * 3 + 1] = center.y(); fwRecoGeometry.idToName[id].points[(cor.size() - 1) * 3 + 2] = center.z(); - // thickness + // Cells rotation (read few lines below) + fwRecoGeometry.idToName[id].shape[2] = 0.; + + // Thickness fwRecoGeometry.idToName[id].shape[3] = cor[cor.size() - 1].z(); // total points @@ -542,6 +546,93 @@ void FWRecoGeometryESProducer::addCaloGeometry(FWRecoGeometry& fwRecoGeometry) { // Last EE layer fwRecoGeometry.idToName[id].topology[5] = rhtools.lastLayerEE(); + + // Compute the orientation of each cell. The orientation here is simply + // addressing the corner or side bottom layout of the cell and should not + // be confused with the concept of orientation embedded in the flat-file + // description. The default orientation of the cells within a wafer is + // with the side at the bottom. The points returned by the HGCal query + // will be ordered counter-clockwise, with the first corner in the + // uppermost-right position. The corners used to calculate the angle wrt + // the Y scale are corner 0 and corner 3, that are opposite in the cells. + // The angle should be 30 degrees wrt the Y axis for all cells in the + // default position. For the rotated layers in CE-H, the situation is + // such that the cells are oriented with a vertex down (assuming those + // layers will have a 30 degrees rotation): this will establish an angle + // of 60 degrees wrt the Y axis. The default way in which an hexagon is + // rendered inside Fireworks is with the vertex down. + if (rhtools.isSilicon(it->rawId())) { + auto val_x = (cor[0].x() - cor[3].x()); + auto val_y = (cor[0].y() - cor[3].y()); + auto val = round(std::acos(val_y / std::sqrt(val_x * val_x + val_y * val_y)) / M_PI * 180.); + // Pass down the chain the vaue of the rotation of the cell wrt the Y axis. + fwRecoGeometry.idToName[id].shape[2] = val; + } + + // For each and every wafer in HGCal, add a "fake" DetId with cells' + // (u,v) bits set to 1 . Those DetIds will be used inside Fireworks to + // render the HGCal Geometry. Due to the huge number of cells involved, + // the HGCal geometry for the Silicon Sensor is wafer-based, not cells + // based. The representation of the single RecHits and of all quantities + // derived from those, is instead fully cells based. The geometry + // representation of the Scintillator is directly based on tiles, + // therefore no fake DetId creations is needed. + if ((det == DetId::HGCalEE) || (det == DetId::HGCalHSi)) { + // Avoid hard coding masks by using static data members from HGCSiliconDetId + auto maskZeroUV = (HGCSiliconDetId::kHGCalCellVMask << HGCSiliconDetId::kHGCalCellVOffset) | + (HGCSiliconDetId::kHGCalCellUMask << HGCSiliconDetId::kHGCalCellUOffset); + DetId wafer_detid = it->rawId() | maskZeroUV; + // Just be damn sure that's a fake id. + assert(wafer_detid != it->rawId()); + auto [iter, is_new] = cache.insert(wafer_detid); + if (is_new) { + unsigned int local_id = insert_id(wafer_detid, fwRecoGeometry); + auto const& dddConstants = geom->topology().dddConstants(); + auto wafer_size = static_cast(dddConstants.waferSize(true)); + auto R = wafer_size / std::sqrt(3.f); + auto r = wafer_size / 2.f; + float x[6] = {-r, -r, 0.f, r, r, 0.f}; + float y[6] = {R / 2.f, -R / 2.f, -R, -R / 2.f, R / 2.f, R}; + float z[6] = {0.f, 0.f, 0.f, 0.f, 0.f, 0.f}; + for (unsigned int i = 0; i < 6; ++i) { + HepGeom::Point3D wafer_corner(x[i], y[i], z[i]); + auto point = + geom->topology().dddConstants().waferLocal2Global(wafer_corner, wafer_detid, true, true, false); + fwRecoGeometry.idToName[local_id].points[i * 3 + 0] = point.x(); + fwRecoGeometry.idToName[local_id].points[i * 3 + 1] = point.y(); + fwRecoGeometry.idToName[local_id].points[i * 3 + 2] = point.z(); + } + // Nota Bene: rotations of full layers (and wafers therein) is taken + // care of internally by the call to the waferLocal2Global method. + // Therefore we set up the unit matrix for the rotation. + // roll = yaw = pitch = 0 + fwRecoGeometry.idToName[local_id].matrix[0] = 1.0; + fwRecoGeometry.idToName[local_id].matrix[4] = 1.0; + fwRecoGeometry.idToName[local_id].matrix[8] = 1.0; + + // thickness + fwRecoGeometry.idToName[local_id].shape[3] = cor[cor.size() - 1].z(); + + // total points + fwRecoGeometry.idToName[local_id].topology[0] = 6; + + // Layer with Offset + fwRecoGeometry.idToName[local_id].topology[1] = rhtools.getLayerWithOffset(it->rawId()); + + // Zside, +/- 1 + fwRecoGeometry.idToName[local_id].topology[2] = rhtools.zside(it->rawId()); + + // Is Silicon + fwRecoGeometry.idToName[local_id].topology[3] = rhtools.isSilicon(it->rawId()); + + // Silicon index + fwRecoGeometry.idToName[local_id].topology[4] = + rhtools.isSilicon(it->rawId()) ? rhtools.getSiThickIndex(it->rawId()) : -1.; + + // Last EE layer + fwRecoGeometry.idToName[local_id].topology[5] = rhtools.lastLayerEE(); + } + } } } } diff --git a/Fireworks/SimData/plugins/FWCaloParticleProxyBuilder.cc b/Fireworks/SimData/plugins/FWCaloParticleProxyBuilder.cc index 41deb772ae1b9..ba264ce804932 100644 --- a/Fireworks/SimData/plugins/FWCaloParticleProxyBuilder.cc +++ b/Fireworks/SimData/plugins/FWCaloParticleProxyBuilder.cc @@ -126,7 +126,7 @@ void FWCaloParticleProxyBuilder::build(const CaloParticle &iData, float centerX = (corners[6] + corners[6 + offset]) / 2; float centerY = (corners[7] + corners[7 + offset]) / 2; float radius = fabs(corners[6] - corners[6 + offset]) / 2; - hex_boxset->AddHex(TEveVector(centerX, centerY, corners[2]), radius, 90.0, shapes[3]); + hex_boxset->AddHex(TEveVector(centerX, centerY, corners[2]), radius, shapes[2], shapes[3]); if (heatmap) { const uint8_t colorFactor = gradient_steps * (fmin(hitmap->at(it.first)->energy() / saturation_energy, 1.0f)); hex_boxset->DigitColor(gradient[0][colorFactor], gradient[1][colorFactor], gradient[2][colorFactor]); diff --git a/GeneratorInterface/Pythia8Interface/plugins/Py8PtAndLxyGun.cc b/GeneratorInterface/Pythia8Interface/plugins/Py8PtAndLxyGun.cc new file mode 100644 index 0000000000000..7ab38a14b32e7 --- /dev/null +++ b/GeneratorInterface/Pythia8Interface/plugins/Py8PtAndLxyGun.cc @@ -0,0 +1,206 @@ +#include +#include + +#include "GeneratorInterface/Core/interface/GeneratorFilter.h" +#include "GeneratorInterface/ExternalDecays/interface/ExternalDecayDriver.h" + +#include "GeneratorInterface/Pythia8Interface/interface/Py8GunBase.h" + +namespace gen { + + class Py8PtAndLxyGun : public Py8GunBase { + public: + Py8PtAndLxyGun(edm::ParameterSet const&); + ~Py8PtAndLxyGun() override {} + + bool generatePartonsAndHadronize() override; + const char* classname() const override; + + private: + // PtAndLxyGun particle(s) characteristics + double fMinEta; + double fMaxEta; + double fMinPt; + double fMaxPt; + bool fAddAntiParticle; + double fDxyMax; + double fDzMax; + double fLxyMin; + double fLxyMax; + double fLzMax; + double fConeRadius; + double fConeH; + double fDistanceToAPEX; + double fLxyBackFraction; + double fLzOppositeFraction; + }; + + // implementation + // + Py8PtAndLxyGun::Py8PtAndLxyGun(edm::ParameterSet const& ps) : Py8GunBase(ps) { + edm::ParameterSet pgun_params = ps.getParameter("PGunParameters"); + fMinEta = pgun_params.getParameter("MinEta"); + fMaxEta = pgun_params.getParameter("MaxEta"); + fMinPt = pgun_params.getParameter("MinPt"); + fMaxPt = pgun_params.getParameter("MaxPt"); + fAddAntiParticle = pgun_params.getParameter("AddAntiParticle"); + fDxyMax = pgun_params.getParameter("dxyMax"); + fDzMax = pgun_params.getParameter("dzMax"); + fLxyMin = pgun_params.getParameter("LxyMin"); + fLxyMax = pgun_params.getParameter("LxyMax"); + fLzMax = pgun_params.getParameter("LzMax"); + fConeRadius = pgun_params.getParameter("ConeRadius"); + fConeH = pgun_params.getParameter("ConeH"); + fDistanceToAPEX = pgun_params.getParameter("DistanceToAPEX"); + fLxyBackFraction = std::clamp(pgun_params.getParameter("LxyBackFraction"), 0., 1.); + fLzOppositeFraction = std::clamp(pgun_params.getParameter("LzOppositeFraction"), 0., 1.); + } + + bool Py8PtAndLxyGun::generatePartonsAndHadronize() { + fMasterGen->event.reset(); + + for (size_t i = 0; i < fPartIDs.size(); i++) { + int particleID = fPartIDs[i]; // this is PDG - need to convert to Py8 ??? + + double phi = 0; + double dxy = 0; + double pt = 0; + double eta = 0; + double px = 0; + double py = 0; + double pz = 0; + double mass = 0; + double ee = 0; + double vx = 0; + double vy = 0; + double vz = 0; + double lxy = 0; + + bool passLoop = false; + while (!passLoop) { + bool passDxy = false; + bool passLz = false; + bool passDz = false; + + phi = (fMaxPhi - fMinPhi) * randomEngine().flat() + fMinPhi; + pt = (fMaxPt - fMinPt) * randomEngine().flat() + fMinPt; + px = pt * cos(phi); + py = pt * sin(phi); + + lxy = (fLxyMax - fLxyMin) * randomEngine().flat() + fLxyMin; + + int sign = 1; + for (int i = 0; i < 10000; i++) { + double vphi = 2 * M_PI * randomEngine().flat(); + vx = lxy * cos(vphi); + vy = lxy * sin(vphi); + + dxy = -vx * sin(phi) + vy * cos(phi); + + sign = 1; + if (fLxyBackFraction > 0 && randomEngine().flat() <= fLxyBackFraction) { + sign = -1; + } + if ((std::abs(dxy) < fDxyMax || fDxyMax < 0) && sign * (vx * px + vy * py) > 0) { + passDxy = true; + break; + } + } + + eta = (fMaxEta - fMinEta) * randomEngine().flat() + fMinEta; + double theta = 2. * atan(exp(-eta)); + + mass = (fMasterGen->particleData).m0(particleID); + + double pp = pt / sin(theta); // sqrt( ee*ee - mass*mass ); + ee = sqrt(pp * pp + mass * mass); + + pz = pp * cos(theta); + + float coneTheta = fConeRadius / fConeH; + for (int j = 0; j < 100; j++) { + vz = fLzMax * randomEngine().flat(); // this is abs(vz) + float v0 = vz - fDistanceToAPEX; + if (v0 <= 0 || lxy * lxy / (coneTheta * coneTheta) > v0 * v0) { + passLz = true; + break; + } + } + + if (fLzOppositeFraction > 0 && randomEngine().flat() <= fLzOppositeFraction) + sign *= -1; + if (sign * pz < 0) + vz = -vz; + + double dz = vz - (vx * cos(phi) + vy * sin(phi)) / tan(theta); + if (std::abs(dz) < fDzMax || fDzMax < 0) { + passDz = true; + } + + passLoop = (passDxy && passLz && passDz); + if (passLoop) + break; + } + + float time = sqrt(vx * vx + vy * vy + vz * vz); + + if (!((fMasterGen->particleData).isParticle(particleID))) { + particleID = std::abs(particleID); + } + if (1 <= std::abs(particleID) && std::abs(particleID) <= 6) // quarks + (fMasterGen->event).append(particleID, 23, 101, 0, px, py, pz, ee, mass); + else if (std::abs(particleID) == 21) // gluons + (fMasterGen->event).append(21, 23, 101, 102, px, py, pz, ee, mass); + // other + else { + (fMasterGen->event).append(particleID, 1, 0, 0, px, py, pz, ee, mass); + int eventSize = (fMasterGen->event).size() - 1; + // -log(flat) = exponential distribution + double tauTmp = -(fMasterGen->event)[eventSize].tau0() * log(randomEngine().flat()); + (fMasterGen->event)[eventSize].tau(tauTmp); + } + (fMasterGen->event).back().vProd(vx, vy, vz, time); + + // Here also need to add anti-particle (if any) + // otherwise just add a 2nd particle of the same type + // (for example, gamma). + // Added anti-particle has momentum opposite to corresponding + // particle, (px,py,pz)=>(-px,-py,-pz), and production vertex + // symmetric wrt (0,0,0), (vx, vy, vz)=>(-vx, -vy, -vz). + // + if (fAddAntiParticle) { + if (1 <= std::abs(particleID) && std::abs(particleID) <= 6) { // quarks + (fMasterGen->event).append(-particleID, 23, 0, 101, -px, -py, -pz, ee, mass); + } else if (std::abs(particleID) == 21) { // gluons + (fMasterGen->event).append(21, 23, 102, 101, -px, -py, -pz, ee, mass); + } else { + if ((fMasterGen->particleData).isParticle(-particleID)) { + (fMasterGen->event).append(-particleID, 1, 0, 0, -px, -py, -pz, ee, mass); + } else { + (fMasterGen->event).append(particleID, 1, 0, 0, -px, -py, -pz, ee, mass); + } + int eventSize = (fMasterGen->event).size() - 1; + // -log(flat) = exponential distribution + double tauTmp = -(fMasterGen->event)[eventSize].tau0() * log(randomEngine().flat()); + (fMasterGen->event)[eventSize].tau(tauTmp); + } + (fMasterGen->event).back().vProd(-vx, -vy, -vz, time); + } + } + + if (!fMasterGen->next()) + return false; + evtGenDecay(); + + event() = std::make_unique(); + return toHepMC.fill_next_event(fMasterGen->event, event().get()); + } + + const char* Py8PtAndLxyGun::classname() const { return "Py8PtAndLxyGun"; } + + typedef edm::GeneratorFilter Pythia8PtAndLxyGun; + +} // namespace gen + +using gen::Pythia8PtAndLxyGun; +DEFINE_FWK_MODULE(Pythia8PtAndLxyGun); diff --git a/GeneratorInterface/Pythia8Interface/python/Py8PtLxyGun_4tau_cfi.py b/GeneratorInterface/Pythia8Interface/python/Py8PtLxyGun_4tau_cfi.py new file mode 100644 index 0000000000000..efa68642041c9 --- /dev/null +++ b/GeneratorInterface/Pythia8Interface/python/Py8PtLxyGun_4tau_cfi.py @@ -0,0 +1,35 @@ +import FWCore.ParameterSet.Config as cms + +#Note: distances in mm instead of in cm usually used in CMS +generator = cms.EDFilter("Pythia8PtAndLxyGun", + + maxEventsToPrint = cms.untracked.int32(1), + pythiaPylistVerbosity = cms.untracked.int32(1), + pythiaHepMCVerbosity = cms.untracked.bool(True), + + PGunParameters = cms.PSet( + ParticleID = cms.vint32(-15, -15), + AddAntiParticle = cms.bool(True), # antiparticle has opposite momentum and production point symmetric wrt (0,0,0) compared to corresponding particle + MinPt = cms.double(15.00), + MaxPt = cms.double(300.00), + MinEta = cms.double(-2.5), + MaxEta = cms.double(2.5), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + LxyMin = cms.double(0.0), + LxyMax = cms.double(550.0), # most tau generated within TOB (55cm) + LzMax = cms.double(300.0), + dxyMax = cms.double(30.0), + dzMax = cms.double(120.0), + ConeRadius = cms.double(1000.0), + ConeH = cms.double(3000.0), + DistanceToAPEX = cms.double(850.0), + LxyBackFraction = cms.double(0.0), # fraction of particles going back towards to center at transverse plan; numbers outside the [0,1] range are set to 0 or 1 + LzOppositeFraction = cms.double(0.0), # fraction of particles going in opposite direction wrt to center along beam-line than in transverse plane; numbers outside the [0,1] range are set to 0 or 1 + ), + + Verbosity = cms.untracked.int32(0), ## set to 1 (or greater) for printouts + psethack = cms.string('displaced taus'), + firstRun = cms.untracked.uint32(1), + PythiaParameters = cms.PSet(parameterSets = cms.vstring()) +) diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D90.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D90.xml deleted file mode 100644 index 7867c9ed42a78..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D90.xml +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/test/run3.py b/Geometry/CMSCommonData/test/run3.py index de1816168c370..583912f849ec3 100644 --- a/Geometry/CMSCommonData/test/run3.py +++ b/Geometry/CMSCommonData/test/run3.py @@ -35,7 +35,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.generator = cms.EDFilter("Pythia8GeneratorFilter", PythiaParameters = cms.PSet( diff --git a/Geometry/CaloTopology/interface/HGCalTopology.h b/Geometry/CaloTopology/interface/HGCalTopology.h index 708c408b9c2be..4098d9a87368e 100644 --- a/Geometry/CaloTopology/interface/HGCalTopology.h +++ b/Geometry/CaloTopology/interface/HGCalTopology.h @@ -15,7 +15,7 @@ class HGCalTopology : public CaloSubdetectorTopology { HGCalTopology(const HGCalDDDConstants& hdcons, int subdet); /// virtual destructor - ~HGCalTopology() override {} + ~HGCalTopology() override = default; /// move the Topology north (increment iy) DetId goNorth(const DetId& id) const override { return changeXY(id, 0, +1); } @@ -121,17 +121,9 @@ class HGCalTopology : public CaloSubdetectorTopology { return (((det_ == DetId::Forward) && (subdet_ == ForwardSubdetector::HFNose)) ? true : false); } - bool tileTrapezoid() const { - return ((mode_ == HGCalGeometryMode::Trapezoid) || (mode_ == HGCalGeometryMode::TrapezoidFile) || - (mode_ == HGCalGeometryMode::TrapezoidModule)); - } - bool waferHexagon6() const { - return ((mode_ == HGCalGeometryMode::Hexagon) || (mode_ == HGCalGeometryMode::HexagonFull)); - } - bool waferHexagon8() const { - return ((mode_ == HGCalGeometryMode::Hexagon8) || (mode_ == HGCalGeometryMode::Hexagon8Full) || - (mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module)); - } + bool tileTrapezoid() const { return hdcons_.tileTrapezoid(); } + bool waferHexagon6() const { return hdcons_.waferHexagon6(); } + bool waferHexagon8() const { return hdcons_.waferHexagon8(); } private: /// add DetId of Scintillator and Silicon type if valid diff --git a/Geometry/HGCalCommonData/data/dd4hep/testHGCalV17.xml b/Geometry/HGCalCommonData/data/dd4hep/testHGCalV17.xml new file mode 100644 index 0000000000000..d61acafe00b10 --- /dev/null +++ b/Geometry/HGCalCommonData/data/dd4hep/testHGCalV17.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HGCalCommonData/interface/HGCalCassette.h b/Geometry/HGCalCommonData/interface/HGCalCassette.h index 3b8d0d729d16a..56b57daf9a7be 100644 --- a/Geometry/HGCalCommonData/interface/HGCalCassette.h +++ b/Geometry/HGCalCommonData/interface/HGCalCassette.h @@ -11,7 +11,7 @@ class HGCalCassette { HGCalCassette() {} void setParameter(int cassette, const std::vector& shifts); - std::pair getShift(int layer, int zside, int cassette); + std::pair getShift(int layer, int zside, int cassette) const; private: const std::vector positEE_ = {2, 1, 0, 5, 4, 3}; diff --git a/Geometry/HGCalCommonData/interface/HGCalCell.h b/Geometry/HGCalCommonData/interface/HGCalCell.h index f1507b889f7b1..53cfced29fb29 100644 --- a/Geometry/HGCalCommonData/interface/HGCalCell.h +++ b/Geometry/HGCalCommonData/interface/HGCalCell.h @@ -49,9 +49,9 @@ class HGCalCell { std::pair cellUV2XY2(int32_t u, int32_t v, int32_t placementIndex, int32_t type); // Get cell type and orientation index std::pair cellUV2Cell(int32_t u, int32_t v, int32_t placementIndex, int32_t type); - // Get the placement index from zside, forward-backward tag, orientation flag - static int32_t cellPlacementIndex(int32_t iz, int32_t fwdBack, int32_t orient); - // Get the orientation flag and forward-backward tag from placement index + // Get the placement index from zside, front-back tag, orientation flag + static int32_t cellPlacementIndex(int32_t iz, int32_t frontBack, int32_t orient); + // Get the orientation flag and front-back tag from placement index static std::pair cellOrient(int32_t placementIndex); // Get cell type and position in the list static std::pair cellType(int32_t u, int32_t v, int32_t ncell, int32_t placementIndex); diff --git a/Geometry/HGCalCommonData/interface/HGCalCellUV.h b/Geometry/HGCalCommonData/interface/HGCalCellUV.h index 416d796ae2d9c..1f17e82aac615 100644 --- a/Geometry/HGCalCommonData/interface/HGCalCellUV.h +++ b/Geometry/HGCalCommonData/interface/HGCalCellUV.h @@ -11,17 +11,20 @@ class HGCalCellUV { HGCalCellUV(double waferSize, double separation, int32_t nFine, int32_t nCoarse); std::pair cellUVFromXY1( - double xloc, double yloc, int32_t placement, int32_t type, bool extend, bool debug); + double xloc, double yloc, int32_t placement, int32_t type, bool extend, bool debug) const; std::pair cellUVFromXY2( - double xloc, double yloc, int32_t placement, int32_t type, bool extend, bool debug); + double xloc, double yloc, int32_t placement, int32_t type, bool extend, bool debug) const; std::pair cellUVFromXY3( - double xloc, double yloc, int32_t placement, int32_t type, bool extend, bool debug); + double xloc, double yloc, int32_t placement, int32_t type, bool extend, bool debug) const; std::pair cellUVFromXY4( double xloc, double yloc, int32_t placement, int32_t type, bool extend, bool debug); + std::pair cellUVFromXY1( + double xloc, double yloc, int32_t placement, int32_t type, int32_t partial, bool extend, bool debug) const; + private: std::pair cellUVFromXY4(double xloc, double yloc, diff --git a/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h b/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h index 46015c0ffaabb..d1a8e7e53a215 100644 --- a/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h +++ b/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h @@ -15,6 +15,9 @@ #include "DataFormats/ForwardDetId/interface/HGCScintillatorDetId.h" #include "DataFormats/ForwardDetId/interface/HGCSiliconDetId.h" #include "DataFormats/GeometryVector/interface/GlobalPoint.h" +#include "Geometry/HGCalCommonData/interface/HGCalCassette.h" +#include "Geometry/HGCalCommonData/interface/HGCalCell.h" +#include "Geometry/HGCalCommonData/interface/HGCalCellUV.h" #include "Geometry/HGCalCommonData/interface/HGCalGeometryMode.h" #include "Geometry/HGCalCommonData/interface/HGCalGeomTools.h" #include "Geometry/HGCalCommonData/interface/HGCalParameters.h" @@ -22,6 +25,8 @@ #include "Geometry/HGCalCommonData/interface/HGCalTypes.h" #include +#include +#include #include #include #include @@ -96,7 +101,7 @@ class HGCalDDDConstants { std::pair locateCell(const HGCSiliconDetId&, bool debug = false) const; std::pair locateCell(const HGCScintillatorDetId&, bool debug = false) const; std::pair locateCellHex(int cell, int wafer, bool reco) const; - std::pair locateCellTrap(int lay, int ieta, int iphi, bool reco) const; + std::pair locateCellTrap(int lay, int ieta, int iphi, bool reco, bool debug = false) const; int levelTop(int ind = 0) const { return hgpar_->levelT_[ind]; } bool maskCell(const DetId& id, int corners) const; int maxCellUV() const { return (tileTrapezoid() ? hgpar_->nCellsFine_ : 2 * hgpar_->nCellsFine_); } @@ -128,7 +133,8 @@ class HGCalDDDConstants { return ok; } std::pair tileRings(int layer) const { - if (mode_ == HGCalGeometryMode::TrapezoidFile) { + if ((mode_ == HGCalGeometryMode::TrapezoidFile) || (mode_ == HGCalGeometryMode::TrapezoidModule) || + (mode_ == HGCalGeometryMode::TrapezoidCassette)) { int ll = layer - hgpar_->firstLayer_; if (ll >= 0 && ll < static_cast(hgpar_->tileRingRange_.size())) return hgpar_->tileRingRange_[ll]; @@ -138,7 +144,7 @@ class HGCalDDDConstants { int tileSiPM(int sipm) const { return ((sipm > 0) ? HGCalTypes::SiPMSmall : HGCalTypes::SiPMLarge); } bool tileTrapezoid() const { return ((mode_ == HGCalGeometryMode::Trapezoid) || (mode_ == HGCalGeometryMode::TrapezoidFile) || - (mode_ == HGCalGeometryMode::TrapezoidModule)); + (mode_ == HGCalGeometryMode::TrapezoidModule) || (mode_ == HGCalGeometryMode::TrapezoidCassette)); } std::pair tileType(int layer, int ring, int phi) const { int indx = HGCalTileIndex::tileIndex(layer, ring, phi); @@ -169,7 +175,12 @@ class HGCalDDDConstants { } bool waferHexagon8() const { return ((mode_ == HGCalGeometryMode::Hexagon8) || (mode_ == HGCalGeometryMode::Hexagon8Full) || - (mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module)); + (mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module) || + (mode_ == HGCalGeometryMode::Hexagon8Cassette)); + } + bool waferHexagon8File() const { + return ((mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module) || + (mode_ == HGCalGeometryMode::Hexagon8Cassette)); } bool waferInLayer(int wafer, int lay, bool reco) const; bool waferFullInLayer(int wafer, int lay, bool reco) const; @@ -255,8 +266,15 @@ class HGCalDDDConstants { const double& cellR, const std::vector& posX, const std::vector& posY) const; - void cellHex( - double xloc, double yloc, int cellType, int& cellU, int& cellV, bool extend = false, bool debug = false) const; + void cellHex(double xloc, + double yloc, + int cellType, + int place, + int part, + int& cellU, + int& cellV, + bool extend = false, + bool debug = false) const; std::pair getIndex(int lay, bool reco) const; int layerFromIndex(int index, bool reco) const; bool isValidCell(int layindex, int wafer, int cell) const; @@ -266,6 +284,9 @@ class HGCalDDDConstants { std::pair waferPositionNoRot(int lay, int waferU, int waferV, bool reco, bool debug = false) const; std::pair waferPosition(int waferU, int waferV, bool reco) const; + HGCalCassette hgcassette_; + std::unique_ptr hgcell_; + std::unique_ptr hgcellUV_; HGCalGeomTools geomTools_; const double k_horizontalShift = 1.0; const float dPhiMin = 0.02; diff --git a/Geometry/HGCalCommonData/interface/HGCalParameters.h b/Geometry/HGCalCommonData/interface/HGCalParameters.h index 1b714d49e881e..ea472d5830eda 100644 --- a/Geometry/HGCalCommonData/interface/HGCalParameters.h +++ b/Geometry/HGCalCommonData/interface/HGCalParameters.h @@ -2,6 +2,7 @@ #define Geometry_HGCalCommonData_HGCalParameters_h #include +#include #include #include #include @@ -14,11 +15,11 @@ class HGCalParameters { public: struct waferInfo { - int32_t type, part, orient; - waferInfo(int32_t t = 0, int32_t p = 0, int32_t o = 0) : type(t), part(p), orient(o){}; + int32_t type, part, orient, cassette; + waferInfo(int32_t t = 0, int32_t p = 0, int32_t o = 0, int32_t c = 0) : type(t), part(p), orient(o), cassette(c){}; }; struct tileInfo { - int32_t type, sipm, hex[4]; + int32_t type, sipm, cassette, hex[4]; tileInfo(int32_t t = 0, int32_t s = 0, int32_t h1 = 0, int32_t h2 = 0, int32_t h3 = 0, int32_t h4 = 0) : type(t), sipm(s) { hex[0] = h1; @@ -72,7 +73,18 @@ class HGCalParameters { int detectorType_; int nCells_; int nSectors_; + int firstLayer_; + int firstMixedLayer_; + HGCalGeometryMode::GeometryMode mode_; + std::vector cellSize_; + std::vector slopeMin_; + std::vector zFrontMin_; + std::vector rMinFront_; + std::vector slopeTop_; + std::vector zFrontTop_; + std::vector rMaxFront_; + std::vector zRanges_; std::vector moduleLayS_; std::vector moduleBlS_; std::vector moduleTlS_; @@ -100,44 +112,40 @@ class HGCalParameters { std::vector trformRotXZ_; std::vector trformRotYZ_; std::vector trformRotZZ_; - std::vector layer_; - std::vector layerIndex_; - std::vector layerGroup_; - std::vector cellFactor_; - std::vector depth_; - std::vector depthIndex_; - std::vector depthLayerF_; std::vector xLayerHex_; std::vector yLayerHex_; std::vector zLayerHex_; std::vector rMinLayHex_; std::vector rMaxLayHex_; - std::vector waferCopy_; - std::vector waferTypeL_; - std::vector waferTypeT_; std::vector waferPosX_; std::vector waferPosY_; + wafer_map cellFineIndex_; std::vector cellFineX_; std::vector cellFineY_; - wafer_map cellFineIndex_; std::vector cellFineHalf_; + wafer_map cellCoarseIndex_; std::vector cellCoarseX_; std::vector cellCoarseY_; - wafer_map cellCoarseIndex_; std::vector cellCoarseHalf_; + std::vector boundR_; + std::vector layer_; + std::vector layerIndex_; + std::vector layerGroup_; + std::vector cellFactor_; + std::vector depth_; + std::vector depthIndex_; + std::vector depthLayerF_; + std::vector waferCopy_; + std::vector waferTypeL_; + std::vector waferTypeT_; std::vector layerGroupM_; std::vector layerGroupO_; - std::vector boundR_; std::vector rLimit_; std::vector cellFine_; std::vector cellCoarse_; double waferR_; std::vector levelT_; int levelZSide_; - HGCalGeometryMode::GeometryMode mode_; - std::vector slopeMin_; - std::vector zFrontMin_; - std::vector rMinFront_; layer_map copiesInLayers_; int nCellsFine_; int nCellsCoarse_; @@ -166,12 +174,6 @@ class HGCalParameters { double minTileSize_; std::vector firstModule_; std::vector lastModule_; - std::vector slopeTop_; - std::vector zFrontTop_; - std::vector rMaxFront_; - std::vector zRanges_; - int firstLayer_; - int firstMixedLayer_; int layerOffset_; double layerRotation_; std::vector layerType_; @@ -187,6 +189,8 @@ class HGCalParameters { std::vector > tileRingR_; std::vector > tileRingRange_; int cassettes_; + int nphiCassette_; + int phiOffset_; std::vector cassetteShift_; COND_SERIALIZABLE; diff --git a/Geometry/HGCalCommonData/interface/HGCalTileIndex.h b/Geometry/HGCalCommonData/interface/HGCalTileIndex.h index 3390c183dc8e8..cfa9d197349f9 100644 --- a/Geometry/HGCalCommonData/interface/HGCalTileIndex.h +++ b/Geometry/HGCalCommonData/interface/HGCalTileIndex.h @@ -20,6 +20,8 @@ namespace HGCalTileIndex { int32_t tileType(int32_t); // Unpacks SiPM size from the packed word int32_t tileSiPM(int32_t); + // Gets cassette number from phi position + int32_t tileCassette(int32_t, int32_t, int32_t, int32_t); // Packs 3 information for usage in xml file int32_t tilePack(int32_t ly, int32_t k1, int32_t k2); // Unpacks thos three information from the packed word diff --git a/Geometry/HGCalCommonData/interface/HGCalTypes.h b/Geometry/HGCalCommonData/interface/HGCalTypes.h index 3f0990c69797f..06b7c5db8fa1e 100644 --- a/Geometry/HGCalCommonData/interface/HGCalTypes.h +++ b/Geometry/HGCalCommonData/interface/HGCalTypes.h @@ -1,6 +1,7 @@ #ifndef Geometry_HGCalCommonData_HGCalTypes_h #define Geometry_HGCalCommonData_HGCalTypes_h +#include #include #include #include @@ -74,6 +75,21 @@ class HGCalTypes { static constexpr int32_t WaferCornerMax = 6; static constexpr int32_t WaferSizeMax = 9; + // Condition for cells in partial wafer: arr[0]*u + arr[1]*v <= arr[2] + static constexpr std::array edgeWaferLDTop = {{1, 0, 7}}; + static constexpr std::array edgeWaferLDBottom = {{-1, 0, -8}}; + static constexpr std::array edgeWaferLDLeft = {{-1, 2, 7}}; + static constexpr std::array edgeWaferLDRight = {{1, -2, -7}}; + static constexpr std::array edgeWaferLDFive = {{-1, 2, 15}}; + static constexpr std::array edgeWaferLDThree = {{1, -2, -15}}; + static constexpr std::array edgeWaferHDTop = {{1, 0, 9}}; + static constexpr std::array edgeWaferHDBottom = {{-1, 0, -10}}; + static constexpr std::array edgeWaferHDLeft = {{-1, 2, 4}}; + static constexpr std::array edgeWaferHDRight = {{1, -2, -18}}; + static constexpr std::array edgeWaferHDFive = {{-1, 2, 18}}; + + static constexpr int k_OffsetRotation = 10; + static constexpr double c00 = 0.0; static constexpr double c22 = 0.225; static constexpr double c25 = 0.25; @@ -89,18 +105,25 @@ class HGCalTypes { enum TileSiPMType { SiPMUnknown = 0, SiPMSmall = 2, SiPMLarge = 4 }; + // Packing and unpacking of type, u, v of wafers static int32_t packTypeUV(int type, int u, int v); static int32_t getUnpackedType(int id); static int32_t getUnpackedU(int id); static int32_t getUnpackedV(int id); + // Packing and unpacking of type, u, v of wafer cells static int32_t packCellTypeUV(int type, int u, int v); static int32_t getUnpackedCellType(int id); static int32_t getUnpackedCellU(int id); static int32_t getUnpackedCellV(int id); + // Packing and unpacking of type, cell# of wafer cells (6 inch wafers) static int32_t packCellType6(int type, int cell); static int32_t getUnpackedCellType6(int id); static int32_t getUnpackedCell6(int id); + // Translate from flat file format to CMSSW format of Layer type static int32_t layerType(int type); + // Get the front-back index from the layer orientation index + static int32_t layerFrontBack(int32_t layerOrient) { return ((layerOrient == WaferCenterB) ? 1 : -1); } + static int32_t waferFrontBack(int32_t index) { return ((index == 0) ? -1 : 1); } private: static constexpr int32_t facu_ = 1; diff --git a/Geometry/HGCalCommonData/interface/HGCalWaferMask.h b/Geometry/HGCalCommonData/interface/HGCalWaferMask.h index 1021227b95c35..539f4993dc27d 100644 --- a/Geometry/HGCalCommonData/interface/HGCalWaferMask.h +++ b/Geometry/HGCalCommonData/interface/HGCalWaferMask.h @@ -21,6 +21,8 @@ class HGCalWaferMask { static bool maskCell(int u, int v, int N, int ncor, int fcor, int corners); // Decides if the cell is present or not from # oc corners (for V15, V16) static bool goodCell(int u, int v, int N, int type, int rotn); + // Decides if the cell is present or not (for v17) + static bool goodCell(int u, int v, int waferType); // Converts rotation index (as otained from flat file) depending on // zside and type (for V15, V16) static int getRotation(int zside, int type, int rotn); @@ -52,8 +54,6 @@ class HGCalWaferMask { // (Good for V17 geometry) static std::vector > waferXY( int part, int placement, double delX, double delY, double xpos, double ypos); - - static constexpr int k_OffsetRotation = 10; }; #endif diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalMixRotatedLayer.cc b/Geometry/HGCalCommonData/plugins/DDHGCalMixRotatedLayer.cc index cf29dc54c786e..1f353db23e883 100644 --- a/Geometry/HGCalCommonData/plugins/DDHGCalMixRotatedLayer.cc +++ b/Geometry/HGCalCommonData/plugins/DDHGCalMixRotatedLayer.cc @@ -209,6 +209,8 @@ void DDHGCalMixRotatedLayer::initialize(const DDNumericArguments& nArgs, layerType_ = dbl_to_int(vArgs["LayerType"]); layerSense_ = dbl_to_int(vArgs["LayerSense"]); layerOrient_ = dbl_to_int(vArgs["LayerTypes"]); + for (unsigned int k = 0; k < layerOrient_.size(); ++k) + layerOrient_[k] = HGCalTypes::layerType(layerOrient_[k]); #ifdef EDM_ML_DEBUG for (unsigned int i = 0; i < layerOrient_.size(); ++i) edm::LogVerbatim("HGCalGeom") << "LayerTypes [" << i << "] " << layerOrient_[i]; @@ -506,11 +508,8 @@ void DDHGCalMixRotatedLayer::positionMix(const DDLogicalPart& glog, // Make the bottom part next int layer = (copyM - firstLayer_); static const double sqrt3 = std::sqrt(3.0); - int layercenter = (layerOrient_[layer] == HGCalTypes::CornerCenteredLambda) - ? HGCalTypes::CornerCenterYp - : ((layerOrient_[layer] == HGCalTypes::CornerCenteredY) ? HGCalTypes::CornerCenterYm - : HGCalTypes::WaferCenter); - int layertype = (layerOrient_[layer] == HGCalTypes::WaferCenteredBack) ? 1 : 0; + int layercenter = layerOrient_[layer]; + int layertype = HGCalTypes::layerFrontBack(layerOrient_[layer]); int firstWafer = waferLayerStart_[layer]; int lastWafer = ((layer + 1 < static_cast(waferLayerStart_.size())) ? waferLayerStart_[layer + 1] : static_cast(waferIndex_.size())); diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalSiliconRotatedModule.cc b/Geometry/HGCalCommonData/plugins/DDHGCalSiliconRotatedModule.cc index b29306b025a62..ce17ab3dc2d74 100644 --- a/Geometry/HGCalCommonData/plugins/DDHGCalSiliconRotatedModule.cc +++ b/Geometry/HGCalCommonData/plugins/DDHGCalSiliconRotatedModule.cc @@ -180,6 +180,8 @@ void DDHGCalSiliconRotatedModule::initialize(const DDNumericArguments& nArgs, layerType_ = dbl_to_int(vArgs["LayerType"]); layerSense_ = dbl_to_int(vArgs["LayerSense"]); layerOrient_ = dbl_to_int(vArgs["LayerTypes"]); + for (unsigned int k = 0; k < layerOrient_.size(); ++k) + layerOrient_[k] = HGCalTypes::layerType(layerOrient_[k]); #ifdef EDM_ML_DEBUG for (unsigned int i = 0; i < layerOrient_.size(); ++i) edm::LogVerbatim("HGCalGeom") << "LayerTypes [" << i << "] " << layerOrient_[i]; @@ -356,7 +358,7 @@ void DDHGCalSiliconRotatedModule::constructLayers(const DDLogicalPart& module, D #ifdef EDM_ML_DEBUG std::string rotName("Null"); #endif - if ((layerSense_[ly] > 0) && (layerOrient_[copy - firstLayer_] == HGCalTypes::WaferCenteredRotated)) { + if ((layerSense_[ly] > 0) && (layerOrient_[copy - firstLayer_] == HGCalTypes::WaferCenterR)) { rot = DDRotation(DDName(DDSplit(rotstr_).first, DDSplit(rotstr_).second)); #ifdef EDM_ML_DEBUG rotName = rotstr_; @@ -387,13 +389,11 @@ void DDHGCalSiliconRotatedModule::constructLayers(const DDLogicalPart& module, D } // End of loop over blocks } +// Position the silicon modules void DDHGCalSiliconRotatedModule::positionSensitive(const DDLogicalPart& glog, int layer, DDCompactView& cpv) { static const double sqrt3 = std::sqrt(3.0); - int layercenter = (layerOrient_[layer] == HGCalTypes::CornerCenteredLambda) - ? HGCalTypes::CornerCenterYp - : ((layerOrient_[layer] == HGCalTypes::CornerCenteredY) ? HGCalTypes::CornerCenterYm - : HGCalTypes::WaferCenter); - int layertype = (layerOrient_[layer] == HGCalTypes::WaferCenteredBack) ? 1 : 0; + int layercenter = layerOrient_[layer]; + int layertype = (layerOrient_[layer] == HGCalTypes::WaferCenterB) ? 1 : 0; int firstWafer = waferLayerStart_[layer]; int lastWafer = ((layer + 1 < static_cast(waferLayerStart_.size())) ? waferLayerStart_[layer + 1] : static_cast(waferIndex_.size())); @@ -422,7 +422,7 @@ void DDHGCalSiliconRotatedModule::positionSensitive(const DDLogicalPart& glog, i int orien = HGCalProperty::waferOrient(waferProperty_[k]); int cassette = HGCalProperty::waferCassette(waferProperty_[k]); int place = HGCalCell::cellPlacementIndex(1, layertype, orien); - auto cshift = cassette_.getShift(layer, 1, cassette); + auto cshift = cassette_.getShift(layer + 1, 1, cassette); double xpos = xyoff.first + cshift.first + nc * delx; double ypos = xyoff.second + cshift.second + nr * dy; std::string wafer; diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalWaferFullRotated.cc b/Geometry/HGCalCommonData/plugins/DDHGCalWaferFullRotated.cc index 6cdb3bd312639..7edeabd392788 100644 --- a/Geometry/HGCalCommonData/plugins/DDHGCalWaferFullRotated.cc +++ b/Geometry/HGCalCommonData/plugins/DDHGCalWaferFullRotated.cc @@ -202,7 +202,7 @@ void DDHGCalWaferFullRotated::execute(DDCompactView& cpv) { for (int u = 0; u < 2 * nCells_; ++u) { for (int v = 0; v < 2 * nCells_; ++v) { if (((v - u) < nCells_) && ((u - v) <= nCells_)) { - int placeIndex = wafer.cellPlacementIndex(1, face_[k], orient_[k]); + int placeIndex = wafer.cellPlacementIndex(1, HGCalTypes::waferFrontBack(face_[k]), orient_[k]); std::pair xy1 = wafer.cellUV2XY1(u, v, placeIndex, cellType_); double yp = xy1.second; double xp = xy1.first; diff --git a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalMixRotatedLayer.cc b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalMixRotatedLayer.cc index a9a0b82412ad4..17d12803f39c9 100644 --- a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalMixRotatedLayer.cc +++ b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalMixRotatedLayer.cc @@ -132,6 +132,8 @@ struct HGCalMixRotatedLayer { layerType_ = args.value>("LayerType"); layerSense_ = args.value>("LayerSense"); layerOrient_ = args.value>("LayerTypes"); + for (unsigned int k = 0; k < layerOrient_.size(); ++k) + layerOrient_[k] = HGCalTypes::layerType(layerOrient_[k]); #ifdef EDM_ML_DEBUG for (unsigned int i = 0; i < layerOrient_.size(); ++i) edm::LogVerbatim("HGCalGeom") << "LayerTypes [" << i << "] " << layerOrient_[i]; @@ -439,11 +441,8 @@ struct HGCalMixRotatedLayer { // Make the bottom part next int layer = (copyM - firstLayer_); static const double sqrt3 = std::sqrt(3.0); - int layercenter = (layerOrient_[layer] == HGCalTypes::CornerCenteredLambda) - ? HGCalTypes::CornerCenterYp - : ((layerOrient_[layer] == HGCalTypes::CornerCenteredY) ? HGCalTypes::CornerCenterYm - : HGCalTypes::WaferCenter); - int layertype = (layerOrient_[layer] == HGCalTypes::WaferCenteredBack) ? 1 : 0; + int layercenter = layerOrient_[layer]; + int layertype = HGCalTypes::layerFrontBack(layerOrient_[layer]); int firstWafer = waferLayerStart_[layer]; int lastWafer = ((layer + 1 < static_cast(waferLayerStart_.size())) ? waferLayerStart_[layer + 1] : static_cast(waferIndex_.size())); diff --git a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalSiliconRotatedModule.cc b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalSiliconRotatedModule.cc index 57105c1c39905..a1e8507623a96 100644 --- a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalSiliconRotatedModule.cc +++ b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalSiliconRotatedModule.cc @@ -116,6 +116,8 @@ struct HGCalSiliconRotatedModule { layerType_ = args.value>("LayerType"); layerSense_ = args.value>("LayerSense"); layerOrient_ = args.value>("LayerTypes"); + for (unsigned int k = 0; k < layerOrient_.size(); ++k) + layerOrient_[k] = HGCalTypes::layerType(layerOrient_[k]); #ifdef EDM_ML_DEBUG for (unsigned int i = 0; i < layerOrient_.size(); ++i) edm::LogVerbatim("HGCalGeom") << "LayerTypes [" << i << "] " << layerOrient_[i]; @@ -279,7 +281,7 @@ struct HGCalSiliconRotatedModule { #ifdef EDM_ML_DEBUG std::string rotName("Null"); #endif - if ((layerSense_[ly] > 0) && (layerOrient_[copy - firstLayer_] == HGCalTypes::WaferCenteredRotated)) { + if ((layerSense_[ly] > 0) && (layerOrient_[copy - firstLayer_] == HGCalTypes::WaferCenterR)) { rot = ns.rotation(rotstr_); #ifdef EDM_ML_DEBUG rotName = rotstr_; @@ -325,11 +327,8 @@ struct HGCalSiliconRotatedModule { void positionSensitive(cms::DDParsingContext& ctxt, xml_h e, const dd4hep::Volume& glog, int layer) { cms::DDNamespace ns(ctxt, e, true); static const double sqrt3 = std::sqrt(3.0); - int layercenter = (layerOrient_[layer] == HGCalTypes::CornerCenteredLambda) - ? HGCalTypes::CornerCenterYp - : ((layerOrient_[layer] == HGCalTypes::CornerCenteredY) ? HGCalTypes::CornerCenterYm - : HGCalTypes::WaferCenter); - int layertype = (layerOrient_[layer] == HGCalTypes::WaferCenteredBack) ? 1 : 0; + int layercenter = layerOrient_[layer]; + int layertype = (layerOrient_[layer] == HGCalTypes::WaferCenterB) ? 1 : 0; int firstWafer = waferLayerStart_[layer]; int lastWafer = ((layer + 1 < static_cast(waferLayerStart_.size())) ? waferLayerStart_[layer + 1] : static_cast(waferIndex_.size())); @@ -360,7 +359,7 @@ struct HGCalSiliconRotatedModule { int orien = HGCalProperty::waferOrient(waferProperty_[k]); int cassette = HGCalProperty::waferCassette(waferProperty_[k]); int place = HGCalCell::cellPlacementIndex(1, layertype, orien); - auto cshift = cassette_.getShift(layer, 1, cassette); + auto cshift = cassette_.getShift(layer + 1, 1, cassette); double xpos = xyoff.first + cshift.first + nc * delx; double ypos = xyoff.second + cshift.second + nr * dy; std::string wafer; diff --git a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalWaferFullRotated.cc b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalWaferFullRotated.cc index 9263958e34be8..fb02f2588c639 100644 --- a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalWaferFullRotated.cc +++ b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalWaferFullRotated.cc @@ -150,7 +150,7 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext for (int u = 0; u < 2 * nCells; ++u) { for (int v = 0; v < 2 * nCells; ++v) { if (((v - u) < nCells) && ((u - v) <= nCells)) { - int placeIndex = wafer.cellPlacementIndex(1, face[k], orient[k]); + int placeIndex = wafer.cellPlacementIndex(1, HGCalTypes::waferFrontBack(face[k]), orient[k]); std::pair xy1 = wafer.cellUV2XY1(u, v, placeIndex, cellType); double yp = xy1.second; double xp = xy1.first; diff --git a/Geometry/HGCalCommonData/python/testHGCV16XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCV16XML_cfi.py index d1f90da7fa951..73a0193b56d1b 100644 --- a/Geometry/HGCalCommonData/python/testHGCV16XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCV16XML_cfi.py @@ -5,19 +5,41 @@ 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsTracker.xml', + 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', 'Geometry/CMSCommonData/data/mgnt.xml', 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', 'Geometry/CMSCommonData/data/muonMB.xml', 'Geometry/CMSCommonData/data/muonMagnet.xml', - 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', + 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', + 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', + 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', + 'Geometry/TrackerCommonData/data/trackermaterial.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/tracker.xml', + 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixel.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', + 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerStructureTopology.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelStructureTopology.xml', + 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackersens.xml', + 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelsens.xml', + 'Geometry/TrackerRecoData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerRecoMaterial.xml', + 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII/v1/trackingMaterialGroups_ForPhaseII.xml', + 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', + 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', + 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', @@ -35,7 +57,16 @@ 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', 'Geometry/HGCalCommonData/data/hgcal/v16/hgcal.xml', + 'Geometry/HGCalCommonData/data/hgcalcell/v16/hgcalcell.xml', + 'Geometry/HGCalCommonData/data/hgcalwafer/v16/hgcalwafer.xml', + 'Geometry/HGCalCommonData/data/hgcalEE/v16/hgcalEE.xml', + 'Geometry/HGCalCommonData/data/hgcalHEsil/v16/hgcalHEsil.xml', + 'Geometry/HGCalCommonData/data/hgcalHEmix/v16/hgcalHEmix.xml', + 'Geometry/HGCalCommonData/data/hgcalCons/v16/hgcalCons.xml', + 'Geometry/HGCalCommonData/data/hgcalConsData/v16/hgcalConsData.xml', 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + )+ + cms.vstring( 'Geometry/ForwardCommonData/data/brmrotations.xml', 'Geometry/ForwardCommonData/data/brm/2026/v1/brm.xml', 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', @@ -58,6 +89,7 @@ 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', + 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', @@ -71,6 +103,7 @@ 'Geometry/HcalSimData/data/CaloUtil.xml', 'Geometry/HcalSimData/data/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', 'Geometry/CMSCommonData/data/FieldParameters.xml' ), diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D90XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCV17XML_cfi.py similarity index 76% rename from Geometry/CMSCommonData/python/cmsExtendedGeometry2026D90XML_cfi.py rename to Geometry/HGCalCommonData/python/testHGCV17XML_cfi.py index 98ad516c194f1..2d91173b79f1e 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D90XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCV17XML_cfi.py @@ -13,7 +13,7 @@ 'Geometry/CMSCommonData/data/cmsMother.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v5/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2026/v7/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', 'Geometry/CMSCommonData/data/cmsMuon.xml', @@ -29,59 +29,63 @@ 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixfwd.xml', 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/tracker.xml', - 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT800_2021_06/pixel.xml', + 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixel.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerStructureTopology.xml', - 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT803_2021_12/pixelStructureTopology.xml', + 'Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelStructureTopology.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackersens.xml', - 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelsens.xml', - 'Geometry/TrackerRecoData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/trackerRecoMaterial.xml', + 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelsens.xml', + 'Geometry/TrackerRecoData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerRecoMaterial.xml', + 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII/v1/trackingMaterialGroups_ForPhaseII.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', - 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', + 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2026/v2/ectkcablemat.xml', 'Geometry/EcalCommonData/data/ebalgo.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/ebrot.xml', 'Geometry/HcalCommonData/data/hcalrotations.xml', 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', - 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', - 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', - 'Geometry/HGCalCommonData/data/hgcal/v14/hgcal.xml', - 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml', - 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml', - 'Geometry/HGCalCommonData/data/hgcalEE/v14/hgcalEE.xml', - 'Geometry/HGCalCommonData/data/hgcalHEsil/v14/hgcalHEsil.xml', - 'Geometry/HGCalCommonData/data/hgcalHEmix/v14/hgcalHEmix.xml', - 'Geometry/HGCalCommonData/data/hgcalCons/v14/hgcalCons.xml', - 'Geometry/HGCalCommonData/data/hgcalConsData/v13/hgcalConsData.xml', + 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', + 'Geometry/HGCalCommonData/data/hgcal/v17/hgcal.xml', + 'Geometry/HGCalCommonData/data/hgcalcell/v17/hgcalcell.xml', + 'Geometry/HGCalCommonData/data/hgcalwafer/v17/hgcalwafer.xml', + 'Geometry/HGCalCommonData/data/hgcalEE/v17/hgcalEE.xml', + 'Geometry/HGCalCommonData/data/hgcalHEsil/v17/hgcalHEsil.xml', + 'Geometry/HGCalCommonData/data/hgcalHEmix/v17/hgcalHEmix.xml', + 'Geometry/HGCalCommonData/data/hgcalCons/v17/hgcalCons.xml', + 'Geometry/HGCalCommonData/data/hgcalConsData/v17/hgcalConsData.xml', 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v1/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v7/mf.xml', + 'Geometry/MuonCommonData/data/muonYoke/2026/v3/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v5/mfshield.xml', - 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v3/ge0.xml', + 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', + 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/ForwardCommonData/data/brmrotations.xml', + 'Geometry/ForwardCommonData/data/brm/2026/v1/brm.xml', 'Geometry/ForwardCommonData/data/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', @@ -89,9 +93,9 @@ 'Geometry/ForwardCommonData/data/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', - 'Geometry/MTDCommonData/data/mtdMaterial/v2/mtdMaterial.xml', + 'Geometry/MTDCommonData/data/mtdMaterial/v3/mtdMaterial.xml', 'Geometry/MTDCommonData/data/btl/v1/btl.xml', - 'Geometry/MTDCommonData/data/etl/v5/etl.xml', + 'Geometry/MTDCommonData/data/etl/v7/etl.xml', 'Geometry/MTDCommonData/data/mtdParameters/v3/mtdStructureTopology.xml', 'Geometry/MTDCommonData/data/mtdParameters/v2/mtdParameters.xml', )+ @@ -103,7 +107,7 @@ 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', - 'Geometry/HGCalSimData/data/hgcsensv9.xml', + 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter/2021/v1/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', @@ -111,12 +115,13 @@ 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', + 'Geometry/ForwardCommonData/data/brmsens.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', 'Geometry/MTDSimData/data/v2/mtdsens.xml', 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', - 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', - 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', + 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', + 'Geometry/MuonSimData/data/muonProdCuts/2026/v2/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', diff --git a/Geometry/HGCalCommonData/python/testHGCalV17XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalV17XML_cfi.py new file mode 100644 index 0000000000000..f7578971640f5 --- /dev/null +++ b/Geometry/HGCalCommonData/python/testHGCalV17XML_cfi.py @@ -0,0 +1,88 @@ +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring( + 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/caloBase/2026/v6/caloBase.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HGCalCommonData/data/hgcalMaterial/v2/hgcalMaterial.xml', + 'Geometry/HGCalCommonData/data/hgcal/v17/hgcal.xml', + 'Geometry/HGCalCommonData/data/hgcalcell/v17/hgcalcell.xml', + 'Geometry/HGCalCommonData/data/hgcalwafer/v17/hgcalwafer.xml', + 'Geometry/HGCalCommonData/data/hgcalEE/v17/hgcalEE.xml', + 'Geometry/HGCalCommonData/data/hgcalHEsil/v17/hgcalHEsil.xml', + 'Geometry/HGCalCommonData/data/hgcalHEmix/v17/hgcalHEmix.xml', + 'Geometry/HGCalCommonData/data/hgcalCons/v17/hgcalCons.xml', + 'Geometry/HGCalCommonData/data/hgcalConsData/v17/hgcalConsData.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/ForwardCommonData/data/brmrotations.xml', + 'Geometry/ForwardCommonData/data/brm/2026/v1/brm.xml', + 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', + 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', + 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', + 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', + 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', + 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', + 'Geometry/MuonCommonData/data/muonYoke/2026/v1/muonYoke.xml', + 'Geometry/MuonCommonData/data/mf/2026/v8/mf.xml', + 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', + 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', + 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', + 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', + 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', + 'Geometry/MuonCommonData/data/mfshield/2026/v6/mfshield.xml', + 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v4/ge0.xml', + 'Geometry/MuonCommonData/data/ge0shield/2026/v1/ge0shield.xml', + 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v5/muonNumbering.xml', + 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', + 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', + 'Geometry/HGCalSimData/data/hgcsensv15.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/CaloUtil.xml', + 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', + 'Geometry/ForwardCommonData/data/brmsens.xml', + 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', + 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', + 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', + 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', + 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', + 'Geometry/HcalSimData/data/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', + 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', + 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml' + ), + rootNodeName = cms.string('cms:OCMS') +) diff --git a/Geometry/HGCalCommonData/src/HGCalCassette.cc b/Geometry/HGCalCommonData/src/HGCalCassette.cc index 7ca0a1d735c5b..2adbef7c57854 100644 --- a/Geometry/HGCalCommonData/src/HGCalCassette.cc +++ b/Geometry/HGCalCommonData/src/HGCalCassette.cc @@ -18,7 +18,7 @@ void HGCalCassette::setParameter(int cassette, const std::vector& shifts #endif } -std::pair HGCalCassette::getShift(int layer, int zside, int cassette) { +std::pair HGCalCassette::getShift(int layer, int zside, int cassette) const { int locc = (zside < 0) ? (cassette - 1) : (typeHE_ ? positHE_[cassette - 1] : positEE_[cassette - 1]); int loc = 2 * (cassette_ * (layer - 1) + locc); std::pair xy = std::make_pair(shifts_[loc], shifts_[loc + 1]); diff --git a/Geometry/HGCalCommonData/src/HGCalCell.cc b/Geometry/HGCalCommonData/src/HGCalCell.cc index 0e46b07a8f48e..75996e784d7cf 100644 --- a/Geometry/HGCalCommonData/src/HGCalCell.cc +++ b/Geometry/HGCalCommonData/src/HGCalCell.cc @@ -227,16 +227,16 @@ std::pair HGCalCell::cellUV2Cell(int32_t u, int32_t v, int32_t placeme return std::make_pair(cell, cellt); } -int HGCalCell::cellPlacementIndex(int32_t iz, int32_t fwdBack, int32_t orient) { - int32_t indx = ((iz * fwdBack) > 0) ? orient : (orient + HGCalCell::cellPlacementExtra); +int HGCalCell::cellPlacementIndex(int32_t iz, int32_t frontBack, int32_t orient) { + int32_t indx = ((iz * frontBack) > 0) ? orient : (orient + HGCalCell::cellPlacementExtra); return indx; } std::pair HGCalCell::cellOrient(int32_t placementIndex) { int32_t orient = (placementIndex >= HGCalCell::cellPlacementExtra) ? (placementIndex - HGCalCell::cellPlacementExtra) : placementIndex; - int32_t fwdBack = (placementIndex >= HGCalCell::cellPlacementExtra) ? 1 : -1; - return std::make_pair(orient, fwdBack); + int32_t frontBackZside = (placementIndex >= HGCalCell::cellPlacementExtra) ? 1 : -1; + return std::make_pair(orient, frontBackZside); } std::pair HGCalCell::cellType(int32_t u, int32_t v, int32_t ncell, int32_t placementIndex) { diff --git a/Geometry/HGCalCommonData/src/HGCalCellUV.cc b/Geometry/HGCalCommonData/src/HGCalCellUV.cc index c722770ada4d8..40177dce9b887 100644 --- a/Geometry/HGCalCommonData/src/HGCalCellUV.cc +++ b/Geometry/HGCalCommonData/src/HGCalCellUV.cc @@ -1,4 +1,5 @@ #include "Geometry/HGCalCommonData/interface/HGCalCellUV.h" +#include "Geometry/HGCalCommonData/interface/HGCalTypes.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include #include @@ -43,10 +44,10 @@ HGCalCellUV::HGCalCellUV(double waferSize, double separation, int32_t nFine, int } std::pair HGCalCellUV::cellUVFromXY1( - double xloc, double yloc, int32_t placement, int32_t type, bool extend, bool debug) { + double xloc, double yloc, int32_t placement, int32_t type, bool extend, bool debug) const { //--- Reverse transform to placement=0, if placement index ≠ 6 - double xloc1 = (placement >= 6) ? xloc : -xloc; - int rot = placement % 6; + double xloc1 = (placement >= HGCalCell::cellPlacementExtra) ? xloc : -xloc; + int rot = placement % HGCalCell::cellPlacementExtra; static constexpr std::array fcos = {{1.0, cos60_, -cos60_, -1.0, -cos60_, cos60_}}; static constexpr std::array fsin = {{0.0, sin60_, sin60_, 0.0, -sin60_, -sin60_}}; double x = xloc1 * fcos[rot] - yloc * fsin[rot]; @@ -83,11 +84,11 @@ std::pair HGCalCellUV::cellUVFromXY1( } std::pair HGCalCellUV::cellUVFromXY2( - double xloc, double yloc, int32_t placement, int32_t type, bool extend, bool debug) { + double xloc, double yloc, int32_t placement, int32_t type, bool extend, bool debug) const { //--- Using multiple inequalities to find (u, v) //--- Reverse transform to placement=0, if placement index ≠ 7 - double xloc1 = (placement >= 6) ? xloc : -1 * xloc; - int rot = placement % 6; + double xloc1 = (placement >= HGCalCell::cellPlacementExtra) ? xloc : -1 * xloc; + int rot = placement % HGCalCell::cellPlacementExtra; static constexpr std::array fcos = {{cos60_, 1.0, cos60_, -cos60_, -1.0, -cos60_}}; static constexpr std::array fsin = {{-sin60_, 0.0, sin60_, sin60_, 0.0, -sin60_}}; double x = xloc1 * fcos[rot] - yloc * fsin[rot]; @@ -150,11 +151,11 @@ std::pair HGCalCellUV::cellUVFromXY2( } std::pair HGCalCellUV::cellUVFromXY3( - double xloc, double yloc, int32_t placement, int32_t type, bool extend, bool debug) { + double xloc, double yloc, int32_t placement, int32_t type, bool extend, bool debug) const { //--- Using Cube coordinates to find the (u, v) //--- Reverse transform to placement=0, if placement index ≠ 6 - double xloc1 = (placement >= 6) ? xloc : -xloc; - int rot = placement % 6; + double xloc1 = (placement >= HGCalCell::cellPlacementExtra) ? xloc : -xloc; + int rot = placement % HGCalCell::cellPlacementExtra; static constexpr std::array fcos = {{1.0, cos60_, -cos60_, -1.0, -cos60_, cos60_}}; static constexpr std::array fsin = {{0.0, sin60_, sin60_, 0.0, -sin60_, -sin60_}}; double xprime = xloc1 * fcos[rot] - yloc * fsin[rot]; @@ -266,3 +267,50 @@ std::pair HGCalCellUV::cellUVFromXY4(double xloc, << uv.first << ":" << uv.second; return uv; } + +std::pair HGCalCellUV::cellUVFromXY1( + double xloc, double yloc, int32_t placement, int32_t type, int32_t partial, bool extend, bool debug) const { + std::pair uv = HGCalCellUV::cellUVFromXY1(xloc, yloc, placement, type, extend, debug); + int u = uv.first; + int v = uv.second; + if (partial == HGCalTypes::WaferLDTop) { + if (u * HGCalTypes::edgeWaferLDTop[0] + v * HGCalTypes::edgeWaferLDTop[1] == HGCalTypes::edgeWaferLDTop[2] + 1) { + double xloc1 = (placement >= HGCalCell::cellPlacementExtra) ? xloc : -xloc; + int rot = placement % HGCalCell::cellPlacementExtra; + static constexpr std::array fcos = {{1.0, cos60_, -cos60_, -1.0, -cos60_, cos60_}}; + static constexpr std::array fsin = {{0.0, sin60_, sin60_, 0.0, -sin60_, -sin60_}}; + double xprime = -1 * (xloc1 * fcos[rot] - yloc * fsin[rot]); + double yprime = xloc1 * fsin[rot] + yloc * fcos[rot]; + double xcell = -1 * (1.5 * (v - u) + 0.5) * cellX_[type]; + double ycell = (v + u - 2 * ncell_[type] + 1) * cellY_[type]; + if ((yprime - sqrt3_ * xprime) > (ycell - sqrt3_ * xcell)) { + u += -1; + } else { + u += -1; + v += -1; + } + } + } else if (partial == HGCalTypes::WaferHDBottom) { + if (u * HGCalTypes::edgeWaferHDBottom[0] + v * HGCalTypes::edgeWaferHDBottom[1] == + HGCalTypes::edgeWaferHDBottom[2] + 1) { + double xloc1 = (placement >= HGCalCell::cellPlacementExtra) ? xloc : -xloc; + int rot = placement % HGCalCell::cellPlacementExtra; + static constexpr std::array fcos = {{1.0, cos60_, -cos60_, -1.0, -cos60_, cos60_}}; + static constexpr std::array fsin = {{0.0, sin60_, sin60_, 0.0, -sin60_, -sin60_}}; + double xprime = -1 * (xloc1 * fcos[rot] - yloc * fsin[rot]); + double yprime = xloc1 * fsin[rot] + yloc * fcos[rot]; + double xcell = -1 * (1.5 * (v - u) + 0.5) * cellX_[type]; + double ycell = (v + u - 2 * ncell_[type] + 1) * cellY_[type]; + if ((yprime - sqrt3_ * xprime) > (ycell - sqrt3_ * xcell)) { + u += 1; + v += 1; + } else { + u += 1; + } + } + } + if (debug) + edm::LogVerbatim("HGCalGeom") << "cellUVFromXY5: Input " << xloc << ":" << yloc << ":" << extend << " Output " << u + << ":" << v; + return std::make_pair(u, v); +} diff --git a/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc b/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc index a6d4aee754354..800be12cfc8bc 100644 --- a/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc +++ b/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc @@ -26,10 +26,7 @@ using namespace geant_units::operators; HGCalDDDConstants::HGCalDDDConstants(const HGCalParameters* hp, const std::string& name) - : hgpar_(hp), - sqrt3_(std::sqrt(3.0)), - mode_(hgpar_->mode_), - fullAndPart_(((mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module))) { + : hgpar_(hp), sqrt3_(std::sqrt(3.0)), mode_(hgpar_->mode_), fullAndPart_(waferHexagon8File()) { #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "Mode " << mode_ << " FullAndPart " << fullAndPart_; #endif @@ -38,10 +35,19 @@ HGCalDDDConstants::HGCalDDDConstants(const HGCalParameters* hp, const std::strin rmaxT_ = rmax_ + 0.5 * hgpar_->sensorSeparation_; hexside_ = 2.0 * rmax_ * tan30deg_; hexsideT_ = 2.0 * rmaxT_ * tan30deg_; + hgcell_ = std::make_unique(2.0 * rmaxT_, hgpar_->nCellsFine_, hgpar_->nCellsCoarse_); + hgcellUV_ = std::make_unique( + 2.0 * rmax_, hgpar_->sensorSeparation_, hgpar_->nCellsFine_, hgpar_->nCellsCoarse_); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "rmax_ " << rmax_ << ":" << rmaxT_ << ":" << hexside_ << ":" << hexsideT_ << " CellSize " << 0.5 * HGCalParameters::k_ScaleFromDDD * hgpar_->cellSize_[0] << ":" << 0.5 * HGCalParameters::k_ScaleFromDDD * hgpar_->cellSize_[1]; +#endif + } + if ((mode_ == HGCalGeometryMode::Hexagon8Cassette) || (mode_ == HGCalGeometryMode::TrapezoidCassette)) { + hgcassette_.setParameter(hgpar_->cassettes_, hgpar_->cassetteShift_); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCalGeom") << "Setup HGCalCassette for " << hgpar_->cassettes_ << " cassettes"; #endif } // init maps and constants @@ -133,7 +139,7 @@ std::pair HGCalDDDConstants::assignCell(float x, float y, int lay, int // First the wafer int wafer = cellHex(xx, yy, rmax_, hgpar_->waferPosX_, hgpar_->waferPosY_); - if (wafer < 0 || wafer >= (int)(hgpar_->waferTypeT_.size())) { + if (wafer < 0 || wafer >= static_cast(hgpar_->waferTypeT_.size())) { edm::LogWarning("HGCalGeom") << "Wafer no. out of bound for " << wafer << ":" << (hgpar_->waferTypeT_).size() << ":" << (hgpar_->waferPosX_).size() << ":" << (hgpar_->waferPosY_).size() << " ***** ERROR *****"; @@ -183,15 +189,30 @@ std::array HGCalDDDConstants::assignCellTrap(float x, float y, float z, if (indx.first < 0) return std::array{{irad, iphi, type}}; double xx = (z > 0) ? x : -x; - double r = (reco ? std::sqrt(x * x + y * y) : HGCalParameters::k_ScaleFromDDD * std::sqrt(x * x + y * y)); - double phi = (r == 0. ? 0. : std::atan2(y, xx)); + double phi = (((y == 0.0) && (x == 0.0)) ? 0. : std::atan2(y, xx)); if (phi < 0) phi += (2.0 * M_PI); + if (indx.second != 0) + iphi = 1 + static_cast(phi / indx.second); + if (mode_ == HGCalGeometryMode::TrapezoidCassette) { + int cassette = HGCalTileIndex::tileCassette(iphi, hgpar_->phiOffset_, hgpar_->nphiCassette_, hgpar_->cassettes_); + auto cshift = hgcassette_.getShift(layer, 1, cassette); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCalGeom") << "Cassette " << cassette << " Shift " << cshift.first << ":" << cshift.second; +#endif + if (reco) { + x -= cshift.first; + y -= cshift.second; + } else { + x = HGCalParameters::k_ScaleFromDDD * x - cshift.first; + y = HGCalParameters::k_ScaleFromDDD * y - cshift.second; + } + } type = hgpar_->scintType(layer); + double r = std::sqrt(x * x + y * y); auto ir = std::lower_bound(hgpar_->radiusLayer_[type].begin(), hgpar_->radiusLayer_[type].end(), r); - irad = (int)(ir - hgpar_->radiusLayer_[type].begin()); + irad = static_cast(ir - hgpar_->radiusLayer_[type].begin()); irad = std::clamp(irad, hgpar_->iradMinBH_[indx.first], hgpar_->iradMaxBH_[indx.first]); - iphi = 1 + (int)(phi / indx.second); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "assignCellTrap Input " << x << ":" << y << ":" << z << ":" << layer << ":" << reco << " x|r " << xx << ":" << r << " phi " << phi << " o/p " << irad << ":" << iphi << ":" @@ -213,7 +234,12 @@ std::pair HGCalDDDConstants::cellEtaPhiTrap(int type, int irad) bool HGCalDDDConstants::cellInLayer(int waferU, int waferV, int cellU, int cellV, int lay, bool reco) const { const auto& indx = getIndex(lay, true); if (indx.first >= 0) { - if (waferHexagon8() || waferHexagon6()) { + if (mode_ == HGCalGeometryMode::Hexagon8Cassette) { + int indx = HGCalWaferIndex::waferIndex(lay, waferU, waferV); + auto ktr = hgpar_->waferInfoMap_.find(indx); + int part = (ktr != hgpar_->waferInfoMap_.end()) ? (ktr->second).part : HGCalTypes::WaferFull; + return HGCalWaferMask::goodCell(cellU, cellV, part); + } else if (waferHexagon8() || waferHexagon6()) { const auto& xy = ((waferHexagon8()) ? locateCell(lay, waferU, waferV, cellU, cellV, reco, true, false, false) : locateCell(cellU, lay, waferU, reco)); double rpos = sqrt(xy.first * xy.first + xy.second * xy.second); @@ -267,7 +293,7 @@ double HGCalDDDConstants::distFromEdgeHex(double x, double y, double z) const { xx -= hgpar_->xLayerHex_[ll]; yy -= hgpar_->yLayerHex_[ll]; } - int sizew = (int)(hgpar_->waferPosX_.size()); + int sizew = static_cast(hgpar_->waferPosX_.size()); int wafer = sizew; // Transform to the local coordinate frame of the wafer first for (int k = 0; k < sizew; ++k) { @@ -314,9 +340,9 @@ double HGCalDDDConstants::distFromEdgeTrap(double x, double y, double z) const { // Compare with the center of the tile find distances along R and also phi // Take the smaller value auto ir = std::lower_bound(hgpar_->radiusLayer_[type].begin(), hgpar_->radiusLayer_[type].end(), r); - int irad = (int)(ir - hgpar_->radiusLayer_[type].begin()); + int irad = static_cast(ir - hgpar_->radiusLayer_[type].begin()); irad = std::clamp(irad, hgpar_->iradMinBH_[indx], hgpar_->iradMaxBH_[indx]); - int iphi = 1 + (int)(phi / cell); + int iphi = 1 + static_cast(phi / cell); double dphi = std::max(0.0, (0.5 * cell - std::abs(phi - (iphi - 0.5) * cell))); double dist = std::min((r - hgpar_->radiusLayer_[type][irad - 1]), (hgpar_->radiusLayer_[type][irad] - r)); #ifdef EDM_ML_DEBUG @@ -453,7 +479,7 @@ bool HGCalDDDConstants::isValidHex(int lay, int mod, int cell, bool reco) const int cellmax(0); if (waferHexagon6()) { int32_t copyNumber = hgpar_->waferCopy_[mod]; - result = ((lay > 0 && lay <= (int)(layers(reco)))); + result = ((lay > 0 && lay <= static_cast(layers(reco)))); if (result) { const int32_t lay_idx = reco ? (lay - 1) * 3 + 1 : lay; const auto& the_modules = hgpar_->copiesInLayers_[lay_idx]; @@ -466,11 +492,12 @@ bool HGCalDDDConstants::isValidHex(int lay, int mod, int cell, bool reco) const #endif if (result) { if (moditr->second >= 0) { - if (mod >= (int)(hgpar_->waferTypeT_.size())) + if (mod >= static_cast(hgpar_->waferTypeT_.size())) edm::LogWarning("HGCalGeom") << "Module no. out of bound for " << mod << " to be compared with " << (hgpar_->waferTypeT_).size() << " ***** ERROR *****"; - cellmax = ((hgpar_->waferTypeT_[mod] - 1 == HGCSiliconDetId::HGCalFine) ? (int)(hgpar_->cellFineX_.size()) - : (int)(hgpar_->cellCoarseX_.size())); + cellmax = ((hgpar_->waferTypeT_[mod] - 1 == HGCSiliconDetId::HGCalFine) + ? static_cast(hgpar_->cellFineX_.size()) + : static_cast(hgpar_->cellCoarseX_.size())); result = (cell >= 0 && cell <= cellmax); } else { result = isValidCell(lay_idx, mod, cell); @@ -482,9 +509,9 @@ bool HGCalDDDConstants::isValidHex(int lay, int mod, int cell, bool reco) const #ifdef EDM_ML_DEBUG if (!result) edm::LogVerbatim("HGCalGeom") << "HGCalDDDConstants: Layer " << lay << ":" - << (lay > 0 && (lay <= (int)(layers(reco)))) << " Module " << mod << ":" << resultMod - << " Cell " << cell << ":" << cellmax << ":" << (cell >= 0 && cell <= cellmax) << ":" - << maxCells(reco); + << (lay > 0 && (lay <= static_cast(layers(reco)))) << " Module " << mod << ":" + << resultMod << " Cell " << cell << ":" << cellmax << ":" + << (cell >= 0 && cell <= cellmax) << ":" << maxCells(reco); #endif return result; } @@ -562,16 +589,18 @@ bool HGCalDDDConstants::isValidTrap(int layer, int irad, int iphi) const { (iphi <= hgpar_->scintCells(layer))); } -int HGCalDDDConstants::lastLayer(bool reco) const { return (hgpar_->firstLayer_ + tot_layers_[(int)reco] - 1); } +int HGCalDDDConstants::lastLayer(bool reco) const { + return (hgpar_->firstLayer_ + tot_layers_[static_cast(reco)] - 1); +} -unsigned int HGCalDDDConstants::layers(bool reco) const { return tot_layers_[(int)reco]; } +unsigned int HGCalDDDConstants::layers(bool reco) const { return tot_layers_[static_cast(reco)]; } int HGCalDDDConstants::layerIndex(int lay, bool reco) const { int ll = lay - hgpar_->firstLayer_; - if (ll < 0 || ll >= (int)(hgpar_->layerIndex_.size())) + if (ll < 0 || ll >= static_cast(hgpar_->layerIndex_.size())) return -1; if (waferHexagon6()) { - if (reco && ll >= (int)(hgpar_->depthIndex_.size())) + if (reco && ll >= static_cast(hgpar_->depthIndex_.size())) return -1; return (reco ? hgpar_->depthLayerF_[ll] : hgpar_->layerIndex_[ll]); } else { @@ -598,6 +627,21 @@ std::pair HGCalDDDConstants::localToGlobal8( const auto& xy = waferPositionNoRot(lay, waferU, waferV, reco, debug); x += xy.first; y += xy.second; + int indx = HGCalWaferIndex::waferIndex(lay, waferU, waferV); + auto ktr = hgpar_->waferInfoMap_.find(indx); + if ((mode_ == HGCalGeometryMode::Hexagon8Cassette) && (ktr != hgpar_->waferInfoMap_.end())) { + auto cshift = hgcassette_.getShift(lay, 1, (ktr->second).cassette); + if (debug) + edm::LogVerbatim("HGCalGeom") << "Cassette " << (ktr->second).cassette << " Shift " << cshift.first << ":" + << cshift.second; + if (!reco) { + x += (HGCalParameters::k_ScaleToDDD)*cshift.first; + y += (HGCalParameters::k_ScaleToDDD)*cshift.second; + } else { + x += cshift.first; + y += cshift.second; + } + } if (debug) edm::LogVerbatim("HGCalGeom") << "With wafer " << x << ":" << y << " by adding " << xy.first << ":" << xy.second; return (rotx ? getXY(lay, x, y, false) : std::make_pair(x, y)); @@ -640,34 +684,50 @@ std::pair HGCalDDDConstants::locateCell( int indx = HGCalWaferIndex::waferIndex(lay, waferU, waferV); auto itr = hgpar_->typesInLayers_.find(indx); int type = ((itr == hgpar_->typesInLayers_.end()) ? 2 : hgpar_->waferTypeL_[itr->second]); - bool rotx = (norot) ? false - : ((!hgpar_->layerType_.empty()) && - (hgpar_->layerType_[lay - hgpar_->firstLayer_] == HGCalTypes::WaferCenterR)); + int layertype = + (hgpar_->layerType_.empty()) ? HGCalTypes::WaferCenter : hgpar_->layerType_[lay - hgpar_->firstLayer_]; + bool rotx = (norot) ? false : (layertype == HGCalTypes::WaferCenterR); if (debug) { - edm::LogVerbatim("HGCalGeom") << "LocateCell " << lay << ":" << (lay - hgpar_->firstLayer_) << ":" << rotx << ":" - << waferU << ":" << waferV << ":" << indx << ":" + edm::LogVerbatim("HGCalGeom") << "LocateCell " << lay << ":" << (lay - hgpar_->firstLayer_) << ":" << layertype + << ":" << rotx << ":" << waferU << ":" << waferV << ":" << indx << ":" << (itr == hgpar_->typesInLayers_.end()) << ":" << type << " Flags " << reco << ":" << all; } - int kndx = cellV * 100 + cellU; - if (type == 0) { - auto ktr = hgpar_->cellFineIndex_.find(kndx); - if (ktr != hgpar_->cellFineIndex_.end()) { - x = hgpar_->cellFineX_[ktr->second]; - y = hgpar_->cellFineY_[ktr->second]; + auto ktr = hgpar_->waferInfoMap_.end(); + int place(HGCalCell::cellPlacementOld); + if (waferHexagon8File()) { + if (mode_ == HGCalGeometryMode::Hexagon8Cassette) { + ktr = hgpar_->waferInfoMap_.find(indx); + if (ktr != hgpar_->waferInfoMap_.end()) + place = HGCalCell::cellPlacementIndex(1, HGCalTypes::layerType(layertype), (ktr->second).orient); } + auto xy = hgcell_->cellUV2XY2(cellU, cellV, place, type); + x = xy.first; + y = xy.second; if (debug) - edm::LogVerbatim("HGCalGeom") << "Fine " << cellU << ":" << cellV << ":" << kndx << ":" << x << ":" << y << ":" - << (ktr != hgpar_->cellFineIndex_.end()); + edm::LogVerbatim("HGCalGeom") << "Type " << type << " Place " << place << " Cell " << cellU << ":" << cellV + << " Position " << x << ":" << y; } else { - auto ktr = hgpar_->cellCoarseIndex_.find(kndx); - if (ktr != hgpar_->cellCoarseIndex_.end()) { - x = hgpar_->cellCoarseX_[ktr->second]; - y = hgpar_->cellCoarseY_[ktr->second]; + int kndx = cellV * 100 + cellU; + if (type == 0) { + auto jtr = hgpar_->cellFineIndex_.find(kndx); + if (jtr != hgpar_->cellFineIndex_.end()) { + x = hgpar_->cellFineX_[jtr->second]; + y = hgpar_->cellFineY_[jtr->second]; + } + if (debug) + edm::LogVerbatim("HGCalGeom") << "Fine " << cellU << ":" << cellV << ":" << kndx << ":" << x << ":" << y << ":" + << (jtr != hgpar_->cellFineIndex_.end()); + } else { + auto jtr = hgpar_->cellCoarseIndex_.find(kndx); + if (jtr != hgpar_->cellCoarseIndex_.end()) { + x = hgpar_->cellCoarseX_[jtr->second]; + y = hgpar_->cellCoarseY_[jtr->second]; + } + if (debug) + edm::LogVerbatim("HGCalGeom") << "Coarse " << cellU << ":" << cellV << ":" << kndx << ":" << x << ":" << y + << ":" << (jtr != hgpar_->cellCoarseIndex_.end()); } - if (debug) - edm::LogVerbatim("HGCalGeom") << "Coarse " << cellU << ":" << cellV << ":" << kndx << ":" << x << ":" << y << ":" - << (ktr != hgpar_->cellCoarseIndex_.end()); } if (!reco) { x *= HGCalParameters::k_ScaleToDDD; @@ -677,6 +737,19 @@ std::pair HGCalDDDConstants::locateCell( const auto& xy = waferPositionNoRot(lay, waferU, waferV, reco, debug); x += xy.first; y += xy.second; + if ((mode_ == HGCalGeometryMode::Hexagon8Cassette) && (ktr != hgpar_->waferInfoMap_.end())) { + auto cshift = hgcassette_.getShift(lay, 1, (ktr->second).cassette); + if (debug) + edm::LogVerbatim("HGCalGeom") << "Cassette " << (ktr->second).cassette << " Shift " << cshift.first << ":" + << cshift.second; + if (!reco) { + x += (HGCalParameters::k_ScaleToDDD)*cshift.first; + y += (HGCalParameters::k_ScaleToDDD)*cshift.second; + } else { + x += cshift.first; + y += cshift.second; + } + } if (debug) edm::LogVerbatim("HGCalGeom") << "With wafer " << x << ":" << y << " by adding " << xy.first << ":" << xy.second; } @@ -684,48 +757,11 @@ std::pair HGCalDDDConstants::locateCell( } std::pair HGCalDDDConstants::locateCell(const HGCSiliconDetId& id, bool debug) const { - int lay(id.layer()); - double r = 0.5 * (hgpar_->waferSize_ + hgpar_->sensorSeparation_); - double R = 2.0 * r / sqrt3_; - int ncells = (id.type() == 0) ? hgpar_->nCellsFine_ : hgpar_->nCellsCoarse_; - int n2 = ncells / 2; - auto xyoff = geomTools_.shiftXY(hgpar_->layerCenter_[lay - 1], (2.0 * r)); - double xpos = xyoff.first + ((-2 * id.waferU() + id.waferV()) * r); - double ypos = xyoff.second + (1.5 * id.waferV() * R); -#ifdef EDM_ML_DEBUG - if (debug) - edm::LogVerbatim("HGCalGeom") << "LocateCell " << id << " Lay " << lay << " r:R " << r << ":" << R << " N " - << ncells << ":" << n2 << " Off " << xyoff.first << ":" << xyoff.second << " Pos " - << xpos << ":" << ypos; -#endif - double R1 = hgpar_->waferSize_ / (3.0 * ncells); - double r1 = 0.5 * R1 * sqrt3_; - xpos += ((1.5 * (id.cellV() - ncells) + 1.0) * R1); - ypos += ((id.cellU() - 0.5 * id.cellV() - n2) * 2 * r1); -#ifdef EDM_ML_DEBUG - if (debug) - edm::LogVerbatim("HGCalGeom") << "LocateCell r1:R1 " << r1 << ":" << R1 << " dx:dy " - << ((1.5 * (id.cellV() - ncells) + 1.0) * R1) << ":" - << ((id.cellU() - 0.5 * id.cellV() - n2) * 2 * r1) << " Pos " << xpos << ":" << ypos; -#endif - std::pair xy = getXY(id.layer(), xpos, ypos, true); - return std::make_pair(xy.first * id.zside(), xy.second); + return locateCell(id.layer(), id.waferU(), id.waferV(), id.cellU(), id.cellV(), true, true, false, debug); } std::pair HGCalDDDConstants::locateCell(const HGCScintillatorDetId& id, bool debug) const { - int lay(id.layer()), iphi(id.iphi()), ir(id.iradiusAbs()); - double phi = (iphi - 0.5) * hgpar_->scintCellSize(lay); - int type = (id.type() > 0) ? 1 : 0; - double r = (((ir + 1) < static_cast(hgpar_->radiusLayer_[type].size())) - ? (0.5 * (hgpar_->radiusLayer_[type][ir] + hgpar_->radiusLayer_[type][ir - 1])) - : (1.5 * hgpar_->radiusLayer_[type][ir] - 0.5 * hgpar_->radiusLayer_[type][ir - 1])); -#ifdef EDM_ML_DEBUG - if (debug) - edm::LogVerbatim("HGCalGeom") << "LocateCell lay:ir:iphi:type " << lay << ":" << ir << ":" << iphi << ":" << type - << " r:phi " << r << ":" << convertRadToDeg(phi) << " x:y " - << (r * cos(phi) * id.zside()) << ":" << (r * sin(phi)); -#endif - return std::make_pair(r * cos(phi) * id.zside(), r * sin(phi)); + return locateCellTrap(id.layer(), id.iradius(), id.iphi(), true, debug); } std::pair HGCalDDDConstants::locateCellHex(int cell, int wafer, bool reco) const { @@ -744,7 +780,7 @@ std::pair HGCalDDDConstants::locateCellHex(int cell, int wafer, bo return std::make_pair(x, y); } -std::pair HGCalDDDConstants::locateCellTrap(int lay, int irad, int iphi, bool reco) const { +std::pair HGCalDDDConstants::locateCellTrap(int lay, int irad, int iphi, bool reco, bool debug) const { float x(0), y(0); const auto& indx = getIndex(lay, reco); if (indx.first >= 0) { @@ -754,16 +790,24 @@ std::pair HGCalDDDConstants::locateCellTrap(int lay, int irad, int double z = hgpar_->zLayerHex_[indx.first]; double r = 0.5 * (hgpar_->radiusLayer_[type][ir - 1] + hgpar_->radiusLayer_[type][ir]); std::pair range = rangeR(z, true); -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "locateCellTrap:: Input " << lay << ":" << irad << ":" << iphi << ":" << reco - << " IR " << ir << ":" << hgpar_->iradMinBH_[indx.first] << ":" - << hgpar_->iradMaxBH_[indx.first] << " Type " << type << " Z " << indx.first << ":" - << z << " phi " << phi << " R " << r << ":" << range.first << ":" << range.second; -#endif - if ((mode_ != HGCalGeometryMode::TrapezoidFile) && (mode_ != HGCalGeometryMode::TrapezoidModule)) + if (debug) + edm::LogVerbatim("HGCalGeom") << "locateCellTrap:: Input " << lay << ":" << irad << ":" << iphi << ":" << reco + << " IR " << ir << ":" << hgpar_->iradMinBH_[indx.first] << ":" + << hgpar_->iradMaxBH_[indx.first] << " Type " << type << " Z " << indx.first << ":" + << z << " phi " << phi << " R " << r << ":" << range.first << ":" << range.second; + if ((mode_ != HGCalGeometryMode::TrapezoidFile) && (mode_ != HGCalGeometryMode::TrapezoidModule) && + (mode_ != HGCalGeometryMode::TrapezoidCassette)) r = std::max(range.first, std::min(r, range.second)); x = r * std::cos(phi); y = r * std::sin(phi); + if (mode_ == HGCalGeometryMode::TrapezoidCassette) { + int cassette = HGCalTileIndex::tileCassette(iphi, hgpar_->phiOffset_, hgpar_->nphiCassette_, hgpar_->cassettes_); + auto cshift = hgcassette_.getShift(lay, 1, cassette); + if (debug) + edm::LogVerbatim("HGCalGeom") << "Cassette " << cassette << " Shift " << cshift.first << ":" << cshift.second; + x += cshift.first; + y += cshift.second; + } if (irad < 0) x = -x; } @@ -776,7 +820,7 @@ std::pair HGCalDDDConstants::locateCellTrap(int lay, int irad, int bool HGCalDDDConstants::maskCell(const DetId& detId, int corners) const { bool mask(false); - if (corners > 2 && corners <= (int)(HGCalParameters::k_CornerSize)) { + if (corners > 2 && corners <= static_cast(HGCalParameters::k_CornerSize)) { if (waferHexagon8()) { int N(0), layer(0), waferU(0), waferV(0), u(0), v(0); if (detId.det() == DetId::Forward) { @@ -803,11 +847,11 @@ bool HGCalDDDConstants::maskCell(const DetId& detId, int corners) const { << wl << ":" << (itr != hgpar_->waferTypes_.end()); #endif if (itr != hgpar_->waferTypes_.end()) { - if ((itr->second).second <= HGCalWaferMask::k_OffsetRotation) + if ((itr->second).second <= HGCalTypes::k_OffsetRotation) mask = HGCalWaferMask::maskCell(u, v, N, (itr->second).first, (itr->second).second, corners); else mask = !(HGCalWaferMask::goodCell( - u, v, N, (itr->second).first, ((itr->second).second - HGCalWaferMask::k_OffsetRotation))); + u, v, N, (itr->second).first, ((itr->second).second - HGCalTypes::k_OffsetRotation))); } } } @@ -838,7 +882,7 @@ int HGCalDDDConstants::maxCells(int lay, bool reco) const { cells = cell; } } - return (int)(cells); + return static_cast(cells); } else if (waferHexagon8()) { int cells(0); for (unsigned int k = 0; k < hgpar_->waferCopy_.size(); ++k) { @@ -888,7 +932,7 @@ int HGCalDDDConstants::modules(int lay, bool reco) const { if (getIndex(lay, reco).first < 0) return 0; else - return max_modules_layer_[(int)reco][lay]; + return max_modules_layer_[static_cast(reco)][lay]; } int HGCalDDDConstants::modulesInit(int lay, bool reco) const { @@ -937,7 +981,7 @@ std::vector HGCalDDDConstants::numberCells(int lay, bool reco) const { unsigned int cell = (hgpar_->waferTypeT_[k] - 1 == HGCSiliconDetId::HGCalFine) ? (hgpar_->cellFineX_.size()) : (hgpar_->cellCoarseX_.size()); - ncell.emplace_back((int)(cell)); + ncell.emplace_back(static_cast(cell)); } } } else if (tileTrapezoid()) { @@ -960,11 +1004,11 @@ std::vector HGCalDDDConstants::numberCells(int lay, bool reco) const { } int HGCalDDDConstants::numberCellsHexagon(int wafer) const { - if (wafer >= 0 && wafer < (int)(hgpar_->waferTypeT_.size())) { + if (wafer >= 0 && wafer < static_cast(hgpar_->waferTypeT_.size())) { if (hgpar_->waferTypeT_[wafer] - 1 == HGCSiliconDetId::HGCalFine) - return (int)(hgpar_->cellFineX_.size()); + return static_cast(hgpar_->cellFineX_.size()); else - return (int)(hgpar_->cellCoarseX_.size()); + return static_cast(hgpar_->cellCoarseX_.size()); } else { return 0; } @@ -1041,7 +1085,7 @@ std::pair HGCalDDDConstants::rangeZ(bool reco) const { std::pair HGCalDDDConstants::rowColumnWafer(int wafer) const { int row(0), col(0); - if (wafer < (int)(hgpar_->waferCopy_.size())) { + if (wafer < static_cast(hgpar_->waferCopy_.size())) { int copy = hgpar_->waferCopy_[wafer]; col = HGCalTypes::getUnpackedU(copy); row = HGCalTypes::getUnpackedV(copy); @@ -1060,7 +1104,7 @@ std::pair HGCalDDDConstants::simToReco(int cell, int lay, int mod, boo edm::LogWarning("HGCalGeom") << "Wrong Layer # " << lay << " not in the list ***** ERROR *****"; return std::make_pair(-1, -1); } - if (mod >= (int)(hgpar_->waferTypeL_).size()) { + if (mod >= static_cast(hgpar_->waferTypeL_.size())) { edm::LogWarning("HGCalGeom") << "Invalid Wafer # " << mod << "should be < " << (hgpar_->waferTypeL_).size() << " ***** ERROR *****"; return std::make_pair(-1, -1); @@ -1183,12 +1227,14 @@ void HGCalDDDConstants::waferFromPosition(const double x, double& wt, bool extend, bool debug) const { + // Expect x, y as in SIM step waferU = waferV = 1 + hgpar_->waferUVMax_; cellU = cellV = celltype = 0; if ((hgpar_->xLayerHex_.empty()) || (hgpar_->yLayerHex_.empty())) return; int ll = layer - hgpar_->firstLayer_; - bool rotx = ((!hgpar_->layerType_.empty()) && (hgpar_->layerType_[ll] == HGCalTypes::WaferCenterR)); + int layertype = (hgpar_->layerType_.empty()) ? HGCalTypes::WaferCenter : hgpar_->layerType_[ll]; + bool rotx = ((!hgpar_->layerType_.empty()) && (layertype == HGCalTypes::WaferCenterR)); double xx(0), yy(0); if (rotx) { std::pair xy = @@ -1207,13 +1253,28 @@ void HGCalDDDConstants::waferFromPosition(const double x, double rmax = extend ? rmaxT_ : rmax_; double hexside = extend ? hexsideT_ : hexside_; for (unsigned int k = 0; k < hgpar_->waferPosX_.size(); ++k) { - double dx = std::abs(xx - hgpar_->waferPosX_[k]); - double dy = std::abs(yy - hgpar_->waferPosY_[k]); + double dx0(0), dy0(0); + waferU = HGCalWaferIndex::waferU(hgpar_->waferCopy_[k]); + waferV = HGCalWaferIndex::waferV(hgpar_->waferCopy_[k]); + if (mode_ == HGCalGeometryMode::Hexagon8Cassette) { + int indx = HGCalWaferIndex::waferIndex(layer, waferU, waferV); + auto ktr = hgpar_->waferInfoMap_.find(indx); + if (ktr != hgpar_->waferInfoMap_.end()) { + auto cshift = hgcassette_.getShift(layer, 1, (ktr->second).cassette); +#ifdef EDM_ML_DEBUG + if (debug) + edm::LogVerbatim("HGCalGeom") << "Cassette " << (ktr->second).cassette << " Shift " << cshift.first << ":" + << cshift.second; +#endif + dx0 = cshift.first; + dy0 = cshift.second; + } + } + double dx = std::abs(xx - dx0 - hgpar_->waferPosX_[k]); + double dy = std::abs(yy - dy0 - hgpar_->waferPosY_[k]); if (dx <= rmax && dy <= hexside) { if ((dy <= 0.5 * hexside) || (dx * tan30deg_ <= (hexside - dy))) { - waferU = HGCalWaferIndex::waferU(hgpar_->waferCopy_[k]); - waferV = HGCalWaferIndex::waferV(hgpar_->waferCopy_[k]); - if ((mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module)) { + if (waferHexagon8File()) { int index = HGCalWaferIndex::waferIndex(layer, waferU, waferV); celltype = HGCalWaferType::getType(index, hgpar_->waferInfoMap_); } else { @@ -1232,14 +1293,23 @@ void HGCalDDDConstants::waferFromPosition(const double x, << rmaxT_ << ":" << hexside_ << ":" << hexsideT_ << " wafer " << waferU << ":" << waferV << ":" << celltype; #endif - xx -= hgpar_->waferPosX_[k]; - yy -= hgpar_->waferPosY_[k]; + xx -= (dx0 + hgpar_->waferPosX_[k]); + yy -= (dy0 + hgpar_->waferPosY_[k]); break; } } } if ((std::abs(waferU) <= hgpar_->waferUVMax_) && (celltype >= 0)) { - cellHex(xx, yy, celltype, cellU, cellV, extend, debug); + int place(HGCalCell::cellPlacementOld), part(HGCalTypes::WaferFull); + if (mode_ == HGCalGeometryMode::Hexagon8Cassette) { + int indx = HGCalWaferIndex::waferIndex(layer, waferU, waferV); + auto ktr = hgpar_->waferInfoMap_.find(indx); + if (ktr != hgpar_->waferInfoMap_.end()) { + place = HGCalCell::cellPlacementIndex(1, HGCalTypes::layerType(layertype), (ktr->second).orient); + part = (ktr->second).part; + } + } + cellHex(xx, yy, celltype, place, part, cellU, cellV, extend, debug); wt = (((celltype < 2) && (mode_ != HGCalGeometryMode::Hexagon8Module)) ? (hgpar_->cellThickness_[celltype] / hgpar_->waferThick_) : 1.0); @@ -1288,7 +1358,7 @@ std::pair HGCalDDDConstants::waferParameters(bool reco) const { std::pair HGCalDDDConstants::waferPosition(int wafer, bool reco) const { double xx(0), yy(0); - if (wafer >= 0 && wafer < (int)(hgpar_->waferPosX_.size())) { + if (wafer >= 0 && wafer < static_cast(hgpar_->waferPosX_.size())) { xx = hgpar_->waferPosX_[wafer]; yy = hgpar_->waferPosY_[wafer]; } @@ -1359,7 +1429,7 @@ int HGCalDDDConstants::waferType(int layer, int waferU, int waferV, bool fromFil type = hgpar_->waferTypeL_[itr->second]; } } else if (waferHexagon6()) { - if ((waferU >= 0) && (waferU < (int)(hgpar_->waferTypeL_.size()))) + if ((waferU >= 0) && (waferU < static_cast(hgpar_->waferTypeL_.size()))) type = (hgpar_->waferTypeL_[waferU] - 1); } return type; @@ -1381,7 +1451,7 @@ std::tuple HGCalDDDConstants::waferType(HGCSiliconDetId const& id type = hgpar_->waferTypeL_[ktr->second]; auto itr = hgpar_->waferTypes_.find(index); if (itr != hgpar_->waferTypes_.end()) { - if ((itr->second).second < HGCalWaferMask::k_OffsetRotation) { + if ((itr->second).second < HGCalTypes::k_OffsetRotation) { orient = (itr->second).second; if ((itr->second).first == HGCalGeomTools::k_allCorners) { part = HGCalTypes::WaferFull; @@ -1394,7 +1464,7 @@ std::tuple HGCalDDDConstants::waferType(HGCSiliconDetId const& id } } else { part = (itr->second).first; - orient = ((itr->second).second - HGCalWaferMask::k_OffsetRotation); + orient = ((itr->second).second - HGCalTypes::k_OffsetRotation); } } else { part = HGCalTypes::WaferFull; @@ -1421,7 +1491,7 @@ std::pair HGCalDDDConstants::waferTypeRotation( if (waferHexagon8()) { withinList = (itr != hgpar_->waferTypes_.end()); if (withinList) { - if ((itr->second).second < HGCalWaferMask::k_OffsetRotation) { + if ((itr->second).second < HGCalTypes::k_OffsetRotation) { rotn = (itr->second).second; if ((itr->second).first == HGCalGeomTools::k_allCorners) { type = HGCalTypes::WaferFull; @@ -1434,7 +1504,7 @@ std::pair HGCalDDDConstants::waferTypeRotation( } } else { type = (itr->second).first; - rotn = ((itr->second).second - HGCalWaferMask::k_OffsetRotation); + rotn = ((itr->second).second - HGCalTypes::k_OffsetRotation); } } else { type = HGCalTypes::WaferFull; @@ -1479,7 +1549,7 @@ int HGCalDDDConstants::wafers() const { wafer += modules(lay, true); } } else { - wafer = (int)(hgpar_->moduleLayR_.size()); + wafer = static_cast(hgpar_->moduleLayR_.size()); } return wafer; } @@ -1519,55 +1589,64 @@ int HGCalDDDConstants::cellHex( } void HGCalDDDConstants::cellHex( - double xloc, double yloc, int cellType, int& cellU, int& cellV, bool extend, bool debug) const { - int N = (cellType == 0) ? hgpar_->nCellsFine_ : hgpar_->nCellsCoarse_; - double Rc = 2 * rmax_ / (3 * N); - double rc = 0.5 * Rc * sqrt3_; - double RcT = (extend) ? (2 * rmaxT_ / (3 * N)) : Rc; - double rcT = 0.5 * RcT * sqrt3_; - double v0 = ((xloc / Rc - 1.0) / 1.5); - int cv0 = (v0 > 0) ? (N + (int)(v0 + 0.5)) : (N - (int)(-v0 + 0.5)); - double u0 = (0.5 * yloc / rc + 0.5 * cv0); - int cu0 = (u0 > 0) ? (N / 2 + (int)(u0 + 0.5)) : (N / 2 - (int)(-u0 + 0.5)); - cu0 = std::max(0, std::min(cu0, 2 * N - 1)); - cv0 = std::max(0, std::min(cv0, 2 * N - 1)); - if (cv0 - cu0 >= N) - cv0 = cu0 + N - 1; -#ifdef EDM_ML_DEBUG - if (debug) - edm::LogVerbatim("HGCalGeom") << "cellHex: input " << xloc << ":" << yloc << ":" << cellType << " parameter " << rc - << ":" << Rc << " u0 " << u0 << ":" << cu0 << " v0 " << v0 << ":" << cv0; -#endif - bool found(false); - static constexpr int shift[3] = {0, 1, -1}; - for (int i1 = 0; i1 < 3; ++i1) { - cellU = cu0 + shift[i1]; - for (int i2 = 0; i2 < 3; ++i2) { - cellV = cv0 + shift[i2]; - if (((cellV - cellU) < N) && ((cellU - cellV) <= N) && (cellU >= 0) && (cellV >= 0) && (cellU < 2 * N) && - (cellV < 2 * N)) { - double xc = (1.5 * (cellV - N) + 1.0) * Rc; - double yc = (2 * cellU - cellV - N) * rc; - if ((std::abs(yloc - yc) <= rcT) && (std::abs(xloc - xc) <= RcT) && - ((std::abs(xloc - xc) <= 0.5 * RcT) || (std::abs(yloc - yc) <= sqrt3_ * (RcT - std::abs(xloc - xc))))) { -#ifdef EDM_ML_DEBUG - if (debug) - edm::LogVerbatim("HGCalGeom") - << "cellHex: local " << xc << ":" << yc << " difference " << std::abs(xloc - xc) << ":" - << std::abs(yloc - yc) << ":" << sqrt3_ * (Rc - std::abs(yloc - yc)) << " comparator " << rc << ":" - << Rc << " (u,v) = (" << cellU << "," << cellV << ")"; -#endif - found = true; - break; + double xloc, double yloc, int cellType, int place, int part, int& cellU, int& cellV, bool extend, bool debug) const { + if (mode_ == HGCalGeometryMode::Hexagon8Cassette) { + auto uv = (part == HGCalTypes::WaferFull) + ? hgcellUV_->cellUVFromXY3(xloc, yloc, place, cellType, extend, debug) + : hgcellUV_->cellUVFromXY1(xloc, yloc, place, cellType, part, extend, debug); + cellU = uv.first; + cellV = uv.second; + } else if (waferHexagon8File()) { + auto uv = hgcellUV_->cellUVFromXY3(xloc, yloc, place, cellType, extend, debug); + cellU = uv.first; + cellV = uv.second; + } else { + int ncell = (cellType == 0) ? hgpar_->nCellsFine_ : hgpar_->nCellsCoarse_; + double delY = 2 * rmax_ / (3 * ncell); + double delX = 0.5 * delY * sqrt3_; + double delYT = (extend) ? (2 * rmaxT_ / (3 * ncell)) : delY; + double delXT = 0.5 * delYT * sqrt3_; + double v0 = ((xloc / delY - 1.0) / 1.5); + int cv0 = (v0 > 0) ? (ncell + static_cast(v0 + 0.5)) : (ncell - static_cast(-v0 + 0.5)); + double u0 = (0.5 * yloc / delX + 0.5 * cv0); + int cu0 = (u0 > 0) ? (ncell / 2 + static_cast(u0 + 0.5)) : (ncell / 2 - static_cast(-u0 + 0.5)); + cu0 = std::max(0, std::min(cu0, 2 * ncell - 1)); + cv0 = std::max(0, std::min(cv0, 2 * ncell - 1)); + if (cv0 - cu0 >= ncell) + cv0 = cu0 + ncell - 1; + if (debug) + edm::LogVerbatim("HGCalGeom") << "cellHex: input " << xloc << ":" << yloc << ":" << cellType << " parameter " + << delX << ":" << delY << " u0 " << u0 << ":" << cu0 << " v0 " << v0 << ":" << cv0; + bool found(false); + static constexpr int shift[3] = {0, 1, -1}; + for (int i1 = 0; i1 < 3; ++i1) { + cellU = cu0 + shift[i1]; + for (int i2 = 0; i2 < 3; ++i2) { + cellV = cv0 + shift[i2]; + if (((cellV - cellU) < ncell) && ((cellU - cellV) <= ncell) && (cellU >= 0) && (cellV >= 0) && + (cellU < 2 * ncell) && (cellV < 2 * ncell)) { + double xc = (1.5 * (cellV - ncell) + 1.0) * delY; + double yc = (2 * cellU - cellV - ncell) * delX; + if ((std::abs(yloc - yc) <= delXT) && (std::abs(xloc - xc) <= delYT) && + ((std::abs(xloc - xc) <= 0.5 * delYT) || + (std::abs(yloc - yc) <= sqrt3_ * (delYT - std::abs(xloc - xc))))) { + if (debug) + edm::LogVerbatim("HGCalGeom") + << "cellHex: local " << xc << ":" << yc << " difference " << std::abs(xloc - xc) << ":" + << std::abs(yloc - yc) << ":" << sqrt3_ * (delY - std::abs(yloc - yc)) << " comparator " << delX + << ":" << delY << " (u,v) = (" << cellU << "," << cellV << ")"; + found = true; + break; + } } } + if (found) + break; + } + if (!found) { + cellU = cu0; + cellV = cv0; } - if (found) - break; - } - if (!found) { - cellU = cu0; - cellV = cv0; } } @@ -1622,7 +1701,7 @@ bool HGCalDDDConstants::isValidCell(int lay, int wafer, int cell) const { } double rr = sqrt(x * x + y * y); bool result = ((rr >= hgpar_->rMinLayHex_[lay - 1]) && (rr <= hgpar_->rMaxLayHex_[lay - 1]) && - (wafer < (int)(hgpar_->waferPosX_.size()))); + (wafer < static_cast(hgpar_->waferPosX_.size()))); #ifdef EDM_ML_DEBUG if (!result) edm::LogVerbatim("HGCalGeom") << "Input " << lay << ":" << wafer << ":" << cell << " Position " << x << ":" << y @@ -1670,7 +1749,7 @@ bool HGCalDDDConstants::isValidCell8(int lay, int waferU, int waferV, int cellU, << cellV << " Position " << x << ":" << y << ":" << rr << " Compare Limits " << hgpar_->rMinLayHex_[ll] << ":" << hgpar_->rMaxLayHex_[ll] << " Flag " << result; #endif - if (result && ((mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module))) { + if (result && waferHexagon8File()) { int N = (type == 0) ? hgpar_->nCellsFine_ : hgpar_->nCellsCoarse_; auto partn = waferTypeRotation(lay, waferU, waferV, false, false); result = HGCalWaferMask::goodCell(cellU, cellV, N, partn.first, partn.second); @@ -1702,7 +1781,7 @@ bool HGCalDDDConstants::waferInLayerTest(int wafer, int lay, bool full) const { double ypos = hgpar_->waferPosY_[wafer] + hgpar_->yLayerHex_[lay]; std::pair corner = HGCalGeomTools::waferCorner( xpos, ypos, rmax_, hexside_, hgpar_->rMinLayHex_[lay], hgpar_->rMaxLayHex_[lay], in); - in = (full ? (corner.first > 0) : (corner.first == (int)(HGCalParameters::k_CornerSize))); + in = (full ? (corner.first > 0) : (corner.first == static_cast(HGCalParameters::k_CornerSize))); if (in && fullAndPart_) { int indx = waferIndex(wafer, lay); in = (hgpar_->waferInfoMap_.find(indx) != hgpar_->waferInfoMap_.end()); diff --git a/Geometry/HGCalCommonData/src/HGCalGeomParameters.cc b/Geometry/HGCalCommonData/src/HGCalGeomParameters.cc index 4ab7fdc9030b8..6ae2fb8dda5f9 100644 --- a/Geometry/HGCalCommonData/src/HGCalGeomParameters.cc +++ b/Geometry/HGCalCommonData/src/HGCalGeomParameters.cc @@ -954,6 +954,9 @@ void HGCalGeomParameters::loadGeometryHexagonModule(const DDCompactView* cpv, mytrf.h3v = h3v; mytrf.hr = hr; trforms[std::make_pair(lay, zside)] = mytrf; +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCalGeom") << "Translation " << h3v; +#endif } } } @@ -1084,6 +1087,9 @@ void HGCalGeomParameters::loadGeometryHexagonModule(const cms::DDCompactView* cp mytrf.h3v = h3v; mytrf.hr = hr; trforms[std::make_pair(lay, zside)] = mytrf; +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCalGeom") << "Translation " << h3v; +#endif } } } @@ -1333,7 +1339,7 @@ void HGCalGeomParameters::loadSpecParsHexagon8(const DDFilteredView& fv, HGCalPa } php.cassetteShift_ = cassetteShift; - rescale(php.cassetteShift_, HGCalParameters::k_ScaleFromDD4hep); + rescale(php.cassetteShift_, HGCalParameters::k_ScaleFromDDD); loadSpecParsHexagon8(php, layerType, waferIndex, waferProperties); } } @@ -1526,8 +1532,10 @@ void HGCalGeomParameters::loadSpecParsHexagon8(HGCalParameters& php, for (unsigned int k = 0; k < waferIndex.size(); ++k) { int partial = HGCalProperty::waferPartial(waferProperties[k]); int orient = HGCalWaferMask::getRotation(php.waferZSide_, partial, HGCalProperty::waferOrient(waferProperties[k])); - php.waferInfoMap_[waferIndex[k]] = - HGCalParameters::waferInfo(HGCalProperty::waferThick(waferProperties[k]), partial, orient); + php.waferInfoMap_[waferIndex[k]] = HGCalParameters::waferInfo(HGCalProperty::waferThick(waferProperties[k]), + partial, + orient, + HGCalProperty::waferCassette(waferProperties[k])); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "[" << k << ":" << waferIndex[k] << ":" << HGCalWaferIndex::waferLayer(waferIndex[k]) << ":" @@ -1595,6 +1603,8 @@ void HGCalGeomParameters::loadSpecParsTrapezoid(const DDFilteredView& fv, HGCalP tileRingMin = dbl_to_int(fv.vector("TileRingMin")); tileRingMax = dbl_to_int(fv.vector("TileRingMax")); if (php.waferMaskMode_ == scintillatorCassette) { + if (php.cassettes_ > 0) + php.nphiCassette_ = php.nCellsCoarse_ / php.cassettes_; cassetteShift = fv.vector("CassetteShiftHE"); rescale(cassetteShift, HGCalParameters::k_ScaleFromDDD); } @@ -1709,7 +1719,7 @@ void HGCalGeomParameters::loadSpecParsTrapezoid(const cms::DDFilteredView& fv, } } - rescale(cassetteShift, HGCalParameters::k_ScaleFromDDD); + rescale(cassetteShift, HGCalParameters::k_ScaleFromDD4hep); php.cassetteShift_ = cassetteShift; loadSpecParsTrapezoid(php, tileIndx, @@ -2000,7 +2010,7 @@ void HGCalGeomParameters::loadWaferHexagon8(HGCalParameters& php) { bool ok = HGCalWaferMask::goodTypeMode( xpos0, ypos0, r1, R1, php.rMinLayHex_[i], php.rMaxLayHex_[i], part, orient, false); if (ok) - corner0 = std::make_pair(part, (HGCalWaferMask::k_OffsetRotation + orient)); + corner0 = std::make_pair(part, (HGCalTypes::k_OffsetRotation + orient)); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "Layer:u:v " << i << ":" << lay << ":" << u << ":" << v << " Part " << corner0.first << ":" diff --git a/Geometry/HGCalCommonData/src/HGCalParameters.cc b/Geometry/HGCalCommonData/src/HGCalParameters.cc index ca41bb0c2d80b..09a99442d98fd 100644 --- a/Geometry/HGCalCommonData/src/HGCalParameters.cc +++ b/Geometry/HGCalCommonData/src/HGCalParameters.cc @@ -2,6 +2,8 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "Geometry/HGCalCommonData/interface/HGCalWaferIndex.h" +#include + //#define EDM_ML_DEBUG HGCalParameters::HGCalParameters(const std::string& nam) : name_(nam), nCells_(0), waferMaskMode_(0) { diff --git a/Geometry/HGCalCommonData/src/HGCalParametersFromDD.cc b/Geometry/HGCalCommonData/src/HGCalParametersFromDD.cc index 13f8687fe56fc..977f53db54e2f 100644 --- a/Geometry/HGCalCommonData/src/HGCalParametersFromDD.cc +++ b/Geometry/HGCalCommonData/src/HGCalParametersFromDD.cc @@ -73,7 +73,9 @@ bool HGCalParametersFromDD::build(const DDCompactView* cpv, DDFilteredView fv(*cpv, filter); bool ok = fv.firstChild(); HGCalGeometryMode::WaferMode mode(HGCalGeometryMode::Polyhedra); +#ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "Volume " << name << " GeometryMode "; +#endif if (ok) { DDsvalues_type sv(fv.mergedSpecifics()); php.mode_ = getGeometryMode("GeometryMode", sv); @@ -90,6 +92,8 @@ bool HGCalParametersFromDD::build(const DDCompactView* cpv, php.firstMixedLayer_ = -1; // defined for post TDR geometry php.layerRotation_ = 0; // default layer rotation angle php.cassettes_ = 0; // default number of cassettes + php.nphiCassette_ = 0; // default number of phi's per cassette + php.phiOffset_ = 0; // default value of phi offset for cassette std::unique_ptr geom = std::make_unique(); if ((php.mode_ == HGCalGeometryMode::Hexagon) || (php.mode_ == HGCalGeometryMode::HexagonFull)) { attribute = "OnlyForHGCalNumbering"; @@ -122,7 +126,7 @@ bool HGCalParametersFromDD::build(const DDCompactView* cpv, php.minTileSize_ = 0; php.waferMaskMode_ = static_cast(getDDDValue("WaferMaskMode", sv)); php.waferZSide_ = static_cast(getDDDValue("WaferZside", sv)); - if (php.mode_ == HGCalGeometryMode::Hexagon8Module) + if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette)) php.layerRotation_ = getDDDValue("LayerRotation", sv); if ((php.waferMaskMode_ == HGCalGeomParameters::siliconCassetteEE) || (php.waferMaskMode_ == HGCalGeomParameters::siliconCassetteHE)) @@ -282,6 +286,9 @@ bool HGCalParametersFromDD::build(const cms::DDCompactView* cpv, } std::string sv = (!tempS.empty()) ? tempS[0] : "HGCalGeometryMode::Hexagon8Full"; HGCalGeometryMode::WaferMode mode(HGCalGeometryMode::Polyhedra); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCalGeom") << "Volume " << name << " GeometryMode "; +#endif if (ok) { php.mode_ = getGeometryMode(sv); diff --git a/Geometry/HGCalCommonData/src/HGCalTileIndex.cc b/Geometry/HGCalCommonData/src/HGCalTileIndex.cc index e61a0899d5dec..78c20ca2219ac 100644 --- a/Geometry/HGCalCommonData/src/HGCalTileIndex.cc +++ b/Geometry/HGCalCommonData/src/HGCalTileIndex.cc @@ -21,6 +21,18 @@ int32_t HGCalTileIndex::tilePhi(int32_t id) { return ((id >> HGCalProperty::kHGCalPhiOffset) & HGCalProperty::kHGCalPhiMask); } +int32_t HGCalTileIndex::tileCassette(int32_t iphi, int32_t phiOffset, int32_t nphiCassette, int32_t cassettes) { + int32_t cassette(0); + if (nphiCassette > 1) { + cassette = (iphi - phiOffset) / nphiCassette; + if (cassette < 0) + cassette += cassettes; + else if (cassette >= cassettes) + cassette = cassettes - 1; + } + return (cassette + 1); +} + int32_t HGCalTileIndex::tileProperty(int32_t type, int32_t sipm) { return (((type % HGCalProperty::kHGCalFactor) * HGCalProperty::kHGCalOffsetType) + ((sipm % HGCalProperty::kHGCalFactor) * HGCalProperty::kHGCalOffsetSiPM)); diff --git a/Geometry/HGCalCommonData/src/HGCalTypes.cc b/Geometry/HGCalCommonData/src/HGCalTypes.cc index a3b5bf93b8d8d..5bcbdaec7a1cc 100644 --- a/Geometry/HGCalCommonData/src/HGCalTypes.cc +++ b/Geometry/HGCalCommonData/src/HGCalTypes.cc @@ -40,10 +40,10 @@ int32_t HGCalTypes::getUnpackedCellType6(int id) { return (id / faccell6_); } int32_t HGCalTypes::getUnpackedCell6(int id) { return (id % faccell6_); } int32_t HGCalTypes::layerType(int type) { - int types[5] = {HGCalTypes::WaferCenter, - HGCalTypes::WaferCenterB, - HGCalTypes::CornerCenterYp, - HGCalTypes::CornerCenterYm, - HGCalTypes::WaferCenterR}; + static constexpr int32_t types[5] = {HGCalTypes::WaferCenter, + HGCalTypes::WaferCenterB, + HGCalTypes::CornerCenterYp, + HGCalTypes::CornerCenterYm, + HGCalTypes::WaferCenterR}; return ((type >= 0 && type < 5) ? types[type] : HGCalTypes::WaferCenter); } diff --git a/Geometry/HGCalCommonData/src/HGCalWaferMask.cc b/Geometry/HGCalCommonData/src/HGCalWaferMask.cc index fe81c4fd79b0e..da799c1d2cbcf 100644 --- a/Geometry/HGCalCommonData/src/HGCalWaferMask.cc +++ b/Geometry/HGCalCommonData/src/HGCalWaferMask.cc @@ -106,7 +106,7 @@ The argument 'corners' controls the types of wafers the user wants: for instance } bool HGCalWaferMask::goodCell(int u, int v, int n, int type, int rotn) { - // Needs extension for V17 + // for V15 and V16 bool good(false); int n2 = n / 2; int n4 = n / 4; @@ -395,6 +395,74 @@ bool HGCalWaferMask::goodCell(int u, int v, int n, int type, int rotn) { return good; } +bool HGCalWaferMask::goodCell(int u, int v, int waferType) { + // for V17 + bool good(false); + switch (waferType) { + case (HGCalTypes::WaferFull): { //WaferFull + good = true; + break; + } + case (HGCalTypes::WaferLDTop): { + good = (u * HGCalTypes::edgeWaferLDTop[0] + v * HGCalTypes::edgeWaferLDTop[1] <= HGCalTypes::edgeWaferLDTop[2]); + break; + } + case (HGCalTypes::WaferLDBottom): { + good = (u * HGCalTypes::edgeWaferLDBottom[0] + v * HGCalTypes::edgeWaferLDBottom[1] <= + HGCalTypes::edgeWaferLDBottom[2]); + break; + } + case (HGCalTypes::WaferLDLeft): { + good = + (u * HGCalTypes::edgeWaferLDLeft[0] + v * HGCalTypes::edgeWaferLDLeft[1] <= HGCalTypes::edgeWaferLDLeft[2]); + break; + } + case (HGCalTypes::WaferLDRight): { + good = (u * HGCalTypes::edgeWaferLDRight[0] + v * HGCalTypes::edgeWaferLDRight[1] <= + HGCalTypes::edgeWaferLDRight[2]); + break; + } + case (HGCalTypes::WaferLDFive): { + good = + (u * HGCalTypes::edgeWaferLDFive[0] + v * HGCalTypes::edgeWaferLDFive[1] <= HGCalTypes::edgeWaferLDFive[2]); + break; + } + case (HGCalTypes::WaferLDThree): { + good = (u * HGCalTypes::edgeWaferLDThree[0] + v * HGCalTypes::edgeWaferLDThree[1] <= + HGCalTypes::edgeWaferLDThree[2]); + break; + } + case (HGCalTypes::WaferHDTop): { + good = (u * HGCalTypes::edgeWaferHDTop[0] + v * HGCalTypes::edgeWaferHDTop[1] <= HGCalTypes::edgeWaferHDTop[2]); + break; + } + case (HGCalTypes::WaferHDBottom): { + good = (u * HGCalTypes::edgeWaferHDBottom[0] + v * HGCalTypes::edgeWaferHDBottom[1] <= + HGCalTypes::edgeWaferHDBottom[2]); + break; + } + case (HGCalTypes::WaferHDLeft): { + good = + (u * HGCalTypes::edgeWaferHDLeft[0] + v * HGCalTypes::edgeWaferHDLeft[1] <= HGCalTypes::edgeWaferHDLeft[2]); + break; + } + case (HGCalTypes::WaferHDRight): { + good = (u * HGCalTypes::edgeWaferHDRight[0] + v * HGCalTypes::edgeWaferHDRight[1] <= + HGCalTypes::edgeWaferHDRight[2]); + break; + } + case (HGCalTypes::WaferHDFive): { + good = + (u * HGCalTypes::edgeWaferHDFive[0] + v * HGCalTypes::edgeWaferHDFive[1] <= HGCalTypes::edgeWaferHDFive[2]); + break; + } + } +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCalGeom") << "u|v " << u << ":" << v << " WaferType " << waferType << " good " << good; +#endif + return good; +} + int HGCalWaferMask::getRotation(int zside, int type, int rotn) { // Needs extension for V17 if (rotn >= HGCalTypes::WaferCornerMax) @@ -678,7 +746,7 @@ std::pair HGCalWaferMask::getTypeMode(const double& xpos, edm::LogVerbatim("HGCalGeom") << "I/p " << xpos << ":" << ypos << ":" << delX << ":" << delY << ":" << rin << ":" << rout << ":" << wType << ":" << mode << " o/p " << iok << ":" << ncor << ":" << type << ":" << rotn; - return ((mode == 0) ? std::make_pair(ncor, rotn) : std::make_pair(type, (rotn + HGCalWaferMask::k_OffsetRotation))); + return ((mode == 0) ? std::make_pair(ncor, rotn) : std::make_pair(type, (rotn + HGCalTypes::k_OffsetRotation))); } bool HGCalWaferMask::goodTypeMode( diff --git a/Geometry/HGCalCommonData/test/HGCalNumberingTester.cc b/Geometry/HGCalCommonData/test/HGCalNumberingTester.cc index 20dd6bc2a5869..5491e8967dec8 100644 --- a/Geometry/HGCalCommonData/test/HGCalNumberingTester.cc +++ b/Geometry/HGCalCommonData/test/HGCalNumberingTester.cc @@ -18,6 +18,7 @@ // // system include files +#include #include #include #include diff --git a/Geometry/HGCalCommonData/test/HGCalParameterTester.cc b/Geometry/HGCalCommonData/test/HGCalParameterTester.cc index a6c03a2abca0b..b14bcec72692c 100644 --- a/Geometry/HGCalCommonData/test/HGCalParameterTester.cc +++ b/Geometry/HGCalCommonData/test/HGCalParameterTester.cc @@ -1,3 +1,4 @@ +#include #include #include #include @@ -139,6 +140,7 @@ void HGCalParameterTester::analyze(const edm::Event& iEvent, const edm::EventSet edm::LogVerbatim("HGCalGeom") << "FirstMixedLayer: " << phgp->firstMixedLayer_; edm::LogVerbatim("HGCalGeom") << "LayerOffset: " << phgp->layerOffset_; edm::LogVerbatim("HGCalGeom") << "mode_: " << phgp->mode_; + edm::LogVerbatim("HGCalGeom") << "cassettes_: " << phgp->cassettes_; myPrint("waferUVMaxLayer", phgp->waferUVMaxLayer_, 20); myPrint("CellThickness", phgp->cellThickness_, 10); @@ -206,6 +208,7 @@ void HGCalParameterTester::analyze(const edm::Event& iEvent, const edm::EventSet printTrform(phgp); myPrint("levelTop", phgp->levelT_, 10); printWaferType(phgp); + myPrint("cassetteShift", phgp->cassetteShift_, 8); edm::LogVerbatim("HGCalGeom") << "MaskMode: " << phgp->waferMaskMode_; if (phgp->waferMaskMode_ > 1) { diff --git a/Geometry/HGCalCommonData/test/HGCalParametersAnalyzer.cc b/Geometry/HGCalCommonData/test/HGCalParametersAnalyzer.cc index 1ca023f4b68af..c6adbc2e36a65 100644 --- a/Geometry/HGCalCommonData/test/HGCalParametersAnalyzer.cc +++ b/Geometry/HGCalCommonData/test/HGCalParametersAnalyzer.cc @@ -28,250 +28,299 @@ void HGCalParametersAnalyzer::analyze(const edm::Event& iEvent, const edm::Event const auto& hgp = iSetup.getData(token_); const auto* phgp = &hgp; - edm::LogVerbatim("HGCalGeom") << phgp->name_ << "\n"; + edm::LogVerbatim("HGCalGeom") << "\nname " << phgp->name_; + edm::LogVerbatim("HGCalGeom") << "nCells " << phgp->nCells_; + edm::LogVerbatim("HGCalGeom") << "nSectors " << phgp->nSectors_; std::ostringstream st1; + st1 << "cellsize "; for (auto it : phgp->cellSize_) st1 << it << ", "; edm::LogVerbatim("HGCalGeom") << st1.str(); std::ostringstream st2; - for (auto it : phgp->moduleBlS_) + st2 << "moduleLayS "; + for (auto it : phgp->moduleLayS_) st2 << it << ", "; edm::LogVerbatim("HGCalGeom") << st2.str(); std::ostringstream st3; - for (auto it : phgp->moduleTlS_) + st3 << "ModuleBlS "; + for (auto it : phgp->moduleBlS_) st3 << it << ", "; edm::LogVerbatim("HGCalGeom") << st3.str(); std::ostringstream st4; - for (auto it : phgp->moduleHS_) + st4 << "ModuleTlS "; + for (auto it : phgp->moduleTlS_) st4 << it << ", "; edm::LogVerbatim("HGCalGeom") << st4.str(); std::ostringstream st5; - for (auto it : phgp->moduleDzS_) + st5 << "moduleHS "; + for (auto it : phgp->moduleHS_) st5 << it << ", "; edm::LogVerbatim("HGCalGeom") << st5.str(); std::ostringstream st6; - for (auto it : phgp->moduleAlphaS_) + st6 << "moduleDzS "; + for (auto it : phgp->moduleDzS_) st6 << it << ", "; edm::LogVerbatim("HGCalGeom") << st6.str(); std::ostringstream st7; - for (auto it : phgp->moduleCellS_) + st7 << "moduleAlphaS "; + for (auto it : phgp->moduleAlphaS_) st7 << it << ", "; edm::LogVerbatim("HGCalGeom") << st7.str(); std::ostringstream st8; - for (auto it : phgp->moduleBlR_) + st8 << "moduleCellS "; + for (auto it : phgp->moduleCellS_) st8 << it << ", "; edm::LogVerbatim("HGCalGeom") << st8.str(); std::ostringstream st9; - for (auto it : phgp->moduleTlR_) + st9 << "moduleLayR "; + for (auto it : phgp->moduleLayR_) st9 << it << ", "; edm::LogVerbatim("HGCalGeom") << st9.str(); std::ostringstream st10; - for (auto it : phgp->moduleHR_) + st10 << "moduleBlR "; + for (auto it : phgp->moduleBlR_) st10 << it << ", "; edm::LogVerbatim("HGCalGeom") << st10.str(); std::ostringstream st11; - for (auto it : phgp->moduleDzR_) + st11 << "moduleTlR "; + for (auto it : phgp->moduleTlR_) st11 << it << ", "; edm::LogVerbatim("HGCalGeom") << st11.str(); std::ostringstream st12; - for (auto it : phgp->moduleAlphaR_) + st12 << "moduleHR "; + for (auto it : phgp->moduleHR_) st12 << it << ", "; edm::LogVerbatim("HGCalGeom") << st12.str(); std::ostringstream st13; - for (auto it : phgp->moduleCellR_) + st13 << "moduleDzR "; + for (auto it : phgp->moduleDzR_) st13 << it << ", "; edm::LogVerbatim("HGCalGeom") << st13.str(); std::ostringstream st14; - for (auto it : phgp->trformTranX_) + st14 << "moduleAlphaR "; + for (auto it : phgp->moduleAlphaR_) st14 << it << ", "; edm::LogVerbatim("HGCalGeom") << st14.str(); std::ostringstream st15; - for (auto it : phgp->trformTranY_) + st15 << "moduleCellR "; + for (auto it : phgp->moduleCellR_) st15 << it << ", "; edm::LogVerbatim("HGCalGeom") << st15.str(); std::ostringstream st16; - for (auto it : phgp->trformTranZ_) + st16 << "trformIndex "; + for (auto it : phgp->trformIndex_) st16 << it << ", "; edm::LogVerbatim("HGCalGeom") << st16.str(); std::ostringstream st17; - for (auto it : phgp->trformRotXX_) + st17 << "trformTranX "; + for (auto it : phgp->trformTranX_) st17 << it << ", "; + edm::LogVerbatim("HGCalGeom") << st17.str(); std::ostringstream st18; - for (auto it : phgp->trformRotYX_) + st18 << "trformTranY "; + for (auto it : phgp->trformTranY_) st18 << it << ", "; edm::LogVerbatim("HGCalGeom") << st18.str(); std::ostringstream st19; - for (auto it : phgp->trformRotZX_) + st19 << "trformTranZ "; + for (auto it : phgp->trformTranZ_) st19 << it << ", "; edm::LogVerbatim("HGCalGeom") << st19.str(); std::ostringstream st20; - for (auto it : phgp->trformRotXY_) + st20 << "trformRotXX "; + for (auto it : phgp->trformRotXX_) st20 << it << ", "; edm::LogVerbatim("HGCalGeom") << st20.str(); std::ostringstream st21; - for (auto it : phgp->trformRotYY_) + st21 << "trformRotYX "; + for (auto it : phgp->trformRotYX_) st21 << it << ", "; edm::LogVerbatim("HGCalGeom") << st21.str(); std::ostringstream st22; - for (auto it : phgp->trformRotZY_) + st22 << "trformRotZX "; + for (auto it : phgp->trformRotZX_) st22 << it << ", "; edm::LogVerbatim("HGCalGeom") << st22.str(); std::ostringstream st23; - for (auto it : phgp->trformRotXZ_) + st23 << "trformRotXY "; + for (auto it : phgp->trformRotXY_) st23 << it << ", "; edm::LogVerbatim("HGCalGeom") << st23.str(); std::ostringstream st24; - for (auto it : phgp->trformRotYZ_) + st24 << "trformRotYY "; + for (auto it : phgp->trformRotYY_) st24 << it << ", "; edm::LogVerbatim("HGCalGeom") << st24.str(); std::ostringstream st25; - for (auto it : phgp->trformRotZZ_) + st25 << "trformRotZY "; + for (auto it : phgp->trformRotZY_) st25 << it << ", "; edm::LogVerbatim("HGCalGeom") << st25.str(); std::ostringstream st26; - for (auto it : phgp->zLayerHex_) + st26 << "trformRotXZ "; + for (auto it : phgp->trformRotXZ_) st26 << it << ", "; edm::LogVerbatim("HGCalGeom") << st26.str(); std::ostringstream st27; - for (auto it : phgp->rMinLayHex_) + st27 << "trformRotYZ "; + for (auto it : phgp->trformRotYZ_) st27 << it << ", "; edm::LogVerbatim("HGCalGeom") << st27.str(); std::ostringstream st28; - for (auto it : phgp->rMaxLayHex_) + st28 << "trformRotZZ "; + for (auto it : phgp->trformRotZZ_) st28 << it << ", "; edm::LogVerbatim("HGCalGeom") << st28.str(); std::ostringstream st29; - for (unsigned int k = 0; k < phgp->waferPosX_.size(); ++k) - st29 << "(" << phgp->waferPosX_[k] << ", " << phgp->waferPosY_[k] << ") "; + st29 << "layer "; + for (auto it : phgp->layer_) + st29 << it << ", "; edm::LogVerbatim("HGCalGeom") << st29.str(); std::ostringstream st30; - for (unsigned int k = 0; k < phgp->cellFineX_.size(); ++k) - st30 << "(" << phgp->cellFineX_[k] << ", " << phgp->cellFineY_[k] << ") "; + st3 << "layerIndex "; + for (auto it : phgp->layerIndex_) + st30 << it << ", "; edm::LogVerbatim("HGCalGeom") << st30.str(); std::ostringstream st31; - for (unsigned int k = 0; k < phgp->cellCoarseX_.size(); ++k) - st31 << "(" << phgp->cellCoarseX_[k] << ", " << phgp->cellCoarseY_[k] << ") "; + st31 << "layerGroup "; + for (auto it : phgp->layerGroup_) + st31 << it << ", "; edm::LogVerbatim("HGCalGeom") << st31.str(); std::ostringstream st32; - for (auto it : phgp->boundR_) + st32 << "cellFactor "; + for (auto it : phgp->cellFactor_) st32 << it << ", "; edm::LogVerbatim("HGCalGeom") << st32.str(); std::ostringstream st33; - for (auto it : phgp->moduleLayS_) + st33 << "depth "; + for (auto it : phgp->depth_) st33 << it << ", "; edm::LogVerbatim("HGCalGeom") << st33.str(); std::ostringstream st34; - for (auto it : phgp->moduleLayR_) + st34 << "depthIndex "; + for (auto it : phgp->depthIndex_) st34 << it << ", "; edm::LogVerbatim("HGCalGeom") << st34.str(); std::ostringstream st35; - for (auto it : phgp->layer_) + st35 << "depthLayerF "; + for (auto it : phgp->depthLayerF_) st35 << it << ", "; edm::LogVerbatim("HGCalGeom") << st35.str(); std::ostringstream st36; - for (auto it : phgp->layerIndex_) + st36 << "zLayerHex "; + for (auto it : phgp->zLayerHex_) st36 << it << ", "; edm::LogVerbatim("HGCalGeom") << st36.str(); std::ostringstream st37; - for (auto it : phgp->layerGroup_) + st37 << "MinLayHex "; + for (auto it : phgp->rMinLayHex_) st37 << it << ", "; edm::LogVerbatim("HGCalGeom") << st37.str(); std::ostringstream st38; - for (auto it : phgp->cellFactor_) + st38 << "rMaxLayHex "; + for (auto it : phgp->rMaxLayHex_) st38 << it << ", "; edm::LogVerbatim("HGCalGeom") << st38.str(); std::ostringstream st39; - for (auto it : phgp->depth_) + st39 << "waferCopy "; + for (auto it : phgp->waferCopy_) st39 << it << ", "; edm::LogVerbatim("HGCalGeom") << st39.str(); std::ostringstream st40; - for (auto it : phgp->depthIndex_) + st40 << "waferTypeL "; + for (auto it : phgp->waferTypeL_) st40 << it << ", "; edm::LogVerbatim("HGCalGeom") << st40.str(); std::ostringstream st41; - for (auto it : phgp->depthLayerF_) + st41 << "waferTypeT "; + for (auto it : phgp->waferTypeT_) st41 << it << ", "; edm::LogVerbatim("HGCalGeom") << st41.str(); std::ostringstream st42; - for (auto it : phgp->waferCopy_) - st42 << it << ", "; + st42 << "waferPos "; + for (unsigned int k = 0; k < phgp->waferPosX_.size(); ++k) + st42 << "(" << phgp->waferPosX_[k] << ", " << phgp->waferPosY_[k] << ") "; edm::LogVerbatim("HGCalGeom") << st42.str(); std::ostringstream st43; - for (auto it : phgp->waferTypeL_) - st43 << it << ", "; + st43 << "cellFinePos "; + for (unsigned int k = 0; k < phgp->cellFineX_.size(); ++k) + st43 << "(" << phgp->cellFineX_[k] << ", " << phgp->cellFineY_[k] << ") "; edm::LogVerbatim("HGCalGeom") << st43.str(); std::ostringstream st44; - for (auto it : phgp->waferTypeT_) - st44 << it << ", "; + st44 << "cellCoarsePos "; + for (unsigned int k = 0; k < phgp->cellCoarseX_.size(); ++k) + st44 << "(" << phgp->cellCoarseX_[k] << ", " << phgp->cellCoarseY_[k] << ") "; edm::LogVerbatim("HGCalGeom") << st44.str(); std::ostringstream st45; + st45 << "layerGroupM "; for (auto it : phgp->layerGroupM_) st45 << it << ", "; edm::LogVerbatim("HGCalGeom") << st45.str(); std::ostringstream st46; + st46 << "layerGroupO "; for (auto it : phgp->layerGroupO_) st46 << it << ", "; edm::LogVerbatim("HGCalGeom") << st46.str(); std::ostringstream st47; - for (auto it : phgp->trformIndex_) + st47 << "boundR "; + for (auto it : phgp->boundR_) st47 << it << ", "; edm::LogVerbatim("HGCalGeom") << st47.str(); + edm::LogVerbatim("HGCalGeom") << "waferR " << phgp->waferR_; + edm::LogVerbatim("HGCalGeom") << "mode " << phgp->mode_; + std::ostringstream st48; + st48 << "slopeMin "; for (auto it : phgp->slopeMin_) st48 << it << ", "; edm::LogVerbatim("HGCalGeom") << st48.str(); - - edm::LogVerbatim("HGCalGeom") << phgp->waferR_; - edm::LogVerbatim("HGCalGeom") << phgp->nCells_; - edm::LogVerbatim("HGCalGeom") << phgp->nSectors_; - edm::LogVerbatim("HGCalGeom") << phgp->mode_; } DEFINE_FWK_MODULE(HGCalParametersAnalyzer); diff --git a/Geometry/HGCalCommonData/test/python/runHGCalTestV17_cfg.py b/Geometry/HGCalCommonData/test/python/runHGCalTestV17_cfg.py new file mode 100644 index 0000000000000..256f6b494bbde --- /dev/null +++ b/Geometry/HGCalCommonData/test/python/runHGCalTestV17_cfg.py @@ -0,0 +1,136 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + +process = cms.Process('SIM',Phase2C11M9) + +# import of standard configurations +process.load('Configuration.StandardSequences.Services_cff') +process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi') +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration.EventContent.EventContent_cff') +process.load('SimGeneral.MixingModule.mixNoPU_cfi') +process.load('Geometry.HGCalCommonData.testHGCV17XML_cfi') +process.load('Geometry.EcalCommonData.ecalSimulationParameters_cff') +process.load('Geometry.HcalCommonData.hcalDDDSimConstants_cff') +process.load('Geometry.HGCalCommonData.hgcalV15ParametersInitialization_cfi') +process.load('Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi') +process.load('Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff') +process.load('SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_cff') +process.load('Geometry.MuonNumbering.muonGeometryConstants_cff') +process.load('Geometry.MuonNumbering.muonOffsetESProducer_cff') +process.load('Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff') +process.load('Configuration.StandardSequences.MagneticField_cff') +process.load('Configuration.StandardSequences.Generator_cff') +process.load('IOMC.EventVertexGenerators.VtxSmearedHLLHC14TeV_cfi') +process.load('GeneratorInterface.Core.genFilterSummary_cff') +process.load('Configuration.StandardSequences.SimIdeal_cff') +process.load('Configuration.StandardSequences.EndOfProcess_cff') +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(100), + output = cms.optional.untracked.allowed(cms.int32,cms.PSet) +) + +# Input source +process.source = cms.Source("EmptySource") + +process.options = cms.untracked.PSet( + FailPath = cms.untracked.vstring(), + IgnoreCompletely = cms.untracked.vstring(), + Rethrow = cms.untracked.vstring(), + SkipEvent = cms.untracked.vstring(), + allowUnscheduled = cms.obsolete.untracked.bool, + canDeleteEarly = cms.untracked.vstring(), + deleteNonConsumedUnscheduledModules = cms.untracked.bool(True), + emptyRunLumiMode = cms.obsolete.untracked.string, + eventSetup = cms.untracked.PSet( + forceNumberOfConcurrentIOVs = cms.untracked.PSet( + allowAnyLabel_=cms.required.untracked.uint32 + ), + numberOfConcurrentIOVs = cms.untracked.uint32(1) + ), + fileMode = cms.untracked.string('FULLMERGE'), + forceEventSetupCacheClearOnNewRun = cms.untracked.bool(False), + makeTriggerResults = cms.obsolete.untracked.bool, + numberOfConcurrentLuminosityBlocks = cms.untracked.uint32(1), + numberOfConcurrentRuns = cms.untracked.uint32(1), + numberOfStreams = cms.untracked.uint32(0), + numberOfThreads = cms.untracked.uint32(1), + printDependencies = cms.untracked.bool(False), + sizeOfStackForThreadsInKB = cms.optional.untracked.uint32, + throwIfIllegalParameter = cms.untracked.bool(True), + wantSummary = cms.untracked.bool(False) +) + +# Production Info +process.configurationMetadata = cms.untracked.PSet( + annotation = cms.untracked.string('single pi E 1000'), + name = cms.untracked.string('Applications'), + version = cms.untracked.string('$Revision: 1.19 $') +) + +# Output definition + +process.FEVTDEBUGoutput = cms.OutputModule("PoolOutputModule", + SelectEvents = cms.untracked.PSet( + SelectEvents = cms.vstring('generation_step') + ), + dataset = cms.untracked.PSet( + dataTier = cms.untracked.string('GEN-SIM'), + filterName = cms.untracked.string('') + ), + fileName = cms.untracked.string('file:step1.root'), + outputCommands = process.FEVTDEBUGEventContent.outputCommands, + splitLevel = cms.untracked.int32(0) +) + +# Additional output definition + +# Other statements +process.genstepfilter.triggerConditions=cms.vstring("generation_step") +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T21', '') + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(211), + MinEta = cms.double(1.48), + MaxEta = cms.double(3.01), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(999.99), + MaxE = cms.double(1000.01) + ), + Verbosity = cms.untracked.int32(0), ## set to 1 (or greater) for printouts + psethack = cms.string('single pi E 1000'), + AddAntiParticle = cms.bool(True), + firstRun = cms.untracked.uint32(1) +) + +process.ProductionFilterSequence = cms.Sequence(process.generator) + +# Path and EndPath definitions +process.generation_step = cms.Path(process.pgen) +process.simulation_step = cms.Path(process.psim) +process.genfiltersummary_step = cms.EndPath(process.genFilterSummary) +process.endjob_step = cms.EndPath(process.endOfProcess) +process.FEVTDEBUGoutput_step = cms.EndPath(process.FEVTDEBUGoutput) + +# Schedule definition +process.schedule = cms.Schedule(process.generation_step,process.genfiltersummary_step,process.simulation_step,process.endjob_step,process.FEVTDEBUGoutput_step) +from PhysicsTools.PatAlgos.tools.helpers import associatePatAlgosToolsTask +associatePatAlgosToolsTask(process) +# filter all path with the production filter sequence +for path in process.paths: + getattr(process,path).insert(0, process.ProductionFilterSequence) + + + +# Customisation from command line + +# Add early deletion of temporary data products to reduce peak memory need +from Configuration.StandardSequences.earlyDeleteSettings_cff import customiseEarlyDelete +process = customiseEarlyDelete(process) +# End adding early deletion diff --git a/Geometry/HGCalCommonData/test/python/testHGCalParametersDD4hep_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalParametersDD4hep_cfg.py index 5b5e9f761ff71..0a9fdab0dd185 100644 --- a/Geometry/HGCalCommonData/test/python/testHGCalParametersDD4hep_cfg.py +++ b/Geometry/HGCalCommonData/test/python/testHGCalParametersDD4hep_cfg.py @@ -3,20 +3,12 @@ process = cms.Process("HGCalParametersTest",Phase2C11_dd4hep) process.load("SimGeneral.HepPDTESSource.pdt_cfi") -process.load("Geometry.HGCalCommonData.hgcalParametersInitialization_cfi") +process.load("Configuration.Geometry.GeometryDD4hepExtended2026D77Reco_cff") process.load('FWCore.MessageService.MessageLogger_cfi') if hasattr(process,'MessageLogger'): process.MessageLogger.HGCalGeom=dict() -process.DDDetectorESProducer = cms.ESSource("DDDetectorESProducer", - confGeomXMLFiles = cms.FileInPath('Geometry/HGCalCommonData/data/dd4hep/testHGCalV15.xml'), - appendToDataLabel = cms.string('') - ) - -process.DDCompactViewESProducer = cms.ESProducer("DDCompactViewESProducer", - appendToDataLabel = cms.string('') -) process.load("IOMC.RandomEngine.IOMC_cff") process.RandomNumberGeneratorService.generator.initialSeed = 456789 diff --git a/Geometry/HGCalCommonData/test/python/testHGCalParametersDDD_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalParametersDDD_cfg.py index ba560935bf745..5e4d002134c41 100644 --- a/Geometry/HGCalCommonData/test/python/testHGCalParametersDDD_cfg.py +++ b/Geometry/HGCalCommonData/test/python/testHGCalParametersDDD_cfg.py @@ -3,9 +3,7 @@ process = cms.Process("HGCalParametersTest",Phase2C11) process.load("SimGeneral.HepPDTESSource.pdt_cfi") -#process.load("Geometry.CMSCommonData.cmsExtendedGeometry2026D83XML_cfi") -process.load("Geometry.HGCalCommonData.testHGCalV15XML_cfi") -process.load("Geometry.HGCalCommonData.hgcalV15ParametersInitialization_cfi") +process.load("Configuration.Geometry.GeometryExtended2026D82Reco_cff") process.load('FWCore.MessageService.MessageLogger_cfi') if hasattr(process,'MessageLogger'): @@ -36,7 +34,6 @@ ) process.load("Geometry.HGCalCommonData.hgcParameterTesterEE_cfi") -#process.hgcParameterTesterEE.Mode = 0 process.hgcParameterTesterHESil = process.hgcParameterTesterEE.clone( Name = cms.string("HGCalHESiliconSensitive") @@ -48,4 +45,3 @@ ) process.p1 = cms.Path(process.generator*process.hgcParameterTesterEE*process.hgcParameterTesterHESil*process.hgcParameterTesterHESci) -#process.p1 = cms.Path(process.generator*process.hgcParameterTesterEE*process.hgcParameterTesterHESil) diff --git a/Geometry/HGCalCommonData/test/python/testHGCalParametersV16DD4hep_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalParametersVXDD4hep_cfg.py similarity index 50% rename from Geometry/HGCalCommonData/test/python/testHGCalParametersV16DD4hep_cfg.py rename to Geometry/HGCalCommonData/test/python/testHGCalParametersVXDD4hep_cfg.py index d8b3fa9ac2231..611f4925d2741 100644 --- a/Geometry/HGCalCommonData/test/python/testHGCalParametersV16DD4hep_cfg.py +++ b/Geometry/HGCalCommonData/test/python/testHGCalParametersVXDD4hep_cfg.py @@ -1,7 +1,30 @@ +############################################################################### +# Way to use this: +# cmsRun testHGCalParametersVXDD4hep_cfg.py type=V17 +# +# Options for type V15, V16, V17 +# +############################################################################### import FWCore.ParameterSet.Config as cms -from Configuration.Eras.Era_Phase2C11_dd4hep_cff import Phase2C11_dd4hep +import os, sys, imp, re +import FWCore.ParameterSet.VarParsing as VarParsing + +#################################################################### +### SETUP OPTIONS +options = VarParsing.VarParsing('standard') +options.register('type', + "V17", + VarParsing.VarParsing.multiplicity.singleton, + VarParsing.VarParsing.varType.string, + "type of operations: V15, V16, V17") +### get and parse the command line arguments +options.parseArguments() +print(options) + +from Configuration.Eras.Era_Phase2C11_dd4hep_cff import Phase2C11_dd4hep process = cms.Process("HGCalParametersTest",Phase2C11_dd4hep) + process.load("SimGeneral.HepPDTESSource.pdt_cfi") process.load("Geometry.HGCalCommonData.hgcalV15ParametersInitialization_cfi") process.load('FWCore.MessageService.MessageLogger_cfi') @@ -9,10 +32,23 @@ if hasattr(process,'MessageLogger'): process.MessageLogger.HGCalGeom=dict() -process.DDDetectorESProducer = cms.ESSource("DDDetectorESProducer", - confGeomXMLFiles = cms.FileInPath('Geometry/HGCalCommonData/data/dd4hep/testHGCalV16.xml'), - appendToDataLabel = cms.string('') - ) +#################################################################### +# Use the options +if (options.type == "V15"): + process.DDDetectorESProducer = cms.ESSource("DDDetectorESProducer", + confGeomXMLFiles = cms.FileInPath('Geometry/HGCalCommonData/data/dd4hep/testHGCalV15.xml'), + appendToDataLabel = cms.string('') + ) +elif (options.type == "V16"): + process.DDDetectorESProducer = cms.ESSource("DDDetectorESProducer", + confGeomXMLFiles = cms.FileInPath('Geometry/HGCalCommonData/data/dd4hep/testHGCalV16.xml'), + appendToDataLabel = cms.string('') + ) +else: + process.DDDetectorESProducer = cms.ESSource("DDDetectorESProducer", + confGeomXMLFiles = cms.FileInPath('Geometry/HGCalCommonData/data/dd4hep/testHGCalV17.xml'), + appendToDataLabel = cms.string('') + ) process.DDCompactViewESProducer = cms.ESProducer("DDCompactViewESProducer", appendToDataLabel = cms.string('') diff --git a/Geometry/HGCalCommonData/test/python/testHGCalParametersV16DDD_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalParametersVXDDD_cfg.py similarity index 58% rename from Geometry/HGCalCommonData/test/python/testHGCalParametersV16DDD_cfg.py rename to Geometry/HGCalCommonData/test/python/testHGCalParametersVXDDD_cfg.py index 924cd1902cd8e..4f7eb7bf4131b 100644 --- a/Geometry/HGCalCommonData/test/python/testHGCalParametersV16DDD_cfg.py +++ b/Geometry/HGCalCommonData/test/python/testHGCalParametersVXDDD_cfg.py @@ -1,9 +1,41 @@ +############################################################################### +# Way to use this: +# cmsRun testHGCalParametersVXDDD_cfg.py type=V17 +# +# Options for type V15, V16, V17 +# +############################################################################### import FWCore.ParameterSet.Config as cms +import os, sys, imp, re +import FWCore.ParameterSet.VarParsing as VarParsing + +#################################################################### +### SETUP OPTIONS +options = VarParsing.VarParsing('standard') +options.register('type', + "V17", + VarParsing.VarParsing.multiplicity.singleton, + VarParsing.VarParsing.varType.string, + "type of operations: V15, V16, V17") + +### get and parse the command line arguments +options.parseArguments() +print(options) + from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 process = cms.Process("HGCalParametersTest",Phase2C11) + +#################################################################### +# Use the options +if (options.type == "V15"): + process.load("Geometry.HGCalCommonData.testHGCalV15XML_cfi") +elif (options.type == "V16"): + process.load("Geometry.HGCalCommonData.testHGCalV16XML_cfi") +else: + process.load("Geometry.HGCalCommonData.testHGCalV17XML_cfi") + process.load("SimGeneral.HepPDTESSource.pdt_cfi") -process.load("Geometry.HGCalCommonData.testHGCalV16XML_cfi") process.load("Geometry.HGCalCommonData.hgcalV15ParametersInitialization_cfi") process.load('FWCore.MessageService.MessageLogger_cfi') diff --git a/Geometry/HGCalGeometry/interface/HGCalGeometryLoader.h b/Geometry/HGCalGeometry/interface/HGCalGeometryLoader.h index 8499f83005d33..759a1241f6bd4 100644 --- a/Geometry/HGCalGeometry/interface/HGCalGeometryLoader.h +++ b/Geometry/HGCalGeometry/interface/HGCalGeometryLoader.h @@ -13,7 +13,7 @@ class HGCalGeometryLoader { typedef std::vector ParmVec; HGCalGeometryLoader(); - ~HGCalGeometryLoader(); + ~HGCalGeometryLoader() = default; HGCalGeometry* build(const HGCalTopology&); diff --git a/Geometry/HGCalGeometry/src/HGCalGeometry.cc b/Geometry/HGCalGeometry/src/HGCalGeometry.cc index d96356e9fdb1d..a053da226b46c 100644 --- a/Geometry/HGCalGeometry/src/HGCalGeometry.cc +++ b/Geometry/HGCalGeometry/src/HGCalGeometry.cc @@ -402,7 +402,8 @@ HGCalGeometry::CornersVec HGCalGeometry::getNewCorners(const DetId& detid, bool co[i] = GlobalPoint( (r + signr[i] * dr) * cos(fi + signf[i] * dfi), (r + signr[i] * dr) * sin(fi + signf[i] * dfi), (v.z() + dz)); } - co[ncorner - 1] = co[0]; + // Used to pass downstream the thickness of this cell + co[ncorner - 1] = GlobalPoint(0, 0, -2 * dz); } else if (cellIndex < m_cellVec.size() && m_det != DetId::HGCalHSc) { std::pair xy; float dx = k_fac2 * m_cellVec[cellIndex].param()[FlatHexagon::k_r]; @@ -438,7 +439,8 @@ HGCalGeometry::CornersVec HGCalGeometry::getNewCorners(const DetId& detid, bool co[i] = GlobalPoint(xx, xyglob.second, id.zSide * (zz + dz)); } } - co[ncorner - 1] = co[0]; + // Used to pass downstream the thickness of this cell + co[ncorner - 1] = GlobalPoint(0, 0, -2 * dz); } return co; } diff --git a/Geometry/HGCalGeometry/src/HGCalGeometryLoader.cc b/Geometry/HGCalGeometry/src/HGCalGeometryLoader.cc index 16719ac17ac4c..e7c43bf55b336 100644 --- a/Geometry/HGCalGeometry/src/HGCalGeometryLoader.cc +++ b/Geometry/HGCalGeometry/src/HGCalGeometryLoader.cc @@ -18,8 +18,6 @@ typedef std::vector ParmVec; HGCalGeometryLoader::HGCalGeometryLoader() : twoBysqrt3_(2.0 / std::sqrt(3.0)) {} -HGCalGeometryLoader::~HGCalGeometryLoader() {} - HGCalGeometry* HGCalGeometryLoader::build(const HGCalTopology& topology) { // allocate geometry HGCalGeometry* geom = new HGCalGeometry(topology); @@ -30,7 +28,7 @@ HGCalGeometry* HGCalGeometryLoader::build(const HGCalTopology& topology) { uint32_t numberOfShapes = (topology.tileTrapezoid() ? HGCalGeometry::k_NumberOfShapesTrd : HGCalGeometry::k_NumberOfShapes); HGCalGeometryMode::GeometryMode mode = topology.geomMode(); - bool test = (mode == HGCalGeometryMode::TrapezoidModule); + bool test = ((mode == HGCalGeometryMode::TrapezoidModule) || (mode == HGCalGeometryMode::TrapezoidCassette)); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "Number of Cells " << numberOfCells << ":" << numberExpected << " for sub-detector " << topology.subDetector() << " Shapes " << numberOfShapes << ":" << parametersPerShape_ @@ -145,8 +143,9 @@ HGCalGeometry* HGCalGeometryLoader::build(const HGCalTopology& topology) { int u = HGCalWaferIndex::waferU(copy); int v = HGCalWaferIndex::waferV(copy); int type = topology.dddConstants().getTypeHex(layer, u, v); - DetId detId = (topology.isHFNose() ? (DetId)(HFNoseDetId(zside, type, layer, u, v, 0, 0)) - : (DetId)(HGCSiliconDetId(det, zside, type, layer, u, v, 0, 0))); + DetId detId = + (topology.isHFNose() ? static_cast(HFNoseDetId(zside, type, layer, u, v, 0, 0)) + : static_cast(HGCSiliconDetId(det, zside, type, layer, u, v, 0, 0))); const auto& w = topology.dddConstants().waferPosition(layer, u, v, true, true); double xx = (zside > 0) ? w.first : -w.first; CLHEP::Hep3Vector h3v(xx, w.second, mytr.h3v.z()); diff --git a/Geometry/HGCalGeometry/src/HGCalMouseBite.cc b/Geometry/HGCalGeometry/src/HGCalMouseBite.cc index 067170a81851b..b69957f39228a 100644 --- a/Geometry/HGCalGeometry/src/HGCalMouseBite.cc +++ b/Geometry/HGCalGeometry/src/HGCalMouseBite.cc @@ -24,13 +24,13 @@ HGCalMouseBite::HGCalMouseBite(const HGCalDDDConstants& hgc, const bool rot) { static const double sqrt3 = std::sqrt(3.0); int nf(HGCSiliconDetId::HGCalFineN); int nf2 = nf / 2; - double Rf = wafersize / (3.0 * nf); - double rf = 0.5 * Rf * sqrt3; + double delXF = wafersize / (3.0 * nf); + double delYF = 0.5 * delXF * sqrt3; for (int u = 0; u < 2 * nf; ++u) { for (int v = 0; v < 2 * nf; ++v) { if (((v - u) < nf) && ((u - v) <= nf)) { - double yp = std::abs((u - 0.5 * v - nf2) * 2 * rf); - double xp = std::abs((1.5 * (v - nf) + 1.0) * Rf); + double yp = std::abs((u - 0.5 * v - nf2) * 2 * delYF); + double xp = std::abs((1.5 * (v - nf) + 1.0) * delXF); for (auto proj : projXY) { double dist = (rot ? (yp * proj.first + xp * proj.second) : (xp * proj.first + yp * proj.second)); if (dist > cut) { @@ -50,13 +50,13 @@ HGCalMouseBite::HGCalMouseBite(const HGCalDDDConstants& hgc, const bool rot) { #endif int nc(HGCSiliconDetId::HGCalCoarseN); int nc2 = nc / 2; - double Rc = hgc.getParameter()->waferSize_ / (3.0 * nc); - double rc = 0.5 * Rc * sqrt3; + double delXC = hgc.getParameter()->waferSize_ / (3.0 * nc); + double delYC = 0.5 * delXC * sqrt3; for (int u = 0; u < 2 * nc; ++u) { for (int v = 0; v < 2 * nc; ++v) { if (((v - u) < nc) && ((u - v) <= nc)) { - double yp = (u - 0.5 * v - nc2) * 2 * rc; - double xp = (1.5 * (v - nc) + 1.0) * Rc; + double yp = (u - 0.5 * v - nc2) * 2 * delYC; + double xp = (1.5 * (v - nc) + 1.0) * delXC; for (auto proj : projXY) { double dist = (rot ? (yp * proj.first + xp * proj.second) : (xp * proj.first + yp * proj.second)); if (dist > cut) diff --git a/Geometry/HcalCommonData/test/python/testPhase1_cfg.py b/Geometry/HcalCommonData/test/python/testPhase1_cfg.py index e7725292c924c..27455034c4190 100644 --- a/Geometry/HcalCommonData/test/python/testPhase1_cfg.py +++ b/Geometry/HcalCommonData/test/python/testPhase1_cfg.py @@ -92,7 +92,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.generator = cms.EDFilter("Pythia8GeneratorFilter", pythiaHepMCVerbosity = cms.untracked.bool(False), diff --git a/Geometry/HcalTowerAlgo/test/python/runHcalDetIdTester_cfg.py b/Geometry/HcalTowerAlgo/test/python/runHcalDetIdTester_cfg.py index 0165154e4655c..f866c71c27c73 100644 --- a/Geometry/HcalTowerAlgo/test/python/runHcalDetIdTester_cfg.py +++ b/Geometry/HcalTowerAlgo/test/python/runHcalDetIdTester_cfg.py @@ -14,7 +14,7 @@ process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.source = cms.Source("EmptySource") process.maxEvents = cms.untracked.PSet( diff --git a/Geometry/HcalTowerAlgo/test/python/runHcalGeometryDetIdAnalyzer_cfg.py b/Geometry/HcalTowerAlgo/test/python/runHcalGeometryDetIdAnalyzer_cfg.py index 115b95f895597..7888819171062 100644 --- a/Geometry/HcalTowerAlgo/test/python/runHcalGeometryDetIdAnalyzer_cfg.py +++ b/Geometry/HcalTowerAlgo/test/python/runHcalGeometryDetIdAnalyzer_cfg.py @@ -14,7 +14,7 @@ process.load('Configuration.StandardSequences.GeometrySimDB_cff') process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.source = cms.Source("EmptySource") diff --git a/Geometry/HcalTowerAlgo/test/python/runHcalGeometryDetIdTester_cfg.py b/Geometry/HcalTowerAlgo/test/python/runHcalGeometryDetIdTester_cfg.py index 43c88435b82b1..801001a48ae75 100644 --- a/Geometry/HcalTowerAlgo/test/python/runHcalGeometryDetIdTester_cfg.py +++ b/Geometry/HcalTowerAlgo/test/python/runHcalGeometryDetIdTester_cfg.py @@ -15,7 +15,7 @@ process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') from Configuration.AlCa.GlobalTag import GlobalTag #process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2018_realistic', '') -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.source = cms.Source("EmptySource") process.maxEvents = cms.untracked.PSet( diff --git a/Geometry/HcalTowerAlgo/test/python/runHcalGeometryTester_cfg.py b/Geometry/HcalTowerAlgo/test/python/runHcalGeometryTester_cfg.py index e9781196f5512..1cb78a5a7f170 100644 --- a/Geometry/HcalTowerAlgo/test/python/runHcalGeometryTester_cfg.py +++ b/Geometry/HcalTowerAlgo/test/python/runHcalGeometryTester_cfg.py @@ -9,7 +9,7 @@ process.load('Configuration.Geometry.GeometryExtended2021Reco_cff') process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.source = cms.Source("EmptySource") diff --git a/Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT800_2021_06/pixel.xml b/Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT800_2021_06/pixel.xml deleted file mode 100644 index a61c94e0291f2..0000000000000 --- a/Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT800_2021_06/pixel.xml +++ /dev/null @@ -1,13759 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - 0*mm, 0*mm, 0*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 2.75*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, -4*mm - - - - - - - - - - - - - - 0*mm, 0*mm, 4*mm - - - - - - diff --git a/Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT800_2021_06/pixelStructureTopology.xml b/Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT800_2021_06/pixelStructureTopology.xml deleted file mode 100644 index 113abf2877428..0000000000000 --- a/Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT800_2021_06/pixelStructureTopology.xml +++ /dev/null @@ -1,749 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT803_2021_12/pixelStructureTopology.xml b/Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT803_2021_12/pixelStructureTopology.xml deleted file mode 100644 index 74f79618bd732..0000000000000 --- a/Geometry/TrackerCommonData/data/PhaseII/Tracker_DD4hep_compatible_IT803_2021_12/pixelStructureTopology.xml +++ /dev/null @@ -1,696 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/TrackerCommonData/test/python/dd4hepRun3_cfg.py b/Geometry/TrackerCommonData/test/python/dd4hepRun3_cfg.py index 676d3c3568a9b..11497911ef640 100644 --- a/Geometry/TrackerCommonData/test/python/dd4hepRun3_cfg.py +++ b/Geometry/TrackerCommonData/test/python/dd4hepRun3_cfg.py @@ -89,7 +89,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.generator = cms.EDFilter("Pythia8GeneratorFilter", PythiaParameters = cms.PSet( diff --git a/Geometry/TrackerCommonData/test/python/run21.py b/Geometry/TrackerCommonData/test/python/run21.py index f620e084ee4c1..eda8a5884b5dd 100644 --- a/Geometry/TrackerCommonData/test/python/run21.py +++ b/Geometry/TrackerCommonData/test/python/run21.py @@ -85,7 +85,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.load('Configuration.Generator.TTbar_14TeV_TuneCP5_cfi') diff --git a/Geometry/TrackerCommonData/test/python/run21Zero.py b/Geometry/TrackerCommonData/test/python/run21Zero.py index 7fcdfe7cbd2a6..c1bfd385da21f 100644 --- a/Geometry/TrackerCommonData/test/python/run21Zero.py +++ b/Geometry/TrackerCommonData/test/python/run21Zero.py @@ -89,7 +89,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.load('Configuration.Generator.TTbar_14TeV_TuneCP5_cfi') process.ProductionFilterSequence = cms.Sequence(process.generator) diff --git a/Geometry/TrackerCommonData/test/python/run21flat.py b/Geometry/TrackerCommonData/test/python/run21flat.py index b8ee620d1d858..1be50200bd7bc 100644 --- a/Geometry/TrackerCommonData/test/python/run21flat.py +++ b/Geometry/TrackerCommonData/test/python/run21flat.py @@ -112,7 +112,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.load('Configuration.Generator.TTbar_14TeV_TuneCP5_cfi') process.ProductionFilterSequence = cms.Sequence(process.generator) diff --git a/Geometry/VeryForwardData/test/testRun3_cfg.py b/Geometry/VeryForwardData/test/testRun3_cfg.py index 8c15217de6b5d..ee31ab8dec400 100644 --- a/Geometry/VeryForwardData/test/testRun3_cfg.py +++ b/Geometry/VeryForwardData/test/testRun3_cfg.py @@ -91,7 +91,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.generator = cms.EDFilter("Pythia8GeneratorFilter", pythiaHepMCVerbosity = cms.untracked.bool(False), diff --git a/HLTrigger/Configuration/python/CustomConfigs.py b/HLTrigger/Configuration/python/CustomConfigs.py index b4beb9eca3874..95f715d68e6f0 100644 --- a/HLTrigger/Configuration/python/CustomConfigs.py +++ b/HLTrigger/Configuration/python/CustomConfigs.py @@ -17,15 +17,15 @@ def ProcessName(process): def Base(process): # default modifications - process.options.wantSummary = cms.untracked.bool(True) - process.options.numberOfThreads = cms.untracked.uint32( 4 ) - process.options.numberOfStreams = cms.untracked.uint32( 0 ) - process.options.sizeOfStackForThreadsInKB = cms.untracked.uint32( 10*1024 ) - - process.MessageLogger.TriggerSummaryProducerAOD=cms.untracked.PSet() - process.MessageLogger.L1GtTrigReport=cms.untracked.PSet() - process.MessageLogger.L1TGlobalSummary=cms.untracked.PSet() - process.MessageLogger.HLTrigReport=cms.untracked.PSet() + process.options.wantSummary = True + process.options.numberOfThreads = 4 + process.options.numberOfStreams = 0 + process.options.sizeOfStackForThreadsInKB = 10*1024 + + process.MessageLogger.TriggerSummaryProducerAOD = cms.untracked.PSet() + process.MessageLogger.L1GtTrigReport = cms.untracked.PSet() + process.MessageLogger.L1TGlobalSummary = cms.untracked.PSet() + process.MessageLogger.HLTrigReport = cms.untracked.PSet() # No longer override - instead use GT config as provided via cmsDriver ## override the GlobalTag, connection string and pfnPrefix diff --git a/HLTrigger/Configuration/python/HLT_FULL_cff.py b/HLTrigger/Configuration/python/HLT_FULL_cff.py index 92cfef5d9b8d5..403a869a4704f 100644 --- a/HLTrigger/Configuration/python/HLT_FULL_cff.py +++ b/HLTrigger/Configuration/python/HLT_FULL_cff.py @@ -1,6 +1,6 @@ # hltGetConfiguration --cff --data /dev/CMSSW_12_4_0/HLT --type FULL -# /dev/CMSSW_12_4_0/HLT/V24 (CMSSW_12_4_0_pre4) +# /dev/CMSSW_12_4_0/HLT/V33 (CMSSW_12_4_0_pre4) import FWCore.ParameterSet.Config as cms @@ -12,7 +12,7 @@ fragment.ProcessAcceleratorCUDA = ProcessAcceleratorCUDA() fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_4_0/HLT/V24') + tableName = cms.string('/dev/CMSSW_12_4_0/HLT/V33') ) fragment.transferSystem = cms.PSet( @@ -2799,7 +2799,20 @@ 'HLT_CscCluster_Loose_v1', 'HLT_CscCluster_Medium_v1', 'HLT_CscCluster_Tight_v1', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT425_v9', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1', @@ -2838,6 +2851,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2', 'HLT_DoubleL2Mu50_v2', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10', 'HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10', @@ -2853,6 +2867,7 @@ 'HLT_HIL3DoubleMu0_OS_m2p5to4p5ForPPRef_v6', 'HLT_HIL3DoubleMu0_OS_m7to14ForPPRef_v6', 'HLT_L1DoubleMu0_v1', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15', @@ -2954,6 +2969,17 @@ 'HLT_Trimuon5_3p5_2_Upsilon_Muon_v5', 'HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v3' ), EGamma = cms.vstring( 'HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4', + 'HLT_DiPhoton10Time1ns_v1', + 'HLT_DiPhoton10Time1p2ns_v1', + 'HLT_DiPhoton10Time1p4ns_v1', + 'HLT_DiPhoton10Time1p6ns_v1', + 'HLT_DiPhoton10Time1p8ns_v1', + 'HLT_DiPhoton10Time2ns_v1', + 'HLT_DiPhoton10_CaloIdL_v1', + 'HLT_DiPhoton10sminlt0p12_v1', + 'HLT_DiPhoton10sminlt0p14_v1', + 'HLT_DiPhoton10sminlt0p16_v1', + 'HLT_DiPhoton10sminlt0p1_v1', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13', 'HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13', 'HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2', @@ -4077,7 +4103,8 @@ 'MC_PFHT_v16', 'MC_PFMET_v17', 'MC_PFMHT_v16', - 'MC_ReducedIterativeTracking_v12' ), + 'MC_ReducedIterativeTracking_v12', + 'MC_Run3_PFScoutingPixelTracking_v16' ), MuPlusX = cms.vstring( 'HLT_HIL2Mu3Eta2p5_AK4CaloJet100Eta2p1ForPPRef_v11', 'HLT_HIL2Mu3Eta2p5_AK4CaloJet40Eta2p1ForPPRef_v11', 'HLT_HIL2Mu3Eta2p5_AK4CaloJet60Eta2p1ForPPRef_v11', @@ -4269,6 +4296,17 @@ 'HLT_DiPFJetAve60_v14', 'HLT_DiPFJetAve80_HFJEC_v16', 'HLT_DiPFJetAve80_v13', + 'HLT_DiPhoton10Time1ns_v1', + 'HLT_DiPhoton10Time1p2ns_v1', + 'HLT_DiPhoton10Time1p4ns_v1', + 'HLT_DiPhoton10Time1p6ns_v1', + 'HLT_DiPhoton10Time1p8ns_v1', + 'HLT_DiPhoton10Time2ns_v1', + 'HLT_DiPhoton10_CaloIdL_v1', + 'HLT_DiPhoton10sminlt0p12_v1', + 'HLT_DiPhoton10sminlt0p14_v1', + 'HLT_DiPhoton10sminlt0p16_v1', + 'HLT_DiPhoton10sminlt0p1_v1', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13', 'HLT_Dimuon0_Jpsi3p5_Muon2_v5', 'HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7', @@ -4333,6 +4371,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2', 'HLT_DoubleL2Mu50_v2', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1', 'HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1', @@ -4368,8 +4407,7 @@ 'HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepJet_p71_v1', 'HLT_DoublePFJets200_PFBTagDeepCSV_p71_v1', 'HLT_DoublePFJets200_PFBTagDeepJet_p71_v1', - 'HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1', - 'HLT_DoublePFJets350_PFBTagDeepJet_p71_v1', + 'HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1')+cms.vstring( 'HLT_DoublePFJets350_PFBTagDeepJet_p71_v1', 'HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1', 'HLT_DoublePFJets40_PFBTagDeepCSV_p71_v1', 'HLT_DoublePFJets40_PFBTagDeepJet_p71_v1', @@ -4380,7 +4418,8 @@ 'HLT_Ele115_CaloIdVT_GsfTrkIdT_v14', 'HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v18', 'HLT_Ele135_CaloIdVT_GsfTrkIdT_v7', - 'HLT_Ele145_CaloIdVT_GsfTrkIdT_v8')+cms.vstring( 'HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3', + 'HLT_Ele145_CaloIdVT_GsfTrkIdT_v8', + 'HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3', 'HLT_Ele15_Ele8_CaloIdL_TrackIdL_IsoVL_v3', 'HLT_Ele15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8', 'HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v16', @@ -4458,7 +4497,20 @@ 'HLT_HIZeroBias_part7_v6', 'HLT_HIZeroBias_part8_v6', 'HLT_HIZeroBias_part9_v6', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT425_v9', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1', @@ -4561,6 +4613,7 @@ 'HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5', 'HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4', 'HLT_L2Mu50_v2', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1', 'HLT_MET105_IsoTrk50_v9', 'HLT_MET120_IsoTrk50_v9', 'HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12', @@ -4608,8 +4661,7 @@ 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v3', 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v3', 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v3', - 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3', - 'HLT_Mu19_TrkIsoVVL_v4', + 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3')+cms.vstring( 'HLT_Mu19_TrkIsoVVL_v4', 'HLT_Mu19_v4', 'HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v1', 'HLT_Mu20_Mu10_DZ_v4', @@ -4634,7 +4686,8 @@ 'HLT_Mu37_Ele27_CaloIdL_MW_v5', 'HLT_Mu37_TkMu27_v5', 'HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v1', - 'HLT_Mu3_PFJet40_v16')+cms.vstring( 'HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2', + 'HLT_Mu3_PFJet40_v16', + 'HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2', 'HLT_Mu3er1p5_PFJet100er2p5_PFMET70_PFMHT70_IDTight_v2', 'HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v2', 'HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v2', @@ -4862,8 +4915,7 @@ 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1', - 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1', - 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1', + 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1')+cms.vstring( 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1', @@ -4888,7 +4940,8 @@ 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1', 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1', 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1', - 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1')+cms.vstring( 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1', + 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1', + 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1', 'HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part0_v1', 'HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part1_v1', 'HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part2_v1', @@ -18383,9 +18436,9 @@ propagatorAny = cms.ESInputTag( "","SteppingHelixPropagatorAny" ), propagatorOpposite = cms.ESInputTag( "","hltESPSteppingHelixPropagatorOpposite" ) ) -fragment.hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9 = cms.EDFilter( "HLTL1TSeed", +fragment.hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50 = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleMu0er1p5_SQ_OS_dR_Max1p4 OR L1_DoubleMu0er1p4_SQ_OS_dR_Max1p4 OR L1_TripleMu_5SQ_3SQ_0_DoubleMu_5_3_SQ_OS_Mass_Max9 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_DoubleMu4p5_SQ_OS_dR_Max1p2" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleMu0er2p0_SQ_OS_dEta_Max1p6 OR L1_DoubleMu0er2p0_SQ_OS_dEta_Max1p5 OR L1_DoubleMu0er1p5_SQ_OS_dR_Max1p4 OR L1_DoubleMu0er1p4_SQ_OS_dR_Max1p4 OR L1_TripleMu_5SQ_3SQ_0_DoubleMu_5_3_SQ_OS_Mass_Max9 OR L1_TripleMu_5SQ_3SQ_0OQ_DoubleMu_5_3_SQ_OS_Mass_Max9 OR L1_TripleMu_2SQ_1p5SQ_0OQ_Mass_Max12 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_DoubleMu4p5_SQ_OS_dR_Max1p2" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -18402,7 +18455,7 @@ fragment.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 = cms.EDFilter( "HLTMuonL1TFilter", saveTags = cms.bool( True ), CandTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - PreviousCandTag = cms.InputTag( "hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9" ), + PreviousCandTag = cms.InputTag( "hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50" ), MaxEta = cms.double( 2.5 ), MinPt = cms.double( 0.0 ), MaxDeltaR = cms.double( 0.3 ), @@ -18457,10 +18510,10 @@ MaxDr = cms.double( 0.6 ), MaxDz = cms.double( 9999.0 ), ChargeOpt = cms.int32( 0 ), - MinPtPair = cms.vdouble( 6.0 ), + MinPtPair = cms.vdouble( 5.0 ), MaxPtPair = cms.vdouble( 1.0E125 ), MinPtMax = cms.vdouble( 0.0 ), - MinPtMin = cms.vdouble( 3.0 ), + MinPtMin = cms.vdouble( 2.5 ), MaxPtMin = cms.vdouble( 1.0E125 ), MinInvMass = cms.vdouble( 0.5 ), MaxInvMass = cms.vdouble( 1.7 ), @@ -19039,7 +19092,7 @@ PreviousCandTag = cms.InputTag( "hltdstau3mumuontrkFltr" ), MaxEta = cms.double( 2.5 ), MinPt = cms.double( 1.2 ), - MinPtTriplet = cms.double( 8.0 ), + MinPtTriplet = cms.double( 7.0 ), MinInvMass = cms.double( 1.6 ), MaxInvMass = cms.double( 2.1 ), ChargeOpt = cms.int32( -1 ) @@ -65391,7 +65444,7 @@ ) fragment.hltL1sDSTRun3PFScoutingPixelTracking = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleMu_12_5 OR L1_DoubleMu_15_7 OR L1_HTT200er OR L1_HTT255er OR L1_HTT280er OR L1_HTT320er OR L1_HTT360er OR L1_ETT2000 OR L1_HTT400er OR L1_HTT450er OR L1_SingleJet180 OR L1_SingleJet200 OR L1_DoubleJet30er2p5_Mass_Min300_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min330_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min360_dEta_Max1p5 OR L1_DoubleMu4p5er2p0_SQ_OS_Mass_Min7 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_SingleEG36er2p5 OR L1_SingleLooseIsoEG28er2p1" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleMu_12_5 OR L1_DoubleMu_15_7 OR L1_HTT200er OR L1_HTT255er OR L1_HTT280er OR L1_HTT320er OR L1_HTT360er OR L1_ETT2000 OR L1_HTT400er OR L1_HTT450er OR L1_SingleJet180 OR L1_SingleJet200 OR L1_DoubleJet30er2p5_Mass_Min300_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min330_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min360_dEta_Max1p5 OR L1_DoubleMu4p5er2p0_SQ_OS_Mass_Min7 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_SingleLooseIsoEG28er2p1 OR L1_DoubleEG_LooseIso18_LooseIso12_er1p5" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -66586,7 +66639,7 @@ vertexCollection = cms.InputTag( "hltPixelVertices" ), mantissaPrecision = cms.int32( 10 ), vtxMinDist = cms.double( 0.01 ), - ptMin = cms.double( 0.3 ) + ptMin = cms.double( 3.0 ) ) fragment.hltScoutingPrimaryVertexPacker = cms.EDProducer( "HLTScoutingPrimaryVertexProducer", vertexCollection = cms.InputTag( 'hltPixelVertices','','@currentProcess' ), @@ -66642,7 +66695,7 @@ egammaHoverECut = cms.double( 1.0 ), saveRecHitTiming = cms.bool( False ), mantissaPrecision = cms.int32( 10 ), - rechitMatrixSize = cms.int32( 15 ), + rechitMatrixSize = cms.int32( 10 ), rechitZeroSuppression = cms.bool( True ), ecalRechitEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), ecalRechitEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ) @@ -77177,6 +77230,22 @@ MinJets = cms.int32( 1 ), TriggerType = cms.int32( 86 ) ) +fragment.hltL1sMCRun3PFScoutingPixelTracking = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1GlobalDecision" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +fragment.hltPreMCRun3PFScoutingPixelTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltL1sAlCaEcalPi0Eta = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_AlwaysTrue OR L1_IsolatedBunch OR L1_SingleEG8er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG26er2p5 OR L1_SingleEG34er2p5 OR L1_SingleEG36er2p5 OR L1_SingleEG38er2p5 OR L1_SingleEG40er2p5 OR L1_SingleEG42er2p5 OR L1_SingleEG45er2p5 OR L1_SingleEG60 OR L1_SingleIsoEG26er2p5 OR L1_SingleIsoEG28er2p5 OR L1_SingleIsoEG30er2p5 OR L1_SingleIsoEG32er2p5 OR L1_SingleIsoEG34er2p5 OR L1_SingleIsoEG24er2p1 OR L1_SingleIsoEG26er2p1 OR L1_SingleIsoEG28er2p1 OR L1_SingleIsoEG30er2p1 OR L1_SingleIsoEG32er2p1 OR L1_DoubleEG_22_10_er2p5 OR L1_DoubleEG_25_14_er2p5 OR L1_DoubleEG_25_12_er2p5 OR L1_SingleJet35 OR L1_SingleJet60 OR L1_SingleJet90 OR L1_SingleJet120 OR L1_SingleJet140er2p5 OR L1_SingleJet160er2p5 OR L1_SingleJet180 OR L1_SingleJet200 OR L1_DoubleJet40er2p5 OR L1_DoubleJet100er2p5 OR L1_DoubleJet120er2p5 OR L1_QuadJet60er2p5 OR L1_HTT120er OR L1_HTT160er OR L1_HTT200er OR L1_HTT255er OR L1_HTT280er OR L1_HTT320er" ), @@ -82053,7 +82122,7 @@ L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) ) -fragment.hltL1sDoubleTauJet = cms.EDFilter( "HLTL1TSeed", +fragment.hltL1sBigORDoubleTauJet = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_DoubleIsoTau26er2p1_Jet55_RmOvlp_dR0p5" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), @@ -82093,7 +82162,7 @@ L1TauTrigger = cms.InputTag( "hltL1sMu22erIsoTau40er" ) ), cms.PSet( L1CollectionName = cms.string( "DoubleTauJet" ), - L1TauTrigger = cms.InputTag( "hltL1sDoubleTauJet" ) + L1TauTrigger = cms.InputTag( "hltL1sBigORDoubleTauJet" ) ), cms.PSet( L1CollectionName = cms.string( "VBFIsoTau" ), L1TauTrigger = cms.InputTag( "hltL1VBFDiJetIsoTau" ) @@ -82120,7 +82189,7 @@ nExpected = cms.int32( 2 ), L1TauSrc = cms.InputTag( "hltL1sDoubleTauBigOR" ), L2Outcomes = cms.InputTag( 'hltL2TauTagNNProducer','DoubleTau' ), - DiscrWP = cms.double( 0.4327 ), + DiscrWP = cms.double( 0.386 ), l1TauPtThreshold = cms.double( 250.0 ) ) fragment.hltL1sTauVeryBigOR = cms.EDFilter( "HLTL1TSeed", @@ -82540,10 +82609,9 @@ is_online = cms.bool( True ), VSeWP = cms.vstring( '-1.' ), VSmuWP = cms.vstring( '-1.' ), - VSjetWP = cms.vstring( 'double t1 = 0.5701, t2 = 0.4610, t3 = 0.125, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', - 'double t1 = 0.844, t2 = 0.8457, t3 = 0.125, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', - 'double t1 = 0.5890, t2 = 0.3310, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', - 'double t1 = 0.9619, t2 = 0.9269, t3 = 0.5, x1 = 50, x2 = 300, x3 = 500; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', + VSjetWP = cms.vstring( 'double t1 = 0.62, t2 = 0.3891, t3 = 0.05, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', + 'double t1 = 0.7045, t2 = 0.7029, t3 = 0.05, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', + 'double t1 = 0.5419, t2 = 0.4837, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', 'double t1 = 0.6072, t2 = 0.125, x1 = 180, x2 = 500; if (pt <= x1) return t1; if (pt >= x2) return t2; return (t2 - t1) / (x2 - x1) * (pt - x1) + t1;' ), basicTauDiscriminators = cms.untracked.InputTag( "hltHpsPFTauBasicDiscriminatorsForDeepTau" ), basicTauDiscriminatorsdR03 = cms.untracked.InputTag( "hltHpsPFTauBasicDiscriminatorsdR03ForDeepTau" ), @@ -82559,7 +82627,7 @@ cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.5701, t2 = 0.4610, t3 = 0.125, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.62, t2 = 0.3891, t3 = 0.05, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -82582,15 +82650,6 @@ MaxEta = cms.double( 2.1 ), MinN = cms.int32( 2 ) ) -fragment.hltHpsDoublePFTau35MediumDitauWPDeepTauDz02 = cms.EDFilter( "HLTPFTauPairDzMatchFilter", - saveTags = cms.bool( True ), - JetSrc = cms.InputTag( "hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatch" ), - JetMinPt = cms.double( 35.0 ), - JetMaxEta = cms.double( 2.1 ), - JetMinDR = cms.double( 0.5 ), - JetMaxDZ = cms.double( 0.2 ), - TriggerType = cms.int32( 84 ) -) fragment.hltPreDoubleMediumChargedIsoPFTauHPS40Trk1eta2p1 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -82935,10 +82994,10 @@ discriminators = cms.VPSet( ), discriminatorContainers = cms.VPSet( - cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), + cms.PSet( discriminator = cms.InputTag( 'hltHpsPFTauDeepTauProducer','VSjet' ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.844, t2 = 0.8457, t3 = 0.125, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.7045, t2 = 0.7029, t3 = 0.05, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -83017,7 +83076,7 @@ cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.5890, t2 = 0.3310, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.5419, t2 = 0.4837, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -83495,7 +83554,7 @@ nExpected = cms.int32( 1 ), L1TauSrc = cms.InputTag( "hltL1sBigOrMuXXerIsoTauYYer" ), L2Outcomes = cms.InputTag( 'hltL2TauTagNNProducer','MuXXTauYY' ), - DiscrWP = cms.double( 0.4327 ), + DiscrWP = cms.double( 0.386 ), l1TauPtThreshold = cms.double( 250.0 ) ) fragment.hltHpsSinglePFTau35 = cms.EDFilter( "HLT1PFTau", @@ -83613,7 +83672,7 @@ saveTags = cms.bool( True ), Jets = cms.InputTag( "hltPFJetForBtag" ), JetTags = cms.InputTag( 'hltDeepJetDiscriminatorsJetTags','BvsAll' ), - MinTag = cms.double( 0.24 ), + MinTag = cms.double( 0.28746 ), MaxTag = cms.double( 999999.0 ), MinJets = cms.int32( 2 ), TriggerType = cms.int32( 86 ) @@ -84974,6 +85033,18 @@ TriggerType = cms.int32( 85 ), deltaR = cms.double( 0.8 ) ) +fragment.hltL1sDoubleTauJet = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleIsoTau26er2p1_Jet55_RmOvlp_dR0p5" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) fragment.hltPreDoubleMediumDeepTauIsoPFTauHPS30L2NNeta2p1PFJet60 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -84981,9 +85052,9 @@ fragment.hltL2DoubleTauJetTagNNFilter = cms.EDFilter( "L2TauTagFilter", saveTags = cms.bool( True ), nExpected = cms.int32( 2 ), - L1TauSrc = cms.InputTag( "hltL1sDoubleTauJet" ), + L1TauSrc = cms.InputTag( "hltL1sBigORDoubleTauJet" ), L2Outcomes = cms.InputTag( 'hltL2TauTagNNProducer','DoubleTauJet' ), - DiscrWP = cms.double( 0.4327 ), + DiscrWP = cms.double( 0.386 ), l1TauPtThreshold = cms.double( 250.0 ) ) fragment.hltHpsSelectedPFTausMediumDitauWPDeepTauDoubleTauJet = cms.EDFilter( "PFTauSelector", @@ -84995,7 +85066,7 @@ cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.5701, t2 = 0.4610, t3 = 0.125, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.62, t2 = 0.3891, t3 = 0.05, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -85018,15 +85089,6 @@ MaxEta = cms.double( 2.1 ), MinN = cms.int32( 2 ) ) -fragment.hltHpsDoublePFTau30MediumDitauWPDeepTauDz02DoubleTauJet = cms.EDFilter( "HLTPFTauPairDzMatchFilter", - saveTags = cms.bool( True ), - JetSrc = cms.InputTag( "hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatchDoubleTauJet" ), - JetMinPt = cms.double( 30.0 ), - JetMaxEta = cms.double( 2.1 ), - JetMinDR = cms.double( 0.5 ), - JetMaxDZ = cms.double( 0.2 ), - TriggerType = cms.int32( 84 ) -) fragment.hlt1PFJet60L1HLTMatched = cms.EDFilter( "HLT1PFJet", saveTags = cms.bool( True ), inputTag = cms.InputTag( "hltPFJetsCorrectedMatchedToL1" ), @@ -88712,6 +88774,1707 @@ MaxPt = cms.double( -1.0 ), MinN = cms.int32( 1 ) ) +fragment.hltPreDoubleL3Iter4Mu1610NoVtxDxyMin0p01cm = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltIterL3TrajSeedOIStateFromDisplacedL2Muons = cms.EDProducer( "TSGFromL2Muon", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSteppingHelixPropagatorOpposite', + 'hltESPSteppingHelixPropagatorAlong' ) + ), + MuonTrackingRegionBuilder = cms.PSet( ), + TrackerSeedCleaner = cms.PSet( ), + TkSeedGenerator = cms.PSet( + copyMuonRecHit = cms.bool( False ), + propagatorName = cms.string( "hltESPSteppingHelixPropagatorAlong" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + errorMatrixPset = cms.PSet( + atIP = cms.bool( True ), + action = cms.string( "use" ), + errorMatrixValuesPSet = cms.PSet( + xAxis = cms.vdouble( 0.0, 13.0, 30.0, 70.0, 1000.0 ), + zAxis = cms.vdouble( -3.14159, 3.14159 ), + yAxis = cms.vdouble( 0.0, 1.0, 1.4, 10.0 ), + pf3_V14 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V25 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V13 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V24 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V35 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V12 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V23 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V34 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V45 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V11 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V22 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V33 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V44 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V55 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V15 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ) + ) + ), + ComponentName = cms.string( "TSGForRoadSearch" ), + maxChi2 = cms.double( 40.0 ), + manySeeds = cms.bool( False ), + propagatorCompatibleName = cms.string( "hltESPSteppingHelixPropagatorOpposite" ), + option = cms.uint32( 3 ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + PtCut = cms.double( 1.0 ), + PCut = cms.double( 2.5 ) +) +fragment.hltIterL3OIStateGlbDisplacedTrackCandidates = cms.EDProducer( "CkfTrackCandidateMaker", + cleanTrajectoryAfterInOut = cms.bool( False ), + doSeedingRegionRebuilding = cms.bool( False ), + onlyPixelHitsForSeedCleaner = cms.bool( False ), + reverseTrajectories = cms.bool( True ), + useHitsSplitting = cms.bool( False ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + src = cms.InputTag( "hltIterL3TrajSeedOIStateFromDisplacedL2Muons" ), + clustersToSkip = cms.InputTag( "" ), + phase2clustersToSkip = cms.InputTag( "" ), + TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetMuonCkfTrajectoryBuilder" ) ), + TransientInitialStateEstimatorParameters = cms.PSet( + propagatorAlongTISE = cms.string( "PropagatorWithMaterial" ), + numberMeasurementsForFit = cms.int32( 3 ), + propagatorOppositeTISE = cms.string( "PropagatorWithMaterialOpposite" ) + ), + numHitsForSeedCleaner = cms.int32( 4 ), + NavigationSchool = cms.string( "SimpleNavigationSchool" ), + RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), + TrajectoryCleaner = cms.string( "muonSeededTrajectoryCleanerBySharedHits" ), + maxNSeeds = cms.uint32( 500000 ), + maxSeedsBeforeCleaning = cms.uint32( 5000 ) +) +fragment.hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks = cms.EDProducer( "TrackProducer", + useSimpleMF = cms.bool( False ), + SimpleMagneticField = cms.string( "" ), + src = cms.InputTag( "hltIterL3OIStateGlbDisplacedTrackCandidates" ), + clusterRemovalInfo = cms.InputTag( "" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Fitter = cms.string( "hltESPKFFittingSmootherWithOutliersRejectionAndRK" ), + useHitsSplitting = cms.bool( False ), + alias = cms.untracked.string( "" ), + TrajectoryInEvent = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + AlgorithmName = cms.string( "iter10" ), + Propagator = cms.string( "PropagatorWithMaterial" ), + GeometricInnerState = cms.bool( True ), + NavigationSchool = cms.string( "" ), + MeasurementTracker = cms.string( "" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ) +) +fragment.hltL3GlbDisplacedMuonsIterL3OIState = cms.EDProducer( "L3MuonProducer", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSmartPropagatorAny', + 'SteppingHelixPropagatorAny', + 'hltESPSmartPropagator', + 'hltESPSteppingHelixPropagatorOpposite' ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + TrackLoaderParameters = cms.PSet( + MuonSeededTracksInstance = cms.untracked.string( "L2Seeded" ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + DoSmoothing = cms.bool( True ), + SmoothTkTrack = cms.untracked.bool( False ), + VertexConstraint = cms.bool( False ), + MuonUpdatorAtVertexParameters = cms.PSet( + MaxChi2 = cms.double( 1000000.0 ), + BeamSpotPositionErrors = cms.vdouble( 0.1, 0.1, 5.3 ), + Propagator = cms.string( "hltESPSteppingHelixPropagatorOpposite" ) + ), + PutTkTrackIntoEvent = cms.untracked.bool( False ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + L3TrajBuilderParameters = cms.PSet( + PtCut = cms.double( 1.0 ), + TrackerPropagator = cms.string( "SteppingHelixPropagatorAny" ), + GlobalMuonTrackMatcher = cms.PSet( + Chi2Cut_3 = cms.double( 200.0 ), + DeltaDCut_2 = cms.double( 10.0 ), + Eta_threshold = cms.double( 1.2 ), + Quality_2 = cms.double( 15.0 ), + DeltaDCut_1 = cms.double( 40.0 ), + Quality_3 = cms.double( 7.0 ), + DeltaDCut_3 = cms.double( 15.0 ), + Quality_1 = cms.double( 20.0 ), + Pt_threshold1 = cms.double( 0.0 ), + DeltaRCut_2 = cms.double( 0.2 ), + DeltaRCut_1 = cms.double( 0.1 ), + Pt_threshold2 = cms.double( 9.99999999E8 ), + Chi2Cut_1 = cms.double( 50.0 ), + Chi2Cut_2 = cms.double( 50.0 ), + DeltaRCut_3 = cms.double( 1.0 ), + LocChi2Cut = cms.double( 0.001 ), + Propagator = cms.string( "hltESPSmartPropagator" ), + MinPt = cms.double( 1.0 ), + MinP = cms.double( 2.5 ) + ), + ScaleTECxFactor = cms.double( -1.0 ), + tkTrajUseVertex = cms.bool( False ), + MuonTrackingRegionBuilder = cms.PSet( + Rescale_Dz = cms.double( 4.0 ), + Pt_fixed = cms.bool( False ), + Eta_fixed = cms.bool( True ), + Eta_min = cms.double( 0.1 ), + DeltaZ = cms.double( 24.2 ), + maxRegions = cms.int32( 2 ), + EtaR_UpperLimit_Par1 = cms.double( 0.25 ), + UseVertex = cms.bool( False ), + Z_fixed = cms.bool( False ), + PhiR_UpperLimit_Par1 = cms.double( 0.6 ), + PhiR_UpperLimit_Par2 = cms.double( 0.2 ), + Rescale_phi = cms.double( 3.0 ), + DeltaEta = cms.double( 0.2 ), + precise = cms.bool( True ), + OnDemand = cms.int32( -1 ), + EtaR_UpperLimit_Par2 = cms.double( 0.15 ), + MeasurementTrackerName = cms.InputTag( "hltESPMeasurementTracker" ), + vertexCollection = cms.InputTag( "pixelVertices" ), + Pt_min = cms.double( 3.0 ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Phi_fixed = cms.bool( True ), + DeltaR = cms.double( 0.025 ), + input = cms.InputTag( "hltL2Muons" ), + DeltaPhi = cms.double( 0.15 ), + Phi_min = cms.double( 0.1 ), + Rescale_eta = cms.double( 3.0 ) + ), + TrackTransformer = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + RefitDirection = cms.string( "insideOut" ), + RefitRPCHits = cms.bool( True ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + tkTrajBeamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + RefitRPCHits = cms.bool( True ), + tkTrajVertex = cms.InputTag( "Notused" ), + GlbRefitterParameters = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), + RefitFlag = cms.bool( True ), + SkipStation = cms.int32( -1 ), + Chi2CutRPC = cms.double( 1.0 ), + PropDirForCosmics = cms.bool( False ), + CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + HitThreshold = cms.int32( 1 ), + DYTthrs = cms.vint32( 30, 15 ), + TrackerSkipSystem = cms.int32( -1 ), + RefitDirection = cms.string( "insideOut" ), + Chi2CutCSC = cms.double( 150.0 ), + Chi2CutDT = cms.double( 10.0 ), + RefitRPCHits = cms.bool( True ), + TrackerSkipSection = cms.int32( -1 ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonHitsOption = cms.int32( 1 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ) + ), + PCut = cms.double( 2.5 ), + tkTrajMaxDXYBeamSpot = cms.double( 9999.0 ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + tkTrajMaxChi2 = cms.double( 9999.0 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + ScaleTECyFactor = cms.double( -1.0 ), + tkTrajLabel = cms.InputTag( "hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks" ) + ) +) +fragment.hltIterL3NoFiltersNoVtxTrajSeedOIHit = cms.EDProducer( "TSGFromL2Muon", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'PropagatorWithMaterial', + 'hltESPSmartPropagatorAnyOpposite' ) + ), + MuonTrackingRegionBuilder = cms.PSet( ), + TrackerSeedCleaner = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + cleanerFromSharedHits = cms.bool( True ), + directionCleaner = cms.bool( True ), + ptCleaner = cms.bool( True ) + ), + TkSeedGenerator = cms.PSet( + iterativeTSG = cms.PSet( + MeasurementTrackerName = cms.string( "hltESPMeasurementTracker" ), + beamSpot = cms.InputTag( "unused" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + SelectState = cms.bool( False ), + ErrorRescaling = cms.double( 3.0 ), + UseVertexState = cms.bool( True ), + SigmaZ = cms.double( 25.0 ), + MaxChi2 = cms.double( 40.0 ), + errorMatrixPset = cms.PSet( + atIP = cms.bool( True ), + action = cms.string( "use" ), + errorMatrixValuesPSet = cms.PSet( + xAxis = cms.vdouble( 0.0, 13.0, 30.0, 70.0, 1000.0 ), + zAxis = cms.vdouble( -3.14159, 3.14159 ), + yAxis = cms.vdouble( 0.0, 1.0, 1.4, 10.0 ), + pf3_V14 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V25 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V13 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V24 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V35 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V12 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V23 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V34 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V45 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V11 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V22 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V33 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V44 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V55 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V15 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ) + ) + ), + Propagator = cms.string( "hltESPSmartPropagatorAnyOpposite" ), + ComponentName = cms.string( "TSGFromPropagation" ), + UpdateState = cms.bool( True ), + ResetMethod = cms.string( "matrix" ) + ), + PSetNames = cms.vstring( 'skipTSG', + 'iterativeTSG' ), + skipTSG = cms.PSet( ), + ComponentName = cms.string( "DualByL2TSG" ), + L3TkCollectionA = cms.InputTag( "hltL3GlbDisplacedMuonsIterL3OIState" ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + PtCut = cms.double( 1.0 ), + PCut = cms.double( 2.5 ) +) +fragment.hltIterL3OIHitGlbDisplacedTrackCandidates = cms.EDProducer( "CkfTrackCandidateMaker", + cleanTrajectoryAfterInOut = cms.bool( False ), + doSeedingRegionRebuilding = cms.bool( False ), + onlyPixelHitsForSeedCleaner = cms.bool( False ), + reverseTrajectories = cms.bool( True ), + useHitsSplitting = cms.bool( False ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + src = cms.InputTag( "hltIterL3NoFiltersNoVtxTrajSeedOIHit" ), + clustersToSkip = cms.InputTag( "" ), + phase2clustersToSkip = cms.InputTag( "" ), + TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetMuonCkfTrajectoryBuilder" ) ), + TransientInitialStateEstimatorParameters = cms.PSet( + propagatorAlongTISE = cms.string( "PropagatorWithMaterial" ), + numberMeasurementsForFit = cms.int32( 3 ), + propagatorOppositeTISE = cms.string( "PropagatorWithMaterialOpposite" ) + ), + numHitsForSeedCleaner = cms.int32( 4 ), + NavigationSchool = cms.string( "SimpleNavigationSchool" ), + RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), + TrajectoryCleaner = cms.string( "muonSeededTrajectoryCleanerBySharedHits" ), + maxNSeeds = cms.uint32( 500000 ), + maxSeedsBeforeCleaning = cms.uint32( 5000 ) +) +fragment.hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks = cms.EDProducer( "TrackProducer", + useSimpleMF = cms.bool( False ), + SimpleMagneticField = cms.string( "" ), + src = cms.InputTag( "hltIterL3OIHitGlbDisplacedTrackCandidates" ), + clusterRemovalInfo = cms.InputTag( "" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Fitter = cms.string( "hltESPKFFittingSmootherWithOutliersRejectionAndRK" ), + useHitsSplitting = cms.bool( False ), + alias = cms.untracked.string( "" ), + TrajectoryInEvent = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + AlgorithmName = cms.string( "iter10" ), + Propagator = cms.string( "PropagatorWithMaterial" ), + GeometricInnerState = cms.bool( True ), + NavigationSchool = cms.string( "" ), + MeasurementTracker = cms.string( "" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ) +) +fragment.hltL3GlbDisplacedMuonsIterL3OIHit = cms.EDProducer( "L3MuonProducer", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSmartPropagatorAny', + 'SteppingHelixPropagatorAny', + 'hltESPSmartPropagator', + 'hltESPSteppingHelixPropagatorOpposite' ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + TrackLoaderParameters = cms.PSet( + MuonSeededTracksInstance = cms.untracked.string( "L2Seeded" ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + DoSmoothing = cms.bool( True ), + SmoothTkTrack = cms.untracked.bool( False ), + VertexConstraint = cms.bool( False ), + MuonUpdatorAtVertexParameters = cms.PSet( + MaxChi2 = cms.double( 1000000.0 ), + BeamSpotPositionErrors = cms.vdouble( 0.1, 0.1, 5.3 ), + Propagator = cms.string( "hltESPSteppingHelixPropagatorOpposite" ) + ), + PutTkTrackIntoEvent = cms.untracked.bool( False ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + L3TrajBuilderParameters = cms.PSet( + PtCut = cms.double( 1.0 ), + TrackerPropagator = cms.string( "SteppingHelixPropagatorAny" ), + GlobalMuonTrackMatcher = cms.PSet( + Chi2Cut_3 = cms.double( 200.0 ), + DeltaDCut_2 = cms.double( 10.0 ), + Eta_threshold = cms.double( 1.2 ), + Quality_2 = cms.double( 15.0 ), + DeltaDCut_1 = cms.double( 40.0 ), + Quality_3 = cms.double( 7.0 ), + DeltaDCut_3 = cms.double( 15.0 ), + Quality_1 = cms.double( 20.0 ), + Pt_threshold1 = cms.double( 0.0 ), + DeltaRCut_2 = cms.double( 0.2 ), + DeltaRCut_1 = cms.double( 0.1 ), + Pt_threshold2 = cms.double( 9.99999999E8 ), + Chi2Cut_1 = cms.double( 50.0 ), + Chi2Cut_2 = cms.double( 50.0 ), + DeltaRCut_3 = cms.double( 1.0 ), + LocChi2Cut = cms.double( 0.001 ), + Propagator = cms.string( "hltESPSmartPropagator" ), + MinPt = cms.double( 1.0 ), + MinP = cms.double( 2.5 ) + ), + ScaleTECxFactor = cms.double( -1.0 ), + tkTrajUseVertex = cms.bool( False ), + MuonTrackingRegionBuilder = cms.PSet( + Rescale_Dz = cms.double( 4.0 ), + Pt_fixed = cms.bool( False ), + Eta_fixed = cms.bool( True ), + Eta_min = cms.double( 0.1 ), + DeltaZ = cms.double( 24.2 ), + maxRegions = cms.int32( 2 ), + EtaR_UpperLimit_Par1 = cms.double( 0.25 ), + UseVertex = cms.bool( False ), + Z_fixed = cms.bool( False ), + PhiR_UpperLimit_Par1 = cms.double( 0.6 ), + PhiR_UpperLimit_Par2 = cms.double( 0.2 ), + Rescale_phi = cms.double( 3.0 ), + DeltaEta = cms.double( 0.2 ), + precise = cms.bool( True ), + OnDemand = cms.int32( -1 ), + EtaR_UpperLimit_Par2 = cms.double( 0.15 ), + MeasurementTrackerName = cms.InputTag( "hltESPMeasurementTracker" ), + vertexCollection = cms.InputTag( "pixelVertices" ), + Pt_min = cms.double( 3.0 ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Phi_fixed = cms.bool( True ), + DeltaR = cms.double( 0.025 ), + input = cms.InputTag( "hltL2Muons" ), + DeltaPhi = cms.double( 0.15 ), + Phi_min = cms.double( 0.1 ), + Rescale_eta = cms.double( 3.0 ) + ), + TrackTransformer = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + RefitDirection = cms.string( "insideOut" ), + RefitRPCHits = cms.bool( True ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + tkTrajBeamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + RefitRPCHits = cms.bool( True ), + tkTrajVertex = cms.InputTag( "Notused" ), + GlbRefitterParameters = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), + RefitFlag = cms.bool( True ), + SkipStation = cms.int32( -1 ), + Chi2CutRPC = cms.double( 1.0 ), + PropDirForCosmics = cms.bool( False ), + CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + HitThreshold = cms.int32( 1 ), + DYTthrs = cms.vint32( 30, 15 ), + TrackerSkipSystem = cms.int32( -1 ), + RefitDirection = cms.string( "insideOut" ), + Chi2CutCSC = cms.double( 150.0 ), + Chi2CutDT = cms.double( 10.0 ), + RefitRPCHits = cms.bool( True ), + TrackerSkipSection = cms.int32( -1 ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonHitsOption = cms.int32( 1 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ) + ), + PCut = cms.double( 2.5 ), + tkTrajMaxDXYBeamSpot = cms.double( 9999.0 ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + tkTrajMaxChi2 = cms.double( 9999.0 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + ScaleTECyFactor = cms.double( -1.0 ), + tkTrajLabel = cms.InputTag( "hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks" ) + ) +) +fragment.hltIterL3OIL3GlbDisplacedMuonsLinksCombination = cms.EDProducer( "L3TrackLinksCombiner", + labels = cms.VInputTag( 'hltL3GlbDisplacedMuonsIterL3OIState','hltL3GlbDisplacedMuonsIterL3OIHit' ) +) +fragment.hltIterL3OIL3GlbDisplacedMuons = cms.EDProducer( "L3TrackCombiner", + labels = cms.VInputTag( 'hltL3GlbDisplacedMuonsIterL3OIState','hltL3GlbDisplacedMuonsIterL3OIHit' ) +) +fragment.hltIterL3OIGlbDisplacedMuonCandidates = cms.EDProducer( "L3MuonCandidateProducer", + InputObjects = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuons" ), + InputLinksObjects = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuonsLinksCombination" ), + MuonPtOption = cms.string( "Global" ) +) +fragment.hltL2SelectorForL3IOForGlbDisplaced = cms.EDProducer( "HLTMuonL2SelectorForL3IO", + l2Src = cms.InputTag( "hltL2Muons" ), + l3OISrc = cms.InputTag( "hltIterL3OIGlbDisplacedMuonCandidates" ), + InputLinks = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuonsLinksCombination" ), + applyL3Filters = cms.bool( False ), + MinNhits = cms.int32( 1 ), + MaxNormalizedChi2 = cms.double( 20.0 ), + MinNmuonHits = cms.int32( 1 ), + MaxPtDifference = cms.double( 0.3 ) +) +fragment.hltDisplacedhltIter4PixelLessLayerTripletsForGlbDisplacedMuons = cms.EDProducer( "SeedingLayersEDProducer", + layerList = cms.vstring( 'TIB1+TIB2+MTIB3', + 'TIB1+TIB2+MTID1_pos', + 'TIB1+TIB2+MTID1_neg', + 'TID1_pos+TID2_pos+TID3_pos', + 'TID1_neg+TID2_neg+TID3_neg', + 'TID1_pos+TID2_pos+MTID3_pos', + 'TID1_neg+TID2_neg+MTID3_neg' ), + BPix = cms.PSet( ), + FPix = cms.PSet( ), + TIB = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + skipClusters = cms.InputTag( "" ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ) + ), + TID = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 1 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 2 ) + ), + TOB = cms.PSet( ), + TEC = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 1 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 2 ) + ), + MTIB = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + skipClusters = cms.InputTag( "" ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ) + ), + MTID = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 3 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 3 ) + ), + MTOB = cms.PSet( ), + MTEC = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 3 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 3 ) + ) +) +fragment.hltDisplacedhltIter4PixelLessClusterCheckForGlbDisplacedMuons = cms.EDProducer( "ClusterCheckerEDProducer", + doClusterCheck = cms.bool( False ), + MaxNumberOfCosmicClusters = cms.uint32( 800000 ), + ClusterCollectionLabel = cms.InputTag( "hltSiStripClusters" ), + MaxNumberOfPixelClusters = cms.uint32( 40000 ), + PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), + cut = cms.string( "" ), + silentClusterCheck = cms.untracked.bool( False ) +) +fragment.hltDisplacedhltIter4PixelLessSeedsForGlbDisplaced = cms.EDProducer( "TSGFromL2Muon", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'PropagatorWithMaterial' ) + ), + MuonTrackingRegionBuilder = cms.PSet( refToPSet_ = cms.string( "HLTPSetMuonTrackingRegionBuilder8356" ) ), + TrackerSeedCleaner = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + cleanerFromSharedHits = cms.bool( True ), + directionCleaner = cms.bool( True ), + ptCleaner = cms.bool( True ) + ), + TkSeedGenerator = cms.PSet( + iterativeTSG = cms.PSet( + firstTSG = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + OrderedHitsFactoryPSet = cms.PSet( + SeedingLayers = cms.InputTag( "hltDisplacedhltIter4PixelLessLayerTripletsForGlbDisplacedMuons" ), + ComponentName = cms.string( "StandardHitTripletGenerator" ), + GeneratorPSet = cms.PSet( + SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ), + maxElement = cms.uint32( 0 ), + useFixedPreFiltering = cms.bool( False ), + extraHitRZtolerance = cms.double( 0.06 ), + phiPreFiltering = cms.double( 0.3 ), + extraHitRPhitolerance = cms.double( 0.06 ), + useBending = cms.bool( True ), + ComponentName = cms.string( "PixelTripletHLTGenerator" ), + useMultScattering = cms.bool( True ) + ) + ), + SeedCreatorPSet = cms.PSet( refToPSet_ = cms.string( "HLTSeedFromConsecutiveHitsCreator" ) ), + ComponentName = cms.string( "TSGFromOrderedHits" ) + ), + PSetNames = cms.vstring( 'firstTSG' ), + ComponentName = cms.string( "CombinedTSG" ) + ), + PSetNames = cms.vstring( 'skipTSG', + 'iterativeTSG' ), + skipTSG = cms.PSet( ), + ComponentName = cms.string( "DualByL2TSG" ), + L3TkCollectionA = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuons" ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2SelectorForL3IOForGlbDisplaced" ), + PtCut = cms.double( 1.0 ), + PCut = cms.double( 2.5 ) +) +fragment.hltDisplacedhltIter4CkfTrackCandidatesForGlbDisplacedMuons = cms.EDProducer( "CkfTrackCandidateMaker", + cleanTrajectoryAfterInOut = cms.bool( False ), + doSeedingRegionRebuilding = cms.bool( False ), + onlyPixelHitsForSeedCleaner = cms.bool( False ), + reverseTrajectories = cms.bool( False ), + useHitsSplitting = cms.bool( False ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + src = cms.InputTag( "hltDisplacedhltIter4PixelLessSeedsForGlbDisplaced" ), + clustersToSkip = cms.InputTag( "" ), + phase2clustersToSkip = cms.InputTag( "" ), + TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTIter4PSetTrajectoryBuilderIT" ) ), + TransientInitialStateEstimatorParameters = cms.PSet( + propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), + numberMeasurementsForFit = cms.int32( 4 ), + propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) + ), + numHitsForSeedCleaner = cms.int32( 4 ), + NavigationSchool = cms.string( "SimpleNavigationSchool" ), + RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), + TrajectoryCleaner = cms.string( "hltESPTrajectoryCleanerBySharedHits" ), + maxNSeeds = cms.uint32( 100000 ), + maxSeedsBeforeCleaning = cms.uint32( 1000 ) +) +fragment.hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons = cms.EDProducer( "TrackProducer", + useSimpleMF = cms.bool( True ), + SimpleMagneticField = cms.string( "ParabolicMf" ), + src = cms.InputTag( "hltDisplacedhltIter4CkfTrackCandidatesForGlbDisplacedMuons" ), + clusterRemovalInfo = cms.InputTag( "" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Fitter = cms.string( "hltESPFittingSmootherIT" ), + useHitsSplitting = cms.bool( False ), + alias = cms.untracked.string( "ctfWithMaterialTracks" ), + TrajectoryInEvent = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + AlgorithmName = cms.string( "hltIterX" ), + Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), + GeometricInnerState = cms.bool( True ), + NavigationSchool = cms.string( "" ), + MeasurementTracker = cms.string( "" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ) +) +fragment.hltIter4IterL3FromL2MuonTrackCutClassifier = cms.EDProducer( "TrackCutClassifier", + src = cms.InputTag( "hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons" ), + beamspot = cms.InputTag( "hltOnlineBeamSpot" ), + vertices = cms.InputTag( "Notused" ), + ignoreVertices = cms.bool( True ), + qualityCuts = cms.vdouble( -0.7, 0.1, 0.7 ), + mva = cms.PSet( + minPixelHits = cms.vint32( 0, 0, 0 ), + maxDzWrtBS = cms.vdouble( 3.40282346639E38, 24.0, 100.0 ), + dr_par = cms.PSet( + d0err = cms.vdouble( 0.003, 0.003, 3.40282346639E38 ), + dr_par2 = cms.vdouble( 0.3, 0.3, 3.40282346639E38 ), + dr_par1 = cms.vdouble( 0.4, 0.4, 3.40282346639E38 ), + dr_exp = cms.vint32( 4, 4, 2147483647 ), + d0err_par = cms.vdouble( 0.001, 0.001, 3.40282346639E38 ) + ), + maxLostLayers = cms.vint32( 1, 1, 1 ), + min3DLayers = cms.vint32( 0, 0, 0 ), + dz_par = cms.PSet( + dz_par1 = cms.vdouble( 0.4, 0.4, 3.40282346639E38 ), + dz_par2 = cms.vdouble( 0.35, 0.35, 3.40282346639E38 ), + dz_exp = cms.vint32( 4, 4, 2147483647 ) + ), + minNVtxTrk = cms.int32( 3 ), + maxDz = cms.vdouble( 0.5, 0.2, 3.40282346639E38 ), + minNdof = cms.vdouble( 1.0E-5, 1.0E-5, 1.0E-5 ), + maxChi2 = cms.vdouble( 3.40282346639E38, 3.40282346639E38, 3.40282346639E38 ), + maxChi2n = cms.vdouble( 1.2, 1.0, 0.7 ), + maxDr = cms.vdouble( 0.5, 0.03, 3.40282346639E38 ), + minLayers = cms.vint32( 3, 3, 4 ) + ) +) +fragment.hltIter4IterL3FromL2MuonTrackSelectionHighPurity = cms.EDProducer( "TrackCollectionFilterCloner", + originalSource = cms.InputTag( "hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons" ), + originalMVAVals = cms.InputTag( 'hltIter4IterL3FromL2MuonTrackCutClassifier','MVAValues' ), + originalQualVals = cms.InputTag( 'hltIter4IterL3FromL2MuonTrackCutClassifier','QualityMasks' ), + minQuality = cms.string( "highPurity" ), + copyExtras = cms.untracked.bool( True ), + copyTrajectories = cms.untracked.bool( False ) +) +fragment.hltIterOIhitMergedWithOIGlbDisplacedMuons = cms.EDProducer( "TrackListMerger", + ShareFrac = cms.double( 0.19 ), + FoundHitBonus = cms.double( 5.0 ), + LostHitPenalty = cms.double( 20.0 ), + MinPT = cms.double( 0.05 ), + Epsilon = cms.double( -0.001 ), + MaxNormalizedChisq = cms.double( 1000.0 ), + MinFound = cms.int32( 3 ), + TrackProducers = cms.VInputTag( 'hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks','hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks' ), + hasSelector = cms.vint32( 0, 0 ), + indivShareFrac = cms.vdouble( 1.0, 1.0 ), + selectedTrackQuals = cms.VInputTag( 'hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks','hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks' ), + setsToMerge = cms.VPSet( + cms.PSet( pQual = cms.bool( False ), + tLists = cms.vint32( 0, 1 ) + ) + ), + trackAlgoPriorityOrder = cms.string( "hltESPTrackAlgoPriorityOrder" ), + allowFirstHitShare = cms.bool( True ), + newQuality = cms.string( "confirmed" ), + copyExtras = cms.untracked.bool( True ), + writeOnlyTrkQuals = cms.bool( False ), + copyMVA = cms.bool( False ) +) +fragment.hltIter4MergedWithOIGlbDisplacedMuons = cms.EDProducer( "TrackListMerger", + ShareFrac = cms.double( 0.19 ), + FoundHitBonus = cms.double( 5.0 ), + LostHitPenalty = cms.double( 20.0 ), + MinPT = cms.double( 0.05 ), + Epsilon = cms.double( -0.001 ), + MaxNormalizedChisq = cms.double( 1000.0 ), + MinFound = cms.int32( 3 ), + TrackProducers = cms.VInputTag( 'hltIterOIhitMergedWithOIGlbDisplacedMuons','hltIter4IterL3FromL2MuonTrackSelectionHighPurity' ), + hasSelector = cms.vint32( 0, 0 ), + indivShareFrac = cms.vdouble( 1.0, 1.0 ), + selectedTrackQuals = cms.VInputTag( 'hltIterOIhitMergedWithOIGlbDisplacedMuons','hltIter4IterL3FromL2MuonTrackSelectionHighPurity' ), + setsToMerge = cms.VPSet( + cms.PSet( pQual = cms.bool( False ), + tLists = cms.vint32( 0, 1 ) + ) + ), + trackAlgoPriorityOrder = cms.string( "hltESPTrackAlgoPriorityOrder" ), + allowFirstHitShare = cms.bool( True ), + newQuality = cms.string( "confirmed" ), + copyExtras = cms.untracked.bool( True ), + writeOnlyTrkQuals = cms.bool( False ), + copyMVA = cms.bool( False ) +) +fragment.hltIterL3GlbDisplacedMuons = cms.EDProducer( "L3MuonProducer", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSmartPropagatorAny', + 'SteppingHelixPropagatorAny', + 'hltESPSmartPropagator', + 'hltESPSteppingHelixPropagatorOpposite' ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + TrackLoaderParameters = cms.PSet( + MuonSeededTracksInstance = cms.untracked.string( "L2Seeded" ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + DoSmoothing = cms.bool( True ), + SmoothTkTrack = cms.untracked.bool( False ), + VertexConstraint = cms.bool( False ), + MuonUpdatorAtVertexParameters = cms.PSet( + MaxChi2 = cms.double( 1000000.0 ), + BeamSpotPositionErrors = cms.vdouble( 0.1, 0.1, 5.3 ), + Propagator = cms.string( "hltESPSteppingHelixPropagatorOpposite" ) + ), + PutTkTrackIntoEvent = cms.untracked.bool( False ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + L3TrajBuilderParameters = cms.PSet( + PtCut = cms.double( 1.0 ), + TrackerPropagator = cms.string( "SteppingHelixPropagatorAny" ), + GlobalMuonTrackMatcher = cms.PSet( + Chi2Cut_3 = cms.double( 200.0 ), + DeltaDCut_2 = cms.double( 10.0 ), + Eta_threshold = cms.double( 1.2 ), + Quality_2 = cms.double( 15.0 ), + DeltaDCut_1 = cms.double( 40.0 ), + Quality_3 = cms.double( 7.0 ), + DeltaDCut_3 = cms.double( 15.0 ), + Quality_1 = cms.double( 20.0 ), + Pt_threshold1 = cms.double( 0.0 ), + DeltaRCut_2 = cms.double( 0.2 ), + DeltaRCut_1 = cms.double( 0.1 ), + Pt_threshold2 = cms.double( 9.99999999E8 ), + Chi2Cut_1 = cms.double( 50.0 ), + Chi2Cut_2 = cms.double( 50.0 ), + DeltaRCut_3 = cms.double( 1.0 ), + LocChi2Cut = cms.double( 0.001 ), + Propagator = cms.string( "hltESPSmartPropagator" ), + MinPt = cms.double( 1.0 ), + MinP = cms.double( 2.5 ) + ), + ScaleTECxFactor = cms.double( -1.0 ), + tkTrajUseVertex = cms.bool( False ), + MuonTrackingRegionBuilder = cms.PSet( + Rescale_Dz = cms.double( 4.0 ), + Pt_fixed = cms.bool( False ), + Eta_fixed = cms.bool( True ), + Eta_min = cms.double( 0.1 ), + DeltaZ = cms.double( 24.2 ), + maxRegions = cms.int32( 2 ), + EtaR_UpperLimit_Par1 = cms.double( 0.25 ), + UseVertex = cms.bool( False ), + Z_fixed = cms.bool( False ), + PhiR_UpperLimit_Par1 = cms.double( 0.6 ), + PhiR_UpperLimit_Par2 = cms.double( 0.2 ), + Rescale_phi = cms.double( 3.0 ), + DeltaEta = cms.double( 0.2 ), + precise = cms.bool( True ), + OnDemand = cms.int32( -1 ), + EtaR_UpperLimit_Par2 = cms.double( 0.15 ), + MeasurementTrackerName = cms.InputTag( "hltESPMeasurementTracker" ), + vertexCollection = cms.InputTag( "pixelVertices" ), + Pt_min = cms.double( 3.0 ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Phi_fixed = cms.bool( True ), + DeltaR = cms.double( 0.025 ), + input = cms.InputTag( "hltL2Muons" ), + DeltaPhi = cms.double( 0.15 ), + Phi_min = cms.double( 0.1 ), + Rescale_eta = cms.double( 3.0 ) + ), + TrackTransformer = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + RefitDirection = cms.string( "insideOut" ), + RefitRPCHits = cms.bool( True ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + tkTrajBeamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + RefitRPCHits = cms.bool( True ), + tkTrajVertex = cms.InputTag( "Notused" ), + GlbRefitterParameters = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), + RefitFlag = cms.bool( True ), + SkipStation = cms.int32( -1 ), + Chi2CutRPC = cms.double( 1.0 ), + PropDirForCosmics = cms.bool( False ), + CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + HitThreshold = cms.int32( 1 ), + DYTthrs = cms.vint32( 30, 15 ), + TrackerSkipSystem = cms.int32( -1 ), + RefitDirection = cms.string( "insideOut" ), + Chi2CutCSC = cms.double( 150.0 ), + Chi2CutDT = cms.double( 10.0 ), + RefitRPCHits = cms.bool( True ), + TrackerSkipSection = cms.int32( -1 ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonHitsOption = cms.int32( 1 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ) + ), + PCut = cms.double( 2.5 ), + tkTrajMaxDXYBeamSpot = cms.double( 9999.0 ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + tkTrajMaxChi2 = cms.double( 9999.0 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + ScaleTECyFactor = cms.double( -1.0 ), + tkTrajLabel = cms.InputTag( "hltIter4MergedWithOIGlbDisplacedMuons" ) + ) +) +fragment.hltIterL3GlbDisplacedMuonsTracks = cms.EDProducer( "L3TrackCombiner", + labels = cms.VInputTag( 'hltIterL3GlbDisplacedMuons' ) +) +fragment.hltIterL3GlbDisplacedMuonsLinksCombination = cms.EDProducer( "L3TrackLinksCombiner", + labels = cms.VInputTag( 'hltIterL3GlbDisplacedMuons' ) +) +fragment.hltIterL3wIter4GlbDisplacedMuonCandidates = cms.EDProducer( "L3MuonCandidateProducer", + InputObjects = cms.InputTag( "hltIterL3GlbDisplacedMuonsTracks" ), + InputLinksObjects = cms.InputTag( "hltIterL3GlbDisplacedMuonsLinksCombination" ), + MuonPtOption = cms.string( "Global" ) +) +fragment.hltL3fL1DoubleMuf0L2NVf15f7L3DoubleMuNVf10DisplacedIter4 = cms.EDFilter( "HLTMuonL3SimplePreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltIterL3wIter4GlbDisplacedMuonCandidates" ), + PreviousCandTag = cms.InputTag( "" ), + MinN = cms.int32( 2 ), + MaxEta = cms.double( 2.5 ), + MinNhits = cms.int32( 0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 10.0 ), + NSigmaPt = cms.double( 0.0 ), + MaxNormalizedChi2 = cms.double( 9999.0 ), + MaxDXYBeamSpot = cms.double( 9999.0 ), + MinDXYBeamSpot = cms.double( 0.01 ), + MinNmuonHits = cms.int32( 12 ), + MaxPtDifference = cms.double( 9999.0 ), + MinTrackPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( False ) +) +fragment.hltL3fL1DoubleMuf0L2NVf15f7L3SingleMuNVf16DisplacedIter4 = cms.EDFilter( "HLTMuonL3SimplePreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltIterL3wIter4GlbDisplacedMuonCandidates" ), + PreviousCandTag = cms.InputTag( "" ), + MinN = cms.int32( 1 ), + MaxEta = cms.double( 2.5 ), + MinNhits = cms.int32( 0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 16.0 ), + NSigmaPt = cms.double( 0.0 ), + MaxNormalizedChi2 = cms.double( 9999.0 ), + MaxDXYBeamSpot = cms.double( 9999.0 ), + MinDXYBeamSpot = cms.double( 0.01 ), + MinNmuonHits = cms.int32( 12 ), + MaxPtDifference = cms.double( 9999.0 ), + MinTrackPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( False ) +) +fragment.hltPreL3Iter4Mu10NoVtxDxyMin0p01cm = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered7 = cms.EDFilter( "HLTMuonL2FromL1TPreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltL2MuonCandidatesNoVtx" ), + PreviousCandTag = cms.InputTag( "hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0" ), + SeedMapTag = cms.InputTag( "hltL2Muons" ), + MinN = cms.int32( 1 ), + MaxEta = cms.double( 2.5 ), + AbsEtaBins = cms.vdouble( 5.0 ), + MinNstations = cms.vint32( 0 ), + MinNhits = cms.vint32( 0 ), + CutOnChambers = cms.bool( True ), + MinNchambers = cms.vint32( 0 ), + MaxDr = cms.double( 9999.0 ), + MinDr = cms.double( -1.0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 7.0 ), + NSigmaPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( True ) +) +fragment.hltL3fL1f0L2f0Filtered10GlbDisplacedIter4 = cms.EDFilter( "HLTMuonL3SimplePreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltIterL3wIter4GlbDisplacedMuonCandidates" ), + PreviousCandTag = cms.InputTag( "" ), + MinN = cms.int32( 1 ), + MaxEta = cms.double( 2.5 ), + MinNhits = cms.int32( 0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 10.0 ), + NSigmaPt = cms.double( 0.0 ), + MaxNormalizedChi2 = cms.double( 9999.0 ), + MaxDXYBeamSpot = cms.double( 9999.0 ), + MinDXYBeamSpot = cms.double( 0.01 ), + MinNmuonHits = cms.int32( 12 ), + MaxPtDifference = cms.double( 9999.0 ), + MinTrackPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( False ) +) +fragment.hltL1sVoHTT200SingleLLPJet60 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_HTT120_SingleLLPJet40 OR L1_HTT160_SingleLLPJet50 OR L1_HTT200_SingleLLPJet60" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +fragment.hltPreHT170L1SingleLLPJetDisplacedDijet40DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltHT170 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 170.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +fragment.hltPreHT200L1SingleLLPJetDisplacedDijet40DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltHT200 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 200.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +fragment.hltPreHT200L1SingleLLPJetDisplacedDijet60DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHT270L1SingleLLPJetDisplacedDijet40DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltHT270 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 270.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +fragment.hltPreHT320L1SingleLLPJetDisplacedDijet60Inclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltHT320 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 320.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +fragment.hltPreHT420L1SingleLLPJetDisplacedDijet60Inclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltHT420 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 420.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +fragment.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay1nsTrackless = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay2nsInclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay0p5nsTrackless = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay1nsInclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHT200L1SingleLLPJetDisplacedDijet30Inclusive1PtrkShortSig5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHT200L1SingleLLPJetDisplacedDijet35Inclusive1PtrkShortSig5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHT200L1SingleLLPJetDisplacedDijet40Inclusive1PtrkShortSig5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_Mu6_DoubleEG12er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG34er2p5 OR L1_SingleEG36er2p5 OR L1_SingleEG38er2p5 OR L1_SingleEG40er2p5 OR L1_SingleEG42er2p5 OR L1_SingleEG45er2p5 OR L1_SingleEG60 OR L1_DoubleEG_15_10_er2p5 OR L1_DoubleEG_20_10_er2p5 OR L1_DoubleEG_22_10_er2p5 OR L1_DoubleEG_25_12_er2p5 OR L1_DoubleEG_25_14_er2p5 OR L1_DoubleEG_27_14_er2p5 OR L1_DoubleEG_LooseIso22_12_er2p5 OR L1_DoubleEG_LooseIso25_12_er2p5 OR L1_TripleEG_18_17_8_er2p5 OR L1_TripleEG_18_18_12_er2p5 OR L1_DoubleEG8er2p5_HTT300er OR L1_DoubleEG8er2p5_HTT320er" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +fragment.hltPreDiPhoton10Time1ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig = cms.EDFilter( "HLTEgammaL1TMatchFilterRegional", + saveTags = cms.bool( True ), + candIsolatedTag = cms.InputTag( "hltEgammaCandidates" ), + l1IsolatedTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + candNonIsolatedTag = cms.InputTag( "" ), + l1NonIsolatedTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1SeedFilterTag = cms.InputTag( "hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig" ), + l1CenJetsTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + l1TausTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + ncandcut = cms.int32( 1 ), + doIsolated = cms.bool( False ), + region_eta_size = cms.double( 0.522 ), + region_eta_size_ecap = cms.double( 1.0 ), + region_phi_size = cms.double( 1.044 ), + barrel_end = cms.double( 1.4791 ), + endcap_end = cms.double( 2.65 ) +) +fragment.hltEG10EtFilter = cms.EDFilter( "HLTEgammaEtFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig" ), + l1EGCand = cms.InputTag( "hltEgammaCandidates" ), + etcutEB = cms.double( 10.0 ), + etcutEE = cms.double( 10.0 ), + ncandcut = cms.int32( 1 ) +) +fragment.hltEG10HEFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltEG10EtFilter" ), + varTag = cms.InputTag( "hltEgammaHoverE" ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( -1.0 ), + thrRegularEE = cms.vdouble( -1.0 ), + thrOverEEB = cms.vdouble( 0.2 ), + thrOverEEE = cms.vdouble( 0.2 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 1 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidates" ) +) +fragment.hltEG10CaloIdLClusterShapeFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltEG10HEFilter" ), + varTag = cms.InputTag( 'hltEgammaClusterShape','sigmaIEtaIEta5x5NoiseCleaned' ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( 0.016 ), + thrRegularEE = cms.vdouble( 0.04 ), + thrOverEEB = cms.vdouble( -1.0 ), + thrOverEEE = cms.vdouble( -1.0 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 1 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidates" ) +) +fragment.hltEG10CaloIdLTime1nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10EtUnseededFilter = cms.EDFilter( "HLTEgammaEtFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEgammaCandidatesWrapperUnseeded" ), + l1EGCand = cms.InputTag( "hltEgammaCandidatesUnseeded" ), + etcutEB = cms.double( 10.0 ), + etcutEE = cms.double( 10.0 ), + ncandcut = cms.int32( 2 ) +) +fragment.hltDiEG10HEUnseededFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltDiEG10EtUnseededFilter" ), + varTag = cms.InputTag( "hltEgammaHoverEUnseeded" ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( -1.0 ), + thrRegularEE = cms.vdouble( -1.0 ), + thrOverEEB = cms.vdouble( 0.2 ), + thrOverEEE = cms.vdouble( 0.2 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 2 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidatesUnseeded" ) +) +fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltDiEG10HEUnseededFilter" ), + varTag = cms.InputTag( 'hltEgammaClusterShapeUnseeded','sigmaIEtaIEta5x5NoiseCleaned' ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( 0.016 ), + thrRegularEE = cms.vdouble( 0.04 ), + thrOverEEB = cms.vdouble( -1.0 ), + thrOverEEE = cms.vdouble( -1.0 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 2 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidatesUnseeded" ) +) +fragment.hltDiEG10CaloIdLTime1nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10Time1p2ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLTime1p2nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.2 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLTime1p2nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.2 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10Time1p4ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLTime1p4nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.4 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLTime1p4nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.4 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10Time1p6ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLTime1p6nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.6 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLTime1p6nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.6 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10Time1p8ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLTime1p8nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.8 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLTime1p8nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.8 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10Time2ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLTime2nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 2.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLTime2nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 2.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10sminlt0p1 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLsminlt0p1Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.1 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLsminlt0p1UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.1 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10sminlt0p12 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLsminlt0p12Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.12 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLsminlt0p12UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.12 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10sminlt0p14 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLsminlt0p14Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.14 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLsminlt0p14UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.14 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10sminlt0p16 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLsminlt0p16Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.16 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLsminlt0p16UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.16 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10CaloIdL = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltPreExpressMuons = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -114773,7 +116536,20 @@ 'HLT_CscCluster_Loose_v1', 'HLT_CscCluster_Medium_v1', 'HLT_CscCluster_Tight_v1', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT425_v9', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1', @@ -114823,6 +116599,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2', 'HLT_DoubleL2Mu50_v2', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10', 'HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10', @@ -114838,6 +116615,7 @@ 'HLT_HIL3DoubleMu0_OS_m2p5to4p5ForPPRef_v6', 'HLT_HIL3DoubleMu0_OS_m7to14ForPPRef_v6', 'HLT_L1DoubleMu0_v1', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15', @@ -114961,6 +116739,17 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4', + 'HLT_DiPhoton10Time1ns_v1', + 'HLT_DiPhoton10Time1p2ns_v1', + 'HLT_DiPhoton10Time1p4ns_v1', + 'HLT_DiPhoton10Time1p6ns_v1', + 'HLT_DiPhoton10Time1p8ns_v1', + 'HLT_DiPhoton10Time2ns_v1', + 'HLT_DiPhoton10_CaloIdL_v1', + 'HLT_DiPhoton10sminlt0p12_v1', + 'HLT_DiPhoton10sminlt0p14_v1', + 'HLT_DiPhoton10sminlt0p16_v1', + 'HLT_DiPhoton10sminlt0p1_v1', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13', 'HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13', 'HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2', @@ -117314,7 +119103,8 @@ 'MC_PFHT_v16', 'MC_PFMET_v17', 'MC_PFMHT_v16', - 'MC_ReducedIterativeTracking_v12' ) + 'MC_ReducedIterativeTracking_v12', + 'MC_Run3_PFScoutingPixelTracking_v16' ) ) fragment.hltPreDatasetMonteCarlo = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -117561,6 +119351,17 @@ 'HLT_DiPFJetAve60_v14 / 3', 'HLT_DiPFJetAve80_HFJEC_v16 / 3', 'HLT_DiPFJetAve80_v13 / 3', + 'HLT_DiPhoton10Time1ns_v1 / 3', + 'HLT_DiPhoton10Time1p2ns_v1 / 3', + 'HLT_DiPhoton10Time1p4ns_v1 / 3', + 'HLT_DiPhoton10Time1p6ns_v1 / 3', + 'HLT_DiPhoton10Time1p8ns_v1 / 3', + 'HLT_DiPhoton10Time2ns_v1 / 3', + 'HLT_DiPhoton10_CaloIdL_v1 / 3', + 'HLT_DiPhoton10sminlt0p12_v1 / 3', + 'HLT_DiPhoton10sminlt0p14_v1 / 3', + 'HLT_DiPhoton10sminlt0p16_v1 / 3', + 'HLT_DiPhoton10sminlt0p1_v1 / 3', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13 / 3', 'HLT_Dimuon0_Jpsi3p5_Muon2_v5 / 3', 'HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7 / 3', @@ -117625,6 +119426,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2 / 3', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2 / 3', 'HLT_DoubleL2Mu50_v2 / 3', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1 / 3', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1 / 3', 'HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1 / 3', 'HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1 / 3', @@ -117660,8 +119462,7 @@ 'HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepJet_p71_v1 / 3', 'HLT_DoublePFJets200_PFBTagDeepCSV_p71_v1 / 3', 'HLT_DoublePFJets200_PFBTagDeepJet_p71_v1 / 3', - 'HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1 / 3', - 'HLT_DoublePFJets350_PFBTagDeepJet_p71_v1 / 3', + 'HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1 / 3')+cms.vstring( 'HLT_DoublePFJets350_PFBTagDeepJet_p71_v1 / 3', 'HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1 / 3', 'HLT_DoublePFJets40_PFBTagDeepCSV_p71_v1 / 3', 'HLT_DoublePFJets40_PFBTagDeepJet_p71_v1 / 3', @@ -117672,7 +119473,8 @@ 'HLT_Ele115_CaloIdVT_GsfTrkIdT_v14 / 3', 'HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v18 / 3', 'HLT_Ele135_CaloIdVT_GsfTrkIdT_v7 / 3', - 'HLT_Ele145_CaloIdVT_GsfTrkIdT_v8 / 3')+cms.vstring( 'HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3 / 3', + 'HLT_Ele145_CaloIdVT_GsfTrkIdT_v8 / 3', + 'HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3 / 3', 'HLT_Ele15_Ele8_CaloIdL_TrackIdL_IsoVL_v3 / 3', 'HLT_Ele15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8 / 3', 'HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v16 / 3', @@ -117750,7 +119552,20 @@ 'HLT_HIZeroBias_part7_v6 / 3', 'HLT_HIZeroBias_part8_v6 / 3', 'HLT_HIZeroBias_part9_v6 / 3', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1 / 3', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 / 3', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 / 3', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13 / 3', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 / 3', 'HLT_HT425_v9 / 3', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1 / 3', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1 / 3', @@ -117853,6 +119668,7 @@ 'HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5 / 3', 'HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4 / 3', 'HLT_L2Mu50_v2 / 3', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1 / 3', 'HLT_MET105_IsoTrk50_v9 / 3', 'HLT_MET120_IsoTrk50_v9 / 3', 'HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12 / 3', @@ -117900,8 +119716,7 @@ 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v3 / 3', 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v3 / 3', 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v3 / 3', - 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3 / 3', - 'HLT_Mu19_TrkIsoVVL_v4 / 3', + 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3 / 3')+cms.vstring( 'HLT_Mu19_TrkIsoVVL_v4 / 3', 'HLT_Mu19_v4 / 3', 'HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v1 / 3', 'HLT_Mu20_Mu10_DZ_v4 / 3', @@ -117926,7 +119741,8 @@ 'HLT_Mu37_Ele27_CaloIdL_MW_v5 / 3', 'HLT_Mu37_TkMu27_v5 / 3', 'HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v1 / 3', - 'HLT_Mu3_PFJet40_v16 / 3')+cms.vstring( 'HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2 / 3', + 'HLT_Mu3_PFJet40_v16 / 3', + 'HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2 / 3', 'HLT_Mu3er1p5_PFJet100er2p5_PFMET70_PFMHT70_IDTight_v2 / 3', 'HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v2 / 3', 'HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v2 / 3', @@ -118154,8 +119970,7 @@ 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1 / 3', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1 / 3', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1 / 3', - 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1 / 3', - 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1 / 3', + 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1 / 3')+cms.vstring( 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1 / 3', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1 / 3', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1 / 3', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1 / 3', @@ -118180,7 +119995,8 @@ 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1 / 3', 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1 / 3', 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1 / 3', - 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1 / 3')+cms.vstring( 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1 / 3', + 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1 / 3', + 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1 / 3', 'HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part0_v1 / 3', 'HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part1_v1 / 3', 'HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part2_v1 / 3', @@ -119632,7 +121448,7 @@ fragment.HLTDiphoton3018R9Idb50e90ANDIso60CaloId15b35eANDHE12b10eMass55NoPixelVetoSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGOrFilter + fragment.hltEG30L1SingleAndDoubleEGOrEtFilter + fragment.hltEgammaR9ID + fragment.hltEG30R9Id50b80eR9IdFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG30HE12b10eR9Id50b80eHEFilter + fragment.hltEG30R9Id50b90eHE12b10eR9Id50b80eR9IdFilter + fragment.hltEgammaClusterShape + fragment.hltEG30CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeFilter + fragment.hltEgammaEcalPFClusterIso + fragment.hltEG30Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltDiEG18EtUnseededFilter + fragment.hltEgammaR9IDUnseeded + fragment.hltDiEG18R9Id50b80eR9IdUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG18HE12b10eR9Id50b80eHEUnseededFilter + fragment.hltEG18R9Id50b90eHE12b10eR9Id50b80eR9IdUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltEG18CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeUnseededFilter + fragment.hltEgammaEcalPFClusterIsoUnseeded + fragment.hltEG18Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoUnseededFilter + fragment.HLTTrackReconstructionForIsoForPhotons + fragment.hltEgammaHollowTrackIsoUnseeded + fragment.hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eTrackIsoUnseededFilter + fragment.hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eMass55CombMassLastFilter ) fragment.HLTDiphoton3018R9Idb50e90ANDIso60CaloId15b35eANDHE12b10eNoPixelVetoSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGOrFilter + fragment.hltEG30L1SingleAndDoubleEGOrEtFilter + fragment.hltEgammaR9ID + fragment.hltEG30R9Id50b80eR9IdFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG30HE12b10eR9Id50b80eHEFilter + fragment.hltEG30R9Id50b90eHE12b10eR9Id50b80eR9IdFilter + fragment.hltEgammaClusterShape + fragment.hltEG30CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeFilter + fragment.hltEgammaEcalPFClusterIso + fragment.hltEG30Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltDiEG18EtUnseededFilter + fragment.hltEgammaR9IDUnseeded + fragment.hltDiEG18R9Id50b80eR9IdUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG18HE12b10eR9Id50b80eHEUnseededFilter + fragment.hltEG18R9Id50b90eHE12b10eR9Id50b80eR9IdUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltEG18CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeUnseededFilter + fragment.hltEgammaEcalPFClusterIsoUnseeded + fragment.hltEG18Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoUnseededFilter + fragment.HLTTrackReconstructionForIsoForPhotons + fragment.hltEgammaHollowTrackIsoUnseeded + fragment.hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eTrackIsoUnseededFilter ) fragment.HLTBeginSequenceParking = cms.Sequence( fragment.hltTriggerType + fragment.hltEnableParking + fragment.HLTL1UnpackerSequence + fragment.HLTBeamSpot ) -fragment.HLTL2TauTagNNSequence = cms.Sequence( fragment.HLTDoLocalPixelSequence + fragment.HLTRecoPixelTracksSequence + fragment.HLTRecopixelvertexingSequence + fragment.HLTDoCaloSequence + cms.ignore(fragment.hltL1sDoubleTauBigOR) + cms.ignore(fragment.hltL1sSingleTau) + cms.ignore(fragment.hltL1sBigOrMuXXerIsoTauYYer) + cms.ignore(fragment.hltL1sMu22erIsoTau40er) + cms.ignore(fragment.hltL1sDoubleTauJet) + cms.ignore(fragment.hltL1VBFDiJetIsoTau) + fragment.hltL2TauTagNNProducer ) +fragment.HLTL2TauTagNNSequence = cms.Sequence( fragment.HLTDoLocalPixelSequence + fragment.HLTRecoPixelTracksSequence + fragment.HLTRecopixelvertexingSequence + fragment.HLTDoCaloSequence + cms.ignore(fragment.hltL1sDoubleTauBigOR) + cms.ignore(fragment.hltL1sSingleTau) + cms.ignore(fragment.hltL1sBigOrMuXXerIsoTauYYer) + cms.ignore(fragment.hltL1sMu22erIsoTau40er) + cms.ignore(fragment.hltL1sBigORDoubleTauJet) + cms.ignore(fragment.hltL1VBFDiJetIsoTau) + fragment.hltL2TauTagNNProducer ) fragment.HLTHPSDeepTauIsoPFTauSequence = cms.Sequence( cms.ignore(fragment.hltL1sTauVeryBigOR) + fragment.hltHpsL1JetsHLTForDeepTauInput + fragment.hltHpsPFTauDiscriminationByDecayModeFindingNewDMsL1matched + fragment.hltHpsPFTauPrimaryVertexProducerForDeepTau + fragment.hltHpsPFTauSecondaryVertexProducerForDeepTau + fragment.hltHpsPFTauTransverseImpactParametersForDeepTau + fragment.hltFixedGridRhoProducerFastjetAllTau + fragment.hltHpsPFTauBasicDiscriminatorsForDeepTau + fragment.hltHpsPFTauBasicDiscriminatorsdR03ForDeepTau + fragment.hltHpsPFTauDeepTauProducer ) fragment.HLTCaloTausCreatorL1TauSeededRegionalSequence = cms.Sequence( fragment.HLTDoCaloSequence + cms.ignore(fragment.hltL1sTauVeryBigOR) + fragment.hltCaloTowerL1sTauVeryBigORSeededRegional + fragment.hltAkIsoTauL1sTauVeryBigORSeededRegional ) fragment.HLTL2TauJetsL1TauSeededSequence = cms.Sequence( fragment.HLTCaloTausCreatorL1TauSeededRegionalSequence + fragment.hltL2TauJetsL1TauSeeded ) @@ -119676,6 +121492,22 @@ fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt1PtrkShortSig5 = cms.Sequence( fragment.hltL3DisplacedDijetFullTracksJetTracksAssociatorAtVertexLowPt + fragment.hltL3DisplacedDijet100FullTracksTrackIPProducerLowPt + fragment.hltL3DisplacedDijetFullTracksJetTagProducerFromIPLowPtShortSig5 + fragment.hltTwoPromptHLTL3DisplacedDijetFullTracksHLTCaloJetTagFilterLowPt1PtrkShortSig5 ) fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt1PtrkShortSig5 = cms.Sequence( fragment.hltL4DisplacedDijetFullTracksJetPromptTracksAssociatorAtVertexLowPt1PtrkShortSig5 + fragment.hltL4PromptDisplacedDijetFullTracksTrackIPProducerLowPt1PtrkShortSig5 + fragment.hltL4PromptDisplacedDijetFullTracksJetTagProducerFromIPLowPt1PtrkShortSig5 + fragment.hltL4PromptDisplacedDijetFullTracksHLTCaloJetTagFilterLowPt1PtrkShortSig5 ) fragment.HLTDisplacedTrackRequirementLooseDisplacedJetsLowPt1PtrkShortSig5 = cms.Sequence( fragment.hltL4DisplacedDijetFullTracksJetTracksAssociatorAtVertexLowPt1PtrkShortSig5 + fragment.hltL4TaggedDisplacedDijetFullTracksTrackIPProducerLowPt1PtrkPt0p5ShortSig5 + fragment.hltL4DisplacedDijetFullTracksJetTagProducerLooseFromIPLowPt1PtrkPt0p5ShortSig5 + fragment.hltL4DisplacedDijetFullTracksHLTCaloJetTagFilterLooseLowPt1PtrkPt0p5ShortSig5 ) +fragment.HLTIterL3OIGlbDisplacedMuonTkCandidateSequence = cms.Sequence( fragment.hltIterL3TrajSeedOIStateFromDisplacedL2Muons + fragment.hltIterL3OIStateGlbDisplacedTrackCandidates + fragment.hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks + fragment.hltL3GlbDisplacedMuonsIterL3OIState + fragment.hltIterL3NoFiltersNoVtxTrajSeedOIHit + fragment.hltIterL3OIHitGlbDisplacedTrackCandidates + fragment.hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks + fragment.hltL3GlbDisplacedMuonsIterL3OIHit ) +fragment.HLTIterL3GlbDisplacedMuonCandidateSequence = cms.Sequence( fragment.HLTDoLocalPixelSequence + fragment.HLTDoLocalStripSequence + fragment.HLTIterL3OIGlbDisplacedMuonTkCandidateSequence + fragment.hltIterL3OIL3GlbDisplacedMuonsLinksCombination + fragment.hltIterL3OIL3GlbDisplacedMuons + fragment.hltIterL3OIGlbDisplacedMuonCandidates + fragment.hltL2SelectorForL3IOForGlbDisplaced ) +fragment.HLTIterativeTrackingIteration4GlbDisplacedMuons = cms.Sequence( fragment.hltDisplacedhltIter4PixelLessLayerTripletsForGlbDisplacedMuons + fragment.hltDisplacedhltIter4PixelLessClusterCheckForGlbDisplacedMuons + fragment.hltDisplacedhltIter4PixelLessSeedsForGlbDisplaced + fragment.hltDisplacedhltIter4CkfTrackCandidatesForGlbDisplacedMuons + fragment.hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons + fragment.hltIter4IterL3FromL2MuonTrackCutClassifier + fragment.hltIter4IterL3FromL2MuonTrackSelectionHighPurity ) +fragment.HLTL3GblDisplacedMuonNoCandRecoSequence = cms.Sequence( fragment.HLTIterL3GlbDisplacedMuonCandidateSequence + fragment.HLTIterativeTrackingIteration4GlbDisplacedMuons + fragment.hltIterOIhitMergedWithOIGlbDisplacedMuons + fragment.hltIter4MergedWithOIGlbDisplacedMuons + fragment.hltIterL3GlbDisplacedMuons + fragment.hltIterL3GlbDisplacedMuonsTracks + fragment.hltIterL3GlbDisplacedMuonsLinksCombination ) +fragment.HLTL3GblIter4DisplacedMuonRecoSequence = cms.Sequence( fragment.HLTL3GblDisplacedMuonNoCandRecoSequence + fragment.hltIterL3wIter4GlbDisplacedMuonCandidates ) +fragment.HLTDiPho10CaloIdLTime1nsSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLTime1nsFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLTime1nsUnseededFilter ) +fragment.HLTDiPho10CaloIdLTime1p2nsSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLTime1p2nsFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLTime1p2nsUnseededFilter ) +fragment.HLTDiPho10CaloIdLTime1p4nsSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLTime1p4nsFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLTime1p4nsUnseededFilter ) +fragment.HLTDiPho10CaloIdLTime1p6nsSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLTime1p6nsFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLTime1p6nsUnseededFilter ) +fragment.HLTDiPho10CaloIdLTime1p8nsSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLTime1p8nsFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLTime1p8nsUnseededFilter ) +fragment.HLTDiPho10CaloIdLTime2nsSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLTime2nsFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLTime2nsUnseededFilter ) +fragment.HLTDiPho10CaloIdLsminlt0p1Sequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLsminlt0p1Filter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLsminlt0p1UnseededFilter ) +fragment.HLTDiPho10CaloIdLsminlt0p12Sequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLsminlt0p12Filter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLsminlt0p12UnseededFilter ) +fragment.HLTDiPho10CaloIdLsminlt0p14Sequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLsminlt0p14Filter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLsminlt0p14UnseededFilter ) +fragment.HLTDiPho10CaloIdLsminlt0p16Sequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLsminlt0p16Filter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLsminlt0p16UnseededFilter ) +fragment.HLTDiPho10CaloIdLSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter ) fragment.HLTDoLocalPixelForHighBetaSequence = cms.Sequence( fragment.hltSiPixelDigisForHighBeta + fragment.hltSiPixelClustersForHighBeta + fragment.hltSiPixelClustersCacheForHighBeta + fragment.hltSiPixelRecHitsForHighBeta ) fragment.HLTPixelTrackingForHighBetaSequence = cms.Sequence( fragment.hltPixelTracksFilter + fragment.hltPixelTracksFitter + fragment.hltPixelTracksTrackingRegionsForHighBeta + fragment.hltPixelLayerTripletsForHighBeta + fragment.hltPixelTracksHitDoubletsForHighBeta + fragment.hltPixelTracksHitTripletsForHighBeta + fragment.hltPixelTracksForHighBeta ) fragment.HLTPixelTrackingForHighBetaBPixSequence = cms.Sequence( fragment.hltPixelTracksFilter + fragment.hltPixelTracksFitter + fragment.hltPixelTracksTrackingRegionsForHighBeta + fragment.hltPixelLayerTripletsForHighBetaBPix + fragment.hltPixelTracksHitDoubletsForHighBetaBPix + fragment.hltPixelTracksHitTripletsForHighBetaBPix + fragment.hltPixelTracksForHighBetaBPix ) @@ -119871,8 +121703,8 @@ fragment.HLT_DoubleMu4_LowMass_Displaced_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMuForLowMassDisplaced + fragment.hltPreDoubleMu4LowMassDisplaced + fragment.hltL1fL1sDoubleMuL1Filtered0ForLowMassDisplaced + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sDoubleMuL1Filtered0ForLowMassDisplaced) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMuL1Filtered0ForLowMassDisplaced) + fragment.hltDoubleMu4LowMassDisplacedL3Filtered + fragment.hltDisplacedmumuVtxProducerDoubleMu4LowMassDisplaced + fragment.hltDisplacedmumuFilterDoubleMu4LowMassDisplaced + fragment.HLTEndSequence ) fragment.HLT_Mu0_L1DoubleMu_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMuForLowMassInclusive + fragment.hltPreMu0L1DoubleMu + fragment.hltL1fL1sL1DoubleMuL1Filtered0LowMassInclusive + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sL1DoubleMuL1f0L2PreFiltered0ForLowMassInclusive) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sL1DoubleMuL1Filtered0LowMassInclusive) + fragment.hltL3fL1sDoubleMu0SQL1f0L2PreFilteres0L3Filtered0 + fragment.HLTEndSequence ) fragment.HLT_Mu4_L1DoubleMu_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMuForLowMassInclusive + fragment.hltPreMu4L1DoubleMu + fragment.hltL1fL1sL1DoubleMuL1Filtered0LowMassInclusive + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sL1DoubleMuL1f0L2PreFiltered0ForLowMassInclusive) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sL1DoubleMuL1Filtered0LowMassInclusive) + fragment.hltL3fL1sDoubleMu0SQL1f0L2PreFilteres0L3Filtered4 + fragment.HLTEndSequence ) -fragment.HLT_DoubleMu3_Trk_Tau3mu_v12 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9 + fragment.hltPreDoubleMu3TrkTau3mu + fragment.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + fragment.hltDoubleMu3TrkTau3muL3Filtered + fragment.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + fragment.hltDisplacedmumuFilterDoubleMu3Tau3mu + fragment.HLTBphTrackingDisplacedTau3muReg + fragment.hltTau3muTkAllConeTracksIter + fragment.hltTau3muTkVertexProducer + fragment.hltTau3muTkVertexFilter + fragment.HLTEndSequence ) -fragment.HLT_DoubleMu3_TkMu_DsTau3Mu_v4 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9 + fragment.hltPreDoubleMu3TkMuDsTau3Mu + fragment.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + fragment.hltDoubleMu3TrkTau3muL3Filtered + fragment.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + fragment.hltDisplacedmumuFilterDoubleMu3Tau3mu + fragment.HLTTrackerMuonSequenceLowPt + fragment.hltdstau3mumuontrkFltr + fragment.hltdstau3muDisplaced3muVtxProducer + fragment.hltdstau3muDisplaced3muFltr + fragment.HLTEndSequence ) +fragment.HLT_DoubleMu3_Trk_Tau3mu_v12 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50 + fragment.hltPreDoubleMu3TrkTau3mu + fragment.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + fragment.hltDoubleMu3TrkTau3muL3Filtered + fragment.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + fragment.hltDisplacedmumuFilterDoubleMu3Tau3mu + fragment.HLTBphTrackingDisplacedTau3muReg + fragment.hltTau3muTkAllConeTracksIter + fragment.hltTau3muTkVertexProducer + fragment.hltTau3muTkVertexFilter + fragment.HLTEndSequence ) +fragment.HLT_DoubleMu3_TkMu_DsTau3Mu_v4 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50 + fragment.hltPreDoubleMu3TkMuDsTau3Mu + fragment.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + fragment.hltDoubleMu3TrkTau3muL3Filtered + fragment.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + fragment.hltDisplacedmumuFilterDoubleMu3Tau3mu + fragment.HLTTrackerMuonSequenceLowPt + fragment.hltdstau3mumuontrkFltr + fragment.hltdstau3muDisplaced3muVtxProducer + fragment.hltdstau3muDisplaced3muFltr + fragment.HLTEndSequence ) fragment.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu3SQHTT200 + fragment.hltPreDoubleMu4Mass3p8DZPFHT350 + fragment.hltDoubleMuon4L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltDoubleMuon4L2PreFiltered0) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3DoubleMuon4L1Filtered0) + fragment.hltL3fL1DiMu3SQHT200L3PreFiltered4 + fragment.hltDoubleMuon4Mass3p8Filtered + fragment.hltDoubleMu4Mass3p8DZFilter + fragment.HLTAK4PFJetsSequence + fragment.hltPFHTJet30 + fragment.hltPFHT350Jet30 + fragment.HLTEndSequence ) fragment.HLT_DoubleMu4_MuMuTrk_Displaced_v15 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0er1p5OSIorDoubleMu0er1p4OSIorDoubleMu4OSIorDoubleMu4p5OS + fragment.hltPreDoubleMu4MuMuTrkDisplaced + fragment.hltL1fL1sDoubleMu0er15OSIorDoubleMu0er14OSIorDoubleMu4OSIorDoubleMu4p5OSL1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sDoubleMu0er15OSIorDoubleMu0er14OSIorDoubleMu4OSIorDoubleMu4p5OSL1Filtered0) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu0er15OSIorDoubleMu0er14OSIorDoubleMu4OSIorDoubleMu4p5OSL1Filtered0) + fragment.hltDoubleMu4MuMuDisplacedL3Filtered + fragment.hltDisplacedmumuVtxProducerDoubleMu4MuMu + fragment.hltDisplacedmumuFilterDoubleMu4MuMu + fragment.HLTBphTrackingDisplacedMuMuReg + fragment.hltMuMuTkAllConeTracksIter + fragment.hltMuMuTkVertexProducer + fragment.hltMuMuTkVertexFilter + fragment.HLTEndSequence ) fragment.HLT_Mu3_PFJet40_v16 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu3IorMu3Jet30er2p5 + fragment.hltPreMu3PFJet40 + fragment.hltL1fL1sMu3Jet30L1Filtered0 + fragment.hltL1sSingleJet35ObjectMap + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sMu3L1f0L2Filtered0) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sMu3L1Filtered0) + fragment.hltL3fL1sMu3L1f0L2f0L3Filtered3 + fragment.HLTAK4PFJetsSequence + fragment.hltMu3JetCollectionsForLeptonPlusPFJets + fragment.hltMu3PFJet40MuCleaned + fragment.HLTEndSequence ) @@ -120533,6 +122365,7 @@ fragment.MC_DoubleGlbTrkMu_TrkIsoVVL_DZ_v12 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0 + fragment.hltPreMCDoubleGlbTrkMuTrkIsoVVLDZ + fragment.hltL1fL1sDoubleMu0HighQL1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sDoubleMu0L1f0OneMuL2doubleGlb) + fragment.HLTL3muonrecoSequence + fragment.hltL3fL1sDoubleMu0L1f0L2f10L3doubleGlb + fragment.HLTTrackerMuonSequence + fragment.hltDiMuonGlbTrk + fragment.HLTGlbtrkmuontrkisovvlSequence + fragment.hltDiMuonGlbTrkRelTrkIsoFiltered0p4 + fragment.hltDiMuonGlbTrkRelTrkIsoFiltered0p4DzFiltered0p2 + fragment.HLTEndSequence ) fragment.MC_DoubleMuNoFiltersNoVtx_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0 + fragment.hltPreMCDoubleMuNoFiltersNoVtx + fragment.hltL1fL1sDoubleMu0HighQL1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + cms.ignore(fragment.hltL2fDimuonL1f0L2NoVtx) + fragment.HLTL3NoFiltersNoVtxmuonrecoSequence + fragment.hltL3fDimuonL1f0L2NVL3NoFiltersNoVtx + fragment.HLTEndSequence ) fragment.MC_PFBTagDeepJet_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltPreMCPFBTagDeepJet + fragment.HLTAK4PFJetsSequence + fragment.HLTBtagDeepJetSequencePF + fragment.hltBTagPFDeepJet4p06Single + fragment.HLTEndSequence ) +fragment.MC_Run3_PFScoutingPixelTracking_v16 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sMCRun3PFScoutingPixelTracking + fragment.hltPreMCRun3PFScoutingPixelTracking + fragment.HLTAK4CaloJetsSequence + fragment.HLTPixelOnlyPFScoutingSequence + fragment.hltEgammaR9ID + fragment.HLTL2muonrecoSequenceNoVtx + fragment.HLTL3muonrecoSequenceNoVtx + fragment.hltDisplacedmumuVtxNoMatchingProducer + fragment.HLTMuIsolationSequenceNoVtx + fragment.hltFEDSelectorL1 + fragment.HLTPixelOnlyPFScoutingPackingSequence + fragment.HLTEndSequence ) fragment.AlCa_EcalPi0EBonly_v13 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sAlCaEcalPi0Eta + fragment.hltPreAlCaEcalPi0EBonly + fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.hltSimple3x3Clusters + fragment.hltAlCaPi0RecHitsFilterEBonlyRegional + fragment.hltAlCaPi0EBUncalibrator + fragment.hltAlCaPi0EBRechitsToDigis + fragment.HLTEndSequence ) fragment.AlCa_EcalPi0EEonly_v13 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sAlCaEcalPi0Eta + fragment.hltPreAlCaEcalPi0EEonly + fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.hltSimple3x3Clusters + fragment.hltAlCaPi0RecHitsFilterEEonlyRegional + fragment.hltAlCaPi0EEUncalibrator + fragment.hltAlCaPi0EERechitsToDigis + fragment.HLTEndSequence ) fragment.AlCa_EcalEtaEBonly_v13 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sAlCaEcalPi0Eta + fragment.hltPreAlCaEcalEtaEBonly + fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.hltSimple3x3Clusters + fragment.hltAlCaEtaRecHitsFilterEBonlyRegional + fragment.hltAlCaEtaEBUncalibrator + fragment.hltAlCaEtaEBRechitsToDigis + fragment.HLTEndSequence ) @@ -120647,7 +122480,7 @@ fragment.HLT_TrkMu6NoFiltersNoVtx_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu3 + fragment.hltPreTrkMu6NoFiltersNoVtx + fragment.hltL1fL1sSingleMu3L1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + cms.ignore(fragment.hltL2fL1sSingleMu3L1f0L2Filtered10OneMuNoVtx) + fragment.HLTL3muonrecoSequenceNoVtx + fragment.hltL3fL1sSingleMu3L1f0L2f10OneMuL3Filtered6NoVtx + fragment.HLTTrackerMuonSequenceNoVtx + fragment.hltSingleTrkMuFiltered6NoVtx + fragment.HLTEndSequence ) fragment.HLT_TrkMu16NoFiltersNoVtx_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu7 + fragment.hltPreTrkMu16NoFiltersNoVtx + fragment.hltL1fL1sSingleMu7L1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + cms.ignore(fragment.hltL2fL1sSingleMu7L1f0L2Filtered10OneMuNoVtx) + fragment.HLTL3muonrecoSequenceNoVtx + fragment.hltL3fL1sSingleMu7L1f0L2f10OneMuL3Filtered16NoVtx + fragment.HLTTrackerMuonSequenceNoVtx + fragment.hltSingleTrkMuFiltered16NoVtx + fragment.HLTEndSequence ) fragment.HLT_DoubleTrkMu_16_6_NoFiltersNoVtx_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0SQ + fragment.hltPreDoubleTrkMu166NoFiltersNoVtx + fragment.hltL1fL1sDoubleMu0SQL1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + cms.ignore(fragment.hltL2pfL1sDoubleMu0SQL1f0L2PreFiltered0NoVtx) + cms.ignore(fragment.hltL2fL1sDoubleMu0SQL1f0L2Filtered10OneMuNoVtx) + fragment.HLTL3muonrecoSequenceNoVtx + fragment.hltL3pfL1sDoubleMu0SQL1f0L2pf0OneMuL3PreFiltered6NoVtx + fragment.hltL3fL1sDoubleMu0SQL1f0L2f10OneMuL3Filtered16NoVtx + fragment.HLTTrackerMuonSequenceNoVtx + fragment.hltDoubleTrkMuFiltered6NoVtx + fragment.hltSingleTrkMuFiltered16NoVtx + fragment.HLTEndSequence ) -fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleTauBigOR + fragment.hltPreDoubleMediumDeepTauIsoPFTauHPS35L2NNeta2p1 + fragment.HLTL2TauTagNNSequence + fragment.hltL2DoubleTauTagNNFilter + fragment.HLTGlobalPFTauHPSSequence + fragment.HLTHPSDeepTauIsoPFTauSequence + fragment.hltHpsSelectedPFTausMediumDitauWPDeepTau + fragment.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatch + fragment.hltHpsDoublePFTau35MediumDitauWPDeepTauL1HLTMatched + fragment.hltHpsDoublePFTau35MediumDitauWPDeepTauDz02 + fragment.HLTEndSequence ) +fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleTauBigOR + fragment.hltPreDoubleMediumDeepTauIsoPFTauHPS35L2NNeta2p1 + fragment.HLTL2TauTagNNSequence + fragment.hltL2DoubleTauTagNNFilter + fragment.HLTGlobalPFTauHPSSequence + fragment.HLTHPSDeepTauIsoPFTauSequence + fragment.hltHpsSelectedPFTausMediumDitauWPDeepTau + fragment.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatch + fragment.hltHpsDoublePFTau35MediumDitauWPDeepTauL1HLTMatched + fragment.HLTEndSequence ) fragment.HLT_DoubleMediumChargedIsoPFTauHPS40_Trk1_eta2p1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleTauBigOR + fragment.hltPreDoubleMediumChargedIsoPFTauHPS40Trk1eta2p1 + fragment.HLTL2TauJetsL1TauSeededSequence + fragment.hltDoubleL2Tau26eta2p2 + fragment.HLTL2p5IsoTauL1TauSeededGlobalSequence + fragment.hltDoubleL2GlobIsoTau26eta2p2 + fragment.HLTGlobalPFTauHPSSequence + fragment.HLTHPSDoublePFTauPt40Eta2p1Trk1 + fragment.HLTHPSMediumChargedIsoPFTauSequence + fragment.hltHpsSelectedPFTausTrackPt1MediumChargedIsolation + fragment.hltHpsDoublePFTau40TrackPt1MediumChargedIsolation + fragment.hltHpsL1JetsHLTDoublePFTauTrackPt1MediumChargedIsolationMatch + fragment.hltHpsDoublePFTau40TrackPt1MediumChargedIsolationL1HLTMatched + fragment.hltHpsDoublePFTau40TrackPt1MediumChargedIsolationDz02 + fragment.HLTEndSequence ) fragment.HLT_DoubleTightChargedIsoPFTauHPS35_Trk1_eta2p1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleTauBigOR + fragment.hltPreDoubleTightChargedIsoPFTauHPS35Trk1eta2p1 + fragment.HLTL2TauJetsL1TauSeededSequence + fragment.hltDoubleL2Tau26eta2p2 + fragment.HLTL2p5IsoTauL1TauSeededGlobalSequence + fragment.hltDoubleL2GlobIsoTau26eta2p2 + fragment.HLTGlobalPFTauHPSSequence + fragment.HLTHPSDoublePFTauPt35Eta2p1Trk1 + fragment.HLTHPSTightChargedIsoPFTauSequence + fragment.hltHpsSelectedPFTausTrackPt1TightChargedIsolation + fragment.hltHpsDoublePFTau35TrackPt1TightChargedIsolation + fragment.hltHpsL1JetsHLTDoublePFTauTrackPt1TightChargedIsolationMatch + fragment.hltHpsDoublePFTau35TrackPt1TightChargedIsolationL1HLTMatched + fragment.hltHpsDoublePFTau35TrackPt1TightChargedIsolationDz02 + fragment.HLTEndSequence ) fragment.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sBigORLooseIsoEGXXerIsoTauYYerdRMin0p3 + fragment.hltPreEle24eta2p1WPTightGsfLooseDeepTauPFTauHPS30eta2p1CrossL1 + fragment.HLTEle24erWPTightGsfForTauSequence + fragment.HLTGlobalPFTauHPSSequence + fragment.hltOverlapFilterIsoEle24IsoTau30WPTightGsfCaloJet5 + fragment.HLTHPSLooseETauWPDeepTauPFTau30Sequence + fragment.hltHpsL1JetsHLTPFTauLooseEtauWPDeepTauMatch + fragment.hltHpsSelectedPFTau30LooseETauWPDeepTauL1HLTMatched + fragment.hltHpsOverlapFilterIsoEle24WPTightGsfLooseETauWPDeepTauPFTau30 + fragment.HLTEndSequence ) @@ -120684,7 +122517,7 @@ fragment.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJetOrHTTOrMuHTT + fragment.hltPreAK8PFJet230SoftDropMass40PFAK8ParticleNetTauTau0p30 + fragment.HLTAK8CaloJetsSequence + fragment.hltAK8SingleCaloJet200 + fragment.HLTAK8PFJetsSequence + fragment.hltAK8PFJetsCorrectedMatchedToCaloJets200 + fragment.hltSingleAK8PFJet230 + fragment.hltAK8PFJets230Constituents + fragment.hltAK8PFSoftDropJets230 + fragment.hltAK8SinglePFJets230SoftDropMass40 + fragment.HLTJetFlavourTagParticleNetSequencePFAK8 + fragment.hltAK8PFJets230SoftDropMass40 + fragment.hltAK8SinglePFJets230SoftDropMass40ParticleNetTauTau0p30 + fragment.HLTEndSequence ) fragment.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJetOrHTTOrMuHTT + fragment.hltPreAK8PFJet250SoftDropMass40PFAK8ParticleNetTauTau0p30 + fragment.HLTAK8CaloJetsSequence + fragment.hltAK8SingleCaloJet200 + fragment.HLTAK8PFJetsSequence + fragment.hltAK8PFJetsCorrectedMatchedToCaloJets200 + fragment.hltSingleAK8PFJet250 + fragment.hltAK8PFJets250Constituents + fragment.hltAK8PFSoftDropJets250 + fragment.hltAK8SinglePFJets250SoftDropMass40 + fragment.HLTJetFlavourTagParticleNetSequencePFAK8 + fragment.hltAK8PFJets250SoftDropMass40 + fragment.hltAK8SinglePFJets250SoftDropMass40ParticleNetTauTau0p30 + fragment.HLTEndSequence ) fragment.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJetOrHTTOrMuHTT + fragment.hltPreAK8PFJet275SoftDropMass40PFAK8ParticleNetTauTau0p30 + fragment.HLTAK8CaloJetsSequence + fragment.hltAK8SingleCaloJet200 + fragment.HLTAK8PFJetsSequence + fragment.hltAK8PFJetsCorrectedMatchedToCaloJets200 + fragment.hltSingleAK8PFJet275 + fragment.hltAK8PFJets275Constituents + fragment.hltAK8PFSoftDropJets275 + fragment.hltAK8SinglePFJets275SoftDropMass40 + fragment.HLTJetFlavourTagParticleNetSequencePFAK8 + fragment.hltAK8PFJets275SoftDropMass40 + fragment.hltAK8SinglePFJets275SoftDropMass40ParticleNetTauTau0p30 + fragment.HLTEndSequence ) -fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleTauJet + fragment.hltPreDoubleMediumDeepTauIsoPFTauHPS30L2NNeta2p1PFJet60 + fragment.HLTL2TauTagNNSequence + fragment.hltL2DoubleTauJetTagNNFilter + fragment.HLTGlobalPFTauHPSSequence + fragment.HLTHPSDeepTauIsoPFTauSequence + fragment.hltHpsSelectedPFTausMediumDitauWPDeepTauDoubleTauJet + fragment.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatchDoubleTauJet + fragment.hltHpsDoublePFTau30MediumDitauWPDeepTauL1HLTMatchedDoubleTauJet + fragment.hltHpsDoublePFTau30MediumDitauWPDeepTauDz02DoubleTauJet + fragment.HLTAK4PFJetsSequence + fragment.hltPFJetsCorrectedMatchedToL1 + fragment.hlt1PFJet60L1HLTMatched + fragment.hltHpsOverlapFilterDeepTauDoublePFTau30PFJet60 + fragment.HLTEndSequence ) +fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleTauJet + fragment.hltPreDoubleMediumDeepTauIsoPFTauHPS30L2NNeta2p1PFJet60 + fragment.HLTL2TauTagNNSequence + fragment.hltL2DoubleTauJetTagNNFilter + fragment.HLTGlobalPFTauHPSSequence + fragment.HLTHPSDeepTauIsoPFTauSequence + fragment.hltHpsSelectedPFTausMediumDitauWPDeepTauDoubleTauJet + fragment.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatchDoubleTauJet + fragment.hltHpsDoublePFTau30MediumDitauWPDeepTauL1HLTMatchedDoubleTauJet + fragment.HLTAK4PFJetsSequence + fragment.hltPFJetsCorrectedMatchedToL1 + fragment.hlt1PFJet60L1HLTMatched + fragment.hltHpsOverlapFilterDeepTauDoublePFTau30PFJet60 + fragment.HLTEndSequence ) fragment.HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1VBFDiJetIsoTau + fragment.hltPreDoublePFJets40Mass500MediumDeepTau45L2NNMediumDeepTau20eta2p1 + fragment.HLTL2TauTagNNSequence + fragment.hltL2VBFIsoTauNNFilter + fragment.HLTGlobalPFTauHPSSequence + fragment.HLTHPSDeepTauIsoPFTauSequenceForVBFIsoTau + fragment.hltHpsSelectedPFTausMediumDitauWPDeepTauForVBFIsoTau + fragment.hltHpsDoublePFTau20MediumDitauWPDeepTauNoMatch + fragment.hltHpsL1VBFJetsAndIsoTauHLTDoublePFTauMediumDitauWPDeepTauMatch + fragment.hltHpsSinglePFTau45MediumDitauWPDeepTauL1HLTMatched + fragment.HLTAK4PFJetsSequence + fragment.hltRealDijetFilter + fragment.hltVBFIsoTauL1TLooseIDPFJetsMatching + fragment.hltVBFLooseIDPFDummyFilter + fragment.hltMatchedVBFIsoTauTwoPFJetsDoubleHpsDeepTauIsoPF25TauOverlapRemoval + fragment.hltMatchedVBFIsoTauTwoPFJets2CrossCleanedFromDoubleHpsDeepTauIsoPFTauHPS20 + fragment.HLTEndSequence ) fragment.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + fragment.hltPreDoubleL2Mu10NoVtx2ChaVetoL3Mu0DxyMax1cm + fragment.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + fragment.hltL2fL1fMuf0DoubleL2MuNoVtx10Q + fragment.hltL2fDoubleMu10NoVertexL2Filtered + fragment.HLTL3muonrecoSequenceNoVtx + ~fragment.hltL3fDimuonL1f0ppL2NV2Chaf10L3NVf0Veto1Prompt + fragment.HLTEndSequence ) fragment.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + fragment.hltPreDoubleL3Mu1610NoVtxDxyMin0p01cm + fragment.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + fragment.hltL2fL1DoubleMuf0L2DoubleMuNoVtxFiltered7 + fragment.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered15 + fragment.HLTL3NoFiltersNoVtxmuonrecoSequence + fragment.hltL3fL1DoubleMuf0L2NVf15f7L3DoubleMuNVf10Displaced + fragment.hltL3fL1DoubleMuf0L2NVf15f7L3SingleMuNVf16Displaced + fragment.HLTEndSequence ) @@ -120717,6 +122550,32 @@ fragment.HLT_PFMET105_PFJet100_looseRecoiling_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sETMHF90SingleJet60looseRecoiling + fragment.hltPrePFMET105PFJet100looseRecoiling + fragment.HLTRecoMETSequence + fragment.hltMET75 + fragment.HLTAK4CaloJetsSequence + fragment.hltSingleAK4CaloJet70 + fragment.HLTAK4PFJetsSequence + fragment.hltPFJetsCorrectedMatchedToCaloJets70 + fragment.hltSinglePFJet100 + fragment.hltPFMETProducer + fragment.hltPFMET105 + fragment.hltPFJet100PFMET105MinDPhi2 + fragment.HLTEndSequence ) fragment.HLT_PFMET110_PFJet100_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sETMHF90SingleJet60looseRecoiling + fragment.hltPrePFMET110PFJet100 + fragment.HLTRecoMETSequence + fragment.hltMET75 + fragment.HLTAK4CaloJetsSequence + fragment.hltSingleAK4CaloJet70 + fragment.HLTAK4PFJetsSequence + fragment.hltPFJetsCorrectedMatchedToCaloJets70 + fragment.hltSinglePFJet100 + fragment.hltPFMETProducer + fragment.hltPFMET110 + fragment.HLTEndSequence ) fragment.HLT_PFMET110_PFJet100_looseRecoiling_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sETMHF90SingleJet60looseRecoiling + fragment.hltPrePFMET110PFJet100looseRecoiling + fragment.HLTRecoMETSequence + fragment.hltMET75 + fragment.HLTAK4CaloJetsSequence + fragment.hltSingleAK4CaloJet70 + fragment.HLTAK4PFJetsSequence + fragment.hltPFJetsCorrectedMatchedToCaloJets70 + fragment.hltSinglePFJet100 + fragment.hltPFMETProducer + fragment.hltPFMET110 + fragment.hltPFJet100PFMET110MinDPhi2 + fragment.HLTEndSequence ) +fragment.HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + fragment.hltPreDoubleL3Iter4Mu1610NoVtxDxyMin0p01cm + fragment.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + fragment.hltL2fL1DoubleMuf0L2DoubleMuNoVtxFiltered7 + fragment.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered15 + fragment.HLTL3GblIter4DisplacedMuonRecoSequence + fragment.hltL3fL1DoubleMuf0L2NVf15f7L3DoubleMuNVf10DisplacedIter4 + fragment.hltL3fL1DoubleMuf0L2NVf15f7L3SingleMuNVf16DisplacedIter4 + fragment.HLTEndSequence ) +fragment.HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + fragment.hltPreL3Iter4Mu10NoVtxDxyMin0p01cm + fragment.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + fragment.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered7 + fragment.HLTL3GblIter4DisplacedMuonRecoSequence + fragment.hltL3fL1f0L2f0Filtered10GlbDisplacedIter4 + fragment.HLTEndSequence ) +fragment.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT170L1SingleLLPJetDisplacedDijet40DisplacedTrack + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT170 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + fragment.hltIter02DisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIteration4DisplacedJets + fragment.HLTDisplacedTrackRequirementDisplacedJetsLowPt + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDisplacedDijet40DisplacedTrack + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + fragment.hltIter02DisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIteration4DisplacedJets + fragment.HLTDisplacedTrackRequirementDisplacedJetsLowPt + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDisplacedDijet60DisplacedTrack + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt60 + fragment.hltCentralCaloJetptMidPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsMidPt + fragment.hltDisplacedHLTCaloJetCollectionProducerMidPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsMidPt + fragment.hltIter02DisplacedHLTCaloJetCollectionProducerMidPt + fragment.HLTIterativeTrackingIteration4DisplacedJets + fragment.HLTDisplacedTrackRequirementDisplacedJetsMidPt + fragment.HLTEndSequence ) +fragment.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT270L1SingleLLPJetDisplacedDijet40DisplacedTrack + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT270 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + fragment.hltIter02DisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIteration4DisplacedJets + fragment.HLTDisplacedTrackRequirementDisplacedJetsLowPt + fragment.HLTEndSequence ) +fragment.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT320L1SingleLLPJetDisplacedDijet60Inclusive + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT320 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt60 + fragment.hltCentralCaloJetptMidPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsMidPt + fragment.hltDisplacedHLTCaloJetCollectionProducerMidPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsMidPt + fragment.HLTEndSequence ) +fragment.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT420L1SingleLLPJetDisplacedDijet60Inclusive + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT420 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt60 + fragment.hltCentralCaloJetptMidPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsMidPt + fragment.hltDisplacedHLTCaloJetCollectionProducerMidPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsMidPt + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay1nsTrackless + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltSingleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducerSingle + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPtSingle + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPtSingle + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPtSingle + fragment.hltCaloJetTimingProducerSingle + fragment.hltCaloJetTimingFilterSingle1ns + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay2nsInclusive + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltSingleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducerSingle + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPtSingle + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPtSingle + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPtSingle + fragment.hltCaloJetTimingProducerSingle + fragment.hltCaloJetTimingFilterSingle2ns + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay0p5nsTrackless + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + fragment.hltCaloJetTimingProducer + fragment.hltCaloJetTimingFilterDouble0p5ns + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay1nsInclusive + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + fragment.hltCaloJetTimingProducer + fragment.hltCaloJetTimingFilterDouble1ns + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDisplacedDijet30Inclusive1PtrkShortSig5 + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt30 + fragment.hltCentralCaloJetptLowPt30CollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLow30Pt1PtrkShortSig5 + fragment.hltDisplacedHLTCaloJetCollectionProducerLow30Pt1PtrkShortSig5 + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLow30Pt1PtrkShortSig5 + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDisplacedDijet35Inclusive1PtrkShortSig5 + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt35 + fragment.hltCentralCaloJetptLowPt35CollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLow35Pt1PtrkShortSig5 + fragment.hltDisplacedHLTCaloJetCollectionProducerLow35Pt1PtrkShortSig5 + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLow35Pt1PtrkShortSig5 + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDisplacedDijet40Inclusive1PtrkShortSig5 + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt1PtrkShortSig5 + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPt1PtrkShortSig5 + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt1PtrkShortSig5 + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10Time1ns_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10Time1ns + fragment.HLTDiPho10CaloIdLTime1nsSequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10Time1p2ns_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10Time1p2ns + fragment.HLTDiPho10CaloIdLTime1p2nsSequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10Time1p4ns_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10Time1p4ns + fragment.HLTDiPho10CaloIdLTime1p4nsSequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10Time1p6ns_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10Time1p6ns + fragment.HLTDiPho10CaloIdLTime1p6nsSequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10Time1p8ns_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10Time1p8ns + fragment.HLTDiPho10CaloIdLTime1p8nsSequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10Time2ns_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10Time2ns + fragment.HLTDiPho10CaloIdLTime2nsSequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10sminlt0p1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10sminlt0p1 + fragment.HLTDiPho10CaloIdLsminlt0p1Sequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10sminlt0p12_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10sminlt0p12 + fragment.HLTDiPho10CaloIdLsminlt0p12Sequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10sminlt0p14_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10sminlt0p14 + fragment.HLTDiPho10CaloIdLsminlt0p14Sequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10sminlt0p16_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10sminlt0p16 + fragment.HLTDiPho10CaloIdLsminlt0p16Sequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10_CaloIdL_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10CaloIdL + fragment.HLTDiPho10CaloIdLSequence + fragment.HLTEndSequence ) fragment.HLT_ExpressMuons_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltPreExpressMuons + fragment.hltExpressMuonsFilter + fragment.HLTEndSequence ) fragment.HLT_OnlineMonitorGroup_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltPreOnlineMonitorGroup + fragment.hltOnlineMonitorGroupFilter + fragment.HLTEndSequence ) fragment.HLT_HIOnlineMonitorGroup_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltPreHIOnlineMonitorGroup + fragment.hltHIOnlineMonitorGroupFilter + fragment.HLTEndSequence ) @@ -121552,7 +123411,7 @@ fragment.Dataset_ppForward = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetppForward + fragment.hltPreDatasetppForward ) -fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.HLT_AK8PFJet360_TrimMass30_v18, fragment.HLT_AK8PFJet380_TrimMass30_v11, fragment.HLT_AK8PFJet400_TrimMass30_v12, fragment.HLT_AK8PFJet420_TrimMass30_v11, fragment.HLT_AK8PFHT750_TrimMass50_v12, fragment.HLT_AK8PFHT800_TrimMass50_v12, fragment.HLT_AK8PFHT850_TrimMass50_v11, fragment.HLT_AK8PFHT900_TrimMass50_v11, fragment.HLT_CaloJet10_NoJetID_v3, fragment.HLT_CaloJet20_NoJetID_v3, fragment.HLT_CaloJet50_NoJetID_v3, fragment.HLT_CaloJet500_NoJetID_v12, fragment.HLT_CaloJet550_NoJetID_v7, fragment.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v4, fragment.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v4, fragment.HLT_Trimuon5_3p5_2_Upsilon_Muon_v5, fragment.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v3, fragment.HLT_DoubleEle25_CaloIdL_MW_v4, fragment.HLT_DoubleEle27_CaloIdL_MW_v4, fragment.HLT_DoubleEle33_CaloIdL_MW_v17, fragment.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v7, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v20, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v20, fragment.HLT_Ele27_Ele37_CaloIdL_MW_v4, fragment.HLT_Mu27_Ele37_CaloIdL_MW_v5, fragment.HLT_Mu37_Ele27_CaloIdL_MW_v5, fragment.HLT_Mu37_TkMu27_v5, fragment.HLT_DoubleMu4_3_Bs_v15, fragment.HLT_DoubleMu4_3_Jpsi_v15, fragment.HLT_DoubleMu4_3_LowMass_v1, fragment.HLT_DoubleMu4_LowMass_Displaced_v1, fragment.HLT_Mu0_L1DoubleMu_v1, fragment.HLT_Mu4_L1DoubleMu_v1, fragment.HLT_DoubleMu3_Trk_Tau3mu_v12, fragment.HLT_DoubleMu3_TkMu_DsTau3Mu_v4, fragment.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8, fragment.HLT_DoubleMu4_MuMuTrk_Displaced_v15, fragment.HLT_Mu3_PFJet40_v16, fragment.HLT_Mu7p5_L2Mu2_Jpsi_v10, fragment.HLT_Mu7p5_L2Mu2_Upsilon_v10, fragment.HLT_Mu7p5_Track2_Jpsi_v11, fragment.HLT_Mu7p5_Track3p5_Jpsi_v11, fragment.HLT_Mu7p5_Track7_Jpsi_v11, fragment.HLT_Mu7p5_Track2_Upsilon_v11, fragment.HLT_Mu7p5_Track3p5_Upsilon_v11, fragment.HLT_Mu7p5_Track7_Upsilon_v11, fragment.HLT_Mu3_L1SingleMu5orSingleMu7_v1, fragment.HLT_DoublePhoton33_CaloIdL_v6, fragment.HLT_DoublePhoton70_v6, fragment.HLT_DoublePhoton85_v14, fragment.HLT_Ele20_WPTight_Gsf_v6, fragment.HLT_Ele15_WPLoose_Gsf_v3, fragment.HLT_Ele17_WPLoose_Gsf_v3, fragment.HLT_Ele20_WPLoose_Gsf_v6, fragment.HLT_Ele20_eta2p1_WPLoose_Gsf_v6, fragment.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4, fragment.HLT_Ele27_WPTight_Gsf_v16, fragment.HLT_Ele28_WPTight_Gsf_v1, fragment.HLT_Ele30_WPTight_Gsf_v1, fragment.HLT_Ele32_WPTight_Gsf_v15, fragment.HLT_Ele35_WPTight_Gsf_v9, fragment.HLT_Ele35_WPTight_Gsf_L1EGMT_v5, fragment.HLT_Ele38_WPTight_Gsf_v9, fragment.HLT_Ele40_WPTight_Gsf_v9, fragment.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v9, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_TightChargedIsoPFTauHPS30_eta2p1_CrossL1_v1, fragment.HLT_HT450_Beamspot_v11, fragment.HLT_HT300_Beamspot_v11, fragment.HLT_HT60_Beamspot_v1, fragment.HLT_ZeroBias_Beamspot_v4, fragment.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_CrossL1_v1, fragment.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_TightID_CrossL1_v1, fragment.HLT_IsoMu27_LooseChargedIsoPFTau20_Trk1_eta2p1_SingleL1_v5, fragment.HLT_IsoMu27_LooseChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, fragment.HLT_IsoMu27_MediumChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, fragment.HLT_IsoMu27_TightChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, fragment.HLT_IsoMu20_v15, fragment.HLT_IsoMu24_v13, fragment.HLT_IsoMu24_eta2p1_v15, fragment.HLT_IsoMu27_v16, fragment.HLT_IsoMu30_v4, fragment.HLT_UncorrectedJetE30_NoBPTX_v6, fragment.HLT_UncorrectedJetE30_NoBPTX3BX_v6, fragment.HLT_UncorrectedJetE60_NoBPTX3BX_v6, fragment.HLT_UncorrectedJetE70_NoBPTX3BX_v6, fragment.HLT_L1SingleMu18_v3, fragment.HLT_L1SingleMu25_v2, fragment.HLT_L1SingleMuOpen_v2, fragment.HLT_L1SingleMuOpen_DT_v2, fragment.HLT_L1SingleMuCosmics_v1, fragment.HLT_L1SingleMu3_v1, fragment.HLT_L1SingleMu5_v1, fragment.HLT_L1SingleMu7_v1, fragment.HLT_L1DoubleMu0_v1, fragment.HLT_L1SingleEG10_v2, fragment.HLT_L1SingleEG15_v2, fragment.HLT_L1SingleEG18_v1, fragment.HLT_L1SingleJet16_v1, fragment.HLT_L1SingleJet20_v1, fragment.HLT_L1SingleJet35_v1, fragment.HLT_L1SingleJet8erHE_v1, fragment.HLT_L1SingleJet10erHE_v1, fragment.HLT_L1SingleJet12erHE_v1, fragment.HLT_L1SingleJet200_v1, fragment.HLT_L1DoubleJetC50_v2, fragment.HLT_L1EXT_HCAL_LaserMon1_v1, fragment.HLT_L1EXT_HCAL_LaserMon4_v1, fragment.HLT_DQMPixels_SingleMuOpen_v1, fragment.HLT_L2DoubleMu23_NoVertex_v2, fragment.HLT_L2Mu10_v7, fragment.HLT_L2Mu10_NoVertex_NoBPTX3BX_v5, fragment.HLT_L2Mu10_NoVertex_NoBPTX_v6, fragment.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4, fragment.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5, fragment.HLT_L2Mu50_v2, fragment.HLT_L2Mu23NoVtx_2Cha_v1, fragment.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v1, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2, fragment.HLT_DoubleL2Mu50_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v2, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v14, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v3, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v3, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v3, fragment.HLT_Mu25_TkMu0_Onia_v8, fragment.HLT_Mu30_TkMu0_Psi_v1, fragment.HLT_Mu30_TkMu0_Upsilon_v1, fragment.HLT_Mu20_TkMu0_Phi_v8, fragment.HLT_Mu25_TkMu0_Phi_v8, fragment.HLT_Mu12_v3, fragment.HLT_Mu15_v3, fragment.HLT_Mu20_v12, fragment.HLT_Mu27_v13, fragment.HLT_Mu50_v13, fragment.HLT_Mu55_v3, fragment.HLT_CascadeMu100_v3, fragment.HLT_HighPtTkMu100_v2, fragment.HLT_DiPFJet15_NoCaloMatched_v16, fragment.HLT_DiPFJet25_NoCaloMatched_v16, fragment.HLT_DiPFJet15_FBEta3_NoCaloMatched_v17, fragment.HLT_DiPFJet25_FBEta3_NoCaloMatched_v17, fragment.HLT_DiPFJetAve40_v14, fragment.HLT_DiPFJetAve60_v14, fragment.HLT_DiPFJetAve80_v13, fragment.HLT_DiPFJetAve140_v13, fragment.HLT_DiPFJetAve200_v13, fragment.HLT_DiPFJetAve260_v14, fragment.HLT_DiPFJetAve320_v14, fragment.HLT_DiPFJetAve400_v14, fragment.HLT_DiPFJetAve500_v14, fragment.HLT_DiPFJetAve15_HFJEC_v17, fragment.HLT_DiPFJetAve25_HFJEC_v17, fragment.HLT_DiPFJetAve35_HFJEC_v17, fragment.HLT_DiPFJetAve60_HFJEC_v15, fragment.HLT_DiPFJetAve80_HFJEC_v16, fragment.HLT_DiPFJetAve100_HFJEC_v16, fragment.HLT_DiPFJetAve160_HFJEC_v16, fragment.HLT_DiPFJetAve220_HFJEC_v16, fragment.HLT_DiPFJetAve300_HFJEC_v16, fragment.HLT_AK8PFJet15_v3, fragment.HLT_AK8PFJet25_v3, fragment.HLT_AK8PFJet40_v16, fragment.HLT_AK8PFJet60_v15, fragment.HLT_AK8PFJet80_v15, fragment.HLT_AK8PFJet140_v15, fragment.HLT_AK8PFJet200_v15, fragment.HLT_AK8PFJet260_v16, fragment.HLT_AK8PFJet320_v16, fragment.HLT_AK8PFJet400_v16, fragment.HLT_AK8PFJet450_v16, fragment.HLT_AK8PFJet500_v16, fragment.HLT_AK8PFJet550_v11, fragment.HLT_PFJet15_v3, fragment.HLT_PFJet25_v3, fragment.HLT_PFJet40_v21, fragment.HLT_PFJet60_v21, fragment.HLT_PFJet80_v20, fragment.HLT_PFJet140_v19, fragment.HLT_PFJet200_v19, fragment.HLT_PFJet260_v20, fragment.HLT_PFJet320_v20, fragment.HLT_PFJet400_v20, fragment.HLT_PFJet450_v21, fragment.HLT_PFJet500_v21, fragment.HLT_PFJet550_v11, fragment.HLT_PFJetFwd15_v3, fragment.HLT_PFJetFwd25_v3, fragment.HLT_PFJetFwd40_v19, fragment.HLT_PFJetFwd60_v19, fragment.HLT_PFJetFwd80_v18, fragment.HLT_PFJetFwd140_v18, fragment.HLT_PFJetFwd200_v18, fragment.HLT_PFJetFwd260_v19, fragment.HLT_PFJetFwd320_v19, fragment.HLT_PFJetFwd400_v19, fragment.HLT_PFJetFwd450_v19, fragment.HLT_PFJetFwd500_v19, fragment.HLT_AK8PFJetFwd15_v3, fragment.HLT_AK8PFJetFwd25_v3, fragment.HLT_AK8PFJetFwd40_v15, fragment.HLT_AK8PFJetFwd60_v14, fragment.HLT_AK8PFJetFwd80_v14, fragment.HLT_AK8PFJetFwd140_v14, fragment.HLT_AK8PFJetFwd200_v14, fragment.HLT_AK8PFJetFwd260_v15, fragment.HLT_AK8PFJetFwd320_v15, fragment.HLT_AK8PFJetFwd400_v15, fragment.HLT_AK8PFJetFwd450_v15, fragment.HLT_AK8PFJetFwd500_v15, fragment.HLT_PFHT180_v17, fragment.HLT_PFHT250_v17, fragment.HLT_PFHT370_v17, fragment.HLT_PFHT430_v17, fragment.HLT_PFHT510_v17, fragment.HLT_PFHT590_v17, fragment.HLT_PFHT680_v17, fragment.HLT_PFHT780_v17, fragment.HLT_PFHT890_v17, fragment.HLT_PFHT1050_v18, fragment.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v12, fragment.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v12, fragment.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v12, fragment.HLT_PFHT700_PFMET95_PFMHT95_IDTight_v12, fragment.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v12, fragment.HLT_PFHT800_PFMET85_PFMHT85_IDTight_v12, fragment.HLT_PFMET110_PFMHT110_IDTight_v20, fragment.HLT_PFMET120_PFMHT120_IDTight_v20, fragment.HLT_PFMET130_PFMHT130_IDTight_v20, fragment.HLT_PFMET140_PFMHT140_IDTight_v20, fragment.HLT_PFMET100_PFMHT100_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET110_PFMHT110_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET120_PFMHT120_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET130_PFMHT130_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET140_PFMHT140_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v9, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v9, fragment.HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9, fragment.HLT_PFMETTypeOne110_PFMHT110_IDTight_v12, fragment.HLT_PFMETTypeOne120_PFMHT120_IDTight_v12, fragment.HLT_PFMETTypeOne130_PFMHT130_IDTight_v12, fragment.HLT_PFMETTypeOne140_PFMHT140_IDTight_v11, fragment.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, fragment.HLT_MonoCentralPFJet80_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, fragment.HLT_MonoCentralPFJet80_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, fragment.HLT_MonoCentralPFJet80_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, fragment.HLT_MonoCentralPFJet80_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, fragment.HLT_L1ETMHadSeeds_v2, fragment.HLT_CaloMHT90_v4, fragment.HLT_CaloMET80_NotCleaned_v4, fragment.HLT_CaloMET90_NotCleaned_v4, fragment.HLT_CaloMET100_NotCleaned_v4, fragment.HLT_CaloMET110_NotCleaned_v4, fragment.HLT_CaloMET250_NotCleaned_v4, fragment.HLT_CaloMET300_NotCleaned_v4, fragment.HLT_CaloMET350_NotCleaned_v4, fragment.HLT_PFMET200_NotCleaned_v9, fragment.HLT_PFMET250_NotCleaned_v9, fragment.HLT_PFMET300_NotCleaned_v9, fragment.HLT_PFMET200_BeamHaloCleaned_v9, fragment.HLT_PFMETTypeOne200_BeamHaloCleaned_v9, fragment.HLT_MET105_IsoTrk50_v9, fragment.HLT_MET120_IsoTrk50_v9, fragment.HLT_SingleJet30_Mu12_SinglePFJet40_v11, fragment.HLT_Mu12eta2p3_v1, fragment.HLT_Mu12eta2p3_PFJet40_v1, fragment.HLT_Mu12_DoublePFJets40_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets100_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets200_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets350_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets40_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets100_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets200_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets40_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets100_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets200_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets350_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets40_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets100_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets200_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets350_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_Photon300_NoHE_v12, fragment.HLT_Mu8_TrkIsoVVL_v12, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v18, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v18, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v19, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v19, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepCSV_1p5_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_CaloBtagDeepCSV_1p5_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v11, fragment.HLT_Mu17_TrkIsoVVL_v13, fragment.HLT_Mu19_TrkIsoVVL_v4, fragment.HLT_BTagMu_AK4DiJet20_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet40_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet70_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet110_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet170_Mu5_v12, fragment.HLT_BTagMu_AK4Jet300_Mu5_v12, fragment.HLT_BTagMu_AK8DiJet170_Mu5_v9, fragment.HLT_BTagMu_AK8Jet170_DoubleMu5_v2, fragment.HLT_BTagMu_AK8Jet300_Mu5_v12, fragment.HLT_Ele15_Ele8_CaloIdL_TrackIdL_IsoVL_v3, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v19, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v15, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v7, fragment.HLT_Mu23_TrkIsoVVL_Ele8_CaloIdL_TrackIdL_IsoVL_DZ_v10, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v7, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v15, fragment.HLT_Mu12_DoublePhoton20_v5, fragment.HLT_Photon20_v2, fragment.HLT_Photon22_v2, fragment.HLT_Photon25_v4, fragment.HLT_Photon33_v5, fragment.HLT_Photon50_v13, fragment.HLT_Photon75_v13, fragment.HLT_Photon90_v13, fragment.HLT_Photon120_v13, fragment.HLT_Photon150_v6, fragment.HLT_Photon175_v14, fragment.HLT_Photon200_v13, fragment.HLT_Photon100EB_TightID_TightIso_v2, fragment.HLT_Photon110EB_TightID_TightIso_v2, fragment.HLT_Photon120EB_TightID_TightIso_v2, fragment.HLT_Photon100EBHE10_v2, fragment.HLT_Photon100EEHE10_v2, fragment.HLT_Photon100EE_TightID_TightIso_v2, fragment.HLT_Photon50_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon75_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ300_PFJetsMJJ400DEta3_v5, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ400_PFJetsMJJ600DEta3_v5, fragment.HLT_Photon90_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon120_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon165_R9Id90_HE10_IsoM_v15, fragment.HLT_Photon90_CaloIdL_PFHT700_v16, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v13, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v13, fragment.HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13, fragment.HLT_Photon35_TwoProngs35_v1, fragment.HLT_IsoMu24_TwoProngs35_v1, fragment.HLT_Dimuon0_Jpsi_L1_NoOS_v7, fragment.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v7, fragment.HLT_Dimuon0_Jpsi_v8, fragment.HLT_Dimuon0_Jpsi_NoVertexing_v8, fragment.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7, fragment.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v7, fragment.HLT_Dimuon0_Jpsi3p5_Muon2_v5, fragment.HLT_Dimuon0_Upsilon_L1_4p5_v9, fragment.HLT_Dimuon0_Upsilon_L1_5_v9, fragment.HLT_Dimuon0_Upsilon_L1_4p5NoOS_v8, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v9, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v7, fragment.HLT_Dimuon0_Upsilon_NoVertexing_v7, fragment.HLT_Dimuon0_Upsilon_L1_5M_v8, fragment.HLT_Dimuon0_LowMass_L1_0er1p5R_v7, fragment.HLT_Dimuon0_LowMass_L1_0er1p5_v8, fragment.HLT_Dimuon0_LowMass_v8, fragment.HLT_Dimuon0_LowMass_L1_4_v8, fragment.HLT_Dimuon0_LowMass_L1_4R_v7, fragment.HLT_Dimuon0_LowMass_L1_TM530_v6, fragment.HLT_Trimuon2_Upsilon5_Muon_NoL1Mass_v6, fragment.HLT_Dimuon0_Upsilon_Muon_L1_TM0_v6, fragment.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v6, fragment.HLT_TripleMu_5_3_3_Mass3p8_DZ_v8, fragment.HLT_TripleMu_10_5_5_DZ_v10, fragment.HLT_TripleMu_12_10_5_v10, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v4, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v4, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v4, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v4, fragment.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10, fragment.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v10, fragment.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v10, fragment.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v6, fragment.HLT_DoubleMu4_Jpsi_Displaced_v7, fragment.HLT_DoubleMu4_Jpsi_NoVertexing_v7, fragment.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v7, fragment.HLT_DoubleMu43NoFiltersNoVtx_v4, fragment.HLT_DoubleMu48NoFiltersNoVtx_v4, fragment.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v5, fragment.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v5, fragment.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v1, fragment.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v1, fragment.HLT_DoubleMu40NoFiltersNoVtxDisplaced_v1, fragment.HLT_DoubleMu20_7_Mass0to30_L1_DM4_v7, fragment.HLT_DoubleMu20_7_Mass0to30_L1_DM4EG_v8, fragment.HLT_HT425_v9, fragment.HLT_HT430_DisplacedDijet40_DisplacedTrack_v13, fragment.HLT_HT500_DisplacedDijet40_DisplacedTrack_v13, fragment.HLT_HT430_DisplacedDijet60_DisplacedTrack_v13, fragment.HLT_HT400_DisplacedDijet40_DisplacedTrack_v13, fragment.HLT_HT650_DisplacedDijet60_Inclusive_v13, fragment.HLT_HT550_DisplacedDijet60_Inclusive_v13, fragment.HLT_DiJet110_35_Mjj650_PFMET110_v9, fragment.HLT_DiJet110_35_Mjj650_PFMET120_v9, fragment.HLT_DiJet110_35_Mjj650_PFMET130_v9, fragment.HLT_TripleJet110_35_35_Mjj650_PFMET110_v9, fragment.HLT_TripleJet110_35_35_Mjj650_PFMET120_v9, fragment.HLT_TripleJet110_35_35_Mjj650_PFMET130_v9, fragment.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v13, fragment.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v13, fragment.HLT_Ele28_HighEta_SC20_Mass55_v13, fragment.HLT_DoubleMu20_7_Mass0to30_Photon23_v8, fragment.HLT_Ele15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, fragment.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v16, fragment.HLT_Ele15_IsoVVVL_PFHT450_v16, fragment.HLT_Ele50_IsoVVVL_PFHT450_v16, fragment.HLT_Ele15_IsoVVVL_PFHT600_v20, fragment.HLT_Mu4_TrkIsoVVL_DiPFJet90_40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v15, fragment.HLT_Mu8_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v16, fragment.HLT_Mu10_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT350_PFMETNoMu60_v15, fragment.HLT_Mu15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, fragment.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v15, fragment.HLT_Mu15_IsoVVVL_PFHT450_v15, fragment.HLT_Mu50_IsoVVVL_PFHT450_v15, fragment.HLT_Mu15_IsoVVVL_PFHT600_v19, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET70_PFMHT70_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu70_PFMHTNoMu70_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v2, fragment.HLT_Dimuon10_PsiPrime_Barrel_Seagulls_v7, fragment.HLT_Dimuon20_Jpsi_Barrel_Seagulls_v7, fragment.HLT_Dimuon12_Upsilon_y1p4_v2, fragment.HLT_Dimuon14_Phi_Barrel_Seagulls_v7, fragment.HLT_Dimuon18_PsiPrime_v14, fragment.HLT_Dimuon25_Jpsi_v14, fragment.HLT_Dimuon18_PsiPrime_noCorrL1_v6, fragment.HLT_Dimuon24_Upsilon_noCorrL1_v6, fragment.HLT_Dimuon24_Phi_noCorrL1_v6, fragment.HLT_Dimuon25_Jpsi_noCorrL1_v6, fragment.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v17, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v17, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v17, fragment.HLT_DoubleIsoMu20_eta2p1_v7, fragment.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v6, fragment.HLT_TrkMu16_DoubleTrkMu6NoFiltersNoVtx_v12, fragment.HLT_TrkMu17_DoubleTrkMu8NoFiltersNoVtx_v13, fragment.HLT_Mu8_v12, fragment.HLT_Mu17_v13, fragment.HLT_Mu19_v4, fragment.HLT_Mu17_Photon30_IsoCaloId_v6, fragment.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v16, fragment.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, fragment.HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3, fragment.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, fragment.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v18, fragment.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v16, fragment.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v18, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18, fragment.HLT_Ele115_CaloIdVT_GsfTrkIdT_v14, fragment.HLT_Ele135_CaloIdVT_GsfTrkIdT_v7, fragment.HLT_Ele145_CaloIdVT_GsfTrkIdT_v8, fragment.HLT_Ele200_CaloIdVT_GsfTrkIdT_v8, fragment.HLT_Ele250_CaloIdVT_GsfTrkIdT_v13, fragment.HLT_Ele300_CaloIdVT_GsfTrkIdT_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepCSV_4p5_v3, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v9, fragment.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepCSV_2p94_v8, fragment.HLT_PFHT400_SixPFJet32_v8, fragment.HLT_PFHT450_SixPFJet36_PFBTagDeepCSV_1p59_v7, fragment.HLT_PFHT450_SixPFJet36_v7, fragment.HLT_PFHT400_FivePFJet_100_100_60_30_30_v8, fragment.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepCSV_4p5_v8, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepCSV_4p5_v8, fragment.HLT_PFHT350_v19, fragment.HLT_PFHT350MinPFJet15_v9, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_v5, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_v5, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350MinPFJet15_v11, fragment.HLT_ECALHT800_v10, fragment.HLT_DiSC30_18_EIso_AND_HE_Mass70_v13, fragment.HLT_L1FatEvents_v2, fragment.HLT_Physics_v7, fragment.HLT_EphemeralPhysics_v1, fragment.DST_Physics_v7, fragment.HLT_Random_v3, fragment.HLT_Random_TOTEM_part0_v1, fragment.HLT_Random_TOTEM_part1_v1, fragment.HLT_Random_TOTEM_part2_v1, fragment.HLT_Random_TOTEM_part3_v1, fragment.HLT_ZeroBias_v6, fragment.HLT_ZeroBias_TOTEM_part0_v1, fragment.HLT_ZeroBias_TOTEM_part1_v1, fragment.HLT_ZeroBias_TOTEM_part2_v1, fragment.HLT_ZeroBias_TOTEM_part3_v1, fragment.HLT_ZeroBias_Alignment_v1, fragment.HLT_EphemeralZeroBias_v1, fragment.DST_ZeroBias_v2, fragment.DST_Run3_PFScoutingPixelTracking_v16, fragment.HLT_AK4CaloJet30_v11, fragment.HLT_AK4CaloJet40_v10, fragment.HLT_AK4CaloJet50_v10, fragment.HLT_AK4CaloJet80_v10, fragment.HLT_AK4CaloJet100_v10, fragment.HLT_AK4CaloJet120_v9, fragment.HLT_AK4PFJet30_v19, fragment.HLT_AK4PFJet50_v19, fragment.HLT_AK4PFJet80_v19, fragment.HLT_AK4PFJet100_v19, fragment.HLT_AK4PFJet120_v18, fragment.HLT_PixelTracks_Multiplicity60ForPPRef_v5, fragment.HLT_PixelTracks_Multiplicity85ForPPRef_v5, fragment.HLT_PixelTracks_Multiplicity110ForPPRef_v5, fragment.HLT_PixelTracks_Multiplicity135ForPPRef_v5, fragment.HLT_PixelTracks_Multiplicity160ForPPRef_v5, fragment.HLT_AK4CaloJet40_Eta5p1ForPPRef_v9, fragment.HLT_AK4CaloJet60_Eta5p1ForPPRef_v9, fragment.HLT_AK4CaloJet80_Eta5p1ForPPRef_v9, fragment.HLT_AK4CaloJet100_Eta5p1ForPPRef_v9, fragment.HLT_AK4CaloJet110_Eta5p1ForPPRef_v9, fragment.HLT_AK4CaloJet120_Eta5p1ForPPRef_v9, fragment.HLT_AK4CaloJet150ForPPRef_v9, fragment.HLT_AK4PFJet40_Eta5p1ForPPRef_v16, fragment.HLT_AK4PFJet60_Eta5p1ForPPRef_v16, fragment.HLT_AK4PFJet80_Eta5p1ForPPRef_v16, fragment.HLT_AK4PFJet100_Eta5p1ForPPRef_v16, fragment.HLT_AK4PFJet110_Eta5p1ForPPRef_v16, fragment.HLT_AK4PFJet120_Eta5p1ForPPRef_v16, fragment.HLT_AK4CaloJet80_Jet35_Eta1p1ForPPRef_v9, fragment.HLT_AK4CaloJet80_Jet35_Eta0p7ForPPRef_v9, fragment.HLT_AK4CaloJet100_Jet35_Eta1p1ForPPRef_v9, fragment.HLT_AK4CaloJet100_Jet35_Eta0p7ForPPRef_v9, fragment.HLT_AK4CaloJet80_45_45_Eta2p1ForPPRef_v9, fragment.HLT_SinglePhoton10_Eta3p1ForPPRef_v8, fragment.HLT_SinglePhoton15_Eta3p1ForPPRef_v9, fragment.HLT_SinglePhoton20_Eta3p1ForPPRef_v9, fragment.HLT_SinglePhoton30_Eta3p1ForPPRef_v9, fragment.HLT_SinglePhoton40_Eta3p1ForPPRef_v8, fragment.HLT_SinglePhoton50_Eta3p1ForPPRef_v8, fragment.HLT_SinglePhoton60_Eta3p1ForPPRef_v8, fragment.HLT_Photon20_HoverELoose_v10, fragment.HLT_Photon30_HoverELoose_v10, fragment.HLT_Photon40_HoverELoose_v10, fragment.HLT_Photon50_HoverELoose_v10, fragment.HLT_Photon60_HoverELoose_v10, fragment.HLT_HIL2Mu3Eta2p5_AK4CaloJet40Eta2p1ForPPRef_v11, fragment.HLT_HIL2Mu3Eta2p5_AK4CaloJet60Eta2p1ForPPRef_v11, fragment.HLT_HIL2Mu3Eta2p5_AK4CaloJet80Eta2p1ForPPRef_v11, fragment.HLT_HIL2Mu3Eta2p5_AK4CaloJet100Eta2p1ForPPRef_v11, fragment.HLT_HIL1DoubleMu0ForPPRef_v4, fragment.HLT_HIL1DoubleMu10ForPPRef_v4, fragment.HLT_HIL2DoubleMu0_NHitQForPPRef_v5, fragment.HLT_HIL3DoubleMu0_OS_m2p5to4p5ForPPRef_v6, fragment.HLT_HIL3DoubleMu0_OS_m7to14ForPPRef_v6, fragment.HLT_HIL2Mu3_NHitQ10ForPPRef_v6, fragment.HLT_HIL3Mu3_NHitQ15ForPPRef_v6, fragment.HLT_HIL2Mu5_NHitQ10ForPPRef_v6, fragment.HLT_HIL3Mu5_NHitQ15ForPPRef_v6, fragment.HLT_HIL2Mu7_NHitQ10ForPPRef_v6, fragment.HLT_HIL3Mu7_NHitQ15ForPPRef_v6, fragment.HLT_HIL2Mu15ForPPRef_v6, fragment.HLT_HIL3Mu15ForPPRef_v6, fragment.HLT_HIL2Mu20ForPPRef_v6, fragment.HLT_HIL3Mu20ForPPRef_v6, fragment.HLT_FullTrack18ForPPRef_v11, fragment.HLT_FullTrack24ForPPRef_v11, fragment.HLT_FullTrack34ForPPRef_v11, fragment.HLT_FullTrack45ForPPRef_v11, fragment.HLT_FullTrack53ForPPRef_v11, fragment.HLT_HIL1CastorMediumJetForPPRef_v4, fragment.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v2, fragment.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v2, fragment.HLT_HIL1NotBptxORForPPRef_v2, fragment.HLT_HIHT80_Beamspot_ppRef5TeV_v3, fragment.HLT_HIZeroBias_part0_v6, fragment.HLT_HIZeroBias_part1_v6, fragment.HLT_HIZeroBias_part2_v6, fragment.HLT_HIZeroBias_part3_v6, fragment.HLT_HIZeroBias_part4_v6, fragment.HLT_HIZeroBias_part5_v6, fragment.HLT_HIZeroBias_part6_v6, fragment.HLT_HIZeroBias_part7_v6, fragment.HLT_HIZeroBias_part8_v6, fragment.HLT_HIZeroBias_part9_v6, fragment.HLT_HIZeroBias_part10_v6, fragment.HLT_HIZeroBias_part11_v6, fragment.AlCa_HIEcalPi0EBonly_v1, fragment.AlCa_HIEcalPi0EEonly_v1, fragment.AlCa_HIEcalEtaEBonly_v1, fragment.AlCa_HIEcalEtaEEonly_v1, fragment.HLT_DmesonPPTrackingGlobal_Dpt8ForPPRef_v11, fragment.HLT_DmesonPPTrackingGlobal_Dpt15ForPPRef_v11, fragment.HLT_DmesonPPTrackingGlobal_Dpt20ForPPRef_v11, fragment.HLT_DmesonPPTrackingGlobal_Dpt30ForPPRef_v11, fragment.HLT_DmesonPPTrackingGlobal_Dpt40ForPPRef_v11, fragment.HLT_DmesonPPTrackingGlobal_Dpt50ForPPRef_v11, fragment.HLT_DmesonPPTrackingGlobal_Dpt60ForPPRef_v11, fragment.HLT_AK4PFBJetBCSV60_Eta2p1ForPPRef_v16, fragment.HLT_AK4PFBJetBCSV80_Eta2p1ForPPRef_v16, fragment.HLT_AK4PFDJet60_Eta2p1ForPPRef_v16, fragment.HLT_AK4PFDJet80_Eta2p1ForPPRef_v16, fragment.HLT_AK4PFBJetBSSV60_Eta2p1ForPPRef_v16, fragment.HLT_AK4PFBJetBSSV80_Eta2p1ForPPRef_v16, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v5, fragment.AlCa_EcalPhiSym_v9, fragment.HLT_L1UnpairedBunchBptxMinus_v2, fragment.HLT_L1UnpairedBunchBptxPlus_v2, fragment.HLT_L1NotBptxOR_v3, fragment.HLT_L1BptxXOR_v1, fragment.HLT_L1TOTEM1_MinBias_v4, fragment.HLT_L1TOTEM2_ZeroBias_v4, fragment.HLT_L1MinimumBiasHF_OR_v3, fragment.HLT_L1MinimumBiasHF_OR_part0_v1, fragment.HLT_L1MinimumBiasHF_OR_part1_v1, fragment.HLT_L1MinimumBiasHF_OR_part2_v1, fragment.HLT_L1MinimumBiasHF_OR_part3_v1, fragment.HLT_L1MinimumBiasHF_OR_part4_v1, fragment.HLT_L1MinimumBiasHF_OR_part5_v1, fragment.HLT_L1MinimumBiasHF_OR_part6_v1, fragment.HLT_L1MinimumBiasHF_OR_part7_v1, fragment.HLT_L1MinimumBiasHF_OR_part8_v1, fragment.HLT_L1MinimumBiasHF_OR_part9_v1, fragment.HLT_L1MinimumBiasHF0OR_v4, fragment.HLT_L1MinimumBiasHF1OR_v4, fragment.HLT_L1MinimumBiasHF2OR_v4, fragment.HLT_L1MinimumBiasHF2ORNoBptxGating_v5, fragment.HLT_L1MinimumBiasHF1AND_v4, fragment.HLT_L1MinimumBiasHF2AND_v4, fragment.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v2, fragment.HLT_CDC_L2cosmic_10_er1p0_v1, fragment.HLT_CDC_L2cosmic_5p5_er1p0_v1, fragment.HLT_HcalNZS_v13, fragment.HLT_HcalPhiSym_v15, fragment.HLT_HcalIsolatedbunch_v5, fragment.HLT_IsoTrackHB_v4, fragment.HLT_IsoTrackHE_v4, fragment.HLT_ZeroBias_FirstCollisionAfterAbortGap_v5, fragment.HLT_ZeroBias_IsolatedBunches_v5, fragment.HLT_ZeroBias_FirstCollisionInTrain_v4, fragment.HLT_ZeroBias_LastCollisionInTrain_v3, fragment.HLT_ZeroBias_FirstBXAfterTrain_v3, fragment.AlCa_RPCMuonNormalisation_v13, fragment.AlCa_HIRPCMuonNormalisation_v1, fragment.AlCa_LumiPixelsCounts_Random_v2, fragment.AlCa_LumiPixelsCounts_ZeroBias_v2, fragment.MC_ReducedIterativeTracking_v12, fragment.MC_PFMET_v17, fragment.MC_AK4PFJets_v17, fragment.MC_PFBTagDeepCSV_v10, fragment.MC_PFHT_v16, fragment.MC_PFMHT_v16, fragment.MC_CaloMET_v8, fragment.MC_CaloMET_JetIdCleaned_v9, fragment.MC_AK4CaloJets_v9, fragment.MC_AK4CaloJetsFromPV_v8, fragment.MC_CaloBTagDeepCSV_v8, fragment.MC_CaloHT_v8, fragment.MC_CaloMHT_v8, fragment.MC_AK8PFJets_v17, fragment.MC_AK8TrimPFJets_v17, fragment.MC_AK8PFHT_v16, fragment.MC_AK8CaloHT_v8, fragment.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v13, fragment.MC_DoubleEle5_CaloIdL_MW_v15, fragment.MC_Ele5_WPTight_Gsf_v8, fragment.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v15, fragment.MC_IsoMu_v15, fragment.MC_IsoTkMu15_v12, fragment.MC_DoubleMu_TrkIsoVVL_DZ_v11, fragment.MC_DoubleGlbTrkMu_TrkIsoVVL_DZ_v12, fragment.MC_DoubleMuNoFiltersNoVtx_v7, fragment.MC_PFBTagDeepJet_v1, fragment.AlCa_EcalPi0EBonly_v13, fragment.AlCa_EcalPi0EEonly_v13, fragment.AlCa_EcalEtaEBonly_v13, fragment.AlCa_EcalEtaEEonly_v13, fragment.HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12, fragment.HLT_MediumChargedIsoPFTau200HighPtRelaxedIso_Trk50_eta2p1_v12, fragment.HLT_MediumChargedIsoPFTau220HighPtRelaxedIso_Trk50_eta2p1_v12, fragment.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v9, fragment.HLT_Rsq0p35_v15, fragment.HLT_Rsq0p40_v15, fragment.HLT_RsqMR300_Rsq0p09_MR200_v15, fragment.HLT_RsqMR320_Rsq0p09_MR200_v15, fragment.HLT_RsqMR300_Rsq0p09_MR200_4jet_v15, fragment.HLT_RsqMR320_Rsq0p09_MR200_4jet_v15, fragment.HLT_L1_DoubleJet30_Mass_Min400_Mu10_v1, fragment.HLT_IsoMu27_MET90_v3, fragment.HLT_VBF_DoubleLooseChargedIsoPFTau20_Trk1_eta2p1_v3, fragment.HLT_VBF_DoubleLooseChargedIsoPFTauHPS20_Trk1_eta2p1_v1, fragment.HLT_VBF_DoubleMediumChargedIsoPFTauHPS20_Trk1_eta2p1_v1, fragment.HLT_VBF_DoubleTightChargedIsoPFTauHPS20_Trk1_eta2p1_v1, fragment.HLT_Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50_v5, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v5, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ600DEta3_v5, fragment.HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9, fragment.HLT_PFMETNoMu100_PFMHTNoMu100_IDTight_PFHT60_v9, fragment.HLT_PFMETTypeOne100_PFMHT100_IDTight_PFHT60_v9, fragment.HLT_Mu18_Mu9_SameSign_v4, fragment.HLT_Mu18_Mu9_SameSign_DZ_v4, fragment.HLT_Mu18_Mu9_v4, fragment.HLT_Mu18_Mu9_DZ_v4, fragment.HLT_Mu20_Mu10_SameSign_v4, fragment.HLT_Mu20_Mu10_SameSign_DZ_v4, fragment.HLT_Mu20_Mu10_v4, fragment.HLT_Mu20_Mu10_DZ_v4, fragment.HLT_Mu23_Mu12_SameSign_v4, fragment.HLT_Mu23_Mu12_SameSign_DZ_v4, fragment.HLT_Mu23_Mu12_v4, fragment.HLT_Mu23_Mu12_DZ_v4, fragment.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v6, fragment.HLT_DoubleMu2_Jpsi_DoubleTkMu0_Phi_v5, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10, fragment.HLT_TripleMu_5_3_3_Mass3p8_DCA_v3, fragment.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_QuadPFJet98_83_71_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet103_88_75_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet105_88_76_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet111_90_80_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet98_83_71_15_v5, fragment.HLT_QuadPFJet103_88_75_15_v5, fragment.HLT_QuadPFJet105_88_76_15_v5, fragment.HLT_QuadPFJet111_90_80_15_v5, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p17_v2, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p1_v2, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_p02_v3, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np2_v2, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np4_v2, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_v2, fragment.HLT_Mu12_IP6_ToCSCS_v1, fragment.HLT_Mu12_IP6_part0_v2, fragment.HLT_Mu12_IP6_part1_v2, fragment.HLT_Mu12_IP6_part2_v2, fragment.HLT_Mu12_IP6_part3_v2, fragment.HLT_Mu12_IP6_part4_v2, fragment.HLT_Mu9_IP5_ToCSCS_v1, fragment.HLT_Mu9_IP5_part0_v2, fragment.HLT_Mu9_IP5_part1_v2, fragment.HLT_Mu9_IP5_part2_v2, fragment.HLT_Mu9_IP5_part3_v2, fragment.HLT_Mu9_IP5_part4_v2, fragment.HLT_Mu7_IP4_ToCSCS_v1, fragment.HLT_Mu7_IP4_part0_v2, fragment.HLT_Mu7_IP4_part1_v2, fragment.HLT_Mu7_IP4_part2_v2, fragment.HLT_Mu7_IP4_part3_v2, fragment.HLT_Mu7_IP4_part4_v2, fragment.HLT_Mu9_IP4_ToCSCS_v1, fragment.HLT_Mu9_IP4_part0_v2, fragment.HLT_Mu9_IP4_part1_v2, fragment.HLT_Mu9_IP4_part2_v2, fragment.HLT_Mu9_IP4_part3_v2, fragment.HLT_Mu9_IP4_part4_v2, fragment.HLT_Mu8_IP5_ToCSCS_v1, fragment.HLT_Mu8_IP5_part0_v2, fragment.HLT_Mu8_IP5_part1_v2, fragment.HLT_Mu8_IP5_part2_v2, fragment.HLT_Mu8_IP5_part3_v2, fragment.HLT_Mu8_IP5_part4_v2, fragment.HLT_Mu8_IP6_ToCSCS_v1, fragment.HLT_Mu8_IP6_part0_v2, fragment.HLT_Mu8_IP6_part1_v2, fragment.HLT_Mu8_IP6_part2_v2, fragment.HLT_Mu8_IP6_part3_v2, fragment.HLT_Mu8_IP6_part4_v2, fragment.HLT_Mu9_IP6_ToCSCS_v1, fragment.HLT_Mu9_IP6_part0_v3, fragment.HLT_Mu9_IP6_part1_v3, fragment.HLT_Mu9_IP6_part2_v3, fragment.HLT_Mu9_IP6_part3_v3, fragment.HLT_Mu9_IP6_part4_v3, fragment.HLT_Mu8_IP3_ToCSCS_v1, fragment.HLT_Mu8_IP3_part0_v3, fragment.HLT_Mu8_IP3_part1_v3, fragment.HLT_Mu8_IP3_part2_v3, fragment.HLT_Mu8_IP3_part3_v3, fragment.HLT_Mu8_IP3_part4_v3, fragment.HLT_Mu9_IP0_part0_v2, fragment.HLT_Mu9_IP3_part0_v2, fragment.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_TrkMu6NoFiltersNoVtx_v1, fragment.HLT_TrkMu16NoFiltersNoVtx_v1, fragment.HLT_DoubleTrkMu_16_6_NoFiltersNoVtx_v1, fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1, fragment.HLT_DoubleMediumChargedIsoPFTauHPS40_Trk1_eta2p1_v1, fragment.HLT_DoubleTightChargedIsoPFTauHPS35_Trk1_eta2p1_v1, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, fragment.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v1, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v1, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v1, fragment.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v1, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v1, fragment.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepJet_4p5_v1, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepJet_4p5_v1, fragment.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepJet_2p94_v1, fragment.HLT_PFHT450_SixPFJet36_PFBTagDeepJet_1p59_v1, fragment.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet103_88_75_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet105_88_76_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet111_90_80_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet98_83_71_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v1, fragment.HLT_QuadPFJet70_50_40_30_v1, fragment.HLT_QuadPFJet70_50_40_30_PFBTagParticleNet_2BTagSum0p65_v1, fragment.HLT_QuadPFJet70_50_40_35_PFBTagParticleNet_2BTagSum0p65_v1, fragment.HLT_QuadPFJet70_50_45_35_PFBTagParticleNet_2BTagSum0p65_v1, fragment.HLT_AK8PFJet230_SoftDropMass40_v1, fragment.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, fragment.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, fragment.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, fragment.HLT_AK8PFJet400_SoftDropMass40_v1, fragment.HLT_AK8PFJet425_SoftDropMass40_v1, fragment.HLT_AK8PFJet450_SoftDropMass40_v1, fragment.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, fragment.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, fragment.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1, fragment.HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v1, fragment.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1, fragment.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v1, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v1, fragment.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v1, fragment.HLT_L1Mu6HT240_v1, fragment.HLT_Mu6HT240_DisplacedDijet30_Inclusive0PtrkShortSig5_v1, fragment.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v1, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v1, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v1, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v1, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v1, fragment.HLT_HT430_DisplacedDijet30_Inclusive1PtrkShortSig5_v1, fragment.HLT_HT430_DisplacedDijet35_Inclusive1PtrkShortSig5_v1, fragment.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v1, fragment.HLT_CaloMET60_DTCluster50_v1, fragment.HLT_CaloMET60_DTClusterNoMB1S50_v1, fragment.HLT_L1MET_DTCluster50_v1, fragment.HLT_L1MET_DTClusterNoMB1S50_v1, fragment.HLT_CscCluster_Loose_v1, fragment.HLT_CscCluster_Medium_v1, fragment.HLT_CscCluster_Tight_v1, fragment.HLT_L1CSCShower_DTCluster50_v1, fragment.HLT_L1CSCShower_DTCluster75_v1, fragment.HLT_PFMET105_IsoTrk50_v1, fragment.HLT_PFMET105_PFJet100_looseRecoiling_v1, fragment.HLT_PFMET110_PFJet100_v1, fragment.HLT_PFMET110_PFJet100_looseRecoiling_v1, fragment.HLT_ExpressMuons_v1, fragment.HLT_OnlineMonitorGroup_v1, fragment.HLT_HIOnlineMonitorGroup_v1, fragment.DQM_EcalReconstruction_v1, fragment.DQM_HcalReconstruction_v1, fragment.DQM_PixelReconstruction_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part0_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part1_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part2_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part3_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part0_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part1_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part2_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part3_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part0_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part1_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part2_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part3_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part0_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part1_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part2_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part3_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part0_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part1_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part2_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part3_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part0_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part1_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part2_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part3_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part0_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part1_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part2_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part3_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part0_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part1_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part2_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part3_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part0_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part1_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part2_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part3_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part0_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part1_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part2_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part3_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part0_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part1_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part2_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part0_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part1_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part2_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part3_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part0_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part1_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part2_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part0_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part1_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part2_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part3_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part0_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part1_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part2_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part0_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part1_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part2_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part3_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part0_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part1_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part2_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part3_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part0_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part1_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part2_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part3_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part0_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part1_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part2_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part3_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part0_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part1_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part2_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part3_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part0_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part1_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part2_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part3_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part0_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part1_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part2_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part3_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part0_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part1_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part2_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part3_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part0_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part1_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part2_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part3_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part0_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part1_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part2_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part3_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part0_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part1_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part2_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part3_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part0_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part1_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part2_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part3_v1, fragment.HLT_L1TOTEM_3_v1, fragment.HLT_L1RomanPot_part0_v1, fragment.HLT_L1RomanPot_part1_v1, fragment.HLT_L1RomanPot_part2_v1, fragment.HLT_L1RomanPot_part3_v1, fragment.HLT_PPSMaxTracksPerArm1_v1, fragment.HLT_PPSMaxTracksPerRP4_v1, fragment.HLT_L1DoubleMu_v1, fragment.HLT_L1SingleMu_v1, fragment.HLT_L1DoubleJet_v1, fragment.HLT_L1DoubleJetANDTotem_v1, fragment.HLT_L1DoubleJet_gap_v1, fragment.HLT_L1HFveto_v1, fragment.HLT_HIPhysics_v1, fragment.HLT_HIPhysicsForZS_v1, fragment.HLT_HIRandom_v1, fragment.AlCa_EcalPhiSymForHI_v1, fragment.HLT_HIHcalNZS_v1, fragment.HLT_HIHcalPhiSym_v1, fragment.AlCa_RPCMuonNormalisationForHI_v1, fragment.AlCa_EcalPi0EBonlyForHI_v1, fragment.AlCa_EcalPi0EEonlyForHI_v1, fragment.AlCa_EcalEtaEBonlyForHI_v1, fragment.AlCa_EcalEtaEEonlyForHI_v1, fragment.HLT_HICentralityVeto_v1, fragment.HLT_HICentralityVeto_Beamspot_v1, fragment.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v1, fragment.HLT_HICentralityTag20100_v1, fragment.HLT_HICentralityTag30100_v1, fragment.HLT_HICentralityTag50100_v1, fragment.HLT_HIZeroBias_v1, fragment.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v1, fragment.HLT_HIMinimumBias_part0_v1, fragment.HLT_HIMinimumBias_part1_v1, fragment.HLT_HIMinimumBias_part2_v1, fragment.HLT_HIMinimumBias_part3_v1, fragment.HLT_HIMinimumBias_part4_v1, fragment.HLT_HIMinimumBias_part5_v1, fragment.HLT_HIMinimumBias_part6_v1, fragment.HLT_HIMinimumBias_part7_v1, fragment.HLT_HIMinimumBias_part8_v1, fragment.HLT_HIMinimumBias_part9_v1, fragment.HLT_HIMinimumBias_part10_v1, fragment.HLT_HIMinimumBias_part11_v1, fragment.HLT_HIMinimumBias_part12_v1, fragment.HLT_HIMinimumBias_part13_v1, fragment.HLT_HIMinimumBias_part14_v1, fragment.HLT_HIMinimumBias_part15_v1, fragment.HLT_HIMinimumBias_part16_v1, fragment.HLT_HIMinimumBias_part17_v1, fragment.HLT_HIMinimumBias_part18_v1, fragment.HLT_HIMinimumBias_part19_v1, fragment.HLT_HIMinimumBiasRF_part0_v1, fragment.HLT_HIMinimumBiasRF_part1_v1, fragment.HLT_HIMinimumBiasRF_part2_v1, fragment.HLT_HIMinimumBiasRF_part3_v1, fragment.HLT_HIMinimumBiasRF_part4_v1, fragment.HLT_HIMinimumBiasRF_part5_v1, fragment.HLT_HIMinimumBiasRF_part6_v1, fragment.HLT_HIMinimumBiasRF_part7_v1, fragment.HLT_HIMinimumBiasRF_part8_v1, fragment.HLT_HIMinimumBiasRF_part9_v1, fragment.HLT_HIMinimumBiasRF_part10_v1, fragment.HLT_HIMinimumBiasRF_part11_v1, fragment.HLT_HIMinimumBiasRF_part12_v1, fragment.HLT_HIMinimumBiasRF_part13_v1, fragment.HLT_HIMinimumBiasRF_part14_v1, fragment.HLT_HIMinimumBiasRF_part15_v1, fragment.HLT_HIMinimumBiasRF_part16_v1, fragment.HLT_HIMinimumBiasRF_part17_v1, fragment.HLT_HIMinimumBiasRF_part18_v1, fragment.HLT_HIMinimumBiasRF_part19_v1, fragment.HLT_HIMinimumBiasRF_part20_v1, fragment.HLT_HIMinimumBiasRF_part21_v1, fragment.HLT_HIMinimumBiasRF_part22_v1, fragment.HLT_HIMinimumBiasRF_part23_v1, fragment.HLT_HIPuAK4CaloJet40Eta5p1_v1, fragment.HLT_HIPuAK4CaloJet60Eta5p1_v1, fragment.HLT_HIPuAK4CaloJet80Eta5p1_v1, fragment.HLT_HIPuAK4CaloJet100Eta5p1_v1, fragment.HLT_HIPuAK4CaloJet120Eta5p1_v1, fragment.HLT_HIPuAK4CaloJet40Eta5p1_Centrality_30_100_v1, fragment.HLT_HIPuAK4CaloJet40Eta5p1_Centrality_50_100_v1, fragment.HLT_HIPuAK4CaloJet60Eta5p1_Centrality_30_100_v1, fragment.HLT_HIPuAK4CaloJet60Eta5p1_Centrality_50_100_v1, fragment.HLT_HIPuAK4CaloJet80Eta5p1_Centrality_30_100_v1, fragment.HLT_HIPuAK4CaloJet80Eta5p1_Centrality_50_100_v1, fragment.HLT_HIPuAK4CaloJet100Eta5p1_Centrality_30_100_v1, fragment.HLT_HIPuAK4CaloJet100Eta5p1_Centrality_50_100_v1, fragment.HLT_HIPuAK4CaloJet80_35_Eta1p1_v1, fragment.HLT_HIPuAK4CaloJet100_35_Eta1p1_v1, fragment.HLT_HIPuAK4CaloJet80_35_Eta0p7_v1, fragment.HLT_HIPuAK4CaloJet100_35_Eta0p7_v1, fragment.HLT_HIPuAK4CaloJet80_45_45_Eta2p1_v1, fragment.HLT_HIPuAK4CaloJet40Fwd_v1, fragment.HLT_HIPuAK4CaloJet60Fwd_v1, fragment.HLT_HIPuAK4CaloJet80Fwd_v1, fragment.HLT_HIPuAK4CaloJet100Fwd_v1, fragment.HLT_HIPuAK4CaloJet120Fwd_v1, fragment.HLT_HIIslandPhoton10_Eta2p4_v1, fragment.HLT_HIIslandPhoton10_Eta1p5_v1, fragment.HLT_HIIslandPhoton20_Eta2p4_v1, fragment.HLT_HIIslandPhoton20_Eta1p5_v1, fragment.HLT_HIIslandPhoton30_Eta2p4_v1, fragment.HLT_HIIslandPhoton30_Eta1p5_v1, fragment.HLT_HIIslandPhoton40_Eta2p4_v1, fragment.HLT_HIIslandPhoton40_Eta1p5_v1, fragment.HLT_HIIslandPhoton50_Eta2p4_v1, fragment.HLT_HIIslandPhoton50_Eta1p5_v1, fragment.HLT_HIIslandPhoton60_Eta2p4_v1, fragment.HLT_HIIslandPhoton60_Eta1p5_v1, fragment.HLT_HIGEDPhoton10_v1, fragment.HLT_HIGEDPhoton20_v1, fragment.HLT_HIGEDPhoton30_v1, fragment.HLT_HIGEDPhoton40_v1, fragment.HLT_HIGEDPhoton50_v1, fragment.HLT_HIGEDPhoton60_v1, fragment.HLT_HIGEDPhoton10_EB_v1, fragment.HLT_HIGEDPhoton20_EB_v1, fragment.HLT_HIGEDPhoton30_EB_v1, fragment.HLT_HIGEDPhoton40_EB_v1, fragment.HLT_HIGEDPhoton50_EB_v1, fragment.HLT_HIGEDPhoton60_EB_v1, fragment.HLT_HIGEDPhoton10_HECut_v1, fragment.HLT_HIGEDPhoton20_HECut_v1, fragment.HLT_HIGEDPhoton30_HECut_v1, fragment.HLT_HIGEDPhoton40_HECut_v1, fragment.HLT_HIGEDPhoton50_HECut_v1, fragment.HLT_HIGEDPhoton60_HECut_v1, fragment.HLT_HIGEDPhoton10_EB_HECut_v1, fragment.HLT_HIGEDPhoton20_EB_HECut_v1, fragment.HLT_HIGEDPhoton30_EB_HECut_v1, fragment.HLT_HIGEDPhoton40_EB_HECut_v1, fragment.HLT_HIGEDPhoton50_EB_HECut_v1, fragment.HLT_HIGEDPhoton60_EB_HECut_v1, fragment.HLT_HIEle10Gsf_v1, fragment.HLT_HIEle15Gsf_v1, fragment.HLT_HIEle20Gsf_v1, fragment.HLT_HIEle30Gsf_v1, fragment.HLT_HIEle40Gsf_v1, fragment.HLT_HIEle50Gsf_v1, fragment.HLT_HIEle15Ele10Gsf_v1, fragment.HLT_HIEle15Ele10GsfMass50_v1, fragment.HLT_HIDoubleEle10Gsf_v1, fragment.HLT_HIDoubleEle10GsfMass50_v1, fragment.HLT_HIDoubleEle15Gsf_v1, fragment.HLT_HIDoubleEle15GsfMass50_v1, fragment.HLT_HIL1Mu3Eta2p5_Ele10Gsf_v1, fragment.HLT_HIL1Mu3Eta2p5_Ele15Gsf_v1, fragment.HLT_HIL1Mu3Eta2p5_Ele20Gsf_v1, fragment.HLT_HIL1Mu5Eta2p5_Ele10Gsf_v1, fragment.HLT_HIL1Mu5Eta2p5_Ele15Gsf_v1, fragment.HLT_HIL1Mu5Eta2p5_Ele20Gsf_v1, fragment.HLT_HIL1Mu7Eta2p5_Ele10Gsf_v1, fragment.HLT_HIL1Mu7Eta2p5_Ele15Gsf_v1, fragment.HLT_HIL1Mu7Eta2p5_Ele20Gsf_v1, fragment.HLT_HIEle10Gsf_PuAK4CaloJet40Eta2p1_v1, fragment.HLT_HIEle10Gsf_PuAK4CaloJet60Eta2p1_v1, fragment.HLT_HIEle10Gsf_PuAK4CaloJet80Eta2p1_v1, fragment.HLT_HIEle10Gsf_PuAK4CaloJet100Eta2p1_v1, fragment.HLT_HIEle15Gsf_PuAK4CaloJet40Eta2p1_v1, fragment.HLT_HIEle15Gsf_PuAK4CaloJet60Eta2p1_v1, fragment.HLT_HIEle15Gsf_PuAK4CaloJet80Eta2p1_v1, fragment.HLT_HIEle15Gsf_PuAK4CaloJet100Eta2p1_v1, fragment.HLT_HIEle20Gsf_PuAK4CaloJet40Eta2p1_v1, fragment.HLT_HIEle20Gsf_PuAK4CaloJet60Eta2p1_v1, fragment.HLT_HIEle20Gsf_PuAK4CaloJet80Eta2p1_v1, fragment.HLT_HIEle20Gsf_PuAK4CaloJet100Eta2p1_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt15_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt20_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt30_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt40_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt50_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt60_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt15_NoIter10_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt20_NoIter10_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt30_NoIter10_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt40_NoIter10_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt50_NoIter10_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt60_NoIter10_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt20_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt30_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt40_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt50_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt60_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt20_NoIter10_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt30_NoIter10_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt40_NoIter10_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt50_NoIter10_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt60_NoIter10_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt20_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt30_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt40_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt50_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt60_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt20_NoIter10_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt30_NoIter10_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt40_NoIter10_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt50_NoIter10_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt60_NoIter10_v1, fragment.HLT_HIFullTracks2018_HighPt18_v1, fragment.HLT_HIFullTracks2018_HighPt24_v1, fragment.HLT_HIFullTracks2018_HighPt34_v1, fragment.HLT_HIFullTracks2018_HighPt45_v1, fragment.HLT_HIFullTracks2018_HighPt56_v1, fragment.HLT_HIFullTracks2018_HighPt60_v1, fragment.HLT_HIFullTracks2018_HighPt18_NoIter10_v1, fragment.HLT_HIFullTracks2018_HighPt24_NoIter10_v1, fragment.HLT_HIFullTracks2018_HighPt34_NoIter10_v1, fragment.HLT_HIFullTracks2018_HighPt45_NoIter10_v1, fragment.HLT_HIFullTracks2018_HighPt56_NoIter10_v1, fragment.HLT_HIFullTracks2018_HighPt60_NoIter10_v1, fragment.HLT_HIL1DoubleMuOpen_v1, fragment.HLT_HIL1DoubleMuOpen_Centrality_30_100_v1, fragment.HLT_HIL1DoubleMuOpen_Centrality_40_100_v1, fragment.HLT_HIL1DoubleMuOpen_Centrality_50_100_v1, fragment.HLT_HIL1DoubleMuOpen_er1p6_v1, fragment.HLT_HIL1DoubleMuOpen_OS_er1p6_v1, fragment.HLT_HIL1DoubleMuOpen_OS_Centrality_30_100_v1, fragment.HLT_HIL1DoubleMuOpen_OS_Centrality_40_100_v1, fragment.HLT_HIL1DoubleMu0_v1, fragment.HLT_HIL1DoubleMu10_v1, fragment.HLT_HIL2_L1DoubleMu10_v1, fragment.HLT_HIL3_L1DoubleMu10_v1, fragment.HLT_HIL2DoubleMuOpen_v1, fragment.HLT_HIL3DoubleMuOpen_v1, fragment.HLT_HIL3DoubleMuOpen_M60120_v1, fragment.HLT_HIL3DoubleMuOpen_JpsiPsi_v1, fragment.HLT_HIL3DoubleMuOpen_Upsi_v1, fragment.HLT_HIL3Mu0_L2Mu0_v1, fragment.HLT_HIL3Mu2p5NHitQ10_L2Mu2_v1, fragment.HLT_HIL1MuOpen_Centrality_70_100_v1, fragment.HLT_HIL1MuOpen_Centrality_80_100_v1, fragment.HLT_HIL2Mu3_NHitQ15_v1, fragment.HLT_HIL2Mu5_NHitQ15_v1, fragment.HLT_HIL2Mu7_NHitQ15_v1, fragment.HLT_HIL2Mu3_NHitQ15_tagging_v1, fragment.HLT_HIL2Mu5_NHitQ15_tagging_v1, fragment.HLT_HIL2Mu7_NHitQ15_tagging_v1, fragment.HLT_HIL3Mu2p5_L1DoubleMu0_v1, fragment.HLT_HIL3Mu3_L1DoubleMuOpen_OS_v1, fragment.HLT_HIL3Mu3NHitQ10_L1DoubleMuOpen_v1, fragment.HLT_HIL3Mu3_L1TripleMuOpen_v1, fragment.HLT_HIL3Mu12_v1, fragment.HLT_HIL3Mu15_v1, fragment.HLT_HIL3Mu20_v1, fragment.HLT_HIL3Mu3_NHitQ10_v1, fragment.HLT_HIL3Mu5_NHitQ10_v1, fragment.HLT_HIL3Mu7_NHitQ10_v1, fragment.HLT_HIL3Mu3_NHitQ10_tagging_v1, fragment.HLT_HIL3Mu5_NHitQ10_tagging_v1, fragment.HLT_HIL3Mu7_NHitQ10_tagging_v1, fragment.HLT_HIL3Mu0NHitQ10_L2Mu0_MAXdR3p5_M1to5_v1, fragment.HLT_HIL3Mu2p5NHitQ10_L2Mu2_M7toinf_v1, fragment.HLT_HIL1_ETT8_ETTAsym50_MinimumBiasHF1_OR_BptxAND_v1, fragment.HLT_HIL1_ETT10_ETTAsym50_MinimumBiasHF1_OR_BptxAND_v1, fragment.HLT_HIL1_ETT60_ETTAsym65_MinimumBiasHF2_OR_PixelTracks10_v1, fragment.HLT_HIL1_ETT65_ETTAsym80_MinimumBiasHF2_OR_PixelTracks10_v1, fragment.HLT_HIFullTracks_Multiplicity020_HF1AND_v1, fragment.HLT_HIFullTracks_Multiplicity2040_HF1AND_v1, fragment.HLT_HIFullTracks_Multiplicity4060_v1, fragment.HLT_HIFullTracks_Multiplicity6080_v1, fragment.HLT_HIFullTracks_Multiplicity80100_v1, fragment.HLT_HIFullTracks_Multiplicity020_v1, fragment.HLT_HIFullTracks_Multiplicity020_HF1OR_v1, fragment.HLT_HIFullTracks_Multiplicity020_HF2OR_v1, fragment.HLT_HIFullTracks_Multiplicity2040_v1, fragment.HLT_HIFullTracks_Multiplicity2040_HF1OR_v1, fragment.HLT_HIFullTracks_Multiplicity2040_HF2OR_v1, fragment.HLT_HIFullTracks_Multiplicity335_HF1OR_v1, fragment.HLT_HIUPC_Mu8_Mu13_v1, fragment.HLT_HIUPC_Mu8_Mu13_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v1, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2OR_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2OR_v1, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v1, fragment.HLT_HIUPC_SingleMu0_NotMBHF2OR_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMu0_NotMBHF2AND_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMu0_NotMBHF2AND_v1, fragment.HLT_HIUPC_DoubleMu0_NotMBHF2OR_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleMu0_NotMBHF2AND_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleMu0_NotMBHF2AND_v1, fragment.HLT_HIUPC_DoubleMu0_NotMBHF2OR_v1, fragment.HLT_HIUPC_SingleMu0_NotMBHF2OR_v1, fragment.HLT_HIUPC_SingleMu3_NotMBHF2OR_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMu3_NotMBHF2OR_v1, fragment.HLT_HIUPC_SingleMu0_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleMu0_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMu3_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v1, fragment.HLT_HIUPC_NotMBHF2OR_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_NotMBHF2AND_SinglePixelTrack_v1, fragment.HLT_HIUPC_NotMBHF2AND_v1, fragment.HLT_HIUPC_NotMBHF2OR_BptxAND_SinglePixelTrack_v1, fragment.HLT_HIUPC_ZeroBias_SinglePixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2OR_SinglePixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2OR_v1, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v1, fragment.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2OR_SinglePixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2OR_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_v1, fragment.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_v1, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_v1, fragment.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_v1, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2OR_SinglePixelTrack_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2OR_v1, fragment.HLT_HIUPC_ETT5_Asym50_NotMBHF2OR_v1, fragment.HLT_HIUPC_ETT5_Asym50_NotMBHF2OR_SinglePixelTrack_v1, fragment.HLT_HIUPC_ZeroBias_MaxPixelCluster_v1, fragment.HLT_HIUPC_SingleEG3_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleEG5_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_BptxAND_MaxPixelTrack_v1, fragment.HLT_HICsAK4PFJet60Eta1p5_v1, fragment.HLT_HICsAK4PFJet80Eta1p5_v1, fragment.HLT_HICsAK4PFJet100Eta1p5_v1, fragment.HLT_HICsAK4PFJet100Eta1p5_Beamspot_v1, fragment.HLT_HICsAK4PFJet120Eta1p5_v1, fragment.HLT_HICsAK4PFJet60Eta1p5_Centrality_30_100_v1, fragment.HLT_HICsAK4PFJet60Eta1p5_Centrality_50_100_v1, fragment.HLT_HICsAK4PFJet80Eta1p5_Centrality_30_100_v1, fragment.HLT_HICsAK4PFJet80Eta1p5_Centrality_50_100_v1, fragment.HLT_HICsAK4PFJet100Eta1p5_Centrality_30_100_v1, fragment.HLT_HICsAK4PFJet100Eta1p5_Centrality_50_100_v1, fragment.HLT_HIL3Mu3_EG10HECut_v1, fragment.HLT_HIL3Mu3_EG15HECut_v1, fragment.HLT_HIL3Mu3_EG20HECut_v1, fragment.HLT_HIL3Mu3_EG30HECut_v1, fragment.HLT_HIL3Mu5_EG10HECut_v1, fragment.HLT_HIL3Mu5_EG15HECut_v1, fragment.HLT_HIL3Mu5_EG20HECut_v1, fragment.HLT_HIL3Mu5_EG30HECut_v1, fragment.HLT_HIL3Mu7_EG10HECut_v1, fragment.HLT_HIL3Mu7_EG15HECut_v1, fragment.HLT_HIL3Mu7_EG20HECut_v1, fragment.HLT_HIL3Mu7_EG30HECut_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet40Eta2p1_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet60Eta2p1_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet80Eta2p1_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet100Eta2p1_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet40Eta2p1_FilterDr_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet60Eta2p1_FilterDr_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet80Eta2p1_FilterDr_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet100Eta2p1_FilterDr_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet40Eta2p1_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet60Eta2p1_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet80Eta2p1_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet100Eta2p1_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet40Eta2p1_FilterDr_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet60Eta2p1_FilterDr_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet80Eta2p1_FilterDr_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet100Eta2p1_FilterDr_v1, fragment.HLT_HICastor_MediumJet_NotMBHF2AND_v1, fragment.HLT_HICastor_MediumJet_NotMBHF2OR_v1, fragment.HLT_HICastor_MediumJet_MBHF1OR_BptxAND_v1, fragment.HLT_HICastor_MediumJet_SingleMu0_MBHF1OR_BptxAND_v1, fragment.HLT_HICastor_MediumJet_SingleEG5_MBHF1OR_BptxAND_v1, fragment.HLT_HICastor_MediumJet_BptxAND_v1, fragment.HLT_HICastor_MediumJet_v1, fragment.HLT_HICastor_HighJet_v1, fragment.HLT_HICastor_HighJet_BptxAND_v1, fragment.HLT_HICastor_HighJet_MBHF1OR_BptxAND_v1, fragment.HLT_HICastor_HighJet_NotMBHF2OR_v1, fragment.HLT_HICastor_HighJet_NotMBHF2AND_v1, fragment.HLT_HICastor_HighJet_MBHF1AND_BptxAND_v1, fragment.HLT_HICastor_HighJet_MBHF2AND_BptxAND_v1, fragment.HLT_HICastor_Muon_v1, fragment.HLT_HICastor_Muon_BptxAND_v1, fragment.HLT_HIIslandPhoton10_Eta2p4_Cent30_100_v1, fragment.HLT_HIIslandPhoton20_Eta2p4_Cent30_100_v1, fragment.HLT_HIIslandPhoton30_Eta2p4_Cent30_100_v1, fragment.HLT_HIIslandPhoton40_Eta2p4_Cent30_100_v1, fragment.HLT_HIIslandPhoton10_Eta2p4_Cent50_100_v1, fragment.HLT_HIIslandPhoton20_Eta2p4_Cent50_100_v1, fragment.HLT_HIIslandPhoton30_Eta2p4_Cent50_100_v1, fragment.HLT_HIIslandPhoton40_Eta2p4_Cent50_100_v1, fragment.HLT_HIGEDPhoton10_Cent30_100_v1, fragment.HLT_HIGEDPhoton20_Cent30_100_v1, fragment.HLT_HIGEDPhoton30_Cent30_100_v1, fragment.HLT_HIGEDPhoton40_Cent30_100_v1, fragment.HLT_HIGEDPhoton10_Cent50_100_v1, fragment.HLT_HIGEDPhoton20_Cent50_100_v1, fragment.HLT_HIGEDPhoton30_Cent50_100_v1, fragment.HLT_HIGEDPhoton40_Cent50_100_v1, fragment.HLT_HIPuAK4CaloJet60Eta2p4_DeepCSV0p4_v1, fragment.HLT_HIPuAK4CaloJet80Eta2p4_DeepCSV0p4_v1, fragment.HLT_HIPuAK4CaloJet100Eta2p4_DeepCSV0p4_v1, fragment.HLT_HIPuAK4CaloJet60Eta2p4_CSVv2WP0p75_v1, fragment.HLT_HIPuAK4CaloJet80Eta2p4_CSVv2WP0p75_v1, fragment.HLT_HIPuAK4CaloJet100Eta2p4_CSVv2WP0p75_v1, fragment.HLT_HIL1NotBptxOR_v1, fragment.HLT_HIL1UnpairedBunchBptxMinus_v1, fragment.HLT_HIL1UnpairedBunchBptxPlus_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part0_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part1_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part2_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part3_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part4_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part5_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part6_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part7_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part8_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part9_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part10_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part11_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part12_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part13_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part14_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part15_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part16_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part17_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part18_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part19_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part0_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part1_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part2_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part3_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part4_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part5_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part6_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part7_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part8_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part9_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part10_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part11_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part12_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part13_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part14_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part15_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part16_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part17_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part18_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part19_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part20_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part21_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part22_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part23_v1, fragment.HLT_HIL1_ZDC_AND_OR_MinimumBiasHF1_AND_BptxAND_v1, fragment.HLT_HIL1_ZDC_AND_OR_MinimumBiasHF2_AND_BptxAND_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part0_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part1_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part2_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part3_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part4_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part5_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part6_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part7_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part8_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part9_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part10_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part11_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part12_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part13_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part14_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part15_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part16_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part17_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part18_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part19_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part0_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part1_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part2_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part3_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part4_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part5_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part6_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part7_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part8_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part9_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part10_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part11_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part12_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part13_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part14_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part15_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part16_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part17_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part18_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part19_v1, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.ScoutingPFOutput, fragment.Dataset_AlCaLumiPixelCountsExpress, fragment.Dataset_AlCaLumiPixelCountsPrompt, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPPS, fragment.Dataset_AlCaPhiSym, fragment.Dataset_BTagMu, fragment.Dataset_Commissioning, fragment.Dataset_Cosmics, fragment.Dataset_DQMGPUvsCPU, fragment.Dataset_DQMOnlineBeamspot, fragment.Dataset_DisplacedJet, fragment.Dataset_DoubleMuon, fragment.Dataset_DoubleMuonLowMass, fragment.Dataset_EGamma, fragment.Dataset_EcalLaser, fragment.Dataset_EmptyBX, fragment.Dataset_EphemeralHLTPhysics0, fragment.Dataset_EphemeralHLTPhysics1, fragment.Dataset_EphemeralHLTPhysics2, fragment.Dataset_EphemeralHLTPhysics3, fragment.Dataset_EphemeralHLTPhysics4, fragment.Dataset_EphemeralHLTPhysics5, fragment.Dataset_EphemeralHLTPhysics6, fragment.Dataset_EphemeralHLTPhysics7, fragment.Dataset_EphemeralZeroBias0, fragment.Dataset_EphemeralZeroBias1, fragment.Dataset_EphemeralZeroBias2, fragment.Dataset_EphemeralZeroBias3, fragment.Dataset_EphemeralZeroBias4, fragment.Dataset_EphemeralZeroBias5, fragment.Dataset_EphemeralZeroBias6, fragment.Dataset_EphemeralZeroBias7, fragment.Dataset_EventDisplay, fragment.Dataset_ExpressAlignment, fragment.Dataset_ExpressCosmics, fragment.Dataset_ExpressPhysics, fragment.Dataset_FSQJet1, fragment.Dataset_FSQJet2, fragment.Dataset_FullTrack, fragment.Dataset_HFvetoTOTEM, fragment.Dataset_HICastor, fragment.Dataset_HIDQMOnlineBeamspot, fragment.Dataset_HIDoubleMuon, fragment.Dataset_HIDoubleMuonPsiPeri, fragment.Dataset_HIEmptyBX, fragment.Dataset_HIEventDisplay, fragment.Dataset_HIExpressAlignment, fragment.Dataset_HIExpressPhysics, fragment.Dataset_HIForward, fragment.Dataset_HIHLTMonitor, fragment.Dataset_HIHLTPhysics, fragment.Dataset_HIHardProbes, fragment.Dataset_HIHardProbesLower, fragment.Dataset_HIHardProbesPeripheral, fragment.Dataset_HIHcalNZS, fragment.Dataset_HIHeavyFlavor, fragment.Dataset_HIHighMultiplicityETTAsym, fragment.Dataset_HILowMultiplicity, fragment.Dataset_HILowMultiplicityReducedFormat, fragment.Dataset_HIMinimumBias0, fragment.Dataset_HIMinimumBias1, fragment.Dataset_HIMinimumBias10, fragment.Dataset_HIMinimumBias11, fragment.Dataset_HIMinimumBias12, fragment.Dataset_HIMinimumBias13, fragment.Dataset_HIMinimumBias14, fragment.Dataset_HIMinimumBias15, fragment.Dataset_HIMinimumBias16, fragment.Dataset_HIMinimumBias17, fragment.Dataset_HIMinimumBias18, fragment.Dataset_HIMinimumBias19, fragment.Dataset_HIMinimumBias2, fragment.Dataset_HIMinimumBias3, fragment.Dataset_HIMinimumBias4, fragment.Dataset_HIMinimumBias5, fragment.Dataset_HIMinimumBias6, fragment.Dataset_HIMinimumBias7, fragment.Dataset_HIMinimumBias8, fragment.Dataset_HIMinimumBias9, fragment.Dataset_HIMinimumBiasReducedFormat0, fragment.Dataset_HIMinimumBiasReducedFormat1, fragment.Dataset_HIMinimumBiasReducedFormat10, fragment.Dataset_HIMinimumBiasReducedFormat11, fragment.Dataset_HIMinimumBiasReducedFormat2, fragment.Dataset_HIMinimumBiasReducedFormat3, fragment.Dataset_HIMinimumBiasReducedFormat4, fragment.Dataset_HIMinimumBiasReducedFormat5, fragment.Dataset_HIMinimumBiasReducedFormat6, fragment.Dataset_HIMinimumBiasReducedFormat7, fragment.Dataset_HIMinimumBiasReducedFormat8, fragment.Dataset_HIMinimumBiasReducedFormat9, fragment.Dataset_HINCaloJets, fragment.Dataset_HINPFJets, fragment.Dataset_HIOnlineMonitor, fragment.Dataset_HISingleMuon, fragment.Dataset_HITrackerNZS, fragment.Dataset_HIZeroBias1, fragment.Dataset_HIZeroBias10, fragment.Dataset_HIZeroBias11, fragment.Dataset_HIZeroBias12, fragment.Dataset_HIZeroBias2, fragment.Dataset_HIZeroBias3, fragment.Dataset_HIZeroBias4, fragment.Dataset_HIZeroBias5, fragment.Dataset_HIZeroBias6, fragment.Dataset_HIZeroBias7, fragment.Dataset_HIZeroBias8, fragment.Dataset_HIZeroBias9, fragment.Dataset_HLTMonitor, fragment.Dataset_HLTPhysics, fragment.Dataset_HcalNZS, fragment.Dataset_HeavyFlavor, fragment.Dataset_HighMultiplicity, fragment.Dataset_HighPtJet80, fragment.Dataset_HighPtLowerJets, fragment.Dataset_HighPtLowerPhotons, fragment.Dataset_HighPtPhoton30AndZ, fragment.Dataset_IsolatedBunch, fragment.Dataset_JetHT, fragment.Dataset_JetsTOTEM, fragment.Dataset_L1Accept, fragment.Dataset_L1MinimumBias, fragment.Dataset_MET, fragment.Dataset_MinBiasTOTEM, fragment.Dataset_MinimumBias, fragment.Dataset_MinimumBias0, fragment.Dataset_MinimumBias1, fragment.Dataset_MinimumBias2, fragment.Dataset_MinimumBias3, fragment.Dataset_MinimumBias4, fragment.Dataset_MinimumBias5, fragment.Dataset_MinimumBias6, fragment.Dataset_MinimumBias7, fragment.Dataset_MinimumBias8, fragment.Dataset_MinimumBias9, fragment.Dataset_MonteCarlo, fragment.Dataset_MuPlusX, fragment.Dataset_MuonEG, fragment.Dataset_MuonEGammaTOTEM, fragment.Dataset_NoBPTX, fragment.Dataset_OnlineMonitor, fragment.Dataset_ParkingBPH1, fragment.Dataset_ParkingBPH2, fragment.Dataset_ParkingBPH3, fragment.Dataset_ParkingBPH4, fragment.Dataset_ParkingBPH5, fragment.Dataset_ParkingBPHPromptCSCS, fragment.Dataset_RPCMonitor, fragment.Dataset_RandomTOTEM1, fragment.Dataset_RandomTOTEM2, fragment.Dataset_RandomTOTEM3, fragment.Dataset_RandomTOTEM4, fragment.Dataset_ScoutingPFMonitor, fragment.Dataset_ScoutingPFRun3, fragment.Dataset_SingleMuHighPt, fragment.Dataset_SingleMuLowPt, fragment.Dataset_SingleMuon, fragment.Dataset_TOTEM1part0, fragment.Dataset_TOTEM1part1, fragment.Dataset_TOTEM1part2, fragment.Dataset_TOTEM1part3, fragment.Dataset_TOTEM2part0, fragment.Dataset_TOTEM2part1, fragment.Dataset_TOTEM2part2, fragment.Dataset_TOTEM2part3, fragment.Dataset_TOTEM3, fragment.Dataset_TOTEM4part0, fragment.Dataset_TOTEM4part1, fragment.Dataset_TOTEM4part2, fragment.Dataset_TOTEM4part3, fragment.Dataset_Tau, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_ZeroBias, fragment.Dataset_ZeroBiasTOTEM, fragment.Dataset_ZeroBiasTOTEM1, fragment.Dataset_ZeroBiasTOTEM2, fragment.Dataset_ZeroBiasTOTEM3, fragment.Dataset_ZeroBiasTOTEM4, fragment.Dataset_ppForward, )) +fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.HLT_AK8PFJet360_TrimMass30_v18, fragment.HLT_AK8PFJet380_TrimMass30_v11, fragment.HLT_AK8PFJet400_TrimMass30_v12, fragment.HLT_AK8PFJet420_TrimMass30_v11, fragment.HLT_AK8PFHT750_TrimMass50_v12, fragment.HLT_AK8PFHT800_TrimMass50_v12, fragment.HLT_AK8PFHT850_TrimMass50_v11, fragment.HLT_AK8PFHT900_TrimMass50_v11, fragment.HLT_CaloJet10_NoJetID_v3, fragment.HLT_CaloJet20_NoJetID_v3, fragment.HLT_CaloJet50_NoJetID_v3, fragment.HLT_CaloJet500_NoJetID_v12, fragment.HLT_CaloJet550_NoJetID_v7, fragment.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v4, fragment.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v4, fragment.HLT_Trimuon5_3p5_2_Upsilon_Muon_v5, fragment.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v3, fragment.HLT_DoubleEle25_CaloIdL_MW_v4, fragment.HLT_DoubleEle27_CaloIdL_MW_v4, fragment.HLT_DoubleEle33_CaloIdL_MW_v17, fragment.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v7, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v20, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v20, fragment.HLT_Ele27_Ele37_CaloIdL_MW_v4, fragment.HLT_Mu27_Ele37_CaloIdL_MW_v5, fragment.HLT_Mu37_Ele27_CaloIdL_MW_v5, fragment.HLT_Mu37_TkMu27_v5, fragment.HLT_DoubleMu4_3_Bs_v15, fragment.HLT_DoubleMu4_3_Jpsi_v15, fragment.HLT_DoubleMu4_3_LowMass_v1, fragment.HLT_DoubleMu4_LowMass_Displaced_v1, fragment.HLT_Mu0_L1DoubleMu_v1, fragment.HLT_Mu4_L1DoubleMu_v1, fragment.HLT_DoubleMu3_Trk_Tau3mu_v12, fragment.HLT_DoubleMu3_TkMu_DsTau3Mu_v4, fragment.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8, fragment.HLT_DoubleMu4_MuMuTrk_Displaced_v15, fragment.HLT_Mu3_PFJet40_v16, fragment.HLT_Mu7p5_L2Mu2_Jpsi_v10, fragment.HLT_Mu7p5_L2Mu2_Upsilon_v10, fragment.HLT_Mu7p5_Track2_Jpsi_v11, fragment.HLT_Mu7p5_Track3p5_Jpsi_v11, fragment.HLT_Mu7p5_Track7_Jpsi_v11, fragment.HLT_Mu7p5_Track2_Upsilon_v11, fragment.HLT_Mu7p5_Track3p5_Upsilon_v11, fragment.HLT_Mu7p5_Track7_Upsilon_v11, fragment.HLT_Mu3_L1SingleMu5orSingleMu7_v1, fragment.HLT_DoublePhoton33_CaloIdL_v6, fragment.HLT_DoublePhoton70_v6, fragment.HLT_DoublePhoton85_v14, fragment.HLT_Ele20_WPTight_Gsf_v6, fragment.HLT_Ele15_WPLoose_Gsf_v3, fragment.HLT_Ele17_WPLoose_Gsf_v3, fragment.HLT_Ele20_WPLoose_Gsf_v6, fragment.HLT_Ele20_eta2p1_WPLoose_Gsf_v6, fragment.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4, fragment.HLT_Ele27_WPTight_Gsf_v16, fragment.HLT_Ele28_WPTight_Gsf_v1, fragment.HLT_Ele30_WPTight_Gsf_v1, fragment.HLT_Ele32_WPTight_Gsf_v15, fragment.HLT_Ele35_WPTight_Gsf_v9, fragment.HLT_Ele35_WPTight_Gsf_L1EGMT_v5, fragment.HLT_Ele38_WPTight_Gsf_v9, fragment.HLT_Ele40_WPTight_Gsf_v9, fragment.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v9, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_TightChargedIsoPFTauHPS30_eta2p1_CrossL1_v1, fragment.HLT_HT450_Beamspot_v11, fragment.HLT_HT300_Beamspot_v11, fragment.HLT_HT60_Beamspot_v1, fragment.HLT_ZeroBias_Beamspot_v4, fragment.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_CrossL1_v1, fragment.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_TightID_CrossL1_v1, fragment.HLT_IsoMu27_LooseChargedIsoPFTau20_Trk1_eta2p1_SingleL1_v5, fragment.HLT_IsoMu27_LooseChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, fragment.HLT_IsoMu27_MediumChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, fragment.HLT_IsoMu27_TightChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, fragment.HLT_IsoMu20_v15, fragment.HLT_IsoMu24_v13, fragment.HLT_IsoMu24_eta2p1_v15, fragment.HLT_IsoMu27_v16, fragment.HLT_IsoMu30_v4, fragment.HLT_UncorrectedJetE30_NoBPTX_v6, fragment.HLT_UncorrectedJetE30_NoBPTX3BX_v6, fragment.HLT_UncorrectedJetE60_NoBPTX3BX_v6, fragment.HLT_UncorrectedJetE70_NoBPTX3BX_v6, fragment.HLT_L1SingleMu18_v3, fragment.HLT_L1SingleMu25_v2, fragment.HLT_L1SingleMuOpen_v2, fragment.HLT_L1SingleMuOpen_DT_v2, fragment.HLT_L1SingleMuCosmics_v1, fragment.HLT_L1SingleMu3_v1, fragment.HLT_L1SingleMu5_v1, fragment.HLT_L1SingleMu7_v1, fragment.HLT_L1DoubleMu0_v1, fragment.HLT_L1SingleEG10_v2, fragment.HLT_L1SingleEG15_v2, fragment.HLT_L1SingleEG18_v1, fragment.HLT_L1SingleJet16_v1, fragment.HLT_L1SingleJet20_v1, fragment.HLT_L1SingleJet35_v1, fragment.HLT_L1SingleJet8erHE_v1, fragment.HLT_L1SingleJet10erHE_v1, fragment.HLT_L1SingleJet12erHE_v1, fragment.HLT_L1SingleJet200_v1, fragment.HLT_L1DoubleJetC50_v2, fragment.HLT_L1EXT_HCAL_LaserMon1_v1, fragment.HLT_L1EXT_HCAL_LaserMon4_v1, fragment.HLT_DQMPixels_SingleMuOpen_v1, fragment.HLT_L2DoubleMu23_NoVertex_v2, fragment.HLT_L2Mu10_v7, fragment.HLT_L2Mu10_NoVertex_NoBPTX3BX_v5, fragment.HLT_L2Mu10_NoVertex_NoBPTX_v6, fragment.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4, fragment.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5, fragment.HLT_L2Mu50_v2, fragment.HLT_L2Mu23NoVtx_2Cha_v1, fragment.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v1, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2, fragment.HLT_DoubleL2Mu50_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v2, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v14, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v3, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v3, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v3, fragment.HLT_Mu25_TkMu0_Onia_v8, fragment.HLT_Mu30_TkMu0_Psi_v1, fragment.HLT_Mu30_TkMu0_Upsilon_v1, fragment.HLT_Mu20_TkMu0_Phi_v8, fragment.HLT_Mu25_TkMu0_Phi_v8, fragment.HLT_Mu12_v3, fragment.HLT_Mu15_v3, fragment.HLT_Mu20_v12, fragment.HLT_Mu27_v13, fragment.HLT_Mu50_v13, fragment.HLT_Mu55_v3, fragment.HLT_CascadeMu100_v3, fragment.HLT_HighPtTkMu100_v2, fragment.HLT_DiPFJet15_NoCaloMatched_v16, fragment.HLT_DiPFJet25_NoCaloMatched_v16, fragment.HLT_DiPFJet15_FBEta3_NoCaloMatched_v17, fragment.HLT_DiPFJet25_FBEta3_NoCaloMatched_v17, fragment.HLT_DiPFJetAve40_v14, fragment.HLT_DiPFJetAve60_v14, fragment.HLT_DiPFJetAve80_v13, fragment.HLT_DiPFJetAve140_v13, fragment.HLT_DiPFJetAve200_v13, fragment.HLT_DiPFJetAve260_v14, fragment.HLT_DiPFJetAve320_v14, fragment.HLT_DiPFJetAve400_v14, fragment.HLT_DiPFJetAve500_v14, fragment.HLT_DiPFJetAve15_HFJEC_v17, fragment.HLT_DiPFJetAve25_HFJEC_v17, fragment.HLT_DiPFJetAve35_HFJEC_v17, fragment.HLT_DiPFJetAve60_HFJEC_v15, fragment.HLT_DiPFJetAve80_HFJEC_v16, fragment.HLT_DiPFJetAve100_HFJEC_v16, fragment.HLT_DiPFJetAve160_HFJEC_v16, fragment.HLT_DiPFJetAve220_HFJEC_v16, fragment.HLT_DiPFJetAve300_HFJEC_v16, fragment.HLT_AK8PFJet15_v3, fragment.HLT_AK8PFJet25_v3, fragment.HLT_AK8PFJet40_v16, fragment.HLT_AK8PFJet60_v15, fragment.HLT_AK8PFJet80_v15, fragment.HLT_AK8PFJet140_v15, fragment.HLT_AK8PFJet200_v15, fragment.HLT_AK8PFJet260_v16, fragment.HLT_AK8PFJet320_v16, fragment.HLT_AK8PFJet400_v16, fragment.HLT_AK8PFJet450_v16, fragment.HLT_AK8PFJet500_v16, fragment.HLT_AK8PFJet550_v11, fragment.HLT_PFJet15_v3, fragment.HLT_PFJet25_v3, fragment.HLT_PFJet40_v21, fragment.HLT_PFJet60_v21, fragment.HLT_PFJet80_v20, fragment.HLT_PFJet140_v19, fragment.HLT_PFJet200_v19, fragment.HLT_PFJet260_v20, fragment.HLT_PFJet320_v20, fragment.HLT_PFJet400_v20, fragment.HLT_PFJet450_v21, fragment.HLT_PFJet500_v21, fragment.HLT_PFJet550_v11, fragment.HLT_PFJetFwd15_v3, fragment.HLT_PFJetFwd25_v3, fragment.HLT_PFJetFwd40_v19, fragment.HLT_PFJetFwd60_v19, fragment.HLT_PFJetFwd80_v18, fragment.HLT_PFJetFwd140_v18, fragment.HLT_PFJetFwd200_v18, fragment.HLT_PFJetFwd260_v19, fragment.HLT_PFJetFwd320_v19, fragment.HLT_PFJetFwd400_v19, fragment.HLT_PFJetFwd450_v19, fragment.HLT_PFJetFwd500_v19, fragment.HLT_AK8PFJetFwd15_v3, fragment.HLT_AK8PFJetFwd25_v3, fragment.HLT_AK8PFJetFwd40_v15, fragment.HLT_AK8PFJetFwd60_v14, fragment.HLT_AK8PFJetFwd80_v14, fragment.HLT_AK8PFJetFwd140_v14, fragment.HLT_AK8PFJetFwd200_v14, fragment.HLT_AK8PFJetFwd260_v15, fragment.HLT_AK8PFJetFwd320_v15, fragment.HLT_AK8PFJetFwd400_v15, fragment.HLT_AK8PFJetFwd450_v15, fragment.HLT_AK8PFJetFwd500_v15, fragment.HLT_PFHT180_v17, fragment.HLT_PFHT250_v17, fragment.HLT_PFHT370_v17, fragment.HLT_PFHT430_v17, fragment.HLT_PFHT510_v17, fragment.HLT_PFHT590_v17, fragment.HLT_PFHT680_v17, fragment.HLT_PFHT780_v17, fragment.HLT_PFHT890_v17, fragment.HLT_PFHT1050_v18, fragment.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v12, fragment.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v12, fragment.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v12, fragment.HLT_PFHT700_PFMET95_PFMHT95_IDTight_v12, fragment.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v12, fragment.HLT_PFHT800_PFMET85_PFMHT85_IDTight_v12, fragment.HLT_PFMET110_PFMHT110_IDTight_v20, fragment.HLT_PFMET120_PFMHT120_IDTight_v20, fragment.HLT_PFMET130_PFMHT130_IDTight_v20, fragment.HLT_PFMET140_PFMHT140_IDTight_v20, fragment.HLT_PFMET100_PFMHT100_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET110_PFMHT110_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET120_PFMHT120_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET130_PFMHT130_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET140_PFMHT140_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v9, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v9, fragment.HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9, fragment.HLT_PFMETTypeOne110_PFMHT110_IDTight_v12, fragment.HLT_PFMETTypeOne120_PFMHT120_IDTight_v12, fragment.HLT_PFMETTypeOne130_PFMHT130_IDTight_v12, fragment.HLT_PFMETTypeOne140_PFMHT140_IDTight_v11, fragment.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, fragment.HLT_MonoCentralPFJet80_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, fragment.HLT_MonoCentralPFJet80_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, fragment.HLT_MonoCentralPFJet80_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, fragment.HLT_MonoCentralPFJet80_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, fragment.HLT_L1ETMHadSeeds_v2, fragment.HLT_CaloMHT90_v4, fragment.HLT_CaloMET80_NotCleaned_v4, fragment.HLT_CaloMET90_NotCleaned_v4, fragment.HLT_CaloMET100_NotCleaned_v4, fragment.HLT_CaloMET110_NotCleaned_v4, fragment.HLT_CaloMET250_NotCleaned_v4, fragment.HLT_CaloMET300_NotCleaned_v4, fragment.HLT_CaloMET350_NotCleaned_v4, fragment.HLT_PFMET200_NotCleaned_v9, fragment.HLT_PFMET250_NotCleaned_v9, fragment.HLT_PFMET300_NotCleaned_v9, fragment.HLT_PFMET200_BeamHaloCleaned_v9, fragment.HLT_PFMETTypeOne200_BeamHaloCleaned_v9, fragment.HLT_MET105_IsoTrk50_v9, fragment.HLT_MET120_IsoTrk50_v9, fragment.HLT_SingleJet30_Mu12_SinglePFJet40_v11, fragment.HLT_Mu12eta2p3_v1, fragment.HLT_Mu12eta2p3_PFJet40_v1, fragment.HLT_Mu12_DoublePFJets40_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets100_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets200_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets350_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets40_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets100_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets200_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets40_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets100_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets200_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets350_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets40_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets100_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets200_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets350_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_Photon300_NoHE_v12, fragment.HLT_Mu8_TrkIsoVVL_v12, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v18, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v18, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v19, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v19, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepCSV_1p5_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_CaloBtagDeepCSV_1p5_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v11, fragment.HLT_Mu17_TrkIsoVVL_v13, fragment.HLT_Mu19_TrkIsoVVL_v4, fragment.HLT_BTagMu_AK4DiJet20_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet40_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet70_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet110_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet170_Mu5_v12, fragment.HLT_BTagMu_AK4Jet300_Mu5_v12, fragment.HLT_BTagMu_AK8DiJet170_Mu5_v9, fragment.HLT_BTagMu_AK8Jet170_DoubleMu5_v2, fragment.HLT_BTagMu_AK8Jet300_Mu5_v12, fragment.HLT_Ele15_Ele8_CaloIdL_TrackIdL_IsoVL_v3, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v19, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v15, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v7, fragment.HLT_Mu23_TrkIsoVVL_Ele8_CaloIdL_TrackIdL_IsoVL_DZ_v10, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v7, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v15, fragment.HLT_Mu12_DoublePhoton20_v5, fragment.HLT_Photon20_v2, fragment.HLT_Photon22_v2, fragment.HLT_Photon25_v4, fragment.HLT_Photon33_v5, fragment.HLT_Photon50_v13, fragment.HLT_Photon75_v13, fragment.HLT_Photon90_v13, fragment.HLT_Photon120_v13, fragment.HLT_Photon150_v6, fragment.HLT_Photon175_v14, fragment.HLT_Photon200_v13, fragment.HLT_Photon100EB_TightID_TightIso_v2, fragment.HLT_Photon110EB_TightID_TightIso_v2, fragment.HLT_Photon120EB_TightID_TightIso_v2, fragment.HLT_Photon100EBHE10_v2, fragment.HLT_Photon100EEHE10_v2, fragment.HLT_Photon100EE_TightID_TightIso_v2, fragment.HLT_Photon50_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon75_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ300_PFJetsMJJ400DEta3_v5, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ400_PFJetsMJJ600DEta3_v5, fragment.HLT_Photon90_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon120_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon165_R9Id90_HE10_IsoM_v15, fragment.HLT_Photon90_CaloIdL_PFHT700_v16, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v13, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v13, fragment.HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13, fragment.HLT_Photon35_TwoProngs35_v1, fragment.HLT_IsoMu24_TwoProngs35_v1, fragment.HLT_Dimuon0_Jpsi_L1_NoOS_v7, fragment.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v7, fragment.HLT_Dimuon0_Jpsi_v8, fragment.HLT_Dimuon0_Jpsi_NoVertexing_v8, fragment.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7, fragment.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v7, fragment.HLT_Dimuon0_Jpsi3p5_Muon2_v5, fragment.HLT_Dimuon0_Upsilon_L1_4p5_v9, fragment.HLT_Dimuon0_Upsilon_L1_5_v9, fragment.HLT_Dimuon0_Upsilon_L1_4p5NoOS_v8, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v9, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v7, fragment.HLT_Dimuon0_Upsilon_NoVertexing_v7, fragment.HLT_Dimuon0_Upsilon_L1_5M_v8, fragment.HLT_Dimuon0_LowMass_L1_0er1p5R_v7, fragment.HLT_Dimuon0_LowMass_L1_0er1p5_v8, fragment.HLT_Dimuon0_LowMass_v8, fragment.HLT_Dimuon0_LowMass_L1_4_v8, fragment.HLT_Dimuon0_LowMass_L1_4R_v7, fragment.HLT_Dimuon0_LowMass_L1_TM530_v6, fragment.HLT_Trimuon2_Upsilon5_Muon_NoL1Mass_v6, fragment.HLT_Dimuon0_Upsilon_Muon_L1_TM0_v6, fragment.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v6, fragment.HLT_TripleMu_5_3_3_Mass3p8_DZ_v8, fragment.HLT_TripleMu_10_5_5_DZ_v10, fragment.HLT_TripleMu_12_10_5_v10, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v4, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v4, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v4, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v4, fragment.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10, fragment.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v10, fragment.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v10, fragment.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v6, fragment.HLT_DoubleMu4_Jpsi_Displaced_v7, fragment.HLT_DoubleMu4_Jpsi_NoVertexing_v7, fragment.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v7, fragment.HLT_DoubleMu43NoFiltersNoVtx_v4, fragment.HLT_DoubleMu48NoFiltersNoVtx_v4, fragment.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v5, fragment.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v5, fragment.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v1, fragment.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v1, fragment.HLT_DoubleMu40NoFiltersNoVtxDisplaced_v1, fragment.HLT_DoubleMu20_7_Mass0to30_L1_DM4_v7, fragment.HLT_DoubleMu20_7_Mass0to30_L1_DM4EG_v8, fragment.HLT_HT425_v9, fragment.HLT_HT430_DisplacedDijet40_DisplacedTrack_v13, fragment.HLT_HT500_DisplacedDijet40_DisplacedTrack_v13, fragment.HLT_HT430_DisplacedDijet60_DisplacedTrack_v13, fragment.HLT_HT400_DisplacedDijet40_DisplacedTrack_v13, fragment.HLT_HT650_DisplacedDijet60_Inclusive_v13, fragment.HLT_HT550_DisplacedDijet60_Inclusive_v13, fragment.HLT_DiJet110_35_Mjj650_PFMET110_v9, fragment.HLT_DiJet110_35_Mjj650_PFMET120_v9, fragment.HLT_DiJet110_35_Mjj650_PFMET130_v9, fragment.HLT_TripleJet110_35_35_Mjj650_PFMET110_v9, fragment.HLT_TripleJet110_35_35_Mjj650_PFMET120_v9, fragment.HLT_TripleJet110_35_35_Mjj650_PFMET130_v9, fragment.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v13, fragment.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v13, fragment.HLT_Ele28_HighEta_SC20_Mass55_v13, fragment.HLT_DoubleMu20_7_Mass0to30_Photon23_v8, fragment.HLT_Ele15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, fragment.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v16, fragment.HLT_Ele15_IsoVVVL_PFHT450_v16, fragment.HLT_Ele50_IsoVVVL_PFHT450_v16, fragment.HLT_Ele15_IsoVVVL_PFHT600_v20, fragment.HLT_Mu4_TrkIsoVVL_DiPFJet90_40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v15, fragment.HLT_Mu8_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v16, fragment.HLT_Mu10_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT350_PFMETNoMu60_v15, fragment.HLT_Mu15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, fragment.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v15, fragment.HLT_Mu15_IsoVVVL_PFHT450_v15, fragment.HLT_Mu50_IsoVVVL_PFHT450_v15, fragment.HLT_Mu15_IsoVVVL_PFHT600_v19, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET70_PFMHT70_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu70_PFMHTNoMu70_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v2, fragment.HLT_Dimuon10_PsiPrime_Barrel_Seagulls_v7, fragment.HLT_Dimuon20_Jpsi_Barrel_Seagulls_v7, fragment.HLT_Dimuon12_Upsilon_y1p4_v2, fragment.HLT_Dimuon14_Phi_Barrel_Seagulls_v7, fragment.HLT_Dimuon18_PsiPrime_v14, fragment.HLT_Dimuon25_Jpsi_v14, fragment.HLT_Dimuon18_PsiPrime_noCorrL1_v6, fragment.HLT_Dimuon24_Upsilon_noCorrL1_v6, fragment.HLT_Dimuon24_Phi_noCorrL1_v6, fragment.HLT_Dimuon25_Jpsi_noCorrL1_v6, fragment.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v17, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v17, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v17, fragment.HLT_DoubleIsoMu20_eta2p1_v7, fragment.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v6, fragment.HLT_TrkMu16_DoubleTrkMu6NoFiltersNoVtx_v12, fragment.HLT_TrkMu17_DoubleTrkMu8NoFiltersNoVtx_v13, fragment.HLT_Mu8_v12, fragment.HLT_Mu17_v13, fragment.HLT_Mu19_v4, fragment.HLT_Mu17_Photon30_IsoCaloId_v6, fragment.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v16, fragment.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, fragment.HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3, fragment.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, fragment.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v18, fragment.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v16, fragment.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v18, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18, fragment.HLT_Ele115_CaloIdVT_GsfTrkIdT_v14, fragment.HLT_Ele135_CaloIdVT_GsfTrkIdT_v7, fragment.HLT_Ele145_CaloIdVT_GsfTrkIdT_v8, fragment.HLT_Ele200_CaloIdVT_GsfTrkIdT_v8, fragment.HLT_Ele250_CaloIdVT_GsfTrkIdT_v13, fragment.HLT_Ele300_CaloIdVT_GsfTrkIdT_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepCSV_4p5_v3, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v9, fragment.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepCSV_2p94_v8, fragment.HLT_PFHT400_SixPFJet32_v8, fragment.HLT_PFHT450_SixPFJet36_PFBTagDeepCSV_1p59_v7, fragment.HLT_PFHT450_SixPFJet36_v7, fragment.HLT_PFHT400_FivePFJet_100_100_60_30_30_v8, fragment.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepCSV_4p5_v8, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepCSV_4p5_v8, fragment.HLT_PFHT350_v19, fragment.HLT_PFHT350MinPFJet15_v9, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_v5, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_v5, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350MinPFJet15_v11, fragment.HLT_ECALHT800_v10, fragment.HLT_DiSC30_18_EIso_AND_HE_Mass70_v13, fragment.HLT_L1FatEvents_v2, fragment.HLT_Physics_v7, fragment.HLT_EphemeralPhysics_v1, fragment.DST_Physics_v7, fragment.HLT_Random_v3, fragment.HLT_Random_TOTEM_part0_v1, fragment.HLT_Random_TOTEM_part1_v1, fragment.HLT_Random_TOTEM_part2_v1, fragment.HLT_Random_TOTEM_part3_v1, fragment.HLT_ZeroBias_v6, fragment.HLT_ZeroBias_TOTEM_part0_v1, fragment.HLT_ZeroBias_TOTEM_part1_v1, fragment.HLT_ZeroBias_TOTEM_part2_v1, fragment.HLT_ZeroBias_TOTEM_part3_v1, fragment.HLT_ZeroBias_Alignment_v1, fragment.HLT_EphemeralZeroBias_v1, fragment.DST_ZeroBias_v2, fragment.DST_Run3_PFScoutingPixelTracking_v16, fragment.HLT_AK4CaloJet30_v11, fragment.HLT_AK4CaloJet40_v10, fragment.HLT_AK4CaloJet50_v10, fragment.HLT_AK4CaloJet80_v10, fragment.HLT_AK4CaloJet100_v10, fragment.HLT_AK4CaloJet120_v9, fragment.HLT_AK4PFJet30_v19, fragment.HLT_AK4PFJet50_v19, fragment.HLT_AK4PFJet80_v19, fragment.HLT_AK4PFJet100_v19, fragment.HLT_AK4PFJet120_v18, fragment.HLT_PixelTracks_Multiplicity60ForPPRef_v5, fragment.HLT_PixelTracks_Multiplicity85ForPPRef_v5, fragment.HLT_PixelTracks_Multiplicity110ForPPRef_v5, fragment.HLT_PixelTracks_Multiplicity135ForPPRef_v5, fragment.HLT_PixelTracks_Multiplicity160ForPPRef_v5, fragment.HLT_AK4CaloJet40_Eta5p1ForPPRef_v9, fragment.HLT_AK4CaloJet60_Eta5p1ForPPRef_v9, fragment.HLT_AK4CaloJet80_Eta5p1ForPPRef_v9, fragment.HLT_AK4CaloJet100_Eta5p1ForPPRef_v9, fragment.HLT_AK4CaloJet110_Eta5p1ForPPRef_v9, fragment.HLT_AK4CaloJet120_Eta5p1ForPPRef_v9, fragment.HLT_AK4CaloJet150ForPPRef_v9, fragment.HLT_AK4PFJet40_Eta5p1ForPPRef_v16, fragment.HLT_AK4PFJet60_Eta5p1ForPPRef_v16, fragment.HLT_AK4PFJet80_Eta5p1ForPPRef_v16, fragment.HLT_AK4PFJet100_Eta5p1ForPPRef_v16, fragment.HLT_AK4PFJet110_Eta5p1ForPPRef_v16, fragment.HLT_AK4PFJet120_Eta5p1ForPPRef_v16, fragment.HLT_AK4CaloJet80_Jet35_Eta1p1ForPPRef_v9, fragment.HLT_AK4CaloJet80_Jet35_Eta0p7ForPPRef_v9, fragment.HLT_AK4CaloJet100_Jet35_Eta1p1ForPPRef_v9, fragment.HLT_AK4CaloJet100_Jet35_Eta0p7ForPPRef_v9, fragment.HLT_AK4CaloJet80_45_45_Eta2p1ForPPRef_v9, fragment.HLT_SinglePhoton10_Eta3p1ForPPRef_v8, fragment.HLT_SinglePhoton15_Eta3p1ForPPRef_v9, fragment.HLT_SinglePhoton20_Eta3p1ForPPRef_v9, fragment.HLT_SinglePhoton30_Eta3p1ForPPRef_v9, fragment.HLT_SinglePhoton40_Eta3p1ForPPRef_v8, fragment.HLT_SinglePhoton50_Eta3p1ForPPRef_v8, fragment.HLT_SinglePhoton60_Eta3p1ForPPRef_v8, fragment.HLT_Photon20_HoverELoose_v10, fragment.HLT_Photon30_HoverELoose_v10, fragment.HLT_Photon40_HoverELoose_v10, fragment.HLT_Photon50_HoverELoose_v10, fragment.HLT_Photon60_HoverELoose_v10, fragment.HLT_HIL2Mu3Eta2p5_AK4CaloJet40Eta2p1ForPPRef_v11, fragment.HLT_HIL2Mu3Eta2p5_AK4CaloJet60Eta2p1ForPPRef_v11, fragment.HLT_HIL2Mu3Eta2p5_AK4CaloJet80Eta2p1ForPPRef_v11, fragment.HLT_HIL2Mu3Eta2p5_AK4CaloJet100Eta2p1ForPPRef_v11, fragment.HLT_HIL1DoubleMu0ForPPRef_v4, fragment.HLT_HIL1DoubleMu10ForPPRef_v4, fragment.HLT_HIL2DoubleMu0_NHitQForPPRef_v5, fragment.HLT_HIL3DoubleMu0_OS_m2p5to4p5ForPPRef_v6, fragment.HLT_HIL3DoubleMu0_OS_m7to14ForPPRef_v6, fragment.HLT_HIL2Mu3_NHitQ10ForPPRef_v6, fragment.HLT_HIL3Mu3_NHitQ15ForPPRef_v6, fragment.HLT_HIL2Mu5_NHitQ10ForPPRef_v6, fragment.HLT_HIL3Mu5_NHitQ15ForPPRef_v6, fragment.HLT_HIL2Mu7_NHitQ10ForPPRef_v6, fragment.HLT_HIL3Mu7_NHitQ15ForPPRef_v6, fragment.HLT_HIL2Mu15ForPPRef_v6, fragment.HLT_HIL3Mu15ForPPRef_v6, fragment.HLT_HIL2Mu20ForPPRef_v6, fragment.HLT_HIL3Mu20ForPPRef_v6, fragment.HLT_FullTrack18ForPPRef_v11, fragment.HLT_FullTrack24ForPPRef_v11, fragment.HLT_FullTrack34ForPPRef_v11, fragment.HLT_FullTrack45ForPPRef_v11, fragment.HLT_FullTrack53ForPPRef_v11, fragment.HLT_HIL1CastorMediumJetForPPRef_v4, fragment.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v2, fragment.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v2, fragment.HLT_HIL1NotBptxORForPPRef_v2, fragment.HLT_HIHT80_Beamspot_ppRef5TeV_v3, fragment.HLT_HIZeroBias_part0_v6, fragment.HLT_HIZeroBias_part1_v6, fragment.HLT_HIZeroBias_part2_v6, fragment.HLT_HIZeroBias_part3_v6, fragment.HLT_HIZeroBias_part4_v6, fragment.HLT_HIZeroBias_part5_v6, fragment.HLT_HIZeroBias_part6_v6, fragment.HLT_HIZeroBias_part7_v6, fragment.HLT_HIZeroBias_part8_v6, fragment.HLT_HIZeroBias_part9_v6, fragment.HLT_HIZeroBias_part10_v6, fragment.HLT_HIZeroBias_part11_v6, fragment.AlCa_HIEcalPi0EBonly_v1, fragment.AlCa_HIEcalPi0EEonly_v1, fragment.AlCa_HIEcalEtaEBonly_v1, fragment.AlCa_HIEcalEtaEEonly_v1, fragment.HLT_DmesonPPTrackingGlobal_Dpt8ForPPRef_v11, fragment.HLT_DmesonPPTrackingGlobal_Dpt15ForPPRef_v11, fragment.HLT_DmesonPPTrackingGlobal_Dpt20ForPPRef_v11, fragment.HLT_DmesonPPTrackingGlobal_Dpt30ForPPRef_v11, fragment.HLT_DmesonPPTrackingGlobal_Dpt40ForPPRef_v11, fragment.HLT_DmesonPPTrackingGlobal_Dpt50ForPPRef_v11, fragment.HLT_DmesonPPTrackingGlobal_Dpt60ForPPRef_v11, fragment.HLT_AK4PFBJetBCSV60_Eta2p1ForPPRef_v16, fragment.HLT_AK4PFBJetBCSV80_Eta2p1ForPPRef_v16, fragment.HLT_AK4PFDJet60_Eta2p1ForPPRef_v16, fragment.HLT_AK4PFDJet80_Eta2p1ForPPRef_v16, fragment.HLT_AK4PFBJetBSSV60_Eta2p1ForPPRef_v16, fragment.HLT_AK4PFBJetBSSV80_Eta2p1ForPPRef_v16, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v5, fragment.AlCa_EcalPhiSym_v9, fragment.HLT_L1UnpairedBunchBptxMinus_v2, fragment.HLT_L1UnpairedBunchBptxPlus_v2, fragment.HLT_L1NotBptxOR_v3, fragment.HLT_L1BptxXOR_v1, fragment.HLT_L1TOTEM1_MinBias_v4, fragment.HLT_L1TOTEM2_ZeroBias_v4, fragment.HLT_L1MinimumBiasHF_OR_v3, fragment.HLT_L1MinimumBiasHF_OR_part0_v1, fragment.HLT_L1MinimumBiasHF_OR_part1_v1, fragment.HLT_L1MinimumBiasHF_OR_part2_v1, fragment.HLT_L1MinimumBiasHF_OR_part3_v1, fragment.HLT_L1MinimumBiasHF_OR_part4_v1, fragment.HLT_L1MinimumBiasHF_OR_part5_v1, fragment.HLT_L1MinimumBiasHF_OR_part6_v1, fragment.HLT_L1MinimumBiasHF_OR_part7_v1, fragment.HLT_L1MinimumBiasHF_OR_part8_v1, fragment.HLT_L1MinimumBiasHF_OR_part9_v1, fragment.HLT_L1MinimumBiasHF0OR_v4, fragment.HLT_L1MinimumBiasHF1OR_v4, fragment.HLT_L1MinimumBiasHF2OR_v4, fragment.HLT_L1MinimumBiasHF2ORNoBptxGating_v5, fragment.HLT_L1MinimumBiasHF1AND_v4, fragment.HLT_L1MinimumBiasHF2AND_v4, fragment.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v2, fragment.HLT_CDC_L2cosmic_10_er1p0_v1, fragment.HLT_CDC_L2cosmic_5p5_er1p0_v1, fragment.HLT_HcalNZS_v13, fragment.HLT_HcalPhiSym_v15, fragment.HLT_HcalIsolatedbunch_v5, fragment.HLT_IsoTrackHB_v4, fragment.HLT_IsoTrackHE_v4, fragment.HLT_ZeroBias_FirstCollisionAfterAbortGap_v5, fragment.HLT_ZeroBias_IsolatedBunches_v5, fragment.HLT_ZeroBias_FirstCollisionInTrain_v4, fragment.HLT_ZeroBias_LastCollisionInTrain_v3, fragment.HLT_ZeroBias_FirstBXAfterTrain_v3, fragment.AlCa_RPCMuonNormalisation_v13, fragment.AlCa_HIRPCMuonNormalisation_v1, fragment.AlCa_LumiPixelsCounts_Random_v2, fragment.AlCa_LumiPixelsCounts_ZeroBias_v2, fragment.MC_ReducedIterativeTracking_v12, fragment.MC_PFMET_v17, fragment.MC_AK4PFJets_v17, fragment.MC_PFBTagDeepCSV_v10, fragment.MC_PFHT_v16, fragment.MC_PFMHT_v16, fragment.MC_CaloMET_v8, fragment.MC_CaloMET_JetIdCleaned_v9, fragment.MC_AK4CaloJets_v9, fragment.MC_AK4CaloJetsFromPV_v8, fragment.MC_CaloBTagDeepCSV_v8, fragment.MC_CaloHT_v8, fragment.MC_CaloMHT_v8, fragment.MC_AK8PFJets_v17, fragment.MC_AK8TrimPFJets_v17, fragment.MC_AK8PFHT_v16, fragment.MC_AK8CaloHT_v8, fragment.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v13, fragment.MC_DoubleEle5_CaloIdL_MW_v15, fragment.MC_Ele5_WPTight_Gsf_v8, fragment.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v15, fragment.MC_IsoMu_v15, fragment.MC_IsoTkMu15_v12, fragment.MC_DoubleMu_TrkIsoVVL_DZ_v11, fragment.MC_DoubleGlbTrkMu_TrkIsoVVL_DZ_v12, fragment.MC_DoubleMuNoFiltersNoVtx_v7, fragment.MC_PFBTagDeepJet_v1, fragment.MC_Run3_PFScoutingPixelTracking_v16, fragment.AlCa_EcalPi0EBonly_v13, fragment.AlCa_EcalPi0EEonly_v13, fragment.AlCa_EcalEtaEBonly_v13, fragment.AlCa_EcalEtaEEonly_v13, fragment.HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12, fragment.HLT_MediumChargedIsoPFTau200HighPtRelaxedIso_Trk50_eta2p1_v12, fragment.HLT_MediumChargedIsoPFTau220HighPtRelaxedIso_Trk50_eta2p1_v12, fragment.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v9, fragment.HLT_Rsq0p35_v15, fragment.HLT_Rsq0p40_v15, fragment.HLT_RsqMR300_Rsq0p09_MR200_v15, fragment.HLT_RsqMR320_Rsq0p09_MR200_v15, fragment.HLT_RsqMR300_Rsq0p09_MR200_4jet_v15, fragment.HLT_RsqMR320_Rsq0p09_MR200_4jet_v15, fragment.HLT_L1_DoubleJet30_Mass_Min400_Mu10_v1, fragment.HLT_IsoMu27_MET90_v3, fragment.HLT_VBF_DoubleLooseChargedIsoPFTau20_Trk1_eta2p1_v3, fragment.HLT_VBF_DoubleLooseChargedIsoPFTauHPS20_Trk1_eta2p1_v1, fragment.HLT_VBF_DoubleMediumChargedIsoPFTauHPS20_Trk1_eta2p1_v1, fragment.HLT_VBF_DoubleTightChargedIsoPFTauHPS20_Trk1_eta2p1_v1, fragment.HLT_Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50_v5, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v5, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ600DEta3_v5, fragment.HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9, fragment.HLT_PFMETNoMu100_PFMHTNoMu100_IDTight_PFHT60_v9, fragment.HLT_PFMETTypeOne100_PFMHT100_IDTight_PFHT60_v9, fragment.HLT_Mu18_Mu9_SameSign_v4, fragment.HLT_Mu18_Mu9_SameSign_DZ_v4, fragment.HLT_Mu18_Mu9_v4, fragment.HLT_Mu18_Mu9_DZ_v4, fragment.HLT_Mu20_Mu10_SameSign_v4, fragment.HLT_Mu20_Mu10_SameSign_DZ_v4, fragment.HLT_Mu20_Mu10_v4, fragment.HLT_Mu20_Mu10_DZ_v4, fragment.HLT_Mu23_Mu12_SameSign_v4, fragment.HLT_Mu23_Mu12_SameSign_DZ_v4, fragment.HLT_Mu23_Mu12_v4, fragment.HLT_Mu23_Mu12_DZ_v4, fragment.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v6, fragment.HLT_DoubleMu2_Jpsi_DoubleTkMu0_Phi_v5, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10, fragment.HLT_TripleMu_5_3_3_Mass3p8_DCA_v3, fragment.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_QuadPFJet98_83_71_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet103_88_75_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet105_88_76_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet111_90_80_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet98_83_71_15_v5, fragment.HLT_QuadPFJet103_88_75_15_v5, fragment.HLT_QuadPFJet105_88_76_15_v5, fragment.HLT_QuadPFJet111_90_80_15_v5, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p17_v2, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p1_v2, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_p02_v3, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np2_v2, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np4_v2, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_v2, fragment.HLT_Mu12_IP6_ToCSCS_v1, fragment.HLT_Mu12_IP6_part0_v2, fragment.HLT_Mu12_IP6_part1_v2, fragment.HLT_Mu12_IP6_part2_v2, fragment.HLT_Mu12_IP6_part3_v2, fragment.HLT_Mu12_IP6_part4_v2, fragment.HLT_Mu9_IP5_ToCSCS_v1, fragment.HLT_Mu9_IP5_part0_v2, fragment.HLT_Mu9_IP5_part1_v2, fragment.HLT_Mu9_IP5_part2_v2, fragment.HLT_Mu9_IP5_part3_v2, fragment.HLT_Mu9_IP5_part4_v2, fragment.HLT_Mu7_IP4_ToCSCS_v1, fragment.HLT_Mu7_IP4_part0_v2, fragment.HLT_Mu7_IP4_part1_v2, fragment.HLT_Mu7_IP4_part2_v2, fragment.HLT_Mu7_IP4_part3_v2, fragment.HLT_Mu7_IP4_part4_v2, fragment.HLT_Mu9_IP4_ToCSCS_v1, fragment.HLT_Mu9_IP4_part0_v2, fragment.HLT_Mu9_IP4_part1_v2, fragment.HLT_Mu9_IP4_part2_v2, fragment.HLT_Mu9_IP4_part3_v2, fragment.HLT_Mu9_IP4_part4_v2, fragment.HLT_Mu8_IP5_ToCSCS_v1, fragment.HLT_Mu8_IP5_part0_v2, fragment.HLT_Mu8_IP5_part1_v2, fragment.HLT_Mu8_IP5_part2_v2, fragment.HLT_Mu8_IP5_part3_v2, fragment.HLT_Mu8_IP5_part4_v2, fragment.HLT_Mu8_IP6_ToCSCS_v1, fragment.HLT_Mu8_IP6_part0_v2, fragment.HLT_Mu8_IP6_part1_v2, fragment.HLT_Mu8_IP6_part2_v2, fragment.HLT_Mu8_IP6_part3_v2, fragment.HLT_Mu8_IP6_part4_v2, fragment.HLT_Mu9_IP6_ToCSCS_v1, fragment.HLT_Mu9_IP6_part0_v3, fragment.HLT_Mu9_IP6_part1_v3, fragment.HLT_Mu9_IP6_part2_v3, fragment.HLT_Mu9_IP6_part3_v3, fragment.HLT_Mu9_IP6_part4_v3, fragment.HLT_Mu8_IP3_ToCSCS_v1, fragment.HLT_Mu8_IP3_part0_v3, fragment.HLT_Mu8_IP3_part1_v3, fragment.HLT_Mu8_IP3_part2_v3, fragment.HLT_Mu8_IP3_part3_v3, fragment.HLT_Mu8_IP3_part4_v3, fragment.HLT_Mu9_IP0_part0_v2, fragment.HLT_Mu9_IP3_part0_v2, fragment.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_TrkMu6NoFiltersNoVtx_v1, fragment.HLT_TrkMu16NoFiltersNoVtx_v1, fragment.HLT_DoubleTrkMu_16_6_NoFiltersNoVtx_v1, fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1, fragment.HLT_DoubleMediumChargedIsoPFTauHPS40_Trk1_eta2p1_v1, fragment.HLT_DoubleTightChargedIsoPFTauHPS35_Trk1_eta2p1_v1, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, fragment.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v1, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v1, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v1, fragment.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v1, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v1, fragment.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepJet_4p5_v1, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepJet_4p5_v1, fragment.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepJet_2p94_v1, fragment.HLT_PFHT450_SixPFJet36_PFBTagDeepJet_1p59_v1, fragment.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet103_88_75_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet105_88_76_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet111_90_80_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet98_83_71_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v1, fragment.HLT_QuadPFJet70_50_40_30_v1, fragment.HLT_QuadPFJet70_50_40_30_PFBTagParticleNet_2BTagSum0p65_v1, fragment.HLT_QuadPFJet70_50_40_35_PFBTagParticleNet_2BTagSum0p65_v1, fragment.HLT_QuadPFJet70_50_45_35_PFBTagParticleNet_2BTagSum0p65_v1, fragment.HLT_AK8PFJet230_SoftDropMass40_v1, fragment.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, fragment.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, fragment.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, fragment.HLT_AK8PFJet400_SoftDropMass40_v1, fragment.HLT_AK8PFJet425_SoftDropMass40_v1, fragment.HLT_AK8PFJet450_SoftDropMass40_v1, fragment.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, fragment.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, fragment.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1, fragment.HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v1, fragment.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1, fragment.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v1, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v1, fragment.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v1, fragment.HLT_L1Mu6HT240_v1, fragment.HLT_Mu6HT240_DisplacedDijet30_Inclusive0PtrkShortSig5_v1, fragment.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v1, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v1, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v1, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v1, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v1, fragment.HLT_HT430_DisplacedDijet30_Inclusive1PtrkShortSig5_v1, fragment.HLT_HT430_DisplacedDijet35_Inclusive1PtrkShortSig5_v1, fragment.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v1, fragment.HLT_CaloMET60_DTCluster50_v1, fragment.HLT_CaloMET60_DTClusterNoMB1S50_v1, fragment.HLT_L1MET_DTCluster50_v1, fragment.HLT_L1MET_DTClusterNoMB1S50_v1, fragment.HLT_CscCluster_Loose_v1, fragment.HLT_CscCluster_Medium_v1, fragment.HLT_CscCluster_Tight_v1, fragment.HLT_L1CSCShower_DTCluster50_v1, fragment.HLT_L1CSCShower_DTCluster75_v1, fragment.HLT_PFMET105_IsoTrk50_v1, fragment.HLT_PFMET105_PFJet100_looseRecoiling_v1, fragment.HLT_PFMET110_PFJet100_v1, fragment.HLT_PFMET110_PFJet100_looseRecoiling_v1, fragment.HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1, fragment.HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1, fragment.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1, fragment.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1, fragment.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1, fragment.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1, fragment.HLT_DiPhoton10Time1ns_v1, fragment.HLT_DiPhoton10Time1p2ns_v1, fragment.HLT_DiPhoton10Time1p4ns_v1, fragment.HLT_DiPhoton10Time1p6ns_v1, fragment.HLT_DiPhoton10Time1p8ns_v1, fragment.HLT_DiPhoton10Time2ns_v1, fragment.HLT_DiPhoton10sminlt0p1_v1, fragment.HLT_DiPhoton10sminlt0p12_v1, fragment.HLT_DiPhoton10sminlt0p14_v1, fragment.HLT_DiPhoton10sminlt0p16_v1, fragment.HLT_DiPhoton10_CaloIdL_v1, fragment.HLT_ExpressMuons_v1, fragment.HLT_OnlineMonitorGroup_v1, fragment.HLT_HIOnlineMonitorGroup_v1, fragment.DQM_EcalReconstruction_v1, fragment.DQM_HcalReconstruction_v1, fragment.DQM_PixelReconstruction_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part0_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part1_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part2_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part3_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part0_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part1_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part2_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part3_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part0_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part1_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part2_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part3_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part0_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part1_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part2_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part3_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part0_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part1_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part2_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part3_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part0_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part1_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part2_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part3_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part0_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part1_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part2_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part3_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part0_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part1_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part2_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part3_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part0_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part1_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part2_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part3_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part0_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part1_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part2_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part3_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part0_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part1_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part2_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1, fragment.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part0_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part1_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part2_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part3_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part0_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part1_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part2_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1, fragment.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part0_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part1_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part2_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part3_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part0_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part1_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part2_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1, fragment.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part0_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part1_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part2_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part3_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part0_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part1_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part2_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part3_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part0_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part1_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part2_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part3_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part0_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part1_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part2_v1, fragment.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part3_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part0_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part1_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part2_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part3_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part0_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part1_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part2_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part3_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part0_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part1_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part2_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part3_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part0_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part1_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part2_v1, fragment.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part3_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part0_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part1_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part2_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part3_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part0_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part1_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part2_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part3_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part0_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part1_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part2_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part3_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part0_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part1_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part2_v1, fragment.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part3_v1, fragment.HLT_L1TOTEM_3_v1, fragment.HLT_L1RomanPot_part0_v1, fragment.HLT_L1RomanPot_part1_v1, fragment.HLT_L1RomanPot_part2_v1, fragment.HLT_L1RomanPot_part3_v1, fragment.HLT_PPSMaxTracksPerArm1_v1, fragment.HLT_PPSMaxTracksPerRP4_v1, fragment.HLT_L1DoubleMu_v1, fragment.HLT_L1SingleMu_v1, fragment.HLT_L1DoubleJet_v1, fragment.HLT_L1DoubleJetANDTotem_v1, fragment.HLT_L1DoubleJet_gap_v1, fragment.HLT_L1HFveto_v1, fragment.HLT_HIPhysics_v1, fragment.HLT_HIPhysicsForZS_v1, fragment.HLT_HIRandom_v1, fragment.AlCa_EcalPhiSymForHI_v1, fragment.HLT_HIHcalNZS_v1, fragment.HLT_HIHcalPhiSym_v1, fragment.AlCa_RPCMuonNormalisationForHI_v1, fragment.AlCa_EcalPi0EBonlyForHI_v1, fragment.AlCa_EcalPi0EEonlyForHI_v1, fragment.AlCa_EcalEtaEBonlyForHI_v1, fragment.AlCa_EcalEtaEEonlyForHI_v1, fragment.HLT_HICentralityVeto_v1, fragment.HLT_HICentralityVeto_Beamspot_v1, fragment.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v1, fragment.HLT_HICentralityTag20100_v1, fragment.HLT_HICentralityTag30100_v1, fragment.HLT_HICentralityTag50100_v1, fragment.HLT_HIZeroBias_v1, fragment.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v1, fragment.HLT_HIMinimumBias_part0_v1, fragment.HLT_HIMinimumBias_part1_v1, fragment.HLT_HIMinimumBias_part2_v1, fragment.HLT_HIMinimumBias_part3_v1, fragment.HLT_HIMinimumBias_part4_v1, fragment.HLT_HIMinimumBias_part5_v1, fragment.HLT_HIMinimumBias_part6_v1, fragment.HLT_HIMinimumBias_part7_v1, fragment.HLT_HIMinimumBias_part8_v1, fragment.HLT_HIMinimumBias_part9_v1, fragment.HLT_HIMinimumBias_part10_v1, fragment.HLT_HIMinimumBias_part11_v1, fragment.HLT_HIMinimumBias_part12_v1, fragment.HLT_HIMinimumBias_part13_v1, fragment.HLT_HIMinimumBias_part14_v1, fragment.HLT_HIMinimumBias_part15_v1, fragment.HLT_HIMinimumBias_part16_v1, fragment.HLT_HIMinimumBias_part17_v1, fragment.HLT_HIMinimumBias_part18_v1, fragment.HLT_HIMinimumBias_part19_v1, fragment.HLT_HIMinimumBiasRF_part0_v1, fragment.HLT_HIMinimumBiasRF_part1_v1, fragment.HLT_HIMinimumBiasRF_part2_v1, fragment.HLT_HIMinimumBiasRF_part3_v1, fragment.HLT_HIMinimumBiasRF_part4_v1, fragment.HLT_HIMinimumBiasRF_part5_v1, fragment.HLT_HIMinimumBiasRF_part6_v1, fragment.HLT_HIMinimumBiasRF_part7_v1, fragment.HLT_HIMinimumBiasRF_part8_v1, fragment.HLT_HIMinimumBiasRF_part9_v1, fragment.HLT_HIMinimumBiasRF_part10_v1, fragment.HLT_HIMinimumBiasRF_part11_v1, fragment.HLT_HIMinimumBiasRF_part12_v1, fragment.HLT_HIMinimumBiasRF_part13_v1, fragment.HLT_HIMinimumBiasRF_part14_v1, fragment.HLT_HIMinimumBiasRF_part15_v1, fragment.HLT_HIMinimumBiasRF_part16_v1, fragment.HLT_HIMinimumBiasRF_part17_v1, fragment.HLT_HIMinimumBiasRF_part18_v1, fragment.HLT_HIMinimumBiasRF_part19_v1, fragment.HLT_HIMinimumBiasRF_part20_v1, fragment.HLT_HIMinimumBiasRF_part21_v1, fragment.HLT_HIMinimumBiasRF_part22_v1, fragment.HLT_HIMinimumBiasRF_part23_v1, fragment.HLT_HIPuAK4CaloJet40Eta5p1_v1, fragment.HLT_HIPuAK4CaloJet60Eta5p1_v1, fragment.HLT_HIPuAK4CaloJet80Eta5p1_v1, fragment.HLT_HIPuAK4CaloJet100Eta5p1_v1, fragment.HLT_HIPuAK4CaloJet120Eta5p1_v1, fragment.HLT_HIPuAK4CaloJet40Eta5p1_Centrality_30_100_v1, fragment.HLT_HIPuAK4CaloJet40Eta5p1_Centrality_50_100_v1, fragment.HLT_HIPuAK4CaloJet60Eta5p1_Centrality_30_100_v1, fragment.HLT_HIPuAK4CaloJet60Eta5p1_Centrality_50_100_v1, fragment.HLT_HIPuAK4CaloJet80Eta5p1_Centrality_30_100_v1, fragment.HLT_HIPuAK4CaloJet80Eta5p1_Centrality_50_100_v1, fragment.HLT_HIPuAK4CaloJet100Eta5p1_Centrality_30_100_v1, fragment.HLT_HIPuAK4CaloJet100Eta5p1_Centrality_50_100_v1, fragment.HLT_HIPuAK4CaloJet80_35_Eta1p1_v1, fragment.HLT_HIPuAK4CaloJet100_35_Eta1p1_v1, fragment.HLT_HIPuAK4CaloJet80_35_Eta0p7_v1, fragment.HLT_HIPuAK4CaloJet100_35_Eta0p7_v1, fragment.HLT_HIPuAK4CaloJet80_45_45_Eta2p1_v1, fragment.HLT_HIPuAK4CaloJet40Fwd_v1, fragment.HLT_HIPuAK4CaloJet60Fwd_v1, fragment.HLT_HIPuAK4CaloJet80Fwd_v1, fragment.HLT_HIPuAK4CaloJet100Fwd_v1, fragment.HLT_HIPuAK4CaloJet120Fwd_v1, fragment.HLT_HIIslandPhoton10_Eta2p4_v1, fragment.HLT_HIIslandPhoton10_Eta1p5_v1, fragment.HLT_HIIslandPhoton20_Eta2p4_v1, fragment.HLT_HIIslandPhoton20_Eta1p5_v1, fragment.HLT_HIIslandPhoton30_Eta2p4_v1, fragment.HLT_HIIslandPhoton30_Eta1p5_v1, fragment.HLT_HIIslandPhoton40_Eta2p4_v1, fragment.HLT_HIIslandPhoton40_Eta1p5_v1, fragment.HLT_HIIslandPhoton50_Eta2p4_v1, fragment.HLT_HIIslandPhoton50_Eta1p5_v1, fragment.HLT_HIIslandPhoton60_Eta2p4_v1, fragment.HLT_HIIslandPhoton60_Eta1p5_v1, fragment.HLT_HIGEDPhoton10_v1, fragment.HLT_HIGEDPhoton20_v1, fragment.HLT_HIGEDPhoton30_v1, fragment.HLT_HIGEDPhoton40_v1, fragment.HLT_HIGEDPhoton50_v1, fragment.HLT_HIGEDPhoton60_v1, fragment.HLT_HIGEDPhoton10_EB_v1, fragment.HLT_HIGEDPhoton20_EB_v1, fragment.HLT_HIGEDPhoton30_EB_v1, fragment.HLT_HIGEDPhoton40_EB_v1, fragment.HLT_HIGEDPhoton50_EB_v1, fragment.HLT_HIGEDPhoton60_EB_v1, fragment.HLT_HIGEDPhoton10_HECut_v1, fragment.HLT_HIGEDPhoton20_HECut_v1, fragment.HLT_HIGEDPhoton30_HECut_v1, fragment.HLT_HIGEDPhoton40_HECut_v1, fragment.HLT_HIGEDPhoton50_HECut_v1, fragment.HLT_HIGEDPhoton60_HECut_v1, fragment.HLT_HIGEDPhoton10_EB_HECut_v1, fragment.HLT_HIGEDPhoton20_EB_HECut_v1, fragment.HLT_HIGEDPhoton30_EB_HECut_v1, fragment.HLT_HIGEDPhoton40_EB_HECut_v1, fragment.HLT_HIGEDPhoton50_EB_HECut_v1, fragment.HLT_HIGEDPhoton60_EB_HECut_v1, fragment.HLT_HIEle10Gsf_v1, fragment.HLT_HIEle15Gsf_v1, fragment.HLT_HIEle20Gsf_v1, fragment.HLT_HIEle30Gsf_v1, fragment.HLT_HIEle40Gsf_v1, fragment.HLT_HIEle50Gsf_v1, fragment.HLT_HIEle15Ele10Gsf_v1, fragment.HLT_HIEle15Ele10GsfMass50_v1, fragment.HLT_HIDoubleEle10Gsf_v1, fragment.HLT_HIDoubleEle10GsfMass50_v1, fragment.HLT_HIDoubleEle15Gsf_v1, fragment.HLT_HIDoubleEle15GsfMass50_v1, fragment.HLT_HIL1Mu3Eta2p5_Ele10Gsf_v1, fragment.HLT_HIL1Mu3Eta2p5_Ele15Gsf_v1, fragment.HLT_HIL1Mu3Eta2p5_Ele20Gsf_v1, fragment.HLT_HIL1Mu5Eta2p5_Ele10Gsf_v1, fragment.HLT_HIL1Mu5Eta2p5_Ele15Gsf_v1, fragment.HLT_HIL1Mu5Eta2p5_Ele20Gsf_v1, fragment.HLT_HIL1Mu7Eta2p5_Ele10Gsf_v1, fragment.HLT_HIL1Mu7Eta2p5_Ele15Gsf_v1, fragment.HLT_HIL1Mu7Eta2p5_Ele20Gsf_v1, fragment.HLT_HIEle10Gsf_PuAK4CaloJet40Eta2p1_v1, fragment.HLT_HIEle10Gsf_PuAK4CaloJet60Eta2p1_v1, fragment.HLT_HIEle10Gsf_PuAK4CaloJet80Eta2p1_v1, fragment.HLT_HIEle10Gsf_PuAK4CaloJet100Eta2p1_v1, fragment.HLT_HIEle15Gsf_PuAK4CaloJet40Eta2p1_v1, fragment.HLT_HIEle15Gsf_PuAK4CaloJet60Eta2p1_v1, fragment.HLT_HIEle15Gsf_PuAK4CaloJet80Eta2p1_v1, fragment.HLT_HIEle15Gsf_PuAK4CaloJet100Eta2p1_v1, fragment.HLT_HIEle20Gsf_PuAK4CaloJet40Eta2p1_v1, fragment.HLT_HIEle20Gsf_PuAK4CaloJet60Eta2p1_v1, fragment.HLT_HIEle20Gsf_PuAK4CaloJet80Eta2p1_v1, fragment.HLT_HIEle20Gsf_PuAK4CaloJet100Eta2p1_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt15_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt20_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt30_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt40_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt50_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt60_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt15_NoIter10_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt20_NoIter10_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt30_NoIter10_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt40_NoIter10_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt50_NoIter10_v1, fragment.HLT_HIDmesonPPTrackingGlobal_Dpt60_NoIter10_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt20_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt30_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt40_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt50_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt60_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt20_NoIter10_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt30_NoIter10_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt40_NoIter10_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt50_NoIter10_v1, fragment.HLT_HIDsPPTrackingGlobal_Dpt60_NoIter10_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt20_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt30_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt40_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt50_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt60_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt20_NoIter10_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt30_NoIter10_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt40_NoIter10_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt50_NoIter10_v1, fragment.HLT_HILcPPTrackingGlobal_Dpt60_NoIter10_v1, fragment.HLT_HIFullTracks2018_HighPt18_v1, fragment.HLT_HIFullTracks2018_HighPt24_v1, fragment.HLT_HIFullTracks2018_HighPt34_v1, fragment.HLT_HIFullTracks2018_HighPt45_v1, fragment.HLT_HIFullTracks2018_HighPt56_v1, fragment.HLT_HIFullTracks2018_HighPt60_v1, fragment.HLT_HIFullTracks2018_HighPt18_NoIter10_v1, fragment.HLT_HIFullTracks2018_HighPt24_NoIter10_v1, fragment.HLT_HIFullTracks2018_HighPt34_NoIter10_v1, fragment.HLT_HIFullTracks2018_HighPt45_NoIter10_v1, fragment.HLT_HIFullTracks2018_HighPt56_NoIter10_v1, fragment.HLT_HIFullTracks2018_HighPt60_NoIter10_v1, fragment.HLT_HIL1DoubleMuOpen_v1, fragment.HLT_HIL1DoubleMuOpen_Centrality_30_100_v1, fragment.HLT_HIL1DoubleMuOpen_Centrality_40_100_v1, fragment.HLT_HIL1DoubleMuOpen_Centrality_50_100_v1, fragment.HLT_HIL1DoubleMuOpen_er1p6_v1, fragment.HLT_HIL1DoubleMuOpen_OS_er1p6_v1, fragment.HLT_HIL1DoubleMuOpen_OS_Centrality_30_100_v1, fragment.HLT_HIL1DoubleMuOpen_OS_Centrality_40_100_v1, fragment.HLT_HIL1DoubleMu0_v1, fragment.HLT_HIL1DoubleMu10_v1, fragment.HLT_HIL2_L1DoubleMu10_v1, fragment.HLT_HIL3_L1DoubleMu10_v1, fragment.HLT_HIL2DoubleMuOpen_v1, fragment.HLT_HIL3DoubleMuOpen_v1, fragment.HLT_HIL3DoubleMuOpen_M60120_v1, fragment.HLT_HIL3DoubleMuOpen_JpsiPsi_v1, fragment.HLT_HIL3DoubleMuOpen_Upsi_v1, fragment.HLT_HIL3Mu0_L2Mu0_v1, fragment.HLT_HIL3Mu2p5NHitQ10_L2Mu2_v1, fragment.HLT_HIL1MuOpen_Centrality_70_100_v1, fragment.HLT_HIL1MuOpen_Centrality_80_100_v1, fragment.HLT_HIL2Mu3_NHitQ15_v1, fragment.HLT_HIL2Mu5_NHitQ15_v1, fragment.HLT_HIL2Mu7_NHitQ15_v1, fragment.HLT_HIL2Mu3_NHitQ15_tagging_v1, fragment.HLT_HIL2Mu5_NHitQ15_tagging_v1, fragment.HLT_HIL2Mu7_NHitQ15_tagging_v1, fragment.HLT_HIL3Mu2p5_L1DoubleMu0_v1, fragment.HLT_HIL3Mu3_L1DoubleMuOpen_OS_v1, fragment.HLT_HIL3Mu3NHitQ10_L1DoubleMuOpen_v1, fragment.HLT_HIL3Mu3_L1TripleMuOpen_v1, fragment.HLT_HIL3Mu12_v1, fragment.HLT_HIL3Mu15_v1, fragment.HLT_HIL3Mu20_v1, fragment.HLT_HIL3Mu3_NHitQ10_v1, fragment.HLT_HIL3Mu5_NHitQ10_v1, fragment.HLT_HIL3Mu7_NHitQ10_v1, fragment.HLT_HIL3Mu3_NHitQ10_tagging_v1, fragment.HLT_HIL3Mu5_NHitQ10_tagging_v1, fragment.HLT_HIL3Mu7_NHitQ10_tagging_v1, fragment.HLT_HIL3Mu0NHitQ10_L2Mu0_MAXdR3p5_M1to5_v1, fragment.HLT_HIL3Mu2p5NHitQ10_L2Mu2_M7toinf_v1, fragment.HLT_HIL1_ETT8_ETTAsym50_MinimumBiasHF1_OR_BptxAND_v1, fragment.HLT_HIL1_ETT10_ETTAsym50_MinimumBiasHF1_OR_BptxAND_v1, fragment.HLT_HIL1_ETT60_ETTAsym65_MinimumBiasHF2_OR_PixelTracks10_v1, fragment.HLT_HIL1_ETT65_ETTAsym80_MinimumBiasHF2_OR_PixelTracks10_v1, fragment.HLT_HIFullTracks_Multiplicity020_HF1AND_v1, fragment.HLT_HIFullTracks_Multiplicity2040_HF1AND_v1, fragment.HLT_HIFullTracks_Multiplicity4060_v1, fragment.HLT_HIFullTracks_Multiplicity6080_v1, fragment.HLT_HIFullTracks_Multiplicity80100_v1, fragment.HLT_HIFullTracks_Multiplicity020_v1, fragment.HLT_HIFullTracks_Multiplicity020_HF1OR_v1, fragment.HLT_HIFullTracks_Multiplicity020_HF2OR_v1, fragment.HLT_HIFullTracks_Multiplicity2040_v1, fragment.HLT_HIFullTracks_Multiplicity2040_HF1OR_v1, fragment.HLT_HIFullTracks_Multiplicity2040_HF2OR_v1, fragment.HLT_HIFullTracks_Multiplicity335_HF1OR_v1, fragment.HLT_HIUPC_Mu8_Mu13_v1, fragment.HLT_HIUPC_Mu8_Mu13_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v1, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2OR_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleMuOpen_NotMBHF2OR_v1, fragment.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v1, fragment.HLT_HIUPC_SingleMu0_NotMBHF2OR_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMu0_NotMBHF2AND_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMu0_NotMBHF2AND_v1, fragment.HLT_HIUPC_DoubleMu0_NotMBHF2OR_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleMu0_NotMBHF2AND_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleMu0_NotMBHF2AND_v1, fragment.HLT_HIUPC_DoubleMu0_NotMBHF2OR_v1, fragment.HLT_HIUPC_SingleMu0_NotMBHF2OR_v1, fragment.HLT_HIUPC_SingleMu3_NotMBHF2OR_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMu3_NotMBHF2OR_v1, fragment.HLT_HIUPC_SingleMu0_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleMu0_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleMu3_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v1, fragment.HLT_HIUPC_NotMBHF2OR_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_NotMBHF2AND_SinglePixelTrack_v1, fragment.HLT_HIUPC_NotMBHF2AND_v1, fragment.HLT_HIUPC_NotMBHF2OR_BptxAND_SinglePixelTrack_v1, fragment.HLT_HIUPC_ZeroBias_SinglePixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2OR_SinglePixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_NotMBHF2OR_v1, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v1, fragment.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2OR_SinglePixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_NotMBHF2OR_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2AND_v1, fragment.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_v1, fragment.HLT_HIUPC_SingleEG3_NotMBHF2AND_v1, fragment.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_v1, fragment.HLT_HIUPC_SingleEG3_NotMBHF2OR_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2OR_SinglePixelTrack_v1, fragment.HLT_HIUPC_SingleEG5_NotMBHF2OR_v1, fragment.HLT_HIUPC_ETT5_Asym50_NotMBHF2OR_v1, fragment.HLT_HIUPC_ETT5_Asym50_NotMBHF2OR_SinglePixelTrack_v1, fragment.HLT_HIUPC_ZeroBias_MaxPixelCluster_v1, fragment.HLT_HIUPC_SingleEG3_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_SingleEG5_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG2_BptxAND_MaxPixelTrack_v1, fragment.HLT_HIUPC_DoubleEG5_BptxAND_MaxPixelTrack_v1, fragment.HLT_HICsAK4PFJet60Eta1p5_v1, fragment.HLT_HICsAK4PFJet80Eta1p5_v1, fragment.HLT_HICsAK4PFJet100Eta1p5_v1, fragment.HLT_HICsAK4PFJet100Eta1p5_Beamspot_v1, fragment.HLT_HICsAK4PFJet120Eta1p5_v1, fragment.HLT_HICsAK4PFJet60Eta1p5_Centrality_30_100_v1, fragment.HLT_HICsAK4PFJet60Eta1p5_Centrality_50_100_v1, fragment.HLT_HICsAK4PFJet80Eta1p5_Centrality_30_100_v1, fragment.HLT_HICsAK4PFJet80Eta1p5_Centrality_50_100_v1, fragment.HLT_HICsAK4PFJet100Eta1p5_Centrality_30_100_v1, fragment.HLT_HICsAK4PFJet100Eta1p5_Centrality_50_100_v1, fragment.HLT_HIL3Mu3_EG10HECut_v1, fragment.HLT_HIL3Mu3_EG15HECut_v1, fragment.HLT_HIL3Mu3_EG20HECut_v1, fragment.HLT_HIL3Mu3_EG30HECut_v1, fragment.HLT_HIL3Mu5_EG10HECut_v1, fragment.HLT_HIL3Mu5_EG15HECut_v1, fragment.HLT_HIL3Mu5_EG20HECut_v1, fragment.HLT_HIL3Mu5_EG30HECut_v1, fragment.HLT_HIL3Mu7_EG10HECut_v1, fragment.HLT_HIL3Mu7_EG15HECut_v1, fragment.HLT_HIL3Mu7_EG20HECut_v1, fragment.HLT_HIL3Mu7_EG30HECut_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet40Eta2p1_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet60Eta2p1_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet80Eta2p1_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet100Eta2p1_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet40Eta2p1_FilterDr_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet60Eta2p1_FilterDr_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet80Eta2p1_FilterDr_v1, fragment.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet100Eta2p1_FilterDr_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet40Eta2p1_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet60Eta2p1_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet80Eta2p1_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet100Eta2p1_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet40Eta2p1_FilterDr_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet60Eta2p1_FilterDr_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet80Eta2p1_FilterDr_v1, fragment.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet100Eta2p1_FilterDr_v1, fragment.HLT_HICastor_MediumJet_NotMBHF2AND_v1, fragment.HLT_HICastor_MediumJet_NotMBHF2OR_v1, fragment.HLT_HICastor_MediumJet_MBHF1OR_BptxAND_v1, fragment.HLT_HICastor_MediumJet_SingleMu0_MBHF1OR_BptxAND_v1, fragment.HLT_HICastor_MediumJet_SingleEG5_MBHF1OR_BptxAND_v1, fragment.HLT_HICastor_MediumJet_BptxAND_v1, fragment.HLT_HICastor_MediumJet_v1, fragment.HLT_HICastor_HighJet_v1, fragment.HLT_HICastor_HighJet_BptxAND_v1, fragment.HLT_HICastor_HighJet_MBHF1OR_BptxAND_v1, fragment.HLT_HICastor_HighJet_NotMBHF2OR_v1, fragment.HLT_HICastor_HighJet_NotMBHF2AND_v1, fragment.HLT_HICastor_HighJet_MBHF1AND_BptxAND_v1, fragment.HLT_HICastor_HighJet_MBHF2AND_BptxAND_v1, fragment.HLT_HICastor_Muon_v1, fragment.HLT_HICastor_Muon_BptxAND_v1, fragment.HLT_HIIslandPhoton10_Eta2p4_Cent30_100_v1, fragment.HLT_HIIslandPhoton20_Eta2p4_Cent30_100_v1, fragment.HLT_HIIslandPhoton30_Eta2p4_Cent30_100_v1, fragment.HLT_HIIslandPhoton40_Eta2p4_Cent30_100_v1, fragment.HLT_HIIslandPhoton10_Eta2p4_Cent50_100_v1, fragment.HLT_HIIslandPhoton20_Eta2p4_Cent50_100_v1, fragment.HLT_HIIslandPhoton30_Eta2p4_Cent50_100_v1, fragment.HLT_HIIslandPhoton40_Eta2p4_Cent50_100_v1, fragment.HLT_HIGEDPhoton10_Cent30_100_v1, fragment.HLT_HIGEDPhoton20_Cent30_100_v1, fragment.HLT_HIGEDPhoton30_Cent30_100_v1, fragment.HLT_HIGEDPhoton40_Cent30_100_v1, fragment.HLT_HIGEDPhoton10_Cent50_100_v1, fragment.HLT_HIGEDPhoton20_Cent50_100_v1, fragment.HLT_HIGEDPhoton30_Cent50_100_v1, fragment.HLT_HIGEDPhoton40_Cent50_100_v1, fragment.HLT_HIPuAK4CaloJet60Eta2p4_DeepCSV0p4_v1, fragment.HLT_HIPuAK4CaloJet80Eta2p4_DeepCSV0p4_v1, fragment.HLT_HIPuAK4CaloJet100Eta2p4_DeepCSV0p4_v1, fragment.HLT_HIPuAK4CaloJet60Eta2p4_CSVv2WP0p75_v1, fragment.HLT_HIPuAK4CaloJet80Eta2p4_CSVv2WP0p75_v1, fragment.HLT_HIPuAK4CaloJet100Eta2p4_CSVv2WP0p75_v1, fragment.HLT_HIL1NotBptxOR_v1, fragment.HLT_HIL1UnpairedBunchBptxMinus_v1, fragment.HLT_HIL1UnpairedBunchBptxPlus_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part0_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part1_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part2_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part3_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part4_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part5_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part6_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part7_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part8_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part9_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part10_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part11_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part12_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part13_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part14_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part15_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part16_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part17_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part18_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_part19_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part0_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part1_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part2_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part3_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part4_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part5_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part6_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part7_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part8_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part9_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part10_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part11_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part12_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part13_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part14_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part15_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part16_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part17_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part18_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part19_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part20_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part21_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part22_v1, fragment.HLT_HIMinimumBiasRF_SinglePixelTrack_part23_v1, fragment.HLT_HIL1_ZDC_AND_OR_MinimumBiasHF1_AND_BptxAND_v1, fragment.HLT_HIL1_ZDC_AND_OR_MinimumBiasHF2_AND_BptxAND_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part0_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part1_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part2_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part3_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part4_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part5_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part6_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part7_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part8_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part9_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part10_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part11_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part12_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part13_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part14_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part15_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part16_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part17_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part18_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part19_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part0_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part1_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part2_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part3_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part4_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part5_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part6_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part7_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part8_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part9_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part10_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part11_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part12_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part13_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part14_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part15_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part16_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part17_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part18_v1, fragment.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part19_v1, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.ScoutingPFOutput, fragment.Dataset_AlCaLumiPixelCountsExpress, fragment.Dataset_AlCaLumiPixelCountsPrompt, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPPS, fragment.Dataset_AlCaPhiSym, fragment.Dataset_BTagMu, fragment.Dataset_Commissioning, fragment.Dataset_Cosmics, fragment.Dataset_DQMGPUvsCPU, fragment.Dataset_DQMOnlineBeamspot, fragment.Dataset_DisplacedJet, fragment.Dataset_DoubleMuon, fragment.Dataset_DoubleMuonLowMass, fragment.Dataset_EGamma, fragment.Dataset_EcalLaser, fragment.Dataset_EmptyBX, fragment.Dataset_EphemeralHLTPhysics0, fragment.Dataset_EphemeralHLTPhysics1, fragment.Dataset_EphemeralHLTPhysics2, fragment.Dataset_EphemeralHLTPhysics3, fragment.Dataset_EphemeralHLTPhysics4, fragment.Dataset_EphemeralHLTPhysics5, fragment.Dataset_EphemeralHLTPhysics6, fragment.Dataset_EphemeralHLTPhysics7, fragment.Dataset_EphemeralZeroBias0, fragment.Dataset_EphemeralZeroBias1, fragment.Dataset_EphemeralZeroBias2, fragment.Dataset_EphemeralZeroBias3, fragment.Dataset_EphemeralZeroBias4, fragment.Dataset_EphemeralZeroBias5, fragment.Dataset_EphemeralZeroBias6, fragment.Dataset_EphemeralZeroBias7, fragment.Dataset_EventDisplay, fragment.Dataset_ExpressAlignment, fragment.Dataset_ExpressCosmics, fragment.Dataset_ExpressPhysics, fragment.Dataset_FSQJet1, fragment.Dataset_FSQJet2, fragment.Dataset_FullTrack, fragment.Dataset_HFvetoTOTEM, fragment.Dataset_HICastor, fragment.Dataset_HIDQMOnlineBeamspot, fragment.Dataset_HIDoubleMuon, fragment.Dataset_HIDoubleMuonPsiPeri, fragment.Dataset_HIEmptyBX, fragment.Dataset_HIEventDisplay, fragment.Dataset_HIExpressAlignment, fragment.Dataset_HIExpressPhysics, fragment.Dataset_HIForward, fragment.Dataset_HIHLTMonitor, fragment.Dataset_HIHLTPhysics, fragment.Dataset_HIHardProbes, fragment.Dataset_HIHardProbesLower, fragment.Dataset_HIHardProbesPeripheral, fragment.Dataset_HIHcalNZS, fragment.Dataset_HIHeavyFlavor, fragment.Dataset_HIHighMultiplicityETTAsym, fragment.Dataset_HILowMultiplicity, fragment.Dataset_HILowMultiplicityReducedFormat, fragment.Dataset_HIMinimumBias0, fragment.Dataset_HIMinimumBias1, fragment.Dataset_HIMinimumBias10, fragment.Dataset_HIMinimumBias11, fragment.Dataset_HIMinimumBias12, fragment.Dataset_HIMinimumBias13, fragment.Dataset_HIMinimumBias14, fragment.Dataset_HIMinimumBias15, fragment.Dataset_HIMinimumBias16, fragment.Dataset_HIMinimumBias17, fragment.Dataset_HIMinimumBias18, fragment.Dataset_HIMinimumBias19, fragment.Dataset_HIMinimumBias2, fragment.Dataset_HIMinimumBias3, fragment.Dataset_HIMinimumBias4, fragment.Dataset_HIMinimumBias5, fragment.Dataset_HIMinimumBias6, fragment.Dataset_HIMinimumBias7, fragment.Dataset_HIMinimumBias8, fragment.Dataset_HIMinimumBias9, fragment.Dataset_HIMinimumBiasReducedFormat0, fragment.Dataset_HIMinimumBiasReducedFormat1, fragment.Dataset_HIMinimumBiasReducedFormat10, fragment.Dataset_HIMinimumBiasReducedFormat11, fragment.Dataset_HIMinimumBiasReducedFormat2, fragment.Dataset_HIMinimumBiasReducedFormat3, fragment.Dataset_HIMinimumBiasReducedFormat4, fragment.Dataset_HIMinimumBiasReducedFormat5, fragment.Dataset_HIMinimumBiasReducedFormat6, fragment.Dataset_HIMinimumBiasReducedFormat7, fragment.Dataset_HIMinimumBiasReducedFormat8, fragment.Dataset_HIMinimumBiasReducedFormat9, fragment.Dataset_HINCaloJets, fragment.Dataset_HINPFJets, fragment.Dataset_HIOnlineMonitor, fragment.Dataset_HISingleMuon, fragment.Dataset_HITrackerNZS, fragment.Dataset_HIZeroBias1, fragment.Dataset_HIZeroBias10, fragment.Dataset_HIZeroBias11, fragment.Dataset_HIZeroBias12, fragment.Dataset_HIZeroBias2, fragment.Dataset_HIZeroBias3, fragment.Dataset_HIZeroBias4, fragment.Dataset_HIZeroBias5, fragment.Dataset_HIZeroBias6, fragment.Dataset_HIZeroBias7, fragment.Dataset_HIZeroBias8, fragment.Dataset_HIZeroBias9, fragment.Dataset_HLTMonitor, fragment.Dataset_HLTPhysics, fragment.Dataset_HcalNZS, fragment.Dataset_HeavyFlavor, fragment.Dataset_HighMultiplicity, fragment.Dataset_HighPtJet80, fragment.Dataset_HighPtLowerJets, fragment.Dataset_HighPtLowerPhotons, fragment.Dataset_HighPtPhoton30AndZ, fragment.Dataset_IsolatedBunch, fragment.Dataset_JetHT, fragment.Dataset_JetsTOTEM, fragment.Dataset_L1Accept, fragment.Dataset_L1MinimumBias, fragment.Dataset_MET, fragment.Dataset_MinBiasTOTEM, fragment.Dataset_MinimumBias, fragment.Dataset_MinimumBias0, fragment.Dataset_MinimumBias1, fragment.Dataset_MinimumBias2, fragment.Dataset_MinimumBias3, fragment.Dataset_MinimumBias4, fragment.Dataset_MinimumBias5, fragment.Dataset_MinimumBias6, fragment.Dataset_MinimumBias7, fragment.Dataset_MinimumBias8, fragment.Dataset_MinimumBias9, fragment.Dataset_MonteCarlo, fragment.Dataset_MuPlusX, fragment.Dataset_MuonEG, fragment.Dataset_MuonEGammaTOTEM, fragment.Dataset_NoBPTX, fragment.Dataset_OnlineMonitor, fragment.Dataset_ParkingBPH1, fragment.Dataset_ParkingBPH2, fragment.Dataset_ParkingBPH3, fragment.Dataset_ParkingBPH4, fragment.Dataset_ParkingBPH5, fragment.Dataset_ParkingBPHPromptCSCS, fragment.Dataset_RPCMonitor, fragment.Dataset_RandomTOTEM1, fragment.Dataset_RandomTOTEM2, fragment.Dataset_RandomTOTEM3, fragment.Dataset_RandomTOTEM4, fragment.Dataset_ScoutingPFMonitor, fragment.Dataset_ScoutingPFRun3, fragment.Dataset_SingleMuHighPt, fragment.Dataset_SingleMuLowPt, fragment.Dataset_SingleMuon, fragment.Dataset_TOTEM1part0, fragment.Dataset_TOTEM1part1, fragment.Dataset_TOTEM1part2, fragment.Dataset_TOTEM1part3, fragment.Dataset_TOTEM2part0, fragment.Dataset_TOTEM2part1, fragment.Dataset_TOTEM2part2, fragment.Dataset_TOTEM2part3, fragment.Dataset_TOTEM3, fragment.Dataset_TOTEM4part0, fragment.Dataset_TOTEM4part1, fragment.Dataset_TOTEM4part2, fragment.Dataset_TOTEM4part3, fragment.Dataset_Tau, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_ZeroBias, fragment.Dataset_ZeroBiasTOTEM, fragment.Dataset_ZeroBiasTOTEM1, fragment.Dataset_ZeroBiasTOTEM2, fragment.Dataset_ZeroBiasTOTEM3, fragment.Dataset_ZeroBiasTOTEM4, fragment.Dataset_ppForward, )) # dummify hltGetConditions in cff's diff --git a/HLTrigger/Configuration/python/HLT_GRun_cff.py b/HLTrigger/Configuration/python/HLT_GRun_cff.py index 3398884475a88..127d79d172015 100644 --- a/HLTrigger/Configuration/python/HLT_GRun_cff.py +++ b/HLTrigger/Configuration/python/HLT_GRun_cff.py @@ -1,6 +1,6 @@ # hltGetConfiguration --cff --data /dev/CMSSW_12_4_0/GRun --type GRun -# /dev/CMSSW_12_4_0/GRun/V13 (CMSSW_12_4_0_pre4) +# /dev/CMSSW_12_4_0/GRun/V22 (CMSSW_12_4_0_pre4) import FWCore.ParameterSet.Config as cms @@ -12,7 +12,7 @@ fragment.ProcessAcceleratorCUDA = ProcessAcceleratorCUDA() fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_4_0/GRun/V13') + tableName = cms.string('/dev/CMSSW_12_4_0/GRun/V22') ) fragment.transferSystem = cms.PSet( @@ -2668,7 +2668,20 @@ 'HLT_CscCluster_Loose_v1', 'HLT_CscCluster_Medium_v1', 'HLT_CscCluster_Tight_v1', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT425_v9', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1', @@ -2707,6 +2720,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2', 'HLT_DoubleL2Mu50_v2', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10', 'HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10', @@ -2716,6 +2730,7 @@ 'HLT_DoubleMu43NoFiltersNoVtx_v4', 'HLT_DoubleMu48NoFiltersNoVtx_v4', 'HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15', @@ -2816,6 +2831,17 @@ 'HLT_Trimuon5_3p5_2_Upsilon_Muon_v5', 'HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v3' ), EGamma = cms.vstring( 'HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4', + 'HLT_DiPhoton10Time1ns_v1', + 'HLT_DiPhoton10Time1p2ns_v1', + 'HLT_DiPhoton10Time1p4ns_v1', + 'HLT_DiPhoton10Time1p6ns_v1', + 'HLT_DiPhoton10Time1p8ns_v1', + 'HLT_DiPhoton10Time2ns_v1', + 'HLT_DiPhoton10_CaloIdL_v1', + 'HLT_DiPhoton10sminlt0p12_v1', + 'HLT_DiPhoton10sminlt0p14_v1', + 'HLT_DiPhoton10sminlt0p16_v1', + 'HLT_DiPhoton10sminlt0p1_v1', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13', 'HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13', 'HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2', @@ -3242,7 +3268,8 @@ 'MC_PFHT_v16', 'MC_PFMET_v17', 'MC_PFMHT_v16', - 'MC_ReducedIterativeTracking_v12' ), + 'MC_ReducedIterativeTracking_v12', + 'MC_Run3_PFScoutingPixelTracking_v16' ), MuonEG = cms.vstring( 'HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v17', 'HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v17', 'HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v17', @@ -3398,6 +3425,17 @@ 'HLT_DiPFJetAve60_v14', 'HLT_DiPFJetAve80_HFJEC_v16', 'HLT_DiPFJetAve80_v13', + 'HLT_DiPhoton10Time1ns_v1', + 'HLT_DiPhoton10Time1p2ns_v1', + 'HLT_DiPhoton10Time1p4ns_v1', + 'HLT_DiPhoton10Time1p6ns_v1', + 'HLT_DiPhoton10Time1p8ns_v1', + 'HLT_DiPhoton10Time2ns_v1', + 'HLT_DiPhoton10_CaloIdL_v1', + 'HLT_DiPhoton10sminlt0p12_v1', + 'HLT_DiPhoton10sminlt0p14_v1', + 'HLT_DiPhoton10sminlt0p16_v1', + 'HLT_DiPhoton10sminlt0p1_v1', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13', 'HLT_Dimuon0_Jpsi3p5_Muon2_v5', 'HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7', @@ -3455,6 +3493,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2', 'HLT_DoubleL2Mu50_v2', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1', 'HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1', @@ -3525,8 +3564,7 @@ 'HLT_Ele250_CaloIdVT_GsfTrkIdT_v13', 'HLT_Ele27_Ele37_CaloIdL_MW_v4', 'HLT_Ele27_WPTight_Gsf_v16', - 'HLT_Ele28_HighEta_SC20_Mass55_v13', - 'HLT_Ele28_WPTight_Gsf_v1', + 'HLT_Ele28_HighEta_SC20_Mass55_v13')+cms.vstring( 'HLT_Ele28_WPTight_Gsf_v1', 'HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v13', 'HLT_Ele300_CaloIdVT_GsfTrkIdT_v13', 'HLT_Ele30_WPTight_Gsf_v1', @@ -3537,10 +3575,24 @@ 'HLT_Ele35_WPTight_Gsf_v9', 'HLT_Ele38_WPTight_Gsf_v9', 'HLT_Ele40_WPTight_Gsf_v9', - 'HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18')+cms.vstring( 'HLT_Ele50_IsoVVVL_PFHT450_v16', + 'HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18', + 'HLT_Ele50_IsoVVVL_PFHT450_v16', 'HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v16', 'HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v18', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT425_v9', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1', @@ -3590,6 +3642,7 @@ 'HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5', 'HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4', 'HLT_L2Mu50_v2', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1', 'HLT_MET105_IsoTrk50_v9', 'HLT_MET120_IsoTrk50_v9', 'HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12', @@ -3765,8 +3818,7 @@ 'HLT_PFJetFwd60_v19', 'HLT_PFJetFwd80_v18', 'HLT_PFMET100_PFMHT100_IDTight_CaloBTagDeepCSV_3p1_v8', - 'HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9', - 'HLT_PFMET105_IsoTrk50_v1', + 'HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9')+cms.vstring( 'HLT_PFMET105_IsoTrk50_v1', 'HLT_PFMET105_PFJet100_looseRecoiling_v1', 'HLT_PFMET110_PFJet100_looseRecoiling_v1', 'HLT_PFMET110_PFJet100_v1', @@ -3791,7 +3843,8 @@ 'HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v19', 'HLT_PFMETTypeOne100_PFMHT100_IDTight_PFHT60_v9', 'HLT_PFMETTypeOne110_PFMHT110_IDTight_v12', - 'HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9')+cms.vstring( 'HLT_PFMETTypeOne120_PFMHT120_IDTight_v12', + 'HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9', + 'HLT_PFMETTypeOne120_PFMHT120_IDTight_v12', 'HLT_PFMETTypeOne130_PFMHT130_IDTight_v12', 'HLT_PFMETTypeOne140_PFMHT140_IDTight_v11', 'HLT_PFMETTypeOne200_BeamHaloCleaned_v9', @@ -17025,9 +17078,9 @@ propagatorAny = cms.ESInputTag( "","SteppingHelixPropagatorAny" ), propagatorOpposite = cms.ESInputTag( "","hltESPSteppingHelixPropagatorOpposite" ) ) -fragment.hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9 = cms.EDFilter( "HLTL1TSeed", +fragment.hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50 = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleMu0er1p5_SQ_OS_dR_Max1p4 OR L1_DoubleMu0er1p4_SQ_OS_dR_Max1p4 OR L1_TripleMu_5SQ_3SQ_0_DoubleMu_5_3_SQ_OS_Mass_Max9 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_DoubleMu4p5_SQ_OS_dR_Max1p2" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleMu0er2p0_SQ_OS_dEta_Max1p6 OR L1_DoubleMu0er2p0_SQ_OS_dEta_Max1p5 OR L1_DoubleMu0er1p5_SQ_OS_dR_Max1p4 OR L1_DoubleMu0er1p4_SQ_OS_dR_Max1p4 OR L1_TripleMu_5SQ_3SQ_0_DoubleMu_5_3_SQ_OS_Mass_Max9 OR L1_TripleMu_5SQ_3SQ_0OQ_DoubleMu_5_3_SQ_OS_Mass_Max9 OR L1_TripleMu_2SQ_1p5SQ_0OQ_Mass_Max12 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_DoubleMu4p5_SQ_OS_dR_Max1p2" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -17044,7 +17097,7 @@ fragment.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 = cms.EDFilter( "HLTMuonL1TFilter", saveTags = cms.bool( True ), CandTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - PreviousCandTag = cms.InputTag( "hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9" ), + PreviousCandTag = cms.InputTag( "hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50" ), MaxEta = cms.double( 2.5 ), MinPt = cms.double( 0.0 ), MaxDeltaR = cms.double( 0.3 ), @@ -17099,10 +17152,10 @@ MaxDr = cms.double( 0.6 ), MaxDz = cms.double( 9999.0 ), ChargeOpt = cms.int32( 0 ), - MinPtPair = cms.vdouble( 6.0 ), + MinPtPair = cms.vdouble( 5.0 ), MaxPtPair = cms.vdouble( 1.0E125 ), MinPtMax = cms.vdouble( 0.0 ), - MinPtMin = cms.vdouble( 3.0 ), + MinPtMin = cms.vdouble( 2.5 ), MaxPtMin = cms.vdouble( 1.0E125 ), MinInvMass = cms.vdouble( 0.5 ), MaxInvMass = cms.vdouble( 1.7 ), @@ -17681,7 +17734,7 @@ PreviousCandTag = cms.InputTag( "hltdstau3mumuontrkFltr" ), MaxEta = cms.double( 2.5 ), MinPt = cms.double( 1.2 ), - MinPtTriplet = cms.double( 8.0 ), + MinPtTriplet = cms.double( 7.0 ), MinInvMass = cms.double( 1.6 ), MaxInvMass = cms.double( 2.1 ), ChargeOpt = cms.int32( -1 ) @@ -63089,7 +63142,7 @@ ) fragment.hltL1sDSTRun3PFScoutingPixelTracking = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleMu_12_5 OR L1_DoubleMu_15_7 OR L1_HTT200er OR L1_HTT255er OR L1_HTT280er OR L1_HTT320er OR L1_HTT360er OR L1_ETT2000 OR L1_HTT400er OR L1_HTT450er OR L1_SingleJet180 OR L1_SingleJet200 OR L1_DoubleJet30er2p5_Mass_Min300_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min330_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min360_dEta_Max1p5 OR L1_DoubleMu4p5er2p0_SQ_OS_Mass_Min7 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_SingleEG36er2p5 OR L1_SingleLooseIsoEG28er2p1" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleMu_12_5 OR L1_DoubleMu_15_7 OR L1_HTT200er OR L1_HTT255er OR L1_HTT280er OR L1_HTT320er OR L1_HTT360er OR L1_ETT2000 OR L1_HTT400er OR L1_HTT450er OR L1_SingleJet180 OR L1_SingleJet200 OR L1_DoubleJet30er2p5_Mass_Min300_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min330_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min360_dEta_Max1p5 OR L1_DoubleMu4p5er2p0_SQ_OS_Mass_Min7 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_SingleLooseIsoEG28er2p1 OR L1_DoubleEG_LooseIso18_LooseIso12_er1p5" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -64284,7 +64337,7 @@ vertexCollection = cms.InputTag( "hltPixelVertices" ), mantissaPrecision = cms.int32( 10 ), vtxMinDist = cms.double( 0.01 ), - ptMin = cms.double( 0.3 ) + ptMin = cms.double( 3.0 ) ) fragment.hltScoutingPrimaryVertexPacker = cms.EDProducer( "HLTScoutingPrimaryVertexProducer", vertexCollection = cms.InputTag( 'hltPixelVertices','','@currentProcess' ), @@ -64340,7 +64393,7 @@ egammaHoverECut = cms.double( 1.0 ), saveRecHitTiming = cms.bool( False ), mantissaPrecision = cms.int32( 10 ), - rechitMatrixSize = cms.int32( 15 ), + rechitMatrixSize = cms.int32( 10 ), rechitZeroSuppression = cms.bool( True ), ecalRechitEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), ecalRechitEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ) @@ -67239,6 +67292,22 @@ MinJets = cms.int32( 1 ), TriggerType = cms.int32( 86 ) ) +fragment.hltL1sMCRun3PFScoutingPixelTracking = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1GlobalDecision" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +fragment.hltPreMCRun3PFScoutingPixelTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltL1sAlCaEcalPi0Eta = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_AlwaysTrue OR L1_IsolatedBunch OR L1_SingleEG8er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG26er2p5 OR L1_SingleEG34er2p5 OR L1_SingleEG36er2p5 OR L1_SingleEG38er2p5 OR L1_SingleEG40er2p5 OR L1_SingleEG42er2p5 OR L1_SingleEG45er2p5 OR L1_SingleEG60 OR L1_SingleIsoEG26er2p5 OR L1_SingleIsoEG28er2p5 OR L1_SingleIsoEG30er2p5 OR L1_SingleIsoEG32er2p5 OR L1_SingleIsoEG34er2p5 OR L1_SingleIsoEG24er2p1 OR L1_SingleIsoEG26er2p1 OR L1_SingleIsoEG28er2p1 OR L1_SingleIsoEG30er2p1 OR L1_SingleIsoEG32er2p1 OR L1_DoubleEG_22_10_er2p5 OR L1_DoubleEG_25_14_er2p5 OR L1_DoubleEG_25_12_er2p5 OR L1_SingleJet35 OR L1_SingleJet60 OR L1_SingleJet90 OR L1_SingleJet120 OR L1_SingleJet140er2p5 OR L1_SingleJet160er2p5 OR L1_SingleJet180 OR L1_SingleJet200 OR L1_DoubleJet40er2p5 OR L1_DoubleJet100er2p5 OR L1_DoubleJet120er2p5 OR L1_QuadJet60er2p5 OR L1_HTT120er OR L1_HTT160er OR L1_HTT200er OR L1_HTT255er OR L1_HTT280er OR L1_HTT320er" ), @@ -72534,7 +72603,7 @@ L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) ) -fragment.hltL1sDoubleTauJet = cms.EDFilter( "HLTL1TSeed", +fragment.hltL1sBigORDoubleTauJet = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_DoubleIsoTau26er2p1_Jet55_RmOvlp_dR0p5" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), @@ -72574,7 +72643,7 @@ L1TauTrigger = cms.InputTag( "hltL1sMu22erIsoTau40er" ) ), cms.PSet( L1CollectionName = cms.string( "DoubleTauJet" ), - L1TauTrigger = cms.InputTag( "hltL1sDoubleTauJet" ) + L1TauTrigger = cms.InputTag( "hltL1sBigORDoubleTauJet" ) ), cms.PSet( L1CollectionName = cms.string( "VBFIsoTau" ), L1TauTrigger = cms.InputTag( "hltL1VBFDiJetIsoTau" ) @@ -72601,7 +72670,7 @@ nExpected = cms.int32( 2 ), L1TauSrc = cms.InputTag( "hltL1sDoubleTauBigOR" ), L2Outcomes = cms.InputTag( 'hltL2TauTagNNProducer','DoubleTau' ), - DiscrWP = cms.double( 0.4327 ), + DiscrWP = cms.double( 0.386 ), l1TauPtThreshold = cms.double( 250.0 ) ) fragment.hltL1sTauVeryBigOR = cms.EDFilter( "HLTL1TSeed", @@ -73021,10 +73090,9 @@ is_online = cms.bool( True ), VSeWP = cms.vstring( '-1.' ), VSmuWP = cms.vstring( '-1.' ), - VSjetWP = cms.vstring( 'double t1 = 0.5701, t2 = 0.4610, t3 = 0.125, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', - 'double t1 = 0.844, t2 = 0.8457, t3 = 0.125, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', - 'double t1 = 0.5890, t2 = 0.3310, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', - 'double t1 = 0.9619, t2 = 0.9269, t3 = 0.5, x1 = 50, x2 = 300, x3 = 500; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', + VSjetWP = cms.vstring( 'double t1 = 0.62, t2 = 0.3891, t3 = 0.05, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', + 'double t1 = 0.7045, t2 = 0.7029, t3 = 0.05, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', + 'double t1 = 0.5419, t2 = 0.4837, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', 'double t1 = 0.6072, t2 = 0.125, x1 = 180, x2 = 500; if (pt <= x1) return t1; if (pt >= x2) return t2; return (t2 - t1) / (x2 - x1) * (pt - x1) + t1;' ), basicTauDiscriminators = cms.untracked.InputTag( "hltHpsPFTauBasicDiscriminatorsForDeepTau" ), basicTauDiscriminatorsdR03 = cms.untracked.InputTag( "hltHpsPFTauBasicDiscriminatorsdR03ForDeepTau" ), @@ -73040,7 +73108,7 @@ cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.5701, t2 = 0.4610, t3 = 0.125, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.62, t2 = 0.3891, t3 = 0.05, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -73063,15 +73131,6 @@ MaxEta = cms.double( 2.1 ), MinN = cms.int32( 2 ) ) -fragment.hltHpsDoublePFTau35MediumDitauWPDeepTauDz02 = cms.EDFilter( "HLTPFTauPairDzMatchFilter", - saveTags = cms.bool( True ), - JetSrc = cms.InputTag( "hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatch" ), - JetMinPt = cms.double( 35.0 ), - JetMaxEta = cms.double( 2.1 ), - JetMinDR = cms.double( 0.5 ), - JetMaxDZ = cms.double( 0.2 ), - TriggerType = cms.int32( 84 ) -) fragment.hltPreDoubleMediumChargedIsoPFTauHPS40Trk1eta2p1 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -73416,10 +73475,10 @@ discriminators = cms.VPSet( ), discriminatorContainers = cms.VPSet( - cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), + cms.PSet( discriminator = cms.InputTag( 'hltHpsPFTauDeepTauProducer','VSjet' ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.844, t2 = 0.8457, t3 = 0.125, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.7045, t2 = 0.7029, t3 = 0.05, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -73498,7 +73557,7 @@ cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.5890, t2 = 0.3310, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.5419, t2 = 0.4837, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -73976,7 +74035,7 @@ nExpected = cms.int32( 1 ), L1TauSrc = cms.InputTag( "hltL1sBigOrMuXXerIsoTauYYer" ), L2Outcomes = cms.InputTag( 'hltL2TauTagNNProducer','MuXXTauYY' ), - DiscrWP = cms.double( 0.4327 ), + DiscrWP = cms.double( 0.386 ), l1TauPtThreshold = cms.double( 250.0 ) ) fragment.hltHpsSinglePFTau35 = cms.EDFilter( "HLT1PFTau", @@ -74094,7 +74153,7 @@ saveTags = cms.bool( True ), Jets = cms.InputTag( "hltPFJetForBtag" ), JetTags = cms.InputTag( 'hltDeepJetDiscriminatorsJetTags','BvsAll' ), - MinTag = cms.double( 0.24 ), + MinTag = cms.double( 0.28746 ), MaxTag = cms.double( 999999.0 ), MinJets = cms.int32( 2 ), TriggerType = cms.int32( 86 ) @@ -75455,6 +75514,18 @@ TriggerType = cms.int32( 85 ), deltaR = cms.double( 0.8 ) ) +fragment.hltL1sDoubleTauJet = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleIsoTau26er2p1_Jet55_RmOvlp_dR0p5" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) fragment.hltPreDoubleMediumDeepTauIsoPFTauHPS30L2NNeta2p1PFJet60 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -75462,9 +75533,9 @@ fragment.hltL2DoubleTauJetTagNNFilter = cms.EDFilter( "L2TauTagFilter", saveTags = cms.bool( True ), nExpected = cms.int32( 2 ), - L1TauSrc = cms.InputTag( "hltL1sDoubleTauJet" ), + L1TauSrc = cms.InputTag( "hltL1sBigORDoubleTauJet" ), L2Outcomes = cms.InputTag( 'hltL2TauTagNNProducer','DoubleTauJet' ), - DiscrWP = cms.double( 0.4327 ), + DiscrWP = cms.double( 0.386 ), l1TauPtThreshold = cms.double( 250.0 ) ) fragment.hltHpsSelectedPFTausMediumDitauWPDeepTauDoubleTauJet = cms.EDFilter( "PFTauSelector", @@ -75476,7 +75547,7 @@ cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.5701, t2 = 0.4610, t3 = 0.125, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.62, t2 = 0.3891, t3 = 0.05, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -75499,15 +75570,6 @@ MaxEta = cms.double( 2.1 ), MinN = cms.int32( 2 ) ) -fragment.hltHpsDoublePFTau30MediumDitauWPDeepTauDz02DoubleTauJet = cms.EDFilter( "HLTPFTauPairDzMatchFilter", - saveTags = cms.bool( True ), - JetSrc = cms.InputTag( "hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatchDoubleTauJet" ), - JetMinPt = cms.double( 30.0 ), - JetMaxEta = cms.double( 2.1 ), - JetMinDR = cms.double( 0.5 ), - JetMaxDZ = cms.double( 0.2 ), - TriggerType = cms.int32( 84 ) -) fragment.hlt1PFJet60L1HLTMatched = cms.EDFilter( "HLT1PFJet", saveTags = cms.bool( True ), inputTag = cms.InputTag( "hltPFJetsCorrectedMatchedToL1" ), @@ -79193,6 +79255,1707 @@ MaxPt = cms.double( -1.0 ), MinN = cms.int32( 1 ) ) +fragment.hltPreDoubleL3Iter4Mu1610NoVtxDxyMin0p01cm = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltIterL3TrajSeedOIStateFromDisplacedL2Muons = cms.EDProducer( "TSGFromL2Muon", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSteppingHelixPropagatorOpposite', + 'hltESPSteppingHelixPropagatorAlong' ) + ), + MuonTrackingRegionBuilder = cms.PSet( ), + TrackerSeedCleaner = cms.PSet( ), + TkSeedGenerator = cms.PSet( + copyMuonRecHit = cms.bool( False ), + propagatorName = cms.string( "hltESPSteppingHelixPropagatorAlong" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + errorMatrixPset = cms.PSet( + atIP = cms.bool( True ), + action = cms.string( "use" ), + errorMatrixValuesPSet = cms.PSet( + xAxis = cms.vdouble( 0.0, 13.0, 30.0, 70.0, 1000.0 ), + zAxis = cms.vdouble( -3.14159, 3.14159 ), + yAxis = cms.vdouble( 0.0, 1.0, 1.4, 10.0 ), + pf3_V14 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V25 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V13 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V24 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V35 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V12 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V23 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V34 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V45 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V11 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V22 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V33 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V44 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V55 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V15 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ) + ) + ), + ComponentName = cms.string( "TSGForRoadSearch" ), + maxChi2 = cms.double( 40.0 ), + manySeeds = cms.bool( False ), + propagatorCompatibleName = cms.string( "hltESPSteppingHelixPropagatorOpposite" ), + option = cms.uint32( 3 ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + PtCut = cms.double( 1.0 ), + PCut = cms.double( 2.5 ) +) +fragment.hltIterL3OIStateGlbDisplacedTrackCandidates = cms.EDProducer( "CkfTrackCandidateMaker", + cleanTrajectoryAfterInOut = cms.bool( False ), + doSeedingRegionRebuilding = cms.bool( False ), + onlyPixelHitsForSeedCleaner = cms.bool( False ), + reverseTrajectories = cms.bool( True ), + useHitsSplitting = cms.bool( False ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + src = cms.InputTag( "hltIterL3TrajSeedOIStateFromDisplacedL2Muons" ), + clustersToSkip = cms.InputTag( "" ), + phase2clustersToSkip = cms.InputTag( "" ), + TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetMuonCkfTrajectoryBuilder" ) ), + TransientInitialStateEstimatorParameters = cms.PSet( + propagatorAlongTISE = cms.string( "PropagatorWithMaterial" ), + numberMeasurementsForFit = cms.int32( 3 ), + propagatorOppositeTISE = cms.string( "PropagatorWithMaterialOpposite" ) + ), + numHitsForSeedCleaner = cms.int32( 4 ), + NavigationSchool = cms.string( "SimpleNavigationSchool" ), + RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), + TrajectoryCleaner = cms.string( "muonSeededTrajectoryCleanerBySharedHits" ), + maxNSeeds = cms.uint32( 500000 ), + maxSeedsBeforeCleaning = cms.uint32( 5000 ) +) +fragment.hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks = cms.EDProducer( "TrackProducer", + useSimpleMF = cms.bool( False ), + SimpleMagneticField = cms.string( "" ), + src = cms.InputTag( "hltIterL3OIStateGlbDisplacedTrackCandidates" ), + clusterRemovalInfo = cms.InputTag( "" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Fitter = cms.string( "hltESPKFFittingSmootherWithOutliersRejectionAndRK" ), + useHitsSplitting = cms.bool( False ), + alias = cms.untracked.string( "" ), + TrajectoryInEvent = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + AlgorithmName = cms.string( "iter10" ), + Propagator = cms.string( "PropagatorWithMaterial" ), + GeometricInnerState = cms.bool( True ), + NavigationSchool = cms.string( "" ), + MeasurementTracker = cms.string( "" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ) +) +fragment.hltL3GlbDisplacedMuonsIterL3OIState = cms.EDProducer( "L3MuonProducer", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSmartPropagatorAny', + 'SteppingHelixPropagatorAny', + 'hltESPSmartPropagator', + 'hltESPSteppingHelixPropagatorOpposite' ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + TrackLoaderParameters = cms.PSet( + MuonSeededTracksInstance = cms.untracked.string( "L2Seeded" ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + DoSmoothing = cms.bool( True ), + SmoothTkTrack = cms.untracked.bool( False ), + VertexConstraint = cms.bool( False ), + MuonUpdatorAtVertexParameters = cms.PSet( + MaxChi2 = cms.double( 1000000.0 ), + BeamSpotPositionErrors = cms.vdouble( 0.1, 0.1, 5.3 ), + Propagator = cms.string( "hltESPSteppingHelixPropagatorOpposite" ) + ), + PutTkTrackIntoEvent = cms.untracked.bool( False ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + L3TrajBuilderParameters = cms.PSet( + PtCut = cms.double( 1.0 ), + TrackerPropagator = cms.string( "SteppingHelixPropagatorAny" ), + GlobalMuonTrackMatcher = cms.PSet( + Chi2Cut_3 = cms.double( 200.0 ), + DeltaDCut_2 = cms.double( 10.0 ), + Eta_threshold = cms.double( 1.2 ), + Quality_2 = cms.double( 15.0 ), + DeltaDCut_1 = cms.double( 40.0 ), + Quality_3 = cms.double( 7.0 ), + DeltaDCut_3 = cms.double( 15.0 ), + Quality_1 = cms.double( 20.0 ), + Pt_threshold1 = cms.double( 0.0 ), + DeltaRCut_2 = cms.double( 0.2 ), + DeltaRCut_1 = cms.double( 0.1 ), + Pt_threshold2 = cms.double( 9.99999999E8 ), + Chi2Cut_1 = cms.double( 50.0 ), + Chi2Cut_2 = cms.double( 50.0 ), + DeltaRCut_3 = cms.double( 1.0 ), + LocChi2Cut = cms.double( 0.001 ), + Propagator = cms.string( "hltESPSmartPropagator" ), + MinPt = cms.double( 1.0 ), + MinP = cms.double( 2.5 ) + ), + ScaleTECxFactor = cms.double( -1.0 ), + tkTrajUseVertex = cms.bool( False ), + MuonTrackingRegionBuilder = cms.PSet( + Rescale_Dz = cms.double( 4.0 ), + Pt_fixed = cms.bool( False ), + Eta_fixed = cms.bool( True ), + Eta_min = cms.double( 0.1 ), + DeltaZ = cms.double( 24.2 ), + maxRegions = cms.int32( 2 ), + EtaR_UpperLimit_Par1 = cms.double( 0.25 ), + UseVertex = cms.bool( False ), + Z_fixed = cms.bool( False ), + PhiR_UpperLimit_Par1 = cms.double( 0.6 ), + PhiR_UpperLimit_Par2 = cms.double( 0.2 ), + Rescale_phi = cms.double( 3.0 ), + DeltaEta = cms.double( 0.2 ), + precise = cms.bool( True ), + OnDemand = cms.int32( -1 ), + EtaR_UpperLimit_Par2 = cms.double( 0.15 ), + MeasurementTrackerName = cms.InputTag( "hltESPMeasurementTracker" ), + vertexCollection = cms.InputTag( "pixelVertices" ), + Pt_min = cms.double( 3.0 ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Phi_fixed = cms.bool( True ), + DeltaR = cms.double( 0.025 ), + input = cms.InputTag( "hltL2Muons" ), + DeltaPhi = cms.double( 0.15 ), + Phi_min = cms.double( 0.1 ), + Rescale_eta = cms.double( 3.0 ) + ), + TrackTransformer = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + RefitDirection = cms.string( "insideOut" ), + RefitRPCHits = cms.bool( True ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + tkTrajBeamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + RefitRPCHits = cms.bool( True ), + tkTrajVertex = cms.InputTag( "Notused" ), + GlbRefitterParameters = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), + RefitFlag = cms.bool( True ), + SkipStation = cms.int32( -1 ), + Chi2CutRPC = cms.double( 1.0 ), + PropDirForCosmics = cms.bool( False ), + CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + HitThreshold = cms.int32( 1 ), + DYTthrs = cms.vint32( 30, 15 ), + TrackerSkipSystem = cms.int32( -1 ), + RefitDirection = cms.string( "insideOut" ), + Chi2CutCSC = cms.double( 150.0 ), + Chi2CutDT = cms.double( 10.0 ), + RefitRPCHits = cms.bool( True ), + TrackerSkipSection = cms.int32( -1 ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonHitsOption = cms.int32( 1 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ) + ), + PCut = cms.double( 2.5 ), + tkTrajMaxDXYBeamSpot = cms.double( 9999.0 ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + tkTrajMaxChi2 = cms.double( 9999.0 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + ScaleTECyFactor = cms.double( -1.0 ), + tkTrajLabel = cms.InputTag( "hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks" ) + ) +) +fragment.hltIterL3NoFiltersNoVtxTrajSeedOIHit = cms.EDProducer( "TSGFromL2Muon", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'PropagatorWithMaterial', + 'hltESPSmartPropagatorAnyOpposite' ) + ), + MuonTrackingRegionBuilder = cms.PSet( ), + TrackerSeedCleaner = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + cleanerFromSharedHits = cms.bool( True ), + directionCleaner = cms.bool( True ), + ptCleaner = cms.bool( True ) + ), + TkSeedGenerator = cms.PSet( + iterativeTSG = cms.PSet( + MeasurementTrackerName = cms.string( "hltESPMeasurementTracker" ), + beamSpot = cms.InputTag( "unused" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + SelectState = cms.bool( False ), + ErrorRescaling = cms.double( 3.0 ), + UseVertexState = cms.bool( True ), + SigmaZ = cms.double( 25.0 ), + MaxChi2 = cms.double( 40.0 ), + errorMatrixPset = cms.PSet( + atIP = cms.bool( True ), + action = cms.string( "use" ), + errorMatrixValuesPSet = cms.PSet( + xAxis = cms.vdouble( 0.0, 13.0, 30.0, 70.0, 1000.0 ), + zAxis = cms.vdouble( -3.14159, 3.14159 ), + yAxis = cms.vdouble( 0.0, 1.0, 1.4, 10.0 ), + pf3_V14 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V25 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V13 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V24 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V35 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V12 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V23 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V34 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V45 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V11 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V22 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V33 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V44 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V55 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V15 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ) + ) + ), + Propagator = cms.string( "hltESPSmartPropagatorAnyOpposite" ), + ComponentName = cms.string( "TSGFromPropagation" ), + UpdateState = cms.bool( True ), + ResetMethod = cms.string( "matrix" ) + ), + PSetNames = cms.vstring( 'skipTSG', + 'iterativeTSG' ), + skipTSG = cms.PSet( ), + ComponentName = cms.string( "DualByL2TSG" ), + L3TkCollectionA = cms.InputTag( "hltL3GlbDisplacedMuonsIterL3OIState" ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + PtCut = cms.double( 1.0 ), + PCut = cms.double( 2.5 ) +) +fragment.hltIterL3OIHitGlbDisplacedTrackCandidates = cms.EDProducer( "CkfTrackCandidateMaker", + cleanTrajectoryAfterInOut = cms.bool( False ), + doSeedingRegionRebuilding = cms.bool( False ), + onlyPixelHitsForSeedCleaner = cms.bool( False ), + reverseTrajectories = cms.bool( True ), + useHitsSplitting = cms.bool( False ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + src = cms.InputTag( "hltIterL3NoFiltersNoVtxTrajSeedOIHit" ), + clustersToSkip = cms.InputTag( "" ), + phase2clustersToSkip = cms.InputTag( "" ), + TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetMuonCkfTrajectoryBuilder" ) ), + TransientInitialStateEstimatorParameters = cms.PSet( + propagatorAlongTISE = cms.string( "PropagatorWithMaterial" ), + numberMeasurementsForFit = cms.int32( 3 ), + propagatorOppositeTISE = cms.string( "PropagatorWithMaterialOpposite" ) + ), + numHitsForSeedCleaner = cms.int32( 4 ), + NavigationSchool = cms.string( "SimpleNavigationSchool" ), + RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), + TrajectoryCleaner = cms.string( "muonSeededTrajectoryCleanerBySharedHits" ), + maxNSeeds = cms.uint32( 500000 ), + maxSeedsBeforeCleaning = cms.uint32( 5000 ) +) +fragment.hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks = cms.EDProducer( "TrackProducer", + useSimpleMF = cms.bool( False ), + SimpleMagneticField = cms.string( "" ), + src = cms.InputTag( "hltIterL3OIHitGlbDisplacedTrackCandidates" ), + clusterRemovalInfo = cms.InputTag( "" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Fitter = cms.string( "hltESPKFFittingSmootherWithOutliersRejectionAndRK" ), + useHitsSplitting = cms.bool( False ), + alias = cms.untracked.string( "" ), + TrajectoryInEvent = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + AlgorithmName = cms.string( "iter10" ), + Propagator = cms.string( "PropagatorWithMaterial" ), + GeometricInnerState = cms.bool( True ), + NavigationSchool = cms.string( "" ), + MeasurementTracker = cms.string( "" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ) +) +fragment.hltL3GlbDisplacedMuonsIterL3OIHit = cms.EDProducer( "L3MuonProducer", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSmartPropagatorAny', + 'SteppingHelixPropagatorAny', + 'hltESPSmartPropagator', + 'hltESPSteppingHelixPropagatorOpposite' ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + TrackLoaderParameters = cms.PSet( + MuonSeededTracksInstance = cms.untracked.string( "L2Seeded" ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + DoSmoothing = cms.bool( True ), + SmoothTkTrack = cms.untracked.bool( False ), + VertexConstraint = cms.bool( False ), + MuonUpdatorAtVertexParameters = cms.PSet( + MaxChi2 = cms.double( 1000000.0 ), + BeamSpotPositionErrors = cms.vdouble( 0.1, 0.1, 5.3 ), + Propagator = cms.string( "hltESPSteppingHelixPropagatorOpposite" ) + ), + PutTkTrackIntoEvent = cms.untracked.bool( False ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + L3TrajBuilderParameters = cms.PSet( + PtCut = cms.double( 1.0 ), + TrackerPropagator = cms.string( "SteppingHelixPropagatorAny" ), + GlobalMuonTrackMatcher = cms.PSet( + Chi2Cut_3 = cms.double( 200.0 ), + DeltaDCut_2 = cms.double( 10.0 ), + Eta_threshold = cms.double( 1.2 ), + Quality_2 = cms.double( 15.0 ), + DeltaDCut_1 = cms.double( 40.0 ), + Quality_3 = cms.double( 7.0 ), + DeltaDCut_3 = cms.double( 15.0 ), + Quality_1 = cms.double( 20.0 ), + Pt_threshold1 = cms.double( 0.0 ), + DeltaRCut_2 = cms.double( 0.2 ), + DeltaRCut_1 = cms.double( 0.1 ), + Pt_threshold2 = cms.double( 9.99999999E8 ), + Chi2Cut_1 = cms.double( 50.0 ), + Chi2Cut_2 = cms.double( 50.0 ), + DeltaRCut_3 = cms.double( 1.0 ), + LocChi2Cut = cms.double( 0.001 ), + Propagator = cms.string( "hltESPSmartPropagator" ), + MinPt = cms.double( 1.0 ), + MinP = cms.double( 2.5 ) + ), + ScaleTECxFactor = cms.double( -1.0 ), + tkTrajUseVertex = cms.bool( False ), + MuonTrackingRegionBuilder = cms.PSet( + Rescale_Dz = cms.double( 4.0 ), + Pt_fixed = cms.bool( False ), + Eta_fixed = cms.bool( True ), + Eta_min = cms.double( 0.1 ), + DeltaZ = cms.double( 24.2 ), + maxRegions = cms.int32( 2 ), + EtaR_UpperLimit_Par1 = cms.double( 0.25 ), + UseVertex = cms.bool( False ), + Z_fixed = cms.bool( False ), + PhiR_UpperLimit_Par1 = cms.double( 0.6 ), + PhiR_UpperLimit_Par2 = cms.double( 0.2 ), + Rescale_phi = cms.double( 3.0 ), + DeltaEta = cms.double( 0.2 ), + precise = cms.bool( True ), + OnDemand = cms.int32( -1 ), + EtaR_UpperLimit_Par2 = cms.double( 0.15 ), + MeasurementTrackerName = cms.InputTag( "hltESPMeasurementTracker" ), + vertexCollection = cms.InputTag( "pixelVertices" ), + Pt_min = cms.double( 3.0 ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Phi_fixed = cms.bool( True ), + DeltaR = cms.double( 0.025 ), + input = cms.InputTag( "hltL2Muons" ), + DeltaPhi = cms.double( 0.15 ), + Phi_min = cms.double( 0.1 ), + Rescale_eta = cms.double( 3.0 ) + ), + TrackTransformer = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + RefitDirection = cms.string( "insideOut" ), + RefitRPCHits = cms.bool( True ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + tkTrajBeamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + RefitRPCHits = cms.bool( True ), + tkTrajVertex = cms.InputTag( "Notused" ), + GlbRefitterParameters = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), + RefitFlag = cms.bool( True ), + SkipStation = cms.int32( -1 ), + Chi2CutRPC = cms.double( 1.0 ), + PropDirForCosmics = cms.bool( False ), + CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + HitThreshold = cms.int32( 1 ), + DYTthrs = cms.vint32( 30, 15 ), + TrackerSkipSystem = cms.int32( -1 ), + RefitDirection = cms.string( "insideOut" ), + Chi2CutCSC = cms.double( 150.0 ), + Chi2CutDT = cms.double( 10.0 ), + RefitRPCHits = cms.bool( True ), + TrackerSkipSection = cms.int32( -1 ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonHitsOption = cms.int32( 1 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ) + ), + PCut = cms.double( 2.5 ), + tkTrajMaxDXYBeamSpot = cms.double( 9999.0 ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + tkTrajMaxChi2 = cms.double( 9999.0 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + ScaleTECyFactor = cms.double( -1.0 ), + tkTrajLabel = cms.InputTag( "hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks" ) + ) +) +fragment.hltIterL3OIL3GlbDisplacedMuonsLinksCombination = cms.EDProducer( "L3TrackLinksCombiner", + labels = cms.VInputTag( 'hltL3GlbDisplacedMuonsIterL3OIState','hltL3GlbDisplacedMuonsIterL3OIHit' ) +) +fragment.hltIterL3OIL3GlbDisplacedMuons = cms.EDProducer( "L3TrackCombiner", + labels = cms.VInputTag( 'hltL3GlbDisplacedMuonsIterL3OIState','hltL3GlbDisplacedMuonsIterL3OIHit' ) +) +fragment.hltIterL3OIGlbDisplacedMuonCandidates = cms.EDProducer( "L3MuonCandidateProducer", + InputObjects = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuons" ), + InputLinksObjects = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuonsLinksCombination" ), + MuonPtOption = cms.string( "Global" ) +) +fragment.hltL2SelectorForL3IOForGlbDisplaced = cms.EDProducer( "HLTMuonL2SelectorForL3IO", + l2Src = cms.InputTag( "hltL2Muons" ), + l3OISrc = cms.InputTag( "hltIterL3OIGlbDisplacedMuonCandidates" ), + InputLinks = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuonsLinksCombination" ), + applyL3Filters = cms.bool( False ), + MinNhits = cms.int32( 1 ), + MaxNormalizedChi2 = cms.double( 20.0 ), + MinNmuonHits = cms.int32( 1 ), + MaxPtDifference = cms.double( 0.3 ) +) +fragment.hltDisplacedhltIter4PixelLessLayerTripletsForGlbDisplacedMuons = cms.EDProducer( "SeedingLayersEDProducer", + layerList = cms.vstring( 'TIB1+TIB2+MTIB3', + 'TIB1+TIB2+MTID1_pos', + 'TIB1+TIB2+MTID1_neg', + 'TID1_pos+TID2_pos+TID3_pos', + 'TID1_neg+TID2_neg+TID3_neg', + 'TID1_pos+TID2_pos+MTID3_pos', + 'TID1_neg+TID2_neg+MTID3_neg' ), + BPix = cms.PSet( ), + FPix = cms.PSet( ), + TIB = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + skipClusters = cms.InputTag( "" ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ) + ), + TID = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 1 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 2 ) + ), + TOB = cms.PSet( ), + TEC = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 1 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 2 ) + ), + MTIB = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + skipClusters = cms.InputTag( "" ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ) + ), + MTID = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 3 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 3 ) + ), + MTOB = cms.PSet( ), + MTEC = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 3 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 3 ) + ) +) +fragment.hltDisplacedhltIter4PixelLessClusterCheckForGlbDisplacedMuons = cms.EDProducer( "ClusterCheckerEDProducer", + doClusterCheck = cms.bool( False ), + MaxNumberOfCosmicClusters = cms.uint32( 800000 ), + ClusterCollectionLabel = cms.InputTag( "hltSiStripClusters" ), + MaxNumberOfPixelClusters = cms.uint32( 40000 ), + PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), + cut = cms.string( "" ), + silentClusterCheck = cms.untracked.bool( False ) +) +fragment.hltDisplacedhltIter4PixelLessSeedsForGlbDisplaced = cms.EDProducer( "TSGFromL2Muon", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'PropagatorWithMaterial' ) + ), + MuonTrackingRegionBuilder = cms.PSet( refToPSet_ = cms.string( "HLTPSetMuonTrackingRegionBuilder8356" ) ), + TrackerSeedCleaner = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + cleanerFromSharedHits = cms.bool( True ), + directionCleaner = cms.bool( True ), + ptCleaner = cms.bool( True ) + ), + TkSeedGenerator = cms.PSet( + iterativeTSG = cms.PSet( + firstTSG = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + OrderedHitsFactoryPSet = cms.PSet( + SeedingLayers = cms.InputTag( "hltDisplacedhltIter4PixelLessLayerTripletsForGlbDisplacedMuons" ), + ComponentName = cms.string( "StandardHitTripletGenerator" ), + GeneratorPSet = cms.PSet( + SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ), + maxElement = cms.uint32( 0 ), + useFixedPreFiltering = cms.bool( False ), + extraHitRZtolerance = cms.double( 0.06 ), + phiPreFiltering = cms.double( 0.3 ), + extraHitRPhitolerance = cms.double( 0.06 ), + useBending = cms.bool( True ), + ComponentName = cms.string( "PixelTripletHLTGenerator" ), + useMultScattering = cms.bool( True ) + ) + ), + SeedCreatorPSet = cms.PSet( refToPSet_ = cms.string( "HLTSeedFromConsecutiveHitsCreator" ) ), + ComponentName = cms.string( "TSGFromOrderedHits" ) + ), + PSetNames = cms.vstring( 'firstTSG' ), + ComponentName = cms.string( "CombinedTSG" ) + ), + PSetNames = cms.vstring( 'skipTSG', + 'iterativeTSG' ), + skipTSG = cms.PSet( ), + ComponentName = cms.string( "DualByL2TSG" ), + L3TkCollectionA = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuons" ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2SelectorForL3IOForGlbDisplaced" ), + PtCut = cms.double( 1.0 ), + PCut = cms.double( 2.5 ) +) +fragment.hltDisplacedhltIter4CkfTrackCandidatesForGlbDisplacedMuons = cms.EDProducer( "CkfTrackCandidateMaker", + cleanTrajectoryAfterInOut = cms.bool( False ), + doSeedingRegionRebuilding = cms.bool( False ), + onlyPixelHitsForSeedCleaner = cms.bool( False ), + reverseTrajectories = cms.bool( False ), + useHitsSplitting = cms.bool( False ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + src = cms.InputTag( "hltDisplacedhltIter4PixelLessSeedsForGlbDisplaced" ), + clustersToSkip = cms.InputTag( "" ), + phase2clustersToSkip = cms.InputTag( "" ), + TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTIter4PSetTrajectoryBuilderIT" ) ), + TransientInitialStateEstimatorParameters = cms.PSet( + propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), + numberMeasurementsForFit = cms.int32( 4 ), + propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) + ), + numHitsForSeedCleaner = cms.int32( 4 ), + NavigationSchool = cms.string( "SimpleNavigationSchool" ), + RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), + TrajectoryCleaner = cms.string( "hltESPTrajectoryCleanerBySharedHits" ), + maxNSeeds = cms.uint32( 100000 ), + maxSeedsBeforeCleaning = cms.uint32( 1000 ) +) +fragment.hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons = cms.EDProducer( "TrackProducer", + useSimpleMF = cms.bool( True ), + SimpleMagneticField = cms.string( "ParabolicMf" ), + src = cms.InputTag( "hltDisplacedhltIter4CkfTrackCandidatesForGlbDisplacedMuons" ), + clusterRemovalInfo = cms.InputTag( "" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Fitter = cms.string( "hltESPFittingSmootherIT" ), + useHitsSplitting = cms.bool( False ), + alias = cms.untracked.string( "ctfWithMaterialTracks" ), + TrajectoryInEvent = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + AlgorithmName = cms.string( "hltIterX" ), + Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), + GeometricInnerState = cms.bool( True ), + NavigationSchool = cms.string( "" ), + MeasurementTracker = cms.string( "" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ) +) +fragment.hltIter4IterL3FromL2MuonTrackCutClassifier = cms.EDProducer( "TrackCutClassifier", + src = cms.InputTag( "hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons" ), + beamspot = cms.InputTag( "hltOnlineBeamSpot" ), + vertices = cms.InputTag( "Notused" ), + ignoreVertices = cms.bool( True ), + qualityCuts = cms.vdouble( -0.7, 0.1, 0.7 ), + mva = cms.PSet( + minPixelHits = cms.vint32( 0, 0, 0 ), + maxDzWrtBS = cms.vdouble( 3.40282346639E38, 24.0, 100.0 ), + dr_par = cms.PSet( + d0err = cms.vdouble( 0.003, 0.003, 3.40282346639E38 ), + dr_par2 = cms.vdouble( 0.3, 0.3, 3.40282346639E38 ), + dr_par1 = cms.vdouble( 0.4, 0.4, 3.40282346639E38 ), + dr_exp = cms.vint32( 4, 4, 2147483647 ), + d0err_par = cms.vdouble( 0.001, 0.001, 3.40282346639E38 ) + ), + maxLostLayers = cms.vint32( 1, 1, 1 ), + min3DLayers = cms.vint32( 0, 0, 0 ), + dz_par = cms.PSet( + dz_par1 = cms.vdouble( 0.4, 0.4, 3.40282346639E38 ), + dz_par2 = cms.vdouble( 0.35, 0.35, 3.40282346639E38 ), + dz_exp = cms.vint32( 4, 4, 2147483647 ) + ), + minNVtxTrk = cms.int32( 3 ), + maxDz = cms.vdouble( 0.5, 0.2, 3.40282346639E38 ), + minNdof = cms.vdouble( 1.0E-5, 1.0E-5, 1.0E-5 ), + maxChi2 = cms.vdouble( 3.40282346639E38, 3.40282346639E38, 3.40282346639E38 ), + maxChi2n = cms.vdouble( 1.2, 1.0, 0.7 ), + maxDr = cms.vdouble( 0.5, 0.03, 3.40282346639E38 ), + minLayers = cms.vint32( 3, 3, 4 ) + ) +) +fragment.hltIter4IterL3FromL2MuonTrackSelectionHighPurity = cms.EDProducer( "TrackCollectionFilterCloner", + originalSource = cms.InputTag( "hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons" ), + originalMVAVals = cms.InputTag( 'hltIter4IterL3FromL2MuonTrackCutClassifier','MVAValues' ), + originalQualVals = cms.InputTag( 'hltIter4IterL3FromL2MuonTrackCutClassifier','QualityMasks' ), + minQuality = cms.string( "highPurity" ), + copyExtras = cms.untracked.bool( True ), + copyTrajectories = cms.untracked.bool( False ) +) +fragment.hltIterOIhitMergedWithOIGlbDisplacedMuons = cms.EDProducer( "TrackListMerger", + ShareFrac = cms.double( 0.19 ), + FoundHitBonus = cms.double( 5.0 ), + LostHitPenalty = cms.double( 20.0 ), + MinPT = cms.double( 0.05 ), + Epsilon = cms.double( -0.001 ), + MaxNormalizedChisq = cms.double( 1000.0 ), + MinFound = cms.int32( 3 ), + TrackProducers = cms.VInputTag( 'hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks','hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks' ), + hasSelector = cms.vint32( 0, 0 ), + indivShareFrac = cms.vdouble( 1.0, 1.0 ), + selectedTrackQuals = cms.VInputTag( 'hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks','hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks' ), + setsToMerge = cms.VPSet( + cms.PSet( pQual = cms.bool( False ), + tLists = cms.vint32( 0, 1 ) + ) + ), + trackAlgoPriorityOrder = cms.string( "hltESPTrackAlgoPriorityOrder" ), + allowFirstHitShare = cms.bool( True ), + newQuality = cms.string( "confirmed" ), + copyExtras = cms.untracked.bool( True ), + writeOnlyTrkQuals = cms.bool( False ), + copyMVA = cms.bool( False ) +) +fragment.hltIter4MergedWithOIGlbDisplacedMuons = cms.EDProducer( "TrackListMerger", + ShareFrac = cms.double( 0.19 ), + FoundHitBonus = cms.double( 5.0 ), + LostHitPenalty = cms.double( 20.0 ), + MinPT = cms.double( 0.05 ), + Epsilon = cms.double( -0.001 ), + MaxNormalizedChisq = cms.double( 1000.0 ), + MinFound = cms.int32( 3 ), + TrackProducers = cms.VInputTag( 'hltIterOIhitMergedWithOIGlbDisplacedMuons','hltIter4IterL3FromL2MuonTrackSelectionHighPurity' ), + hasSelector = cms.vint32( 0, 0 ), + indivShareFrac = cms.vdouble( 1.0, 1.0 ), + selectedTrackQuals = cms.VInputTag( 'hltIterOIhitMergedWithOIGlbDisplacedMuons','hltIter4IterL3FromL2MuonTrackSelectionHighPurity' ), + setsToMerge = cms.VPSet( + cms.PSet( pQual = cms.bool( False ), + tLists = cms.vint32( 0, 1 ) + ) + ), + trackAlgoPriorityOrder = cms.string( "hltESPTrackAlgoPriorityOrder" ), + allowFirstHitShare = cms.bool( True ), + newQuality = cms.string( "confirmed" ), + copyExtras = cms.untracked.bool( True ), + writeOnlyTrkQuals = cms.bool( False ), + copyMVA = cms.bool( False ) +) +fragment.hltIterL3GlbDisplacedMuons = cms.EDProducer( "L3MuonProducer", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSmartPropagatorAny', + 'SteppingHelixPropagatorAny', + 'hltESPSmartPropagator', + 'hltESPSteppingHelixPropagatorOpposite' ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + TrackLoaderParameters = cms.PSet( + MuonSeededTracksInstance = cms.untracked.string( "L2Seeded" ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + DoSmoothing = cms.bool( True ), + SmoothTkTrack = cms.untracked.bool( False ), + VertexConstraint = cms.bool( False ), + MuonUpdatorAtVertexParameters = cms.PSet( + MaxChi2 = cms.double( 1000000.0 ), + BeamSpotPositionErrors = cms.vdouble( 0.1, 0.1, 5.3 ), + Propagator = cms.string( "hltESPSteppingHelixPropagatorOpposite" ) + ), + PutTkTrackIntoEvent = cms.untracked.bool( False ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + L3TrajBuilderParameters = cms.PSet( + PtCut = cms.double( 1.0 ), + TrackerPropagator = cms.string( "SteppingHelixPropagatorAny" ), + GlobalMuonTrackMatcher = cms.PSet( + Chi2Cut_3 = cms.double( 200.0 ), + DeltaDCut_2 = cms.double( 10.0 ), + Eta_threshold = cms.double( 1.2 ), + Quality_2 = cms.double( 15.0 ), + DeltaDCut_1 = cms.double( 40.0 ), + Quality_3 = cms.double( 7.0 ), + DeltaDCut_3 = cms.double( 15.0 ), + Quality_1 = cms.double( 20.0 ), + Pt_threshold1 = cms.double( 0.0 ), + DeltaRCut_2 = cms.double( 0.2 ), + DeltaRCut_1 = cms.double( 0.1 ), + Pt_threshold2 = cms.double( 9.99999999E8 ), + Chi2Cut_1 = cms.double( 50.0 ), + Chi2Cut_2 = cms.double( 50.0 ), + DeltaRCut_3 = cms.double( 1.0 ), + LocChi2Cut = cms.double( 0.001 ), + Propagator = cms.string( "hltESPSmartPropagator" ), + MinPt = cms.double( 1.0 ), + MinP = cms.double( 2.5 ) + ), + ScaleTECxFactor = cms.double( -1.0 ), + tkTrajUseVertex = cms.bool( False ), + MuonTrackingRegionBuilder = cms.PSet( + Rescale_Dz = cms.double( 4.0 ), + Pt_fixed = cms.bool( False ), + Eta_fixed = cms.bool( True ), + Eta_min = cms.double( 0.1 ), + DeltaZ = cms.double( 24.2 ), + maxRegions = cms.int32( 2 ), + EtaR_UpperLimit_Par1 = cms.double( 0.25 ), + UseVertex = cms.bool( False ), + Z_fixed = cms.bool( False ), + PhiR_UpperLimit_Par1 = cms.double( 0.6 ), + PhiR_UpperLimit_Par2 = cms.double( 0.2 ), + Rescale_phi = cms.double( 3.0 ), + DeltaEta = cms.double( 0.2 ), + precise = cms.bool( True ), + OnDemand = cms.int32( -1 ), + EtaR_UpperLimit_Par2 = cms.double( 0.15 ), + MeasurementTrackerName = cms.InputTag( "hltESPMeasurementTracker" ), + vertexCollection = cms.InputTag( "pixelVertices" ), + Pt_min = cms.double( 3.0 ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Phi_fixed = cms.bool( True ), + DeltaR = cms.double( 0.025 ), + input = cms.InputTag( "hltL2Muons" ), + DeltaPhi = cms.double( 0.15 ), + Phi_min = cms.double( 0.1 ), + Rescale_eta = cms.double( 3.0 ) + ), + TrackTransformer = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + RefitDirection = cms.string( "insideOut" ), + RefitRPCHits = cms.bool( True ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + tkTrajBeamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + RefitRPCHits = cms.bool( True ), + tkTrajVertex = cms.InputTag( "Notused" ), + GlbRefitterParameters = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), + RefitFlag = cms.bool( True ), + SkipStation = cms.int32( -1 ), + Chi2CutRPC = cms.double( 1.0 ), + PropDirForCosmics = cms.bool( False ), + CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + HitThreshold = cms.int32( 1 ), + DYTthrs = cms.vint32( 30, 15 ), + TrackerSkipSystem = cms.int32( -1 ), + RefitDirection = cms.string( "insideOut" ), + Chi2CutCSC = cms.double( 150.0 ), + Chi2CutDT = cms.double( 10.0 ), + RefitRPCHits = cms.bool( True ), + TrackerSkipSection = cms.int32( -1 ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonHitsOption = cms.int32( 1 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ) + ), + PCut = cms.double( 2.5 ), + tkTrajMaxDXYBeamSpot = cms.double( 9999.0 ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + tkTrajMaxChi2 = cms.double( 9999.0 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + ScaleTECyFactor = cms.double( -1.0 ), + tkTrajLabel = cms.InputTag( "hltIter4MergedWithOIGlbDisplacedMuons" ) + ) +) +fragment.hltIterL3GlbDisplacedMuonsTracks = cms.EDProducer( "L3TrackCombiner", + labels = cms.VInputTag( 'hltIterL3GlbDisplacedMuons' ) +) +fragment.hltIterL3GlbDisplacedMuonsLinksCombination = cms.EDProducer( "L3TrackLinksCombiner", + labels = cms.VInputTag( 'hltIterL3GlbDisplacedMuons' ) +) +fragment.hltIterL3wIter4GlbDisplacedMuonCandidates = cms.EDProducer( "L3MuonCandidateProducer", + InputObjects = cms.InputTag( "hltIterL3GlbDisplacedMuonsTracks" ), + InputLinksObjects = cms.InputTag( "hltIterL3GlbDisplacedMuonsLinksCombination" ), + MuonPtOption = cms.string( "Global" ) +) +fragment.hltL3fL1DoubleMuf0L2NVf15f7L3DoubleMuNVf10DisplacedIter4 = cms.EDFilter( "HLTMuonL3SimplePreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltIterL3wIter4GlbDisplacedMuonCandidates" ), + PreviousCandTag = cms.InputTag( "" ), + MinN = cms.int32( 2 ), + MaxEta = cms.double( 2.5 ), + MinNhits = cms.int32( 0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 10.0 ), + NSigmaPt = cms.double( 0.0 ), + MaxNormalizedChi2 = cms.double( 9999.0 ), + MaxDXYBeamSpot = cms.double( 9999.0 ), + MinDXYBeamSpot = cms.double( 0.01 ), + MinNmuonHits = cms.int32( 12 ), + MaxPtDifference = cms.double( 9999.0 ), + MinTrackPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( False ) +) +fragment.hltL3fL1DoubleMuf0L2NVf15f7L3SingleMuNVf16DisplacedIter4 = cms.EDFilter( "HLTMuonL3SimplePreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltIterL3wIter4GlbDisplacedMuonCandidates" ), + PreviousCandTag = cms.InputTag( "" ), + MinN = cms.int32( 1 ), + MaxEta = cms.double( 2.5 ), + MinNhits = cms.int32( 0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 16.0 ), + NSigmaPt = cms.double( 0.0 ), + MaxNormalizedChi2 = cms.double( 9999.0 ), + MaxDXYBeamSpot = cms.double( 9999.0 ), + MinDXYBeamSpot = cms.double( 0.01 ), + MinNmuonHits = cms.int32( 12 ), + MaxPtDifference = cms.double( 9999.0 ), + MinTrackPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( False ) +) +fragment.hltPreL3Iter4Mu10NoVtxDxyMin0p01cm = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered7 = cms.EDFilter( "HLTMuonL2FromL1TPreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltL2MuonCandidatesNoVtx" ), + PreviousCandTag = cms.InputTag( "hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0" ), + SeedMapTag = cms.InputTag( "hltL2Muons" ), + MinN = cms.int32( 1 ), + MaxEta = cms.double( 2.5 ), + AbsEtaBins = cms.vdouble( 5.0 ), + MinNstations = cms.vint32( 0 ), + MinNhits = cms.vint32( 0 ), + CutOnChambers = cms.bool( True ), + MinNchambers = cms.vint32( 0 ), + MaxDr = cms.double( 9999.0 ), + MinDr = cms.double( -1.0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 7.0 ), + NSigmaPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( True ) +) +fragment.hltL3fL1f0L2f0Filtered10GlbDisplacedIter4 = cms.EDFilter( "HLTMuonL3SimplePreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltIterL3wIter4GlbDisplacedMuonCandidates" ), + PreviousCandTag = cms.InputTag( "" ), + MinN = cms.int32( 1 ), + MaxEta = cms.double( 2.5 ), + MinNhits = cms.int32( 0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 10.0 ), + NSigmaPt = cms.double( 0.0 ), + MaxNormalizedChi2 = cms.double( 9999.0 ), + MaxDXYBeamSpot = cms.double( 9999.0 ), + MinDXYBeamSpot = cms.double( 0.01 ), + MinNmuonHits = cms.int32( 12 ), + MaxPtDifference = cms.double( 9999.0 ), + MinTrackPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( False ) +) +fragment.hltL1sVoHTT200SingleLLPJet60 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_HTT120_SingleLLPJet40 OR L1_HTT160_SingleLLPJet50 OR L1_HTT200_SingleLLPJet60" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +fragment.hltPreHT170L1SingleLLPJetDisplacedDijet40DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltHT170 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 170.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +fragment.hltPreHT200L1SingleLLPJetDisplacedDijet40DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltHT200 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 200.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +fragment.hltPreHT200L1SingleLLPJetDisplacedDijet60DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHT270L1SingleLLPJetDisplacedDijet40DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltHT270 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 270.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +fragment.hltPreHT320L1SingleLLPJetDisplacedDijet60Inclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltHT320 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 320.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +fragment.hltPreHT420L1SingleLLPJetDisplacedDijet60Inclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltHT420 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 420.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +fragment.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay1nsTrackless = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay2nsInclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay0p5nsTrackless = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay1nsInclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHT200L1SingleLLPJetDisplacedDijet30Inclusive1PtrkShortSig5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHT200L1SingleLLPJetDisplacedDijet35Inclusive1PtrkShortSig5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltPreHT200L1SingleLLPJetDisplacedDijet40Inclusive1PtrkShortSig5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_Mu6_DoubleEG12er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG34er2p5 OR L1_SingleEG36er2p5 OR L1_SingleEG38er2p5 OR L1_SingleEG40er2p5 OR L1_SingleEG42er2p5 OR L1_SingleEG45er2p5 OR L1_SingleEG60 OR L1_DoubleEG_15_10_er2p5 OR L1_DoubleEG_20_10_er2p5 OR L1_DoubleEG_22_10_er2p5 OR L1_DoubleEG_25_12_er2p5 OR L1_DoubleEG_25_14_er2p5 OR L1_DoubleEG_27_14_er2p5 OR L1_DoubleEG_LooseIso22_12_er2p5 OR L1_DoubleEG_LooseIso25_12_er2p5 OR L1_TripleEG_18_17_8_er2p5 OR L1_TripleEG_18_18_12_er2p5 OR L1_DoubleEG8er2p5_HTT300er OR L1_DoubleEG8er2p5_HTT320er" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +fragment.hltPreDiPhoton10Time1ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig = cms.EDFilter( "HLTEgammaL1TMatchFilterRegional", + saveTags = cms.bool( True ), + candIsolatedTag = cms.InputTag( "hltEgammaCandidates" ), + l1IsolatedTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + candNonIsolatedTag = cms.InputTag( "" ), + l1NonIsolatedTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1SeedFilterTag = cms.InputTag( "hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig" ), + l1CenJetsTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + l1TausTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + ncandcut = cms.int32( 1 ), + doIsolated = cms.bool( False ), + region_eta_size = cms.double( 0.522 ), + region_eta_size_ecap = cms.double( 1.0 ), + region_phi_size = cms.double( 1.044 ), + barrel_end = cms.double( 1.4791 ), + endcap_end = cms.double( 2.65 ) +) +fragment.hltEG10EtFilter = cms.EDFilter( "HLTEgammaEtFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig" ), + l1EGCand = cms.InputTag( "hltEgammaCandidates" ), + etcutEB = cms.double( 10.0 ), + etcutEE = cms.double( 10.0 ), + ncandcut = cms.int32( 1 ) +) +fragment.hltEG10HEFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltEG10EtFilter" ), + varTag = cms.InputTag( "hltEgammaHoverE" ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( -1.0 ), + thrRegularEE = cms.vdouble( -1.0 ), + thrOverEEB = cms.vdouble( 0.2 ), + thrOverEEE = cms.vdouble( 0.2 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 1 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidates" ) +) +fragment.hltEG10CaloIdLClusterShapeFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltEG10HEFilter" ), + varTag = cms.InputTag( 'hltEgammaClusterShape','sigmaIEtaIEta5x5NoiseCleaned' ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( 0.016 ), + thrRegularEE = cms.vdouble( 0.04 ), + thrOverEEB = cms.vdouble( -1.0 ), + thrOverEEE = cms.vdouble( -1.0 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 1 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidates" ) +) +fragment.hltEG10CaloIdLTime1nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10EtUnseededFilter = cms.EDFilter( "HLTEgammaEtFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEgammaCandidatesWrapperUnseeded" ), + l1EGCand = cms.InputTag( "hltEgammaCandidatesUnseeded" ), + etcutEB = cms.double( 10.0 ), + etcutEE = cms.double( 10.0 ), + ncandcut = cms.int32( 2 ) +) +fragment.hltDiEG10HEUnseededFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltDiEG10EtUnseededFilter" ), + varTag = cms.InputTag( "hltEgammaHoverEUnseeded" ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( -1.0 ), + thrRegularEE = cms.vdouble( -1.0 ), + thrOverEEB = cms.vdouble( 0.2 ), + thrOverEEE = cms.vdouble( 0.2 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 2 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidatesUnseeded" ) +) +fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltDiEG10HEUnseededFilter" ), + varTag = cms.InputTag( 'hltEgammaClusterShapeUnseeded','sigmaIEtaIEta5x5NoiseCleaned' ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( 0.016 ), + thrRegularEE = cms.vdouble( 0.04 ), + thrOverEEB = cms.vdouble( -1.0 ), + thrOverEEE = cms.vdouble( -1.0 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 2 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidatesUnseeded" ) +) +fragment.hltDiEG10CaloIdLTime1nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10Time1p2ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLTime1p2nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.2 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLTime1p2nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.2 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10Time1p4ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLTime1p4nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.4 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLTime1p4nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.4 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10Time1p6ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLTime1p6nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.6 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLTime1p6nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.6 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10Time1p8ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLTime1p8nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.8 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLTime1p8nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.8 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10Time2ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLTime2nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 2.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLTime2nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 2.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10sminlt0p1 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLsminlt0p1Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.1 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLsminlt0p1UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.1 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10sminlt0p12 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLsminlt0p12Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.12 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLsminlt0p12UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.12 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10sminlt0p14 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLsminlt0p14Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.14 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLsminlt0p14UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.14 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10sminlt0p16 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +fragment.hltEG10CaloIdLsminlt0p16Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.16 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltDiEG10CaloIdLsminlt0p16UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.16 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +fragment.hltPreDiPhoton10CaloIdL = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) fragment.hltPreExpressMuons = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -79557,7 +81320,20 @@ 'HLT_CscCluster_Loose_v1', 'HLT_CscCluster_Medium_v1', 'HLT_CscCluster_Tight_v1', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT425_v9', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1', @@ -79607,6 +81383,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2', 'HLT_DoubleL2Mu50_v2', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10', 'HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10', @@ -79616,6 +81393,7 @@ 'HLT_DoubleMu43NoFiltersNoVtx_v4', 'HLT_DoubleMu48NoFiltersNoVtx_v4', 'HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15', @@ -79738,6 +81516,17 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4', + 'HLT_DiPhoton10Time1ns_v1', + 'HLT_DiPhoton10Time1p2ns_v1', + 'HLT_DiPhoton10Time1p4ns_v1', + 'HLT_DiPhoton10Time1p6ns_v1', + 'HLT_DiPhoton10Time1p8ns_v1', + 'HLT_DiPhoton10Time2ns_v1', + 'HLT_DiPhoton10_CaloIdL_v1', + 'HLT_DiPhoton10sminlt0p12_v1', + 'HLT_DiPhoton10sminlt0p14_v1', + 'HLT_DiPhoton10sminlt0p16_v1', + 'HLT_DiPhoton10sminlt0p1_v1', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13', 'HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13', 'HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2', @@ -80437,7 +82226,8 @@ 'MC_PFHT_v16', 'MC_PFMET_v17', 'MC_PFMHT_v16', - 'MC_ReducedIterativeTracking_v12' ) + 'MC_ReducedIterativeTracking_v12', + 'MC_Run3_PFScoutingPixelTracking_v16' ) ) fragment.hltPreDatasetMonteCarlo = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -80626,6 +82416,17 @@ 'HLT_DiPFJetAve60_v14 / 3', 'HLT_DiPFJetAve80_HFJEC_v16 / 3', 'HLT_DiPFJetAve80_v13 / 3', + 'HLT_DiPhoton10Time1ns_v1 / 3', + 'HLT_DiPhoton10Time1p2ns_v1 / 3', + 'HLT_DiPhoton10Time1p4ns_v1 / 3', + 'HLT_DiPhoton10Time1p6ns_v1 / 3', + 'HLT_DiPhoton10Time1p8ns_v1 / 3', + 'HLT_DiPhoton10Time2ns_v1 / 3', + 'HLT_DiPhoton10_CaloIdL_v1 / 3', + 'HLT_DiPhoton10sminlt0p12_v1 / 3', + 'HLT_DiPhoton10sminlt0p14_v1 / 3', + 'HLT_DiPhoton10sminlt0p16_v1 / 3', + 'HLT_DiPhoton10sminlt0p1_v1 / 3', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13 / 3', 'HLT_Dimuon0_Jpsi3p5_Muon2_v5 / 3', 'HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7 / 3', @@ -80683,6 +82484,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2 / 3', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2 / 3', 'HLT_DoubleL2Mu50_v2 / 3', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1 / 3', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1 / 3', 'HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1 / 3', 'HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1 / 3', @@ -80753,8 +82555,7 @@ 'HLT_Ele250_CaloIdVT_GsfTrkIdT_v13 / 3', 'HLT_Ele27_Ele37_CaloIdL_MW_v4 / 3', 'HLT_Ele27_WPTight_Gsf_v16 / 3', - 'HLT_Ele28_HighEta_SC20_Mass55_v13 / 3', - 'HLT_Ele28_WPTight_Gsf_v1 / 3', + 'HLT_Ele28_HighEta_SC20_Mass55_v13 / 3')+cms.vstring( 'HLT_Ele28_WPTight_Gsf_v1 / 3', 'HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v13 / 3', 'HLT_Ele300_CaloIdVT_GsfTrkIdT_v13 / 3', 'HLT_Ele30_WPTight_Gsf_v1 / 3', @@ -80765,10 +82566,24 @@ 'HLT_Ele35_WPTight_Gsf_v9 / 3', 'HLT_Ele38_WPTight_Gsf_v9 / 3', 'HLT_Ele40_WPTight_Gsf_v9 / 3', - 'HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18 / 3')+cms.vstring( 'HLT_Ele50_IsoVVVL_PFHT450_v16 / 3', + 'HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18 / 3', + 'HLT_Ele50_IsoVVVL_PFHT450_v16 / 3', 'HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v16 / 3', 'HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v18 / 3', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1 / 3', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 / 3', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 / 3', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13 / 3', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 / 3', 'HLT_HT425_v9 / 3', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1 / 3', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1 / 3', @@ -80818,6 +82633,7 @@ 'HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5 / 3', 'HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4 / 3', 'HLT_L2Mu50_v2 / 3', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1 / 3', 'HLT_MET105_IsoTrk50_v9 / 3', 'HLT_MET120_IsoTrk50_v9 / 3', 'HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12 / 3', @@ -80993,8 +82809,7 @@ 'HLT_PFJetFwd60_v19 / 3', 'HLT_PFJetFwd80_v18 / 3', 'HLT_PFMET100_PFMHT100_IDTight_CaloBTagDeepCSV_3p1_v8 / 3', - 'HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9 / 3', - 'HLT_PFMET105_IsoTrk50_v1 / 3', + 'HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9 / 3')+cms.vstring( 'HLT_PFMET105_IsoTrk50_v1 / 3', 'HLT_PFMET105_PFJet100_looseRecoiling_v1 / 3', 'HLT_PFMET110_PFJet100_looseRecoiling_v1 / 3', 'HLT_PFMET110_PFJet100_v1 / 3', @@ -81019,7 +82834,8 @@ 'HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v19 / 3', 'HLT_PFMETTypeOne100_PFMHT100_IDTight_PFHT60_v9 / 3', 'HLT_PFMETTypeOne110_PFMHT110_IDTight_v12 / 3', - 'HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9 / 3')+cms.vstring( 'HLT_PFMETTypeOne120_PFMHT120_IDTight_v12 / 3', + 'HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9 / 3', + 'HLT_PFMETTypeOne120_PFMHT120_IDTight_v12 / 3', 'HLT_PFMETTypeOne130_PFMHT130_IDTight_v12 / 3', 'HLT_PFMETTypeOne140_PFMHT140_IDTight_v11 / 3', 'HLT_PFMETTypeOne200_BeamHaloCleaned_v9 / 3', @@ -81934,7 +83750,7 @@ fragment.HLTDiphoton3018R9Idb50e90ANDIso60CaloId15b35eANDHE12b10eMass55NoPixelVetoSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGOrFilter + fragment.hltEG30L1SingleAndDoubleEGOrEtFilter + fragment.hltEgammaR9ID + fragment.hltEG30R9Id50b80eR9IdFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG30HE12b10eR9Id50b80eHEFilter + fragment.hltEG30R9Id50b90eHE12b10eR9Id50b80eR9IdFilter + fragment.hltEgammaClusterShape + fragment.hltEG30CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeFilter + fragment.hltEgammaEcalPFClusterIso + fragment.hltEG30Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltDiEG18EtUnseededFilter + fragment.hltEgammaR9IDUnseeded + fragment.hltDiEG18R9Id50b80eR9IdUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG18HE12b10eR9Id50b80eHEUnseededFilter + fragment.hltEG18R9Id50b90eHE12b10eR9Id50b80eR9IdUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltEG18CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeUnseededFilter + fragment.hltEgammaEcalPFClusterIsoUnseeded + fragment.hltEG18Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoUnseededFilter + fragment.HLTTrackReconstructionForIsoForPhotons + fragment.hltEgammaHollowTrackIsoUnseeded + fragment.hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eTrackIsoUnseededFilter + fragment.hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eMass55CombMassLastFilter ) fragment.HLTDiphoton3018R9Idb50e90ANDIso60CaloId15b35eANDHE12b10eNoPixelVetoSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGOrFilter + fragment.hltEG30L1SingleAndDoubleEGOrEtFilter + fragment.hltEgammaR9ID + fragment.hltEG30R9Id50b80eR9IdFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG30HE12b10eR9Id50b80eHEFilter + fragment.hltEG30R9Id50b90eHE12b10eR9Id50b80eR9IdFilter + fragment.hltEgammaClusterShape + fragment.hltEG30CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeFilter + fragment.hltEgammaEcalPFClusterIso + fragment.hltEG30Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltDiEG18EtUnseededFilter + fragment.hltEgammaR9IDUnseeded + fragment.hltDiEG18R9Id50b80eR9IdUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG18HE12b10eR9Id50b80eHEUnseededFilter + fragment.hltEG18R9Id50b90eHE12b10eR9Id50b80eR9IdUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltEG18CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeUnseededFilter + fragment.hltEgammaEcalPFClusterIsoUnseeded + fragment.hltEG18Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoUnseededFilter + fragment.HLTTrackReconstructionForIsoForPhotons + fragment.hltEgammaHollowTrackIsoUnseeded + fragment.hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eTrackIsoUnseededFilter ) fragment.HLTBeginSequenceParking = cms.Sequence( fragment.hltTriggerType + fragment.hltEnableParking + fragment.HLTL1UnpackerSequence + fragment.HLTBeamSpot ) -fragment.HLTL2TauTagNNSequence = cms.Sequence( fragment.HLTDoLocalPixelSequence + fragment.HLTRecoPixelTracksSequence + fragment.HLTRecopixelvertexingSequence + fragment.HLTDoCaloSequence + cms.ignore(fragment.hltL1sDoubleTauBigOR) + cms.ignore(fragment.hltL1sSingleTau) + cms.ignore(fragment.hltL1sBigOrMuXXerIsoTauYYer) + cms.ignore(fragment.hltL1sMu22erIsoTau40er) + cms.ignore(fragment.hltL1sDoubleTauJet) + cms.ignore(fragment.hltL1VBFDiJetIsoTau) + fragment.hltL2TauTagNNProducer ) +fragment.HLTL2TauTagNNSequence = cms.Sequence( fragment.HLTDoLocalPixelSequence + fragment.HLTRecoPixelTracksSequence + fragment.HLTRecopixelvertexingSequence + fragment.HLTDoCaloSequence + cms.ignore(fragment.hltL1sDoubleTauBigOR) + cms.ignore(fragment.hltL1sSingleTau) + cms.ignore(fragment.hltL1sBigOrMuXXerIsoTauYYer) + cms.ignore(fragment.hltL1sMu22erIsoTau40er) + cms.ignore(fragment.hltL1sBigORDoubleTauJet) + cms.ignore(fragment.hltL1VBFDiJetIsoTau) + fragment.hltL2TauTagNNProducer ) fragment.HLTHPSDeepTauIsoPFTauSequence = cms.Sequence( cms.ignore(fragment.hltL1sTauVeryBigOR) + fragment.hltHpsL1JetsHLTForDeepTauInput + fragment.hltHpsPFTauDiscriminationByDecayModeFindingNewDMsL1matched + fragment.hltHpsPFTauPrimaryVertexProducerForDeepTau + fragment.hltHpsPFTauSecondaryVertexProducerForDeepTau + fragment.hltHpsPFTauTransverseImpactParametersForDeepTau + fragment.hltFixedGridRhoProducerFastjetAllTau + fragment.hltHpsPFTauBasicDiscriminatorsForDeepTau + fragment.hltHpsPFTauBasicDiscriminatorsdR03ForDeepTau + fragment.hltHpsPFTauDeepTauProducer ) fragment.HLTCaloTausCreatorL1TauSeededRegionalSequence = cms.Sequence( fragment.HLTDoCaloSequence + cms.ignore(fragment.hltL1sTauVeryBigOR) + fragment.hltCaloTowerL1sTauVeryBigORSeededRegional + fragment.hltAkIsoTauL1sTauVeryBigORSeededRegional ) fragment.HLTL2TauJetsL1TauSeededSequence = cms.Sequence( fragment.HLTCaloTausCreatorL1TauSeededRegionalSequence + fragment.hltL2TauJetsL1TauSeeded ) @@ -81978,6 +83794,22 @@ fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt1PtrkShortSig5 = cms.Sequence( fragment.hltL3DisplacedDijetFullTracksJetTracksAssociatorAtVertexLowPt + fragment.hltL3DisplacedDijet100FullTracksTrackIPProducerLowPt + fragment.hltL3DisplacedDijetFullTracksJetTagProducerFromIPLowPtShortSig5 + fragment.hltTwoPromptHLTL3DisplacedDijetFullTracksHLTCaloJetTagFilterLowPt1PtrkShortSig5 ) fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt1PtrkShortSig5 = cms.Sequence( fragment.hltL4DisplacedDijetFullTracksJetPromptTracksAssociatorAtVertexLowPt1PtrkShortSig5 + fragment.hltL4PromptDisplacedDijetFullTracksTrackIPProducerLowPt1PtrkShortSig5 + fragment.hltL4PromptDisplacedDijetFullTracksJetTagProducerFromIPLowPt1PtrkShortSig5 + fragment.hltL4PromptDisplacedDijetFullTracksHLTCaloJetTagFilterLowPt1PtrkShortSig5 ) fragment.HLTDisplacedTrackRequirementLooseDisplacedJetsLowPt1PtrkShortSig5 = cms.Sequence( fragment.hltL4DisplacedDijetFullTracksJetTracksAssociatorAtVertexLowPt1PtrkShortSig5 + fragment.hltL4TaggedDisplacedDijetFullTracksTrackIPProducerLowPt1PtrkPt0p5ShortSig5 + fragment.hltL4DisplacedDijetFullTracksJetTagProducerLooseFromIPLowPt1PtrkPt0p5ShortSig5 + fragment.hltL4DisplacedDijetFullTracksHLTCaloJetTagFilterLooseLowPt1PtrkPt0p5ShortSig5 ) +fragment.HLTIterL3OIGlbDisplacedMuonTkCandidateSequence = cms.Sequence( fragment.hltIterL3TrajSeedOIStateFromDisplacedL2Muons + fragment.hltIterL3OIStateGlbDisplacedTrackCandidates + fragment.hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks + fragment.hltL3GlbDisplacedMuonsIterL3OIState + fragment.hltIterL3NoFiltersNoVtxTrajSeedOIHit + fragment.hltIterL3OIHitGlbDisplacedTrackCandidates + fragment.hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks + fragment.hltL3GlbDisplacedMuonsIterL3OIHit ) +fragment.HLTIterL3GlbDisplacedMuonCandidateSequence = cms.Sequence( fragment.HLTDoLocalPixelSequence + fragment.HLTDoLocalStripSequence + fragment.HLTIterL3OIGlbDisplacedMuonTkCandidateSequence + fragment.hltIterL3OIL3GlbDisplacedMuonsLinksCombination + fragment.hltIterL3OIL3GlbDisplacedMuons + fragment.hltIterL3OIGlbDisplacedMuonCandidates + fragment.hltL2SelectorForL3IOForGlbDisplaced ) +fragment.HLTIterativeTrackingIteration4GlbDisplacedMuons = cms.Sequence( fragment.hltDisplacedhltIter4PixelLessLayerTripletsForGlbDisplacedMuons + fragment.hltDisplacedhltIter4PixelLessClusterCheckForGlbDisplacedMuons + fragment.hltDisplacedhltIter4PixelLessSeedsForGlbDisplaced + fragment.hltDisplacedhltIter4CkfTrackCandidatesForGlbDisplacedMuons + fragment.hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons + fragment.hltIter4IterL3FromL2MuonTrackCutClassifier + fragment.hltIter4IterL3FromL2MuonTrackSelectionHighPurity ) +fragment.HLTL3GblDisplacedMuonNoCandRecoSequence = cms.Sequence( fragment.HLTIterL3GlbDisplacedMuonCandidateSequence + fragment.HLTIterativeTrackingIteration4GlbDisplacedMuons + fragment.hltIterOIhitMergedWithOIGlbDisplacedMuons + fragment.hltIter4MergedWithOIGlbDisplacedMuons + fragment.hltIterL3GlbDisplacedMuons + fragment.hltIterL3GlbDisplacedMuonsTracks + fragment.hltIterL3GlbDisplacedMuonsLinksCombination ) +fragment.HLTL3GblIter4DisplacedMuonRecoSequence = cms.Sequence( fragment.HLTL3GblDisplacedMuonNoCandRecoSequence + fragment.hltIterL3wIter4GlbDisplacedMuonCandidates ) +fragment.HLTDiPho10CaloIdLTime1nsSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLTime1nsFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLTime1nsUnseededFilter ) +fragment.HLTDiPho10CaloIdLTime1p2nsSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLTime1p2nsFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLTime1p2nsUnseededFilter ) +fragment.HLTDiPho10CaloIdLTime1p4nsSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLTime1p4nsFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLTime1p4nsUnseededFilter ) +fragment.HLTDiPho10CaloIdLTime1p6nsSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLTime1p6nsFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLTime1p6nsUnseededFilter ) +fragment.HLTDiPho10CaloIdLTime1p8nsSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLTime1p8nsFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLTime1p8nsUnseededFilter ) +fragment.HLTDiPho10CaloIdLTime2nsSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLTime2nsFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLTime2nsUnseededFilter ) +fragment.HLTDiPho10CaloIdLsminlt0p1Sequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLsminlt0p1Filter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLsminlt0p1UnseededFilter ) +fragment.HLTDiPho10CaloIdLsminlt0p12Sequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLsminlt0p12Filter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLsminlt0p12UnseededFilter ) +fragment.HLTDiPho10CaloIdLsminlt0p14Sequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLsminlt0p14Filter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLsminlt0p14UnseededFilter ) +fragment.HLTDiPho10CaloIdLsminlt0p16Sequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.hltEG10CaloIdLsminlt0p16Filter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter + fragment.hltDiEG10CaloIdLsminlt0p16UnseededFilter ) +fragment.HLTDiPho10CaloIdLSequence = cms.Sequence( fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.HLTPFClusteringForEgamma + fragment.hltEgammaCandidates + fragment.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltEG10EtFilter + fragment.HLTDoLocalHcalSequence + fragment.HLTFastJetForEgamma + fragment.hltEgammaHoverE + fragment.hltEG10HEFilter + fragment.hltEgammaClusterShape + fragment.hltEG10CaloIdLClusterShapeFilter + fragment.HLTPFClusteringForEgammaUnseeded + fragment.hltEgammaCandidatesUnseeded + fragment.hltEgammaCandidatesWrapperUnseeded + fragment.hltDiEG10EtUnseededFilter + fragment.hltEgammaHoverEUnseeded + fragment.hltDiEG10HEUnseededFilter + fragment.hltEgammaClusterShapeUnseeded + fragment.hltDiEG10CaloIdLClusterShapeUnseededFilter ) fragment.HLTPPSPixelRecoSequence = cms.Sequence( fragment.hltCTPPSPixelDigis + fragment.hltCTPPSPixelClusters + fragment.hltCTPPSPixelRecHits + fragment.hltCTPPSPixelLocalTracks ) fragment.HLTDatasetPathBeginSequence = cms.Sequence( fragment.hltGtStage2Digis ) @@ -82014,8 +83846,8 @@ fragment.HLT_DoubleMu4_LowMass_Displaced_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMuForLowMassDisplaced + fragment.hltPreDoubleMu4LowMassDisplaced + fragment.hltL1fL1sDoubleMuL1Filtered0ForLowMassDisplaced + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sDoubleMuL1Filtered0ForLowMassDisplaced) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMuL1Filtered0ForLowMassDisplaced) + fragment.hltDoubleMu4LowMassDisplacedL3Filtered + fragment.hltDisplacedmumuVtxProducerDoubleMu4LowMassDisplaced + fragment.hltDisplacedmumuFilterDoubleMu4LowMassDisplaced + fragment.HLTEndSequence ) fragment.HLT_Mu0_L1DoubleMu_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMuForLowMassInclusive + fragment.hltPreMu0L1DoubleMu + fragment.hltL1fL1sL1DoubleMuL1Filtered0LowMassInclusive + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sL1DoubleMuL1f0L2PreFiltered0ForLowMassInclusive) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sL1DoubleMuL1Filtered0LowMassInclusive) + fragment.hltL3fL1sDoubleMu0SQL1f0L2PreFilteres0L3Filtered0 + fragment.HLTEndSequence ) fragment.HLT_Mu4_L1DoubleMu_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMuForLowMassInclusive + fragment.hltPreMu4L1DoubleMu + fragment.hltL1fL1sL1DoubleMuL1Filtered0LowMassInclusive + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sL1DoubleMuL1f0L2PreFiltered0ForLowMassInclusive) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sL1DoubleMuL1Filtered0LowMassInclusive) + fragment.hltL3fL1sDoubleMu0SQL1f0L2PreFilteres0L3Filtered4 + fragment.HLTEndSequence ) -fragment.HLT_DoubleMu3_Trk_Tau3mu_v12 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9 + fragment.hltPreDoubleMu3TrkTau3mu + fragment.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + fragment.hltDoubleMu3TrkTau3muL3Filtered + fragment.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + fragment.hltDisplacedmumuFilterDoubleMu3Tau3mu + fragment.HLTBphTrackingDisplacedTau3muReg + fragment.hltTau3muTkAllConeTracksIter + fragment.hltTau3muTkVertexProducer + fragment.hltTau3muTkVertexFilter + fragment.HLTEndSequence ) -fragment.HLT_DoubleMu3_TkMu_DsTau3Mu_v4 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9 + fragment.hltPreDoubleMu3TkMuDsTau3Mu + fragment.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + fragment.hltDoubleMu3TrkTau3muL3Filtered + fragment.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + fragment.hltDisplacedmumuFilterDoubleMu3Tau3mu + fragment.HLTTrackerMuonSequenceLowPt + fragment.hltdstau3mumuontrkFltr + fragment.hltdstau3muDisplaced3muVtxProducer + fragment.hltdstau3muDisplaced3muFltr + fragment.HLTEndSequence ) +fragment.HLT_DoubleMu3_Trk_Tau3mu_v12 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50 + fragment.hltPreDoubleMu3TrkTau3mu + fragment.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + fragment.hltDoubleMu3TrkTau3muL3Filtered + fragment.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + fragment.hltDisplacedmumuFilterDoubleMu3Tau3mu + fragment.HLTBphTrackingDisplacedTau3muReg + fragment.hltTau3muTkAllConeTracksIter + fragment.hltTau3muTkVertexProducer + fragment.hltTau3muTkVertexFilter + fragment.HLTEndSequence ) +fragment.HLT_DoubleMu3_TkMu_DsTau3Mu_v4 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50 + fragment.hltPreDoubleMu3TkMuDsTau3Mu + fragment.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + fragment.hltDoubleMu3TrkTau3muL3Filtered + fragment.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + fragment.hltDisplacedmumuFilterDoubleMu3Tau3mu + fragment.HLTTrackerMuonSequenceLowPt + fragment.hltdstau3mumuontrkFltr + fragment.hltdstau3muDisplaced3muVtxProducer + fragment.hltdstau3muDisplaced3muFltr + fragment.HLTEndSequence ) fragment.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu3SQHTT200 + fragment.hltPreDoubleMu4Mass3p8DZPFHT350 + fragment.hltDoubleMuon4L1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltDoubleMuon4L2PreFiltered0) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3DoubleMuon4L1Filtered0) + fragment.hltL3fL1DiMu3SQHT200L3PreFiltered4 + fragment.hltDoubleMuon4Mass3p8Filtered + fragment.hltDoubleMu4Mass3p8DZFilter + fragment.HLTAK4PFJetsSequence + fragment.hltPFHTJet30 + fragment.hltPFHT350Jet30 + fragment.HLTEndSequence ) fragment.HLT_DoubleMu4_MuMuTrk_Displaced_v15 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0er1p5OSIorDoubleMu0er1p4OSIorDoubleMu4OSIorDoubleMu4p5OS + fragment.hltPreDoubleMu4MuMuTrkDisplaced + fragment.hltL1fL1sDoubleMu0er15OSIorDoubleMu0er14OSIorDoubleMu4OSIorDoubleMu4p5OSL1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sDoubleMu0er15OSIorDoubleMu0er14OSIorDoubleMu4OSIorDoubleMu4p5OSL1Filtered0) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu0er15OSIorDoubleMu0er14OSIorDoubleMu4OSIorDoubleMu4p5OSL1Filtered0) + fragment.hltDoubleMu4MuMuDisplacedL3Filtered + fragment.hltDisplacedmumuVtxProducerDoubleMu4MuMu + fragment.hltDisplacedmumuFilterDoubleMu4MuMu + fragment.HLTBphTrackingDisplacedMuMuReg + fragment.hltMuMuTkAllConeTracksIter + fragment.hltMuMuTkVertexProducer + fragment.hltMuMuTkVertexFilter + fragment.HLTEndSequence ) fragment.HLT_Mu3_PFJet40_v16 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu3IorMu3Jet30er2p5 + fragment.hltPreMu3PFJet40 + fragment.hltL1fL1sMu3Jet30L1Filtered0 + fragment.hltL1sSingleJet35ObjectMap + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2fL1sMu3L1f0L2Filtered0) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sMu3L1Filtered0) + fragment.hltL3fL1sMu3L1f0L2f0L3Filtered3 + fragment.HLTAK4PFJetsSequence + fragment.hltMu3JetCollectionsForLeptonPlusPFJets + fragment.hltMu3PFJet40MuCleaned + fragment.HLTEndSequence ) @@ -82530,6 +84362,7 @@ fragment.MC_DoubleMu_TrkIsoVVL_DZ_v11 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0 + fragment.hltPreMCDoubleMuTrkIsoVVLDZ + fragment.hltL1fL1sDoubleMu0HighQL1Filtered0 + fragment.HLTL2muonrecoSequence + cms.ignore(fragment.hltL2pfL1sDoubleMu0L1f0L2doubleMu) + fragment.HLTL3muonrecoSequence + cms.ignore(fragment.hltL1fForIterL3L1fL1sDoubleMu0HighQL1Filtered0) + fragment.hltL3pfL1sDoubleMu0L1f0L2pf0L3doubleMu + fragment.HLTL3muontrkisovvlSequence + fragment.hltDiMuonRelTrkIsoFiltered0p4 + fragment.hltDiMuonRelTrkIsoFiltered0p4DzFiltered0p2 + fragment.HLTEndSequence ) fragment.MC_DoubleMuNoFiltersNoVtx_v7 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0 + fragment.hltPreMCDoubleMuNoFiltersNoVtx + fragment.hltL1fL1sDoubleMu0HighQL1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + cms.ignore(fragment.hltL2fDimuonL1f0L2NoVtx) + fragment.HLTL3NoFiltersNoVtxmuonrecoSequence + fragment.hltL3fDimuonL1f0L2NVL3NoFiltersNoVtx + fragment.HLTEndSequence ) fragment.MC_PFBTagDeepJet_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltPreMCPFBTagDeepJet + fragment.HLTAK4PFJetsSequence + fragment.HLTBtagDeepJetSequencePF + fragment.hltBTagPFDeepJet4p06Single + fragment.HLTEndSequence ) +fragment.MC_Run3_PFScoutingPixelTracking_v16 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sMCRun3PFScoutingPixelTracking + fragment.hltPreMCRun3PFScoutingPixelTracking + fragment.HLTAK4CaloJetsSequence + fragment.HLTPixelOnlyPFScoutingSequence + fragment.hltEgammaR9ID + fragment.HLTL2muonrecoSequenceNoVtx + fragment.HLTL3muonrecoSequenceNoVtx + fragment.hltDisplacedmumuVtxNoMatchingProducer + fragment.HLTMuIsolationSequenceNoVtx + fragment.hltFEDSelectorL1 + fragment.HLTPixelOnlyPFScoutingPackingSequence + fragment.HLTEndSequence ) fragment.AlCa_EcalPi0EBonly_v13 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sAlCaEcalPi0Eta + fragment.hltPreAlCaEcalPi0EBonly + fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.hltSimple3x3Clusters + fragment.hltAlCaPi0RecHitsFilterEBonlyRegional + fragment.hltAlCaPi0EBUncalibrator + fragment.hltAlCaPi0EBRechitsToDigis + fragment.HLTEndSequence ) fragment.AlCa_EcalPi0EEonly_v13 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sAlCaEcalPi0Eta + fragment.hltPreAlCaEcalPi0EEonly + fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.hltSimple3x3Clusters + fragment.hltAlCaPi0RecHitsFilterEEonlyRegional + fragment.hltAlCaPi0EEUncalibrator + fragment.hltAlCaPi0EERechitsToDigis + fragment.HLTEndSequence ) fragment.AlCa_EcalEtaEBonly_v13 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sAlCaEcalPi0Eta + fragment.hltPreAlCaEcalEtaEBonly + fragment.HLTDoFullUnpackingEgammaEcalSequence + fragment.hltSimple3x3Clusters + fragment.hltAlCaEtaRecHitsFilterEBonlyRegional + fragment.hltAlCaEtaEBUncalibrator + fragment.hltAlCaEtaEBRechitsToDigis + fragment.HLTEndSequence ) @@ -82643,7 +84476,7 @@ fragment.HLT_TrkMu6NoFiltersNoVtx_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu3 + fragment.hltPreTrkMu6NoFiltersNoVtx + fragment.hltL1fL1sSingleMu3L1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + cms.ignore(fragment.hltL2fL1sSingleMu3L1f0L2Filtered10OneMuNoVtx) + fragment.HLTL3muonrecoSequenceNoVtx + fragment.hltL3fL1sSingleMu3L1f0L2f10OneMuL3Filtered6NoVtx + fragment.HLTTrackerMuonSequenceNoVtx + fragment.hltSingleTrkMuFiltered6NoVtx + fragment.HLTEndSequence ) fragment.HLT_TrkMu16NoFiltersNoVtx_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleMu7 + fragment.hltPreTrkMu16NoFiltersNoVtx + fragment.hltL1fL1sSingleMu7L1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + cms.ignore(fragment.hltL2fL1sSingleMu7L1f0L2Filtered10OneMuNoVtx) + fragment.HLTL3muonrecoSequenceNoVtx + fragment.hltL3fL1sSingleMu7L1f0L2f10OneMuL3Filtered16NoVtx + fragment.HLTTrackerMuonSequenceNoVtx + fragment.hltSingleTrkMuFiltered16NoVtx + fragment.HLTEndSequence ) fragment.HLT_DoubleTrkMu_16_6_NoFiltersNoVtx_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu0SQ + fragment.hltPreDoubleTrkMu166NoFiltersNoVtx + fragment.hltL1fL1sDoubleMu0SQL1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + cms.ignore(fragment.hltL2pfL1sDoubleMu0SQL1f0L2PreFiltered0NoVtx) + cms.ignore(fragment.hltL2fL1sDoubleMu0SQL1f0L2Filtered10OneMuNoVtx) + fragment.HLTL3muonrecoSequenceNoVtx + fragment.hltL3pfL1sDoubleMu0SQL1f0L2pf0OneMuL3PreFiltered6NoVtx + fragment.hltL3fL1sDoubleMu0SQL1f0L2f10OneMuL3Filtered16NoVtx + fragment.HLTTrackerMuonSequenceNoVtx + fragment.hltDoubleTrkMuFiltered6NoVtx + fragment.hltSingleTrkMuFiltered16NoVtx + fragment.HLTEndSequence ) -fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleTauBigOR + fragment.hltPreDoubleMediumDeepTauIsoPFTauHPS35L2NNeta2p1 + fragment.HLTL2TauTagNNSequence + fragment.hltL2DoubleTauTagNNFilter + fragment.HLTGlobalPFTauHPSSequence + fragment.HLTHPSDeepTauIsoPFTauSequence + fragment.hltHpsSelectedPFTausMediumDitauWPDeepTau + fragment.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatch + fragment.hltHpsDoublePFTau35MediumDitauWPDeepTauL1HLTMatched + fragment.hltHpsDoublePFTau35MediumDitauWPDeepTauDz02 + fragment.HLTEndSequence ) +fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleTauBigOR + fragment.hltPreDoubleMediumDeepTauIsoPFTauHPS35L2NNeta2p1 + fragment.HLTL2TauTagNNSequence + fragment.hltL2DoubleTauTagNNFilter + fragment.HLTGlobalPFTauHPSSequence + fragment.HLTHPSDeepTauIsoPFTauSequence + fragment.hltHpsSelectedPFTausMediumDitauWPDeepTau + fragment.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatch + fragment.hltHpsDoublePFTau35MediumDitauWPDeepTauL1HLTMatched + fragment.HLTEndSequence ) fragment.HLT_DoubleMediumChargedIsoPFTauHPS40_Trk1_eta2p1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleTauBigOR + fragment.hltPreDoubleMediumChargedIsoPFTauHPS40Trk1eta2p1 + fragment.HLTL2TauJetsL1TauSeededSequence + fragment.hltDoubleL2Tau26eta2p2 + fragment.HLTL2p5IsoTauL1TauSeededGlobalSequence + fragment.hltDoubleL2GlobIsoTau26eta2p2 + fragment.HLTGlobalPFTauHPSSequence + fragment.HLTHPSDoublePFTauPt40Eta2p1Trk1 + fragment.HLTHPSMediumChargedIsoPFTauSequence + fragment.hltHpsSelectedPFTausTrackPt1MediumChargedIsolation + fragment.hltHpsDoublePFTau40TrackPt1MediumChargedIsolation + fragment.hltHpsL1JetsHLTDoublePFTauTrackPt1MediumChargedIsolationMatch + fragment.hltHpsDoublePFTau40TrackPt1MediumChargedIsolationL1HLTMatched + fragment.hltHpsDoublePFTau40TrackPt1MediumChargedIsolationDz02 + fragment.HLTEndSequence ) fragment.HLT_DoubleTightChargedIsoPFTauHPS35_Trk1_eta2p1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleTauBigOR + fragment.hltPreDoubleTightChargedIsoPFTauHPS35Trk1eta2p1 + fragment.HLTL2TauJetsL1TauSeededSequence + fragment.hltDoubleL2Tau26eta2p2 + fragment.HLTL2p5IsoTauL1TauSeededGlobalSequence + fragment.hltDoubleL2GlobIsoTau26eta2p2 + fragment.HLTGlobalPFTauHPSSequence + fragment.HLTHPSDoublePFTauPt35Eta2p1Trk1 + fragment.HLTHPSTightChargedIsoPFTauSequence + fragment.hltHpsSelectedPFTausTrackPt1TightChargedIsolation + fragment.hltHpsDoublePFTau35TrackPt1TightChargedIsolation + fragment.hltHpsL1JetsHLTDoublePFTauTrackPt1TightChargedIsolationMatch + fragment.hltHpsDoublePFTau35TrackPt1TightChargedIsolationL1HLTMatched + fragment.hltHpsDoublePFTau35TrackPt1TightChargedIsolationDz02 + fragment.HLTEndSequence ) fragment.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sBigORLooseIsoEGXXerIsoTauYYerdRMin0p3 + fragment.hltPreEle24eta2p1WPTightGsfLooseDeepTauPFTauHPS30eta2p1CrossL1 + fragment.HLTEle24erWPTightGsfForTauSequence + fragment.HLTGlobalPFTauHPSSequence + fragment.hltOverlapFilterIsoEle24IsoTau30WPTightGsfCaloJet5 + fragment.HLTHPSLooseETauWPDeepTauPFTau30Sequence + fragment.hltHpsL1JetsHLTPFTauLooseEtauWPDeepTauMatch + fragment.hltHpsSelectedPFTau30LooseETauWPDeepTauL1HLTMatched + fragment.hltHpsOverlapFilterIsoEle24WPTightGsfLooseETauWPDeepTauPFTau30 + fragment.HLTEndSequence ) @@ -82680,7 +84513,7 @@ fragment.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJetOrHTTOrMuHTT + fragment.hltPreAK8PFJet230SoftDropMass40PFAK8ParticleNetTauTau0p30 + fragment.HLTAK8CaloJetsSequence + fragment.hltAK8SingleCaloJet200 + fragment.HLTAK8PFJetsSequence + fragment.hltAK8PFJetsCorrectedMatchedToCaloJets200 + fragment.hltSingleAK8PFJet230 + fragment.hltAK8PFJets230Constituents + fragment.hltAK8PFSoftDropJets230 + fragment.hltAK8SinglePFJets230SoftDropMass40 + fragment.HLTJetFlavourTagParticleNetSequencePFAK8 + fragment.hltAK8PFJets230SoftDropMass40 + fragment.hltAK8SinglePFJets230SoftDropMass40ParticleNetTauTau0p30 + fragment.HLTEndSequence ) fragment.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJetOrHTTOrMuHTT + fragment.hltPreAK8PFJet250SoftDropMass40PFAK8ParticleNetTauTau0p30 + fragment.HLTAK8CaloJetsSequence + fragment.hltAK8SingleCaloJet200 + fragment.HLTAK8PFJetsSequence + fragment.hltAK8PFJetsCorrectedMatchedToCaloJets200 + fragment.hltSingleAK8PFJet250 + fragment.hltAK8PFJets250Constituents + fragment.hltAK8PFSoftDropJets250 + fragment.hltAK8SinglePFJets250SoftDropMass40 + fragment.HLTJetFlavourTagParticleNetSequencePFAK8 + fragment.hltAK8PFJets250SoftDropMass40 + fragment.hltAK8SinglePFJets250SoftDropMass40ParticleNetTauTau0p30 + fragment.HLTEndSequence ) fragment.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleJetOrHTTOrMuHTT + fragment.hltPreAK8PFJet275SoftDropMass40PFAK8ParticleNetTauTau0p30 + fragment.HLTAK8CaloJetsSequence + fragment.hltAK8SingleCaloJet200 + fragment.HLTAK8PFJetsSequence + fragment.hltAK8PFJetsCorrectedMatchedToCaloJets200 + fragment.hltSingleAK8PFJet275 + fragment.hltAK8PFJets275Constituents + fragment.hltAK8PFSoftDropJets275 + fragment.hltAK8SinglePFJets275SoftDropMass40 + fragment.HLTJetFlavourTagParticleNetSequencePFAK8 + fragment.hltAK8PFJets275SoftDropMass40 + fragment.hltAK8SinglePFJets275SoftDropMass40ParticleNetTauTau0p30 + fragment.HLTEndSequence ) -fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleTauJet + fragment.hltPreDoubleMediumDeepTauIsoPFTauHPS30L2NNeta2p1PFJet60 + fragment.HLTL2TauTagNNSequence + fragment.hltL2DoubleTauJetTagNNFilter + fragment.HLTGlobalPFTauHPSSequence + fragment.HLTHPSDeepTauIsoPFTauSequence + fragment.hltHpsSelectedPFTausMediumDitauWPDeepTauDoubleTauJet + fragment.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatchDoubleTauJet + fragment.hltHpsDoublePFTau30MediumDitauWPDeepTauL1HLTMatchedDoubleTauJet + fragment.hltHpsDoublePFTau30MediumDitauWPDeepTauDz02DoubleTauJet + fragment.HLTAK4PFJetsSequence + fragment.hltPFJetsCorrectedMatchedToL1 + fragment.hlt1PFJet60L1HLTMatched + fragment.hltHpsOverlapFilterDeepTauDoublePFTau30PFJet60 + fragment.HLTEndSequence ) +fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleTauJet + fragment.hltPreDoubleMediumDeepTauIsoPFTauHPS30L2NNeta2p1PFJet60 + fragment.HLTL2TauTagNNSequence + fragment.hltL2DoubleTauJetTagNNFilter + fragment.HLTGlobalPFTauHPSSequence + fragment.HLTHPSDeepTauIsoPFTauSequence + fragment.hltHpsSelectedPFTausMediumDitauWPDeepTauDoubleTauJet + fragment.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatchDoubleTauJet + fragment.hltHpsDoublePFTau30MediumDitauWPDeepTauL1HLTMatchedDoubleTauJet + fragment.HLTAK4PFJetsSequence + fragment.hltPFJetsCorrectedMatchedToL1 + fragment.hlt1PFJet60L1HLTMatched + fragment.hltHpsOverlapFilterDeepTauDoublePFTau30PFJet60 + fragment.HLTEndSequence ) fragment.HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1VBFDiJetIsoTau + fragment.hltPreDoublePFJets40Mass500MediumDeepTau45L2NNMediumDeepTau20eta2p1 + fragment.HLTL2TauTagNNSequence + fragment.hltL2VBFIsoTauNNFilter + fragment.HLTGlobalPFTauHPSSequence + fragment.HLTHPSDeepTauIsoPFTauSequenceForVBFIsoTau + fragment.hltHpsSelectedPFTausMediumDitauWPDeepTauForVBFIsoTau + fragment.hltHpsDoublePFTau20MediumDitauWPDeepTauNoMatch + fragment.hltHpsL1VBFJetsAndIsoTauHLTDoublePFTauMediumDitauWPDeepTauMatch + fragment.hltHpsSinglePFTau45MediumDitauWPDeepTauL1HLTMatched + fragment.HLTAK4PFJetsSequence + fragment.hltRealDijetFilter + fragment.hltVBFIsoTauL1TLooseIDPFJetsMatching + fragment.hltVBFLooseIDPFDummyFilter + fragment.hltMatchedVBFIsoTauTwoPFJetsDoubleHpsDeepTauIsoPF25TauOverlapRemoval + fragment.hltMatchedVBFIsoTauTwoPFJets2CrossCleanedFromDoubleHpsDeepTauIsoPFTauHPS20 + fragment.HLTEndSequence ) fragment.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + fragment.hltPreDoubleL2Mu10NoVtx2ChaVetoL3Mu0DxyMax1cm + fragment.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + fragment.hltL2fL1fMuf0DoubleL2MuNoVtx10Q + fragment.hltL2fDoubleMu10NoVertexL2Filtered + fragment.HLTL3muonrecoSequenceNoVtx + ~fragment.hltL3fDimuonL1f0ppL2NV2Chaf10L3NVf0Veto1Prompt + fragment.HLTEndSequence ) fragment.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + fragment.hltPreDoubleL3Mu1610NoVtxDxyMin0p01cm + fragment.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + fragment.hltL2fL1DoubleMuf0L2DoubleMuNoVtxFiltered7 + fragment.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered15 + fragment.HLTL3NoFiltersNoVtxmuonrecoSequence + fragment.hltL3fL1DoubleMuf0L2NVf15f7L3DoubleMuNVf10Displaced + fragment.hltL3fL1DoubleMuf0L2NVf15f7L3SingleMuNVf16Displaced + fragment.HLTEndSequence ) @@ -82713,6 +84546,32 @@ fragment.HLT_PFMET105_PFJet100_looseRecoiling_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sETMHF90SingleJet60looseRecoiling + fragment.hltPrePFMET105PFJet100looseRecoiling + fragment.HLTRecoMETSequence + fragment.hltMET75 + fragment.HLTAK4CaloJetsSequence + fragment.hltSingleAK4CaloJet70 + fragment.HLTAK4PFJetsSequence + fragment.hltPFJetsCorrectedMatchedToCaloJets70 + fragment.hltSinglePFJet100 + fragment.hltPFMETProducer + fragment.hltPFMET105 + fragment.hltPFJet100PFMET105MinDPhi2 + fragment.HLTEndSequence ) fragment.HLT_PFMET110_PFJet100_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sETMHF90SingleJet60looseRecoiling + fragment.hltPrePFMET110PFJet100 + fragment.HLTRecoMETSequence + fragment.hltMET75 + fragment.HLTAK4CaloJetsSequence + fragment.hltSingleAK4CaloJet70 + fragment.HLTAK4PFJetsSequence + fragment.hltPFJetsCorrectedMatchedToCaloJets70 + fragment.hltSinglePFJet100 + fragment.hltPFMETProducer + fragment.hltPFMET110 + fragment.HLTEndSequence ) fragment.HLT_PFMET110_PFJet100_looseRecoiling_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sETMHF90SingleJet60looseRecoiling + fragment.hltPrePFMET110PFJet100looseRecoiling + fragment.HLTRecoMETSequence + fragment.hltMET75 + fragment.HLTAK4CaloJetsSequence + fragment.hltSingleAK4CaloJet70 + fragment.HLTAK4PFJetsSequence + fragment.hltPFJetsCorrectedMatchedToCaloJets70 + fragment.hltSinglePFJet100 + fragment.hltPFMETProducer + fragment.hltPFMET110 + fragment.hltPFJet100PFMET110MinDPhi2 + fragment.HLTEndSequence ) +fragment.HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + fragment.hltPreDoubleL3Iter4Mu1610NoVtxDxyMin0p01cm + fragment.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + fragment.hltL2fL1DoubleMuf0L2DoubleMuNoVtxFiltered7 + fragment.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered15 + fragment.HLTL3GblIter4DisplacedMuonRecoSequence + fragment.hltL3fL1DoubleMuf0L2NVf15f7L3DoubleMuNVf10DisplacedIter4 + fragment.hltL3fL1DoubleMuf0L2NVf15f7L3SingleMuNVf16DisplacedIter4 + fragment.HLTEndSequence ) +fragment.HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + fragment.hltPreL3Iter4Mu10NoVtxDxyMin0p01cm + fragment.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + fragment.HLTL2muonrecoSequenceNoVtx + fragment.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered7 + fragment.HLTL3GblIter4DisplacedMuonRecoSequence + fragment.hltL3fL1f0L2f0Filtered10GlbDisplacedIter4 + fragment.HLTEndSequence ) +fragment.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT170L1SingleLLPJetDisplacedDijet40DisplacedTrack + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT170 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + fragment.hltIter02DisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIteration4DisplacedJets + fragment.HLTDisplacedTrackRequirementDisplacedJetsLowPt + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDisplacedDijet40DisplacedTrack + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + fragment.hltIter02DisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIteration4DisplacedJets + fragment.HLTDisplacedTrackRequirementDisplacedJetsLowPt + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDisplacedDijet60DisplacedTrack + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt60 + fragment.hltCentralCaloJetptMidPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsMidPt + fragment.hltDisplacedHLTCaloJetCollectionProducerMidPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsMidPt + fragment.hltIter02DisplacedHLTCaloJetCollectionProducerMidPt + fragment.HLTIterativeTrackingIteration4DisplacedJets + fragment.HLTDisplacedTrackRequirementDisplacedJetsMidPt + fragment.HLTEndSequence ) +fragment.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT270L1SingleLLPJetDisplacedDijet40DisplacedTrack + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT270 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + fragment.hltIter02DisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIteration4DisplacedJets + fragment.HLTDisplacedTrackRequirementDisplacedJetsLowPt + fragment.HLTEndSequence ) +fragment.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT320L1SingleLLPJetDisplacedDijet60Inclusive + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT320 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt60 + fragment.hltCentralCaloJetptMidPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsMidPt + fragment.hltDisplacedHLTCaloJetCollectionProducerMidPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsMidPt + fragment.HLTEndSequence ) +fragment.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT420L1SingleLLPJetDisplacedDijet60Inclusive + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT420 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt60 + fragment.hltCentralCaloJetptMidPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsMidPt + fragment.hltDisplacedHLTCaloJetCollectionProducerMidPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsMidPt + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay1nsTrackless + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltSingleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducerSingle + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPtSingle + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPtSingle + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPtSingle + fragment.hltCaloJetTimingProducerSingle + fragment.hltCaloJetTimingFilterSingle1ns + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay2nsInclusive + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltSingleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducerSingle + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPtSingle + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPtSingle + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPtSingle + fragment.hltCaloJetTimingProducerSingle + fragment.hltCaloJetTimingFilterSingle2ns + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay0p5nsTrackless + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + fragment.hltCaloJetTimingProducer + fragment.hltCaloJetTimingFilterDouble0p5ns + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay1nsInclusive + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPt + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + fragment.hltCaloJetTimingProducer + fragment.hltCaloJetTimingFilterDouble1ns + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDisplacedDijet30Inclusive1PtrkShortSig5 + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt30 + fragment.hltCentralCaloJetptLowPt30CollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLow30Pt1PtrkShortSig5 + fragment.hltDisplacedHLTCaloJetCollectionProducerLow30Pt1PtrkShortSig5 + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLow30Pt1PtrkShortSig5 + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDisplacedDijet35Inclusive1PtrkShortSig5 + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt35 + fragment.hltCentralCaloJetptLowPt35CollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLow35Pt1PtrkShortSig5 + fragment.hltDisplacedHLTCaloJetCollectionProducerLow35Pt1PtrkShortSig5 + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLow35Pt1PtrkShortSig5 + fragment.HLTEndSequence ) +fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sVoHTT200SingleLLPJet60 + fragment.hltPreHT200L1SingleLLPJetDisplacedDijet40Inclusive1PtrkShortSig5 + fragment.hltPixelTrackerHVOn + fragment.hltStripTrackerHVOn + fragment.HLTAK4CaloJetsSequence + fragment.hltHtMht + fragment.hltHT200 + fragment.hltEmFraction0p01To0p99CaloJetSelector + fragment.hltDoubleCentralCaloJetpt40 + fragment.hltCentralCaloJetptLowPtCollectionProducer + fragment.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + fragment.HLTIterativeTrackingIteration0ForDisplaced + fragment.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt1PtrkShortSig5 + fragment.hltDisplacedHLTCaloJetCollectionProducerLowPt1PtrkShortSig5 + fragment.HLTIterativeTrackingIter12ForDisplaced + fragment.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt1PtrkShortSig5 + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10Time1ns_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10Time1ns + fragment.HLTDiPho10CaloIdLTime1nsSequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10Time1p2ns_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10Time1p2ns + fragment.HLTDiPho10CaloIdLTime1p2nsSequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10Time1p4ns_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10Time1p4ns + fragment.HLTDiPho10CaloIdLTime1p4nsSequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10Time1p6ns_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10Time1p6ns + fragment.HLTDiPho10CaloIdLTime1p6nsSequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10Time1p8ns_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10Time1p8ns + fragment.HLTDiPho10CaloIdLTime1p8nsSequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10Time2ns_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10Time2ns + fragment.HLTDiPho10CaloIdLTime2nsSequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10sminlt0p1_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10sminlt0p1 + fragment.HLTDiPho10CaloIdLsminlt0p1Sequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10sminlt0p12_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10sminlt0p12 + fragment.HLTDiPho10CaloIdLsminlt0p12Sequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10sminlt0p14_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10sminlt0p14 + fragment.HLTDiPho10CaloIdLsminlt0p14Sequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10sminlt0p16_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10sminlt0p16 + fragment.HLTDiPho10CaloIdLsminlt0p16Sequence + fragment.HLTEndSequence ) +fragment.HLT_DiPhoton10_CaloIdL_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + fragment.hltPreDiPhoton10CaloIdL + fragment.HLTDiPho10CaloIdLSequence + fragment.HLTEndSequence ) fragment.HLT_ExpressMuons_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltPreExpressMuons + fragment.hltExpressMuonsFilter + fragment.HLTEndSequence ) fragment.HLT_OnlineMonitorGroup_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltPreOnlineMonitorGroup + fragment.hltOnlineMonitorGroupFilter + fragment.HLTEndSequence ) fragment.DQM_EcalReconstruction_v1 = cms.Path( fragment.HLTBeginSequence + fragment.hltL1sDQMEcalReconstruction + fragment.hltPreDQMEcalReconstruction + fragment.statusOnGPU + fragment.statusOnGPUFilter + fragment.HLTDoFullUnpackingEgammaEcalWithoutPreshowerSequence + fragment.hltEcalConsumerCPU + fragment.hltEcalConsumerGPU + fragment.HLTEndSequence ) @@ -82791,7 +84650,7 @@ fragment.Dataset_ZeroBias = cms.Path( fragment.HLTDatasetPathBeginSequence + fragment.hltDatasetZeroBias + fragment.hltPreDatasetZeroBias ) -fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.HLT_AK8PFJet360_TrimMass30_v18, fragment.HLT_AK8PFJet380_TrimMass30_v11, fragment.HLT_AK8PFJet400_TrimMass30_v12, fragment.HLT_AK8PFJet420_TrimMass30_v11, fragment.HLT_AK8PFHT750_TrimMass50_v12, fragment.HLT_AK8PFHT800_TrimMass50_v12, fragment.HLT_AK8PFHT850_TrimMass50_v11, fragment.HLT_AK8PFHT900_TrimMass50_v11, fragment.HLT_CaloJet500_NoJetID_v12, fragment.HLT_CaloJet550_NoJetID_v7, fragment.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v4, fragment.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v4, fragment.HLT_Trimuon5_3p5_2_Upsilon_Muon_v5, fragment.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v3, fragment.HLT_DoubleEle25_CaloIdL_MW_v4, fragment.HLT_DoubleEle27_CaloIdL_MW_v4, fragment.HLT_DoubleEle33_CaloIdL_MW_v17, fragment.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v7, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v20, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v20, fragment.HLT_Ele27_Ele37_CaloIdL_MW_v4, fragment.HLT_Mu27_Ele37_CaloIdL_MW_v5, fragment.HLT_Mu37_Ele27_CaloIdL_MW_v5, fragment.HLT_Mu37_TkMu27_v5, fragment.HLT_DoubleMu4_3_Bs_v15, fragment.HLT_DoubleMu4_3_Jpsi_v15, fragment.HLT_DoubleMu4_3_LowMass_v1, fragment.HLT_DoubleMu4_LowMass_Displaced_v1, fragment.HLT_Mu0_L1DoubleMu_v1, fragment.HLT_Mu4_L1DoubleMu_v1, fragment.HLT_DoubleMu3_Trk_Tau3mu_v12, fragment.HLT_DoubleMu3_TkMu_DsTau3Mu_v4, fragment.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8, fragment.HLT_DoubleMu4_MuMuTrk_Displaced_v15, fragment.HLT_Mu3_PFJet40_v16, fragment.HLT_Mu7p5_L2Mu2_Jpsi_v10, fragment.HLT_Mu7p5_L2Mu2_Upsilon_v10, fragment.HLT_Mu7p5_Track2_Jpsi_v11, fragment.HLT_Mu7p5_Track3p5_Jpsi_v11, fragment.HLT_Mu7p5_Track7_Jpsi_v11, fragment.HLT_Mu7p5_Track2_Upsilon_v11, fragment.HLT_Mu7p5_Track3p5_Upsilon_v11, fragment.HLT_Mu7p5_Track7_Upsilon_v11, fragment.HLT_Mu3_L1SingleMu5orSingleMu7_v1, fragment.HLT_DoublePhoton33_CaloIdL_v6, fragment.HLT_DoublePhoton70_v6, fragment.HLT_DoublePhoton85_v14, fragment.HLT_Ele20_WPTight_Gsf_v6, fragment.HLT_Ele15_WPLoose_Gsf_v3, fragment.HLT_Ele17_WPLoose_Gsf_v3, fragment.HLT_Ele20_WPLoose_Gsf_v6, fragment.HLT_Ele20_eta2p1_WPLoose_Gsf_v6, fragment.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4, fragment.HLT_Ele27_WPTight_Gsf_v16, fragment.HLT_Ele28_WPTight_Gsf_v1, fragment.HLT_Ele30_WPTight_Gsf_v1, fragment.HLT_Ele32_WPTight_Gsf_v15, fragment.HLT_Ele35_WPTight_Gsf_v9, fragment.HLT_Ele35_WPTight_Gsf_L1EGMT_v5, fragment.HLT_Ele38_WPTight_Gsf_v9, fragment.HLT_Ele40_WPTight_Gsf_v9, fragment.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v9, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_TightChargedIsoPFTauHPS30_eta2p1_CrossL1_v1, fragment.HLT_HT450_Beamspot_v11, fragment.HLT_HT300_Beamspot_v11, fragment.HLT_ZeroBias_Beamspot_v4, fragment.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_CrossL1_v1, fragment.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_TightID_CrossL1_v1, fragment.HLT_IsoMu27_LooseChargedIsoPFTau20_Trk1_eta2p1_SingleL1_v5, fragment.HLT_IsoMu27_LooseChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, fragment.HLT_IsoMu27_MediumChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, fragment.HLT_IsoMu27_TightChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, fragment.HLT_IsoMu20_v15, fragment.HLT_IsoMu24_v13, fragment.HLT_IsoMu24_eta2p1_v15, fragment.HLT_IsoMu27_v16, fragment.HLT_IsoMu30_v4, fragment.HLT_UncorrectedJetE30_NoBPTX_v6, fragment.HLT_UncorrectedJetE30_NoBPTX3BX_v6, fragment.HLT_UncorrectedJetE60_NoBPTX3BX_v6, fragment.HLT_UncorrectedJetE70_NoBPTX3BX_v6, fragment.HLT_L1SingleMu18_v3, fragment.HLT_L1SingleMu25_v2, fragment.HLT_L1SingleMuCosmics_v1, fragment.HLT_L2Mu10_v7, fragment.HLT_L2Mu10_NoVertex_NoBPTX3BX_v5, fragment.HLT_L2Mu10_NoVertex_NoBPTX_v6, fragment.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4, fragment.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5, fragment.HLT_L2Mu50_v2, fragment.HLT_L2Mu23NoVtx_2Cha_v1, fragment.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v1, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2, fragment.HLT_DoubleL2Mu50_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v2, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v14, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v3, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v3, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v3, fragment.HLT_Mu25_TkMu0_Onia_v8, fragment.HLT_Mu30_TkMu0_Psi_v1, fragment.HLT_Mu30_TkMu0_Upsilon_v1, fragment.HLT_Mu20_TkMu0_Phi_v8, fragment.HLT_Mu25_TkMu0_Phi_v8, fragment.HLT_Mu12_v3, fragment.HLT_Mu15_v3, fragment.HLT_Mu20_v12, fragment.HLT_Mu27_v13, fragment.HLT_Mu50_v13, fragment.HLT_Mu55_v3, fragment.HLT_CascadeMu100_v3, fragment.HLT_HighPtTkMu100_v2, fragment.HLT_DiPFJet15_NoCaloMatched_v16, fragment.HLT_DiPFJet25_NoCaloMatched_v16, fragment.HLT_DiPFJet15_FBEta3_NoCaloMatched_v17, fragment.HLT_DiPFJet25_FBEta3_NoCaloMatched_v17, fragment.HLT_DiPFJetAve40_v14, fragment.HLT_DiPFJetAve60_v14, fragment.HLT_DiPFJetAve80_v13, fragment.HLT_DiPFJetAve140_v13, fragment.HLT_DiPFJetAve200_v13, fragment.HLT_DiPFJetAve260_v14, fragment.HLT_DiPFJetAve320_v14, fragment.HLT_DiPFJetAve400_v14, fragment.HLT_DiPFJetAve500_v14, fragment.HLT_DiPFJetAve15_HFJEC_v17, fragment.HLT_DiPFJetAve25_HFJEC_v17, fragment.HLT_DiPFJetAve35_HFJEC_v17, fragment.HLT_DiPFJetAve60_HFJEC_v15, fragment.HLT_DiPFJetAve80_HFJEC_v16, fragment.HLT_DiPFJetAve100_HFJEC_v16, fragment.HLT_DiPFJetAve160_HFJEC_v16, fragment.HLT_DiPFJetAve220_HFJEC_v16, fragment.HLT_DiPFJetAve300_HFJEC_v16, fragment.HLT_AK8PFJet15_v3, fragment.HLT_AK8PFJet25_v3, fragment.HLT_AK8PFJet40_v16, fragment.HLT_AK8PFJet60_v15, fragment.HLT_AK8PFJet80_v15, fragment.HLT_AK8PFJet140_v15, fragment.HLT_AK8PFJet200_v15, fragment.HLT_AK8PFJet260_v16, fragment.HLT_AK8PFJet320_v16, fragment.HLT_AK8PFJet400_v16, fragment.HLT_AK8PFJet450_v16, fragment.HLT_AK8PFJet500_v16, fragment.HLT_AK8PFJet550_v11, fragment.HLT_PFJet15_v3, fragment.HLT_PFJet25_v3, fragment.HLT_PFJet40_v21, fragment.HLT_PFJet60_v21, fragment.HLT_PFJet80_v20, fragment.HLT_PFJet140_v19, fragment.HLT_PFJet200_v19, fragment.HLT_PFJet260_v20, fragment.HLT_PFJet320_v20, fragment.HLT_PFJet400_v20, fragment.HLT_PFJet450_v21, fragment.HLT_PFJet500_v21, fragment.HLT_PFJet550_v11, fragment.HLT_PFJetFwd15_v3, fragment.HLT_PFJetFwd25_v3, fragment.HLT_PFJetFwd40_v19, fragment.HLT_PFJetFwd60_v19, fragment.HLT_PFJetFwd80_v18, fragment.HLT_PFJetFwd140_v18, fragment.HLT_PFJetFwd200_v18, fragment.HLT_PFJetFwd260_v19, fragment.HLT_PFJetFwd320_v19, fragment.HLT_PFJetFwd400_v19, fragment.HLT_PFJetFwd450_v19, fragment.HLT_PFJetFwd500_v19, fragment.HLT_AK8PFJetFwd15_v3, fragment.HLT_AK8PFJetFwd25_v3, fragment.HLT_AK8PFJetFwd40_v15, fragment.HLT_AK8PFJetFwd60_v14, fragment.HLT_AK8PFJetFwd80_v14, fragment.HLT_AK8PFJetFwd140_v14, fragment.HLT_AK8PFJetFwd200_v14, fragment.HLT_AK8PFJetFwd260_v15, fragment.HLT_AK8PFJetFwd320_v15, fragment.HLT_AK8PFJetFwd400_v15, fragment.HLT_AK8PFJetFwd450_v15, fragment.HLT_AK8PFJetFwd500_v15, fragment.HLT_PFHT180_v17, fragment.HLT_PFHT250_v17, fragment.HLT_PFHT370_v17, fragment.HLT_PFHT430_v17, fragment.HLT_PFHT510_v17, fragment.HLT_PFHT590_v17, fragment.HLT_PFHT680_v17, fragment.HLT_PFHT780_v17, fragment.HLT_PFHT890_v17, fragment.HLT_PFHT1050_v18, fragment.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v12, fragment.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v12, fragment.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v12, fragment.HLT_PFHT700_PFMET95_PFMHT95_IDTight_v12, fragment.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v12, fragment.HLT_PFHT800_PFMET85_PFMHT85_IDTight_v12, fragment.HLT_PFMET110_PFMHT110_IDTight_v20, fragment.HLT_PFMET120_PFMHT120_IDTight_v20, fragment.HLT_PFMET130_PFMHT130_IDTight_v20, fragment.HLT_PFMET140_PFMHT140_IDTight_v20, fragment.HLT_PFMET100_PFMHT100_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET110_PFMHT110_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET120_PFMHT120_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET130_PFMHT130_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET140_PFMHT140_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v9, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v9, fragment.HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9, fragment.HLT_PFMETTypeOne110_PFMHT110_IDTight_v12, fragment.HLT_PFMETTypeOne120_PFMHT120_IDTight_v12, fragment.HLT_PFMETTypeOne130_PFMHT130_IDTight_v12, fragment.HLT_PFMETTypeOne140_PFMHT140_IDTight_v11, fragment.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, fragment.HLT_MonoCentralPFJet80_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, fragment.HLT_MonoCentralPFJet80_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, fragment.HLT_MonoCentralPFJet80_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, fragment.HLT_MonoCentralPFJet80_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, fragment.HLT_L1ETMHadSeeds_v2, fragment.HLT_CaloMHT90_v4, fragment.HLT_CaloMET80_NotCleaned_v4, fragment.HLT_CaloMET90_NotCleaned_v4, fragment.HLT_CaloMET100_NotCleaned_v4, fragment.HLT_CaloMET110_NotCleaned_v4, fragment.HLT_CaloMET250_NotCleaned_v4, fragment.HLT_CaloMET300_NotCleaned_v4, fragment.HLT_CaloMET350_NotCleaned_v4, fragment.HLT_PFMET200_NotCleaned_v9, fragment.HLT_PFMET250_NotCleaned_v9, fragment.HLT_PFMET300_NotCleaned_v9, fragment.HLT_PFMET200_BeamHaloCleaned_v9, fragment.HLT_PFMETTypeOne200_BeamHaloCleaned_v9, fragment.HLT_MET105_IsoTrk50_v9, fragment.HLT_MET120_IsoTrk50_v9, fragment.HLT_SingleJet30_Mu12_SinglePFJet40_v11, fragment.HLT_Mu12eta2p3_v1, fragment.HLT_Mu12eta2p3_PFJet40_v1, fragment.HLT_Mu12_DoublePFJets40_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets100_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets200_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets350_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets40_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets100_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets200_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets40_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets100_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets200_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets350_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets40_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets100_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets200_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets350_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_Photon300_NoHE_v12, fragment.HLT_Mu8_TrkIsoVVL_v12, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v18, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v18, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v19, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v19, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepCSV_1p5_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_CaloBtagDeepCSV_1p5_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v11, fragment.HLT_Mu17_TrkIsoVVL_v13, fragment.HLT_Mu19_TrkIsoVVL_v4, fragment.HLT_BTagMu_AK4DiJet20_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet40_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet70_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet110_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet170_Mu5_v12, fragment.HLT_BTagMu_AK4Jet300_Mu5_v12, fragment.HLT_BTagMu_AK8DiJet170_Mu5_v9, fragment.HLT_BTagMu_AK8Jet170_DoubleMu5_v2, fragment.HLT_BTagMu_AK8Jet300_Mu5_v12, fragment.HLT_Ele15_Ele8_CaloIdL_TrackIdL_IsoVL_v3, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v19, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v15, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v7, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v7, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v15, fragment.HLT_Mu12_DoublePhoton20_v5, fragment.HLT_Photon20_v2, fragment.HLT_Photon33_v5, fragment.HLT_Photon50_v13, fragment.HLT_Photon75_v13, fragment.HLT_Photon90_v13, fragment.HLT_Photon120_v13, fragment.HLT_Photon150_v6, fragment.HLT_Photon175_v14, fragment.HLT_Photon200_v13, fragment.HLT_Photon100EB_TightID_TightIso_v2, fragment.HLT_Photon110EB_TightID_TightIso_v2, fragment.HLT_Photon120EB_TightID_TightIso_v2, fragment.HLT_Photon100EBHE10_v2, fragment.HLT_Photon100EEHE10_v2, fragment.HLT_Photon100EE_TightID_TightIso_v2, fragment.HLT_Photon50_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon75_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ300_PFJetsMJJ400DEta3_v5, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ400_PFJetsMJJ600DEta3_v5, fragment.HLT_Photon90_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon120_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon165_R9Id90_HE10_IsoM_v15, fragment.HLT_Photon90_CaloIdL_PFHT700_v16, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v13, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v13, fragment.HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13, fragment.HLT_Photon35_TwoProngs35_v1, fragment.HLT_IsoMu24_TwoProngs35_v1, fragment.HLT_Dimuon0_Jpsi_L1_NoOS_v7, fragment.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v7, fragment.HLT_Dimuon0_Jpsi_v8, fragment.HLT_Dimuon0_Jpsi_NoVertexing_v8, fragment.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7, fragment.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v7, fragment.HLT_Dimuon0_Jpsi3p5_Muon2_v5, fragment.HLT_Dimuon0_Upsilon_L1_4p5_v9, fragment.HLT_Dimuon0_Upsilon_L1_5_v9, fragment.HLT_Dimuon0_Upsilon_L1_4p5NoOS_v8, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v9, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v7, fragment.HLT_Dimuon0_Upsilon_NoVertexing_v7, fragment.HLT_Dimuon0_Upsilon_L1_5M_v8, fragment.HLT_Dimuon0_LowMass_L1_0er1p5R_v7, fragment.HLT_Dimuon0_LowMass_L1_0er1p5_v8, fragment.HLT_Dimuon0_LowMass_v8, fragment.HLT_Dimuon0_LowMass_L1_4_v8, fragment.HLT_Dimuon0_LowMass_L1_4R_v7, fragment.HLT_Dimuon0_LowMass_L1_TM530_v6, fragment.HLT_Dimuon0_Upsilon_Muon_L1_TM0_v6, fragment.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v6, fragment.HLT_TripleMu_5_3_3_Mass3p8_DZ_v8, fragment.HLT_TripleMu_10_5_5_DZ_v10, fragment.HLT_TripleMu_12_10_5_v10, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v4, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v4, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v4, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v4, fragment.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10, fragment.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v10, fragment.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v10, fragment.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v6, fragment.HLT_DoubleMu4_Jpsi_Displaced_v7, fragment.HLT_DoubleMu4_Jpsi_NoVertexing_v7, fragment.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v7, fragment.HLT_DoubleMu43NoFiltersNoVtx_v4, fragment.HLT_DoubleMu48NoFiltersNoVtx_v4, fragment.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v5, fragment.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v5, fragment.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v1, fragment.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v1, fragment.HLT_DoubleMu40NoFiltersNoVtxDisplaced_v1, fragment.HLT_DoubleMu20_7_Mass0to30_L1_DM4_v7, fragment.HLT_DoubleMu20_7_Mass0to30_L1_DM4EG_v8, fragment.HLT_HT425_v9, fragment.HLT_HT430_DisplacedDijet40_DisplacedTrack_v13, fragment.HLT_HT500_DisplacedDijet40_DisplacedTrack_v13, fragment.HLT_HT430_DisplacedDijet60_DisplacedTrack_v13, fragment.HLT_HT400_DisplacedDijet40_DisplacedTrack_v13, fragment.HLT_HT650_DisplacedDijet60_Inclusive_v13, fragment.HLT_HT550_DisplacedDijet60_Inclusive_v13, fragment.HLT_DiJet110_35_Mjj650_PFMET110_v9, fragment.HLT_DiJet110_35_Mjj650_PFMET120_v9, fragment.HLT_DiJet110_35_Mjj650_PFMET130_v9, fragment.HLT_TripleJet110_35_35_Mjj650_PFMET110_v9, fragment.HLT_TripleJet110_35_35_Mjj650_PFMET120_v9, fragment.HLT_TripleJet110_35_35_Mjj650_PFMET130_v9, fragment.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v13, fragment.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v13, fragment.HLT_Ele28_HighEta_SC20_Mass55_v13, fragment.HLT_DoubleMu20_7_Mass0to30_Photon23_v8, fragment.HLT_Ele15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, fragment.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v16, fragment.HLT_Ele15_IsoVVVL_PFHT450_v16, fragment.HLT_Ele50_IsoVVVL_PFHT450_v16, fragment.HLT_Ele15_IsoVVVL_PFHT600_v20, fragment.HLT_Mu4_TrkIsoVVL_DiPFJet90_40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v15, fragment.HLT_Mu8_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v16, fragment.HLT_Mu10_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT350_PFMETNoMu60_v15, fragment.HLT_Mu15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, fragment.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v15, fragment.HLT_Mu15_IsoVVVL_PFHT450_v15, fragment.HLT_Mu50_IsoVVVL_PFHT450_v15, fragment.HLT_Mu15_IsoVVVL_PFHT600_v19, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET70_PFMHT70_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu70_PFMHTNoMu70_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v2, fragment.HLT_Dimuon10_PsiPrime_Barrel_Seagulls_v7, fragment.HLT_Dimuon20_Jpsi_Barrel_Seagulls_v7, fragment.HLT_Dimuon12_Upsilon_y1p4_v2, fragment.HLT_Dimuon14_Phi_Barrel_Seagulls_v7, fragment.HLT_Dimuon18_PsiPrime_v14, fragment.HLT_Dimuon25_Jpsi_v14, fragment.HLT_Dimuon18_PsiPrime_noCorrL1_v6, fragment.HLT_Dimuon24_Upsilon_noCorrL1_v6, fragment.HLT_Dimuon24_Phi_noCorrL1_v6, fragment.HLT_Dimuon25_Jpsi_noCorrL1_v6, fragment.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v17, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v17, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v17, fragment.HLT_DoubleIsoMu20_eta2p1_v7, fragment.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v6, fragment.HLT_TrkMu16_DoubleTrkMu6NoFiltersNoVtx_v12, fragment.HLT_TrkMu17_DoubleTrkMu8NoFiltersNoVtx_v13, fragment.HLT_Mu8_v12, fragment.HLT_Mu17_v13, fragment.HLT_Mu19_v4, fragment.HLT_Mu17_Photon30_IsoCaloId_v6, fragment.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v16, fragment.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, fragment.HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3, fragment.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, fragment.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v18, fragment.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v16, fragment.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v18, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18, fragment.HLT_Ele115_CaloIdVT_GsfTrkIdT_v14, fragment.HLT_Ele135_CaloIdVT_GsfTrkIdT_v7, fragment.HLT_Ele145_CaloIdVT_GsfTrkIdT_v8, fragment.HLT_Ele200_CaloIdVT_GsfTrkIdT_v8, fragment.HLT_Ele250_CaloIdVT_GsfTrkIdT_v13, fragment.HLT_Ele300_CaloIdVT_GsfTrkIdT_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepCSV_4p5_v3, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v9, fragment.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepCSV_2p94_v8, fragment.HLT_PFHT400_SixPFJet32_v8, fragment.HLT_PFHT450_SixPFJet36_PFBTagDeepCSV_1p59_v7, fragment.HLT_PFHT450_SixPFJet36_v7, fragment.HLT_PFHT400_FivePFJet_100_100_60_30_30_v8, fragment.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepCSV_4p5_v8, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepCSV_4p5_v8, fragment.HLT_PFHT350_v19, fragment.HLT_PFHT350MinPFJet15_v9, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_v5, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_v5, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350MinPFJet15_v11, fragment.HLT_ECALHT800_v10, fragment.HLT_DiSC30_18_EIso_AND_HE_Mass70_v13, fragment.HLT_Physics_v7, fragment.HLT_EphemeralPhysics_v1, fragment.DST_Physics_v7, fragment.HLT_Random_v3, fragment.HLT_ZeroBias_v6, fragment.HLT_ZeroBias_Alignment_v1, fragment.HLT_EphemeralZeroBias_v1, fragment.DST_ZeroBias_v2, fragment.DST_Run3_PFScoutingPixelTracking_v16, fragment.HLT_AK4CaloJet30_v11, fragment.HLT_AK4CaloJet40_v10, fragment.HLT_AK4CaloJet50_v10, fragment.HLT_AK4CaloJet80_v10, fragment.HLT_AK4CaloJet100_v10, fragment.HLT_AK4CaloJet120_v9, fragment.HLT_AK4PFJet30_v19, fragment.HLT_AK4PFJet50_v19, fragment.HLT_AK4PFJet80_v19, fragment.HLT_AK4PFJet100_v19, fragment.HLT_AK4PFJet120_v18, fragment.HLT_SinglePhoton10_Eta3p1ForPPRef_v8, fragment.HLT_SinglePhoton20_Eta3p1ForPPRef_v9, fragment.HLT_SinglePhoton30_Eta3p1ForPPRef_v9, fragment.HLT_Photon20_HoverELoose_v10, fragment.HLT_Photon30_HoverELoose_v10, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v5, fragment.AlCa_EcalPhiSym_v9, fragment.HLT_L1UnpairedBunchBptxMinus_v2, fragment.HLT_L1UnpairedBunchBptxPlus_v2, fragment.HLT_L1NotBptxOR_v3, fragment.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v2, fragment.HLT_CDC_L2cosmic_10_er1p0_v1, fragment.HLT_CDC_L2cosmic_5p5_er1p0_v1, fragment.HLT_HcalNZS_v13, fragment.HLT_HcalPhiSym_v15, fragment.HLT_HcalIsolatedbunch_v5, fragment.HLT_IsoTrackHB_v4, fragment.HLT_IsoTrackHE_v4, fragment.HLT_ZeroBias_FirstCollisionAfterAbortGap_v5, fragment.HLT_ZeroBias_IsolatedBunches_v5, fragment.HLT_ZeroBias_FirstCollisionInTrain_v4, fragment.HLT_ZeroBias_LastCollisionInTrain_v3, fragment.HLT_ZeroBias_FirstBXAfterTrain_v3, fragment.AlCa_RPCMuonNormalisation_v13, fragment.AlCa_LumiPixelsCounts_Random_v2, fragment.AlCa_LumiPixelsCounts_ZeroBias_v2, fragment.MC_ReducedIterativeTracking_v12, fragment.MC_PFMET_v17, fragment.MC_AK4PFJets_v17, fragment.MC_PFBTagDeepCSV_v10, fragment.MC_PFHT_v16, fragment.MC_PFMHT_v16, fragment.MC_CaloMET_v8, fragment.MC_CaloMET_JetIdCleaned_v9, fragment.MC_AK4CaloJets_v9, fragment.MC_AK4CaloJetsFromPV_v8, fragment.MC_CaloBTagDeepCSV_v8, fragment.MC_CaloHT_v8, fragment.MC_CaloMHT_v8, fragment.MC_AK8PFJets_v17, fragment.MC_AK8TrimPFJets_v17, fragment.MC_AK8PFHT_v16, fragment.MC_AK8CaloHT_v8, fragment.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v13, fragment.MC_DoubleEle5_CaloIdL_MW_v15, fragment.MC_Ele5_WPTight_Gsf_v8, fragment.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v15, fragment.MC_IsoMu_v15, fragment.MC_DoubleMu_TrkIsoVVL_DZ_v11, fragment.MC_DoubleMuNoFiltersNoVtx_v7, fragment.MC_PFBTagDeepJet_v1, fragment.AlCa_EcalPi0EBonly_v13, fragment.AlCa_EcalPi0EEonly_v13, fragment.AlCa_EcalEtaEBonly_v13, fragment.AlCa_EcalEtaEEonly_v13, fragment.HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12, fragment.HLT_MediumChargedIsoPFTau200HighPtRelaxedIso_Trk50_eta2p1_v12, fragment.HLT_MediumChargedIsoPFTau220HighPtRelaxedIso_Trk50_eta2p1_v12, fragment.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v9, fragment.HLT_Rsq0p35_v15, fragment.HLT_Rsq0p40_v15, fragment.HLT_RsqMR300_Rsq0p09_MR200_v15, fragment.HLT_RsqMR320_Rsq0p09_MR200_v15, fragment.HLT_RsqMR300_Rsq0p09_MR200_4jet_v15, fragment.HLT_RsqMR320_Rsq0p09_MR200_4jet_v15, fragment.HLT_IsoMu27_MET90_v3, fragment.HLT_VBF_DoubleLooseChargedIsoPFTau20_Trk1_eta2p1_v3, fragment.HLT_VBF_DoubleLooseChargedIsoPFTauHPS20_Trk1_eta2p1_v1, fragment.HLT_VBF_DoubleMediumChargedIsoPFTauHPS20_Trk1_eta2p1_v1, fragment.HLT_VBF_DoubleTightChargedIsoPFTauHPS20_Trk1_eta2p1_v1, fragment.HLT_Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50_v5, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v5, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ600DEta3_v5, fragment.HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9, fragment.HLT_PFMETNoMu100_PFMHTNoMu100_IDTight_PFHT60_v9, fragment.HLT_PFMETTypeOne100_PFMHT100_IDTight_PFHT60_v9, fragment.HLT_Mu18_Mu9_SameSign_v4, fragment.HLT_Mu18_Mu9_SameSign_DZ_v4, fragment.HLT_Mu18_Mu9_v4, fragment.HLT_Mu18_Mu9_DZ_v4, fragment.HLT_Mu20_Mu10_SameSign_v4, fragment.HLT_Mu20_Mu10_SameSign_DZ_v4, fragment.HLT_Mu20_Mu10_v4, fragment.HLT_Mu20_Mu10_DZ_v4, fragment.HLT_Mu23_Mu12_SameSign_v4, fragment.HLT_Mu23_Mu12_SameSign_DZ_v4, fragment.HLT_Mu23_Mu12_v4, fragment.HLT_Mu23_Mu12_DZ_v4, fragment.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v6, fragment.HLT_DoubleMu2_Jpsi_DoubleTkMu0_Phi_v5, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10, fragment.HLT_TripleMu_5_3_3_Mass3p8_DCA_v3, fragment.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_QuadPFJet98_83_71_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet103_88_75_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet105_88_76_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet111_90_80_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet98_83_71_15_v5, fragment.HLT_QuadPFJet103_88_75_15_v5, fragment.HLT_QuadPFJet105_88_76_15_v5, fragment.HLT_QuadPFJet111_90_80_15_v5, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p17_v2, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p1_v2, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_p02_v3, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np2_v2, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np4_v2, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_v2, fragment.HLT_Mu12_IP6_ToCSCS_v1, fragment.HLT_Mu12_IP6_part0_v2, fragment.HLT_Mu12_IP6_part1_v2, fragment.HLT_Mu12_IP6_part2_v2, fragment.HLT_Mu12_IP6_part3_v2, fragment.HLT_Mu12_IP6_part4_v2, fragment.HLT_Mu9_IP5_ToCSCS_v1, fragment.HLT_Mu9_IP5_part0_v2, fragment.HLT_Mu9_IP5_part1_v2, fragment.HLT_Mu9_IP5_part2_v2, fragment.HLT_Mu9_IP5_part3_v2, fragment.HLT_Mu9_IP5_part4_v2, fragment.HLT_Mu7_IP4_ToCSCS_v1, fragment.HLT_Mu7_IP4_part0_v2, fragment.HLT_Mu7_IP4_part1_v2, fragment.HLT_Mu7_IP4_part2_v2, fragment.HLT_Mu7_IP4_part3_v2, fragment.HLT_Mu7_IP4_part4_v2, fragment.HLT_Mu9_IP4_ToCSCS_v1, fragment.HLT_Mu9_IP4_part0_v2, fragment.HLT_Mu9_IP4_part1_v2, fragment.HLT_Mu9_IP4_part2_v2, fragment.HLT_Mu9_IP4_part3_v2, fragment.HLT_Mu9_IP4_part4_v2, fragment.HLT_Mu8_IP5_ToCSCS_v1, fragment.HLT_Mu8_IP5_part0_v2, fragment.HLT_Mu8_IP5_part1_v2, fragment.HLT_Mu8_IP5_part2_v2, fragment.HLT_Mu8_IP5_part3_v2, fragment.HLT_Mu8_IP5_part4_v2, fragment.HLT_Mu8_IP6_ToCSCS_v1, fragment.HLT_Mu8_IP6_part0_v2, fragment.HLT_Mu8_IP6_part1_v2, fragment.HLT_Mu8_IP6_part2_v2, fragment.HLT_Mu8_IP6_part3_v2, fragment.HLT_Mu8_IP6_part4_v2, fragment.HLT_Mu9_IP6_ToCSCS_v1, fragment.HLT_Mu9_IP6_part0_v3, fragment.HLT_Mu9_IP6_part1_v3, fragment.HLT_Mu9_IP6_part2_v3, fragment.HLT_Mu9_IP6_part3_v3, fragment.HLT_Mu9_IP6_part4_v3, fragment.HLT_Mu8_IP3_ToCSCS_v1, fragment.HLT_Mu8_IP3_part0_v3, fragment.HLT_Mu8_IP3_part1_v3, fragment.HLT_Mu8_IP3_part2_v3, fragment.HLT_Mu8_IP3_part3_v3, fragment.HLT_Mu8_IP3_part4_v3, fragment.HLT_Mu9_IP0_part0_v2, fragment.HLT_Mu9_IP3_part0_v2, fragment.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_TrkMu6NoFiltersNoVtx_v1, fragment.HLT_TrkMu16NoFiltersNoVtx_v1, fragment.HLT_DoubleTrkMu_16_6_NoFiltersNoVtx_v1, fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1, fragment.HLT_DoubleMediumChargedIsoPFTauHPS40_Trk1_eta2p1_v1, fragment.HLT_DoubleTightChargedIsoPFTauHPS35_Trk1_eta2p1_v1, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, fragment.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v1, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v1, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v1, fragment.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v1, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v1, fragment.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepJet_4p5_v1, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepJet_4p5_v1, fragment.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepJet_2p94_v1, fragment.HLT_PFHT450_SixPFJet36_PFBTagDeepJet_1p59_v1, fragment.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet103_88_75_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet105_88_76_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet111_90_80_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet98_83_71_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v1, fragment.HLT_QuadPFJet70_50_40_30_v1, fragment.HLT_QuadPFJet70_50_40_30_PFBTagParticleNet_2BTagSum0p65_v1, fragment.HLT_QuadPFJet70_50_40_35_PFBTagParticleNet_2BTagSum0p65_v1, fragment.HLT_QuadPFJet70_50_45_35_PFBTagParticleNet_2BTagSum0p65_v1, fragment.HLT_AK8PFJet230_SoftDropMass40_v1, fragment.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, fragment.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, fragment.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, fragment.HLT_AK8PFJet400_SoftDropMass40_v1, fragment.HLT_AK8PFJet425_SoftDropMass40_v1, fragment.HLT_AK8PFJet450_SoftDropMass40_v1, fragment.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, fragment.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, fragment.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1, fragment.HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v1, fragment.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1, fragment.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v1, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v1, fragment.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v1, fragment.HLT_L1Mu6HT240_v1, fragment.HLT_Mu6HT240_DisplacedDijet30_Inclusive0PtrkShortSig5_v1, fragment.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v1, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v1, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v1, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v1, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v1, fragment.HLT_HT430_DisplacedDijet30_Inclusive1PtrkShortSig5_v1, fragment.HLT_HT430_DisplacedDijet35_Inclusive1PtrkShortSig5_v1, fragment.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v1, fragment.HLT_CaloMET60_DTCluster50_v1, fragment.HLT_CaloMET60_DTClusterNoMB1S50_v1, fragment.HLT_L1MET_DTCluster50_v1, fragment.HLT_L1MET_DTClusterNoMB1S50_v1, fragment.HLT_CscCluster_Loose_v1, fragment.HLT_CscCluster_Medium_v1, fragment.HLT_CscCluster_Tight_v1, fragment.HLT_L1CSCShower_DTCluster50_v1, fragment.HLT_L1CSCShower_DTCluster75_v1, fragment.HLT_PFMET105_IsoTrk50_v1, fragment.HLT_PFMET105_PFJet100_looseRecoiling_v1, fragment.HLT_PFMET110_PFJet100_v1, fragment.HLT_PFMET110_PFJet100_looseRecoiling_v1, fragment.HLT_ExpressMuons_v1, fragment.HLT_OnlineMonitorGroup_v1, fragment.DQM_EcalReconstruction_v1, fragment.DQM_HcalReconstruction_v1, fragment.DQM_PixelReconstruction_v1, fragment.HLT_PPSMaxTracksPerArm1_v1, fragment.HLT_PPSMaxTracksPerRP4_v1, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.ScoutingPFOutput, fragment.Dataset_AlCaLumiPixelCountsExpress, fragment.Dataset_AlCaLumiPixelCountsPrompt, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPPS, fragment.Dataset_AlCaPhiSym, fragment.Dataset_BTagMu, fragment.Dataset_Commissioning, fragment.Dataset_Cosmics, fragment.Dataset_DQMGPUvsCPU, fragment.Dataset_DQMOnlineBeamspot, fragment.Dataset_DisplacedJet, fragment.Dataset_DoubleMuon, fragment.Dataset_DoubleMuonLowMass, fragment.Dataset_EGamma, fragment.Dataset_EcalLaser, fragment.Dataset_EmptyBX, fragment.Dataset_EphemeralHLTPhysics0, fragment.Dataset_EphemeralHLTPhysics1, fragment.Dataset_EphemeralHLTPhysics2, fragment.Dataset_EphemeralHLTPhysics3, fragment.Dataset_EphemeralHLTPhysics4, fragment.Dataset_EphemeralHLTPhysics5, fragment.Dataset_EphemeralHLTPhysics6, fragment.Dataset_EphemeralHLTPhysics7, fragment.Dataset_EphemeralZeroBias0, fragment.Dataset_EphemeralZeroBias1, fragment.Dataset_EphemeralZeroBias2, fragment.Dataset_EphemeralZeroBias3, fragment.Dataset_EphemeralZeroBias4, fragment.Dataset_EphemeralZeroBias5, fragment.Dataset_EphemeralZeroBias6, fragment.Dataset_EphemeralZeroBias7, fragment.Dataset_EventDisplay, fragment.Dataset_ExpressAlignment, fragment.Dataset_ExpressPhysics, fragment.Dataset_FSQJet1, fragment.Dataset_FSQJet2, fragment.Dataset_HINCaloJets, fragment.Dataset_HINPFJets, fragment.Dataset_HLTMonitor, fragment.Dataset_HLTPhysics, fragment.Dataset_HcalNZS, fragment.Dataset_HighPtLowerPhotons, fragment.Dataset_HighPtPhoton30AndZ, fragment.Dataset_IsolatedBunch, fragment.Dataset_JetHT, fragment.Dataset_L1Accept, fragment.Dataset_MET, fragment.Dataset_MonteCarlo, fragment.Dataset_MuonEG, fragment.Dataset_NoBPTX, fragment.Dataset_OnlineMonitor, fragment.Dataset_ParkingBPH1, fragment.Dataset_ParkingBPH2, fragment.Dataset_ParkingBPH3, fragment.Dataset_ParkingBPH4, fragment.Dataset_ParkingBPH5, fragment.Dataset_ParkingBPHPromptCSCS, fragment.Dataset_RPCMonitor, fragment.Dataset_ScoutingPFMonitor, fragment.Dataset_ScoutingPFRun3, fragment.Dataset_SingleMuon, fragment.Dataset_Tau, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_ZeroBias, )) +fragment.schedule = cms.Schedule( *(fragment.HLTriggerFirstPath, fragment.Status_OnCPU, fragment.Status_OnGPU, fragment.HLT_AK8PFJet360_TrimMass30_v18, fragment.HLT_AK8PFJet380_TrimMass30_v11, fragment.HLT_AK8PFJet400_TrimMass30_v12, fragment.HLT_AK8PFJet420_TrimMass30_v11, fragment.HLT_AK8PFHT750_TrimMass50_v12, fragment.HLT_AK8PFHT800_TrimMass50_v12, fragment.HLT_AK8PFHT850_TrimMass50_v11, fragment.HLT_AK8PFHT900_TrimMass50_v11, fragment.HLT_CaloJet500_NoJetID_v12, fragment.HLT_CaloJet550_NoJetID_v7, fragment.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v4, fragment.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v4, fragment.HLT_Trimuon5_3p5_2_Upsilon_Muon_v5, fragment.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v3, fragment.HLT_DoubleEle25_CaloIdL_MW_v4, fragment.HLT_DoubleEle27_CaloIdL_MW_v4, fragment.HLT_DoubleEle33_CaloIdL_MW_v17, fragment.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v7, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v20, fragment.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v20, fragment.HLT_Ele27_Ele37_CaloIdL_MW_v4, fragment.HLT_Mu27_Ele37_CaloIdL_MW_v5, fragment.HLT_Mu37_Ele27_CaloIdL_MW_v5, fragment.HLT_Mu37_TkMu27_v5, fragment.HLT_DoubleMu4_3_Bs_v15, fragment.HLT_DoubleMu4_3_Jpsi_v15, fragment.HLT_DoubleMu4_3_LowMass_v1, fragment.HLT_DoubleMu4_LowMass_Displaced_v1, fragment.HLT_Mu0_L1DoubleMu_v1, fragment.HLT_Mu4_L1DoubleMu_v1, fragment.HLT_DoubleMu3_Trk_Tau3mu_v12, fragment.HLT_DoubleMu3_TkMu_DsTau3Mu_v4, fragment.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8, fragment.HLT_DoubleMu4_MuMuTrk_Displaced_v15, fragment.HLT_Mu3_PFJet40_v16, fragment.HLT_Mu7p5_L2Mu2_Jpsi_v10, fragment.HLT_Mu7p5_L2Mu2_Upsilon_v10, fragment.HLT_Mu7p5_Track2_Jpsi_v11, fragment.HLT_Mu7p5_Track3p5_Jpsi_v11, fragment.HLT_Mu7p5_Track7_Jpsi_v11, fragment.HLT_Mu7p5_Track2_Upsilon_v11, fragment.HLT_Mu7p5_Track3p5_Upsilon_v11, fragment.HLT_Mu7p5_Track7_Upsilon_v11, fragment.HLT_Mu3_L1SingleMu5orSingleMu7_v1, fragment.HLT_DoublePhoton33_CaloIdL_v6, fragment.HLT_DoublePhoton70_v6, fragment.HLT_DoublePhoton85_v14, fragment.HLT_Ele20_WPTight_Gsf_v6, fragment.HLT_Ele15_WPLoose_Gsf_v3, fragment.HLT_Ele17_WPLoose_Gsf_v3, fragment.HLT_Ele20_WPLoose_Gsf_v6, fragment.HLT_Ele20_eta2p1_WPLoose_Gsf_v6, fragment.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4, fragment.HLT_Ele27_WPTight_Gsf_v16, fragment.HLT_Ele28_WPTight_Gsf_v1, fragment.HLT_Ele30_WPTight_Gsf_v1, fragment.HLT_Ele32_WPTight_Gsf_v15, fragment.HLT_Ele35_WPTight_Gsf_v9, fragment.HLT_Ele35_WPTight_Gsf_L1EGMT_v5, fragment.HLT_Ele38_WPTight_Gsf_v9, fragment.HLT_Ele40_WPTight_Gsf_v9, fragment.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v9, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_TightChargedIsoPFTauHPS30_eta2p1_CrossL1_v1, fragment.HLT_HT450_Beamspot_v11, fragment.HLT_HT300_Beamspot_v11, fragment.HLT_ZeroBias_Beamspot_v4, fragment.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_CrossL1_v1, fragment.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_TightID_CrossL1_v1, fragment.HLT_IsoMu27_LooseChargedIsoPFTau20_Trk1_eta2p1_SingleL1_v5, fragment.HLT_IsoMu27_LooseChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, fragment.HLT_IsoMu27_MediumChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, fragment.HLT_IsoMu27_TightChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, fragment.HLT_IsoMu20_v15, fragment.HLT_IsoMu24_v13, fragment.HLT_IsoMu24_eta2p1_v15, fragment.HLT_IsoMu27_v16, fragment.HLT_IsoMu30_v4, fragment.HLT_UncorrectedJetE30_NoBPTX_v6, fragment.HLT_UncorrectedJetE30_NoBPTX3BX_v6, fragment.HLT_UncorrectedJetE60_NoBPTX3BX_v6, fragment.HLT_UncorrectedJetE70_NoBPTX3BX_v6, fragment.HLT_L1SingleMu18_v3, fragment.HLT_L1SingleMu25_v2, fragment.HLT_L1SingleMuCosmics_v1, fragment.HLT_L2Mu10_v7, fragment.HLT_L2Mu10_NoVertex_NoBPTX3BX_v5, fragment.HLT_L2Mu10_NoVertex_NoBPTX_v6, fragment.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4, fragment.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5, fragment.HLT_L2Mu50_v2, fragment.HLT_L2Mu23NoVtx_2Cha_v1, fragment.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v1, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2, fragment.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2, fragment.HLT_DoubleL2Mu50_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_v2, fragment.HLT_DoubleL2Mu23NoVtx_2Cha_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_NoL2Matched_v2, fragment.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v2, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v14, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v3, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v3, fragment.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5, fragment.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v3, fragment.HLT_Mu25_TkMu0_Onia_v8, fragment.HLT_Mu30_TkMu0_Psi_v1, fragment.HLT_Mu30_TkMu0_Upsilon_v1, fragment.HLT_Mu20_TkMu0_Phi_v8, fragment.HLT_Mu25_TkMu0_Phi_v8, fragment.HLT_Mu12_v3, fragment.HLT_Mu15_v3, fragment.HLT_Mu20_v12, fragment.HLT_Mu27_v13, fragment.HLT_Mu50_v13, fragment.HLT_Mu55_v3, fragment.HLT_CascadeMu100_v3, fragment.HLT_HighPtTkMu100_v2, fragment.HLT_DiPFJet15_NoCaloMatched_v16, fragment.HLT_DiPFJet25_NoCaloMatched_v16, fragment.HLT_DiPFJet15_FBEta3_NoCaloMatched_v17, fragment.HLT_DiPFJet25_FBEta3_NoCaloMatched_v17, fragment.HLT_DiPFJetAve40_v14, fragment.HLT_DiPFJetAve60_v14, fragment.HLT_DiPFJetAve80_v13, fragment.HLT_DiPFJetAve140_v13, fragment.HLT_DiPFJetAve200_v13, fragment.HLT_DiPFJetAve260_v14, fragment.HLT_DiPFJetAve320_v14, fragment.HLT_DiPFJetAve400_v14, fragment.HLT_DiPFJetAve500_v14, fragment.HLT_DiPFJetAve15_HFJEC_v17, fragment.HLT_DiPFJetAve25_HFJEC_v17, fragment.HLT_DiPFJetAve35_HFJEC_v17, fragment.HLT_DiPFJetAve60_HFJEC_v15, fragment.HLT_DiPFJetAve80_HFJEC_v16, fragment.HLT_DiPFJetAve100_HFJEC_v16, fragment.HLT_DiPFJetAve160_HFJEC_v16, fragment.HLT_DiPFJetAve220_HFJEC_v16, fragment.HLT_DiPFJetAve300_HFJEC_v16, fragment.HLT_AK8PFJet15_v3, fragment.HLT_AK8PFJet25_v3, fragment.HLT_AK8PFJet40_v16, fragment.HLT_AK8PFJet60_v15, fragment.HLT_AK8PFJet80_v15, fragment.HLT_AK8PFJet140_v15, fragment.HLT_AK8PFJet200_v15, fragment.HLT_AK8PFJet260_v16, fragment.HLT_AK8PFJet320_v16, fragment.HLT_AK8PFJet400_v16, fragment.HLT_AK8PFJet450_v16, fragment.HLT_AK8PFJet500_v16, fragment.HLT_AK8PFJet550_v11, fragment.HLT_PFJet15_v3, fragment.HLT_PFJet25_v3, fragment.HLT_PFJet40_v21, fragment.HLT_PFJet60_v21, fragment.HLT_PFJet80_v20, fragment.HLT_PFJet140_v19, fragment.HLT_PFJet200_v19, fragment.HLT_PFJet260_v20, fragment.HLT_PFJet320_v20, fragment.HLT_PFJet400_v20, fragment.HLT_PFJet450_v21, fragment.HLT_PFJet500_v21, fragment.HLT_PFJet550_v11, fragment.HLT_PFJetFwd15_v3, fragment.HLT_PFJetFwd25_v3, fragment.HLT_PFJetFwd40_v19, fragment.HLT_PFJetFwd60_v19, fragment.HLT_PFJetFwd80_v18, fragment.HLT_PFJetFwd140_v18, fragment.HLT_PFJetFwd200_v18, fragment.HLT_PFJetFwd260_v19, fragment.HLT_PFJetFwd320_v19, fragment.HLT_PFJetFwd400_v19, fragment.HLT_PFJetFwd450_v19, fragment.HLT_PFJetFwd500_v19, fragment.HLT_AK8PFJetFwd15_v3, fragment.HLT_AK8PFJetFwd25_v3, fragment.HLT_AK8PFJetFwd40_v15, fragment.HLT_AK8PFJetFwd60_v14, fragment.HLT_AK8PFJetFwd80_v14, fragment.HLT_AK8PFJetFwd140_v14, fragment.HLT_AK8PFJetFwd200_v14, fragment.HLT_AK8PFJetFwd260_v15, fragment.HLT_AK8PFJetFwd320_v15, fragment.HLT_AK8PFJetFwd400_v15, fragment.HLT_AK8PFJetFwd450_v15, fragment.HLT_AK8PFJetFwd500_v15, fragment.HLT_PFHT180_v17, fragment.HLT_PFHT250_v17, fragment.HLT_PFHT370_v17, fragment.HLT_PFHT430_v17, fragment.HLT_PFHT510_v17, fragment.HLT_PFHT590_v17, fragment.HLT_PFHT680_v17, fragment.HLT_PFHT780_v17, fragment.HLT_PFHT890_v17, fragment.HLT_PFHT1050_v18, fragment.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v12, fragment.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v12, fragment.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v12, fragment.HLT_PFHT700_PFMET95_PFMHT95_IDTight_v12, fragment.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v12, fragment.HLT_PFHT800_PFMET85_PFMHT85_IDTight_v12, fragment.HLT_PFMET110_PFMHT110_IDTight_v20, fragment.HLT_PFMET120_PFMHT120_IDTight_v20, fragment.HLT_PFMET130_PFMHT130_IDTight_v20, fragment.HLT_PFMET140_PFMHT140_IDTight_v20, fragment.HLT_PFMET100_PFMHT100_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET110_PFMHT110_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET120_PFMHT120_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET130_PFMHT130_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET140_PFMHT140_IDTight_CaloBTagDeepCSV_3p1_v8, fragment.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v9, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v9, fragment.HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9, fragment.HLT_PFMETTypeOne110_PFMHT110_IDTight_v12, fragment.HLT_PFMETTypeOne120_PFMHT120_IDTight_v12, fragment.HLT_PFMETTypeOne130_PFMHT130_IDTight_v12, fragment.HLT_PFMETTypeOne140_PFMHT140_IDTight_v11, fragment.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, fragment.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, fragment.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, fragment.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, fragment.HLT_MonoCentralPFJet80_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, fragment.HLT_MonoCentralPFJet80_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, fragment.HLT_MonoCentralPFJet80_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, fragment.HLT_MonoCentralPFJet80_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, fragment.HLT_L1ETMHadSeeds_v2, fragment.HLT_CaloMHT90_v4, fragment.HLT_CaloMET80_NotCleaned_v4, fragment.HLT_CaloMET90_NotCleaned_v4, fragment.HLT_CaloMET100_NotCleaned_v4, fragment.HLT_CaloMET110_NotCleaned_v4, fragment.HLT_CaloMET250_NotCleaned_v4, fragment.HLT_CaloMET300_NotCleaned_v4, fragment.HLT_CaloMET350_NotCleaned_v4, fragment.HLT_PFMET200_NotCleaned_v9, fragment.HLT_PFMET250_NotCleaned_v9, fragment.HLT_PFMET300_NotCleaned_v9, fragment.HLT_PFMET200_BeamHaloCleaned_v9, fragment.HLT_PFMETTypeOne200_BeamHaloCleaned_v9, fragment.HLT_MET105_IsoTrk50_v9, fragment.HLT_MET120_IsoTrk50_v9, fragment.HLT_SingleJet30_Mu12_SinglePFJet40_v11, fragment.HLT_Mu12eta2p3_v1, fragment.HLT_Mu12eta2p3_PFJet40_v1, fragment.HLT_Mu12_DoublePFJets40_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets100_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets200_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets350_PFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets40_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets100_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets200_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, fragment.HLT_Mu12_DoublePFJets40_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets100_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets200_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets350_PFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets40_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets100_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets200_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets350_PFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, fragment.HLT_Photon300_NoHE_v12, fragment.HLT_Mu8_TrkIsoVVL_v12, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v18, fragment.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v18, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v19, fragment.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v19, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v13, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepCSV_1p5_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_CaloBtagDeepCSV_1p5_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v11, fragment.HLT_Mu17_TrkIsoVVL_v13, fragment.HLT_Mu19_TrkIsoVVL_v4, fragment.HLT_BTagMu_AK4DiJet20_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet40_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet70_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet110_Mu5_v13, fragment.HLT_BTagMu_AK4DiJet170_Mu5_v12, fragment.HLT_BTagMu_AK4Jet300_Mu5_v12, fragment.HLT_BTagMu_AK8DiJet170_Mu5_v9, fragment.HLT_BTagMu_AK8Jet170_DoubleMu5_v2, fragment.HLT_BTagMu_AK8Jet300_Mu5_v12, fragment.HLT_Ele15_Ele8_CaloIdL_TrackIdL_IsoVL_v3, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v19, fragment.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v19, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v15, fragment.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v7, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v7, fragment.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v15, fragment.HLT_Mu12_DoublePhoton20_v5, fragment.HLT_Photon20_v2, fragment.HLT_Photon33_v5, fragment.HLT_Photon50_v13, fragment.HLT_Photon75_v13, fragment.HLT_Photon90_v13, fragment.HLT_Photon120_v13, fragment.HLT_Photon150_v6, fragment.HLT_Photon175_v14, fragment.HLT_Photon200_v13, fragment.HLT_Photon100EB_TightID_TightIso_v2, fragment.HLT_Photon110EB_TightID_TightIso_v2, fragment.HLT_Photon120EB_TightID_TightIso_v2, fragment.HLT_Photon100EBHE10_v2, fragment.HLT_Photon100EEHE10_v2, fragment.HLT_Photon100EE_TightID_TightIso_v2, fragment.HLT_Photon50_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon75_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ300_PFJetsMJJ400DEta3_v5, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ400_PFJetsMJJ600DEta3_v5, fragment.HLT_Photon90_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon120_R9Id90_HE10_IsoM_v14, fragment.HLT_Photon165_R9Id90_HE10_IsoM_v15, fragment.HLT_Photon90_CaloIdL_PFHT700_v16, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v13, fragment.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v13, fragment.HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13, fragment.HLT_Photon35_TwoProngs35_v1, fragment.HLT_IsoMu24_TwoProngs35_v1, fragment.HLT_Dimuon0_Jpsi_L1_NoOS_v7, fragment.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v7, fragment.HLT_Dimuon0_Jpsi_v8, fragment.HLT_Dimuon0_Jpsi_NoVertexing_v8, fragment.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7, fragment.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v7, fragment.HLT_Dimuon0_Jpsi3p5_Muon2_v5, fragment.HLT_Dimuon0_Upsilon_L1_4p5_v9, fragment.HLT_Dimuon0_Upsilon_L1_5_v9, fragment.HLT_Dimuon0_Upsilon_L1_4p5NoOS_v8, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v9, fragment.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v7, fragment.HLT_Dimuon0_Upsilon_NoVertexing_v7, fragment.HLT_Dimuon0_Upsilon_L1_5M_v8, fragment.HLT_Dimuon0_LowMass_L1_0er1p5R_v7, fragment.HLT_Dimuon0_LowMass_L1_0er1p5_v8, fragment.HLT_Dimuon0_LowMass_v8, fragment.HLT_Dimuon0_LowMass_L1_4_v8, fragment.HLT_Dimuon0_LowMass_L1_4R_v7, fragment.HLT_Dimuon0_LowMass_L1_TM530_v6, fragment.HLT_Dimuon0_Upsilon_Muon_L1_TM0_v6, fragment.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v6, fragment.HLT_TripleMu_5_3_3_Mass3p8_DZ_v8, fragment.HLT_TripleMu_10_5_5_DZ_v10, fragment.HLT_TripleMu_12_10_5_v10, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v4, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v4, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v4, fragment.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v4, fragment.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10, fragment.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v10, fragment.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v10, fragment.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v6, fragment.HLT_DoubleMu4_Jpsi_Displaced_v7, fragment.HLT_DoubleMu4_Jpsi_NoVertexing_v7, fragment.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v7, fragment.HLT_DoubleMu43NoFiltersNoVtx_v4, fragment.HLT_DoubleMu48NoFiltersNoVtx_v4, fragment.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v5, fragment.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v5, fragment.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v1, fragment.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v1, fragment.HLT_DoubleMu40NoFiltersNoVtxDisplaced_v1, fragment.HLT_DoubleMu20_7_Mass0to30_L1_DM4_v7, fragment.HLT_DoubleMu20_7_Mass0to30_L1_DM4EG_v8, fragment.HLT_HT425_v9, fragment.HLT_HT430_DisplacedDijet40_DisplacedTrack_v13, fragment.HLT_HT500_DisplacedDijet40_DisplacedTrack_v13, fragment.HLT_HT430_DisplacedDijet60_DisplacedTrack_v13, fragment.HLT_HT400_DisplacedDijet40_DisplacedTrack_v13, fragment.HLT_HT650_DisplacedDijet60_Inclusive_v13, fragment.HLT_HT550_DisplacedDijet60_Inclusive_v13, fragment.HLT_DiJet110_35_Mjj650_PFMET110_v9, fragment.HLT_DiJet110_35_Mjj650_PFMET120_v9, fragment.HLT_DiJet110_35_Mjj650_PFMET130_v9, fragment.HLT_TripleJet110_35_35_Mjj650_PFMET110_v9, fragment.HLT_TripleJet110_35_35_Mjj650_PFMET120_v9, fragment.HLT_TripleJet110_35_35_Mjj650_PFMET130_v9, fragment.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v13, fragment.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v13, fragment.HLT_Ele28_HighEta_SC20_Mass55_v13, fragment.HLT_DoubleMu20_7_Mass0to30_Photon23_v8, fragment.HLT_Ele15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, fragment.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v16, fragment.HLT_Ele15_IsoVVVL_PFHT450_v16, fragment.HLT_Ele50_IsoVVVL_PFHT450_v16, fragment.HLT_Ele15_IsoVVVL_PFHT600_v20, fragment.HLT_Mu4_TrkIsoVVL_DiPFJet90_40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v15, fragment.HLT_Mu8_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v16, fragment.HLT_Mu10_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT350_PFMETNoMu60_v15, fragment.HLT_Mu15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, fragment.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v15, fragment.HLT_Mu15_IsoVVVL_PFHT450_v15, fragment.HLT_Mu50_IsoVVVL_PFHT450_v15, fragment.HLT_Mu15_IsoVVVL_PFHT600_v19, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET70_PFMHT70_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu70_PFMHTNoMu70_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v2, fragment.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v2, fragment.HLT_Dimuon10_PsiPrime_Barrel_Seagulls_v7, fragment.HLT_Dimuon20_Jpsi_Barrel_Seagulls_v7, fragment.HLT_Dimuon12_Upsilon_y1p4_v2, fragment.HLT_Dimuon14_Phi_Barrel_Seagulls_v7, fragment.HLT_Dimuon18_PsiPrime_v14, fragment.HLT_Dimuon25_Jpsi_v14, fragment.HLT_Dimuon18_PsiPrime_noCorrL1_v6, fragment.HLT_Dimuon24_Upsilon_noCorrL1_v6, fragment.HLT_Dimuon24_Phi_noCorrL1_v6, fragment.HLT_Dimuon25_Jpsi_noCorrL1_v6, fragment.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v17, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v17, fragment.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v17, fragment.HLT_DoubleIsoMu20_eta2p1_v7, fragment.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v6, fragment.HLT_TrkMu16_DoubleTrkMu6NoFiltersNoVtx_v12, fragment.HLT_TrkMu17_DoubleTrkMu8NoFiltersNoVtx_v13, fragment.HLT_Mu8_v12, fragment.HLT_Mu17_v13, fragment.HLT_Mu19_v4, fragment.HLT_Mu17_Photon30_IsoCaloId_v6, fragment.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v16, fragment.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, fragment.HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3, fragment.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, fragment.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v18, fragment.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v16, fragment.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v18, fragment.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18, fragment.HLT_Ele115_CaloIdVT_GsfTrkIdT_v14, fragment.HLT_Ele135_CaloIdVT_GsfTrkIdT_v7, fragment.HLT_Ele145_CaloIdVT_GsfTrkIdT_v8, fragment.HLT_Ele200_CaloIdVT_GsfTrkIdT_v8, fragment.HLT_Ele250_CaloIdVT_GsfTrkIdT_v13, fragment.HLT_Ele300_CaloIdVT_GsfTrkIdT_v13, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepCSV_4p5_v3, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v9, fragment.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepCSV_2p94_v8, fragment.HLT_PFHT400_SixPFJet32_v8, fragment.HLT_PFHT450_SixPFJet36_PFBTagDeepCSV_1p59_v7, fragment.HLT_PFHT450_SixPFJet36_v7, fragment.HLT_PFHT400_FivePFJet_100_100_60_30_30_v8, fragment.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepCSV_4p5_v8, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepCSV_4p5_v8, fragment.HLT_PFHT350_v19, fragment.HLT_PFHT350MinPFJet15_v9, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_v5, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_v5, fragment.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350MinPFJet15_v11, fragment.HLT_ECALHT800_v10, fragment.HLT_DiSC30_18_EIso_AND_HE_Mass70_v13, fragment.HLT_Physics_v7, fragment.HLT_EphemeralPhysics_v1, fragment.DST_Physics_v7, fragment.HLT_Random_v3, fragment.HLT_ZeroBias_v6, fragment.HLT_ZeroBias_Alignment_v1, fragment.HLT_EphemeralZeroBias_v1, fragment.DST_ZeroBias_v2, fragment.DST_Run3_PFScoutingPixelTracking_v16, fragment.HLT_AK4CaloJet30_v11, fragment.HLT_AK4CaloJet40_v10, fragment.HLT_AK4CaloJet50_v10, fragment.HLT_AK4CaloJet80_v10, fragment.HLT_AK4CaloJet100_v10, fragment.HLT_AK4CaloJet120_v9, fragment.HLT_AK4PFJet30_v19, fragment.HLT_AK4PFJet50_v19, fragment.HLT_AK4PFJet80_v19, fragment.HLT_AK4PFJet100_v19, fragment.HLT_AK4PFJet120_v18, fragment.HLT_SinglePhoton10_Eta3p1ForPPRef_v8, fragment.HLT_SinglePhoton20_Eta3p1ForPPRef_v9, fragment.HLT_SinglePhoton30_Eta3p1ForPPRef_v9, fragment.HLT_Photon20_HoverELoose_v10, fragment.HLT_Photon30_HoverELoose_v10, fragment.HLT_EcalCalibration_v4, fragment.HLT_HcalCalibration_v5, fragment.AlCa_EcalPhiSym_v9, fragment.HLT_L1UnpairedBunchBptxMinus_v2, fragment.HLT_L1UnpairedBunchBptxPlus_v2, fragment.HLT_L1NotBptxOR_v3, fragment.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v2, fragment.HLT_CDC_L2cosmic_10_er1p0_v1, fragment.HLT_CDC_L2cosmic_5p5_er1p0_v1, fragment.HLT_HcalNZS_v13, fragment.HLT_HcalPhiSym_v15, fragment.HLT_HcalIsolatedbunch_v5, fragment.HLT_IsoTrackHB_v4, fragment.HLT_IsoTrackHE_v4, fragment.HLT_ZeroBias_FirstCollisionAfterAbortGap_v5, fragment.HLT_ZeroBias_IsolatedBunches_v5, fragment.HLT_ZeroBias_FirstCollisionInTrain_v4, fragment.HLT_ZeroBias_LastCollisionInTrain_v3, fragment.HLT_ZeroBias_FirstBXAfterTrain_v3, fragment.AlCa_RPCMuonNormalisation_v13, fragment.AlCa_LumiPixelsCounts_Random_v2, fragment.AlCa_LumiPixelsCounts_ZeroBias_v2, fragment.MC_ReducedIterativeTracking_v12, fragment.MC_PFMET_v17, fragment.MC_AK4PFJets_v17, fragment.MC_PFBTagDeepCSV_v10, fragment.MC_PFHT_v16, fragment.MC_PFMHT_v16, fragment.MC_CaloMET_v8, fragment.MC_CaloMET_JetIdCleaned_v9, fragment.MC_AK4CaloJets_v9, fragment.MC_AK4CaloJetsFromPV_v8, fragment.MC_CaloBTagDeepCSV_v8, fragment.MC_CaloHT_v8, fragment.MC_CaloMHT_v8, fragment.MC_AK8PFJets_v17, fragment.MC_AK8TrimPFJets_v17, fragment.MC_AK8PFHT_v16, fragment.MC_AK8CaloHT_v8, fragment.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v13, fragment.MC_DoubleEle5_CaloIdL_MW_v15, fragment.MC_Ele5_WPTight_Gsf_v8, fragment.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v15, fragment.MC_IsoMu_v15, fragment.MC_DoubleMu_TrkIsoVVL_DZ_v11, fragment.MC_DoubleMuNoFiltersNoVtx_v7, fragment.MC_PFBTagDeepJet_v1, fragment.MC_Run3_PFScoutingPixelTracking_v16, fragment.AlCa_EcalPi0EBonly_v13, fragment.AlCa_EcalPi0EEonly_v13, fragment.AlCa_EcalEtaEBonly_v13, fragment.AlCa_EcalEtaEEonly_v13, fragment.HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12, fragment.HLT_MediumChargedIsoPFTau200HighPtRelaxedIso_Trk50_eta2p1_v12, fragment.HLT_MediumChargedIsoPFTau220HighPtRelaxedIso_Trk50_eta2p1_v12, fragment.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v9, fragment.HLT_Rsq0p35_v15, fragment.HLT_Rsq0p40_v15, fragment.HLT_RsqMR300_Rsq0p09_MR200_v15, fragment.HLT_RsqMR320_Rsq0p09_MR200_v15, fragment.HLT_RsqMR300_Rsq0p09_MR200_4jet_v15, fragment.HLT_RsqMR320_Rsq0p09_MR200_4jet_v15, fragment.HLT_IsoMu27_MET90_v3, fragment.HLT_VBF_DoubleLooseChargedIsoPFTau20_Trk1_eta2p1_v3, fragment.HLT_VBF_DoubleLooseChargedIsoPFTauHPS20_Trk1_eta2p1_v1, fragment.HLT_VBF_DoubleMediumChargedIsoPFTauHPS20_Trk1_eta2p1_v1, fragment.HLT_VBF_DoubleTightChargedIsoPFTauHPS20_Trk1_eta2p1_v1, fragment.HLT_Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50_v5, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v5, fragment.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ600DEta3_v5, fragment.HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9, fragment.HLT_PFMETNoMu100_PFMHTNoMu100_IDTight_PFHT60_v9, fragment.HLT_PFMETTypeOne100_PFMHT100_IDTight_PFHT60_v9, fragment.HLT_Mu18_Mu9_SameSign_v4, fragment.HLT_Mu18_Mu9_SameSign_DZ_v4, fragment.HLT_Mu18_Mu9_v4, fragment.HLT_Mu18_Mu9_DZ_v4, fragment.HLT_Mu20_Mu10_SameSign_v4, fragment.HLT_Mu20_Mu10_SameSign_DZ_v4, fragment.HLT_Mu20_Mu10_v4, fragment.HLT_Mu20_Mu10_DZ_v4, fragment.HLT_Mu23_Mu12_SameSign_v4, fragment.HLT_Mu23_Mu12_SameSign_DZ_v4, fragment.HLT_Mu23_Mu12_v4, fragment.HLT_Mu23_Mu12_DZ_v4, fragment.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v6, fragment.HLT_DoubleMu2_Jpsi_DoubleTkMu0_Phi_v5, fragment.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10, fragment.HLT_TripleMu_5_3_3_Mass3p8_DCA_v3, fragment.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_QuadPFJet98_83_71_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet103_88_75_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet105_88_76_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet111_90_80_15_PFBTagDeepCSV_1p3_VBF2_v8, fragment.HLT_QuadPFJet98_83_71_15_v5, fragment.HLT_QuadPFJet103_88_75_15_v5, fragment.HLT_QuadPFJet105_88_76_15_v5, fragment.HLT_QuadPFJet111_90_80_15_v5, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p17_v2, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p1_v2, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_p02_v3, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np2_v2, fragment.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np4_v2, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2, fragment.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_v2, fragment.HLT_Mu12_IP6_ToCSCS_v1, fragment.HLT_Mu12_IP6_part0_v2, fragment.HLT_Mu12_IP6_part1_v2, fragment.HLT_Mu12_IP6_part2_v2, fragment.HLT_Mu12_IP6_part3_v2, fragment.HLT_Mu12_IP6_part4_v2, fragment.HLT_Mu9_IP5_ToCSCS_v1, fragment.HLT_Mu9_IP5_part0_v2, fragment.HLT_Mu9_IP5_part1_v2, fragment.HLT_Mu9_IP5_part2_v2, fragment.HLT_Mu9_IP5_part3_v2, fragment.HLT_Mu9_IP5_part4_v2, fragment.HLT_Mu7_IP4_ToCSCS_v1, fragment.HLT_Mu7_IP4_part0_v2, fragment.HLT_Mu7_IP4_part1_v2, fragment.HLT_Mu7_IP4_part2_v2, fragment.HLT_Mu7_IP4_part3_v2, fragment.HLT_Mu7_IP4_part4_v2, fragment.HLT_Mu9_IP4_ToCSCS_v1, fragment.HLT_Mu9_IP4_part0_v2, fragment.HLT_Mu9_IP4_part1_v2, fragment.HLT_Mu9_IP4_part2_v2, fragment.HLT_Mu9_IP4_part3_v2, fragment.HLT_Mu9_IP4_part4_v2, fragment.HLT_Mu8_IP5_ToCSCS_v1, fragment.HLT_Mu8_IP5_part0_v2, fragment.HLT_Mu8_IP5_part1_v2, fragment.HLT_Mu8_IP5_part2_v2, fragment.HLT_Mu8_IP5_part3_v2, fragment.HLT_Mu8_IP5_part4_v2, fragment.HLT_Mu8_IP6_ToCSCS_v1, fragment.HLT_Mu8_IP6_part0_v2, fragment.HLT_Mu8_IP6_part1_v2, fragment.HLT_Mu8_IP6_part2_v2, fragment.HLT_Mu8_IP6_part3_v2, fragment.HLT_Mu8_IP6_part4_v2, fragment.HLT_Mu9_IP6_ToCSCS_v1, fragment.HLT_Mu9_IP6_part0_v3, fragment.HLT_Mu9_IP6_part1_v3, fragment.HLT_Mu9_IP6_part2_v3, fragment.HLT_Mu9_IP6_part3_v3, fragment.HLT_Mu9_IP6_part4_v3, fragment.HLT_Mu8_IP3_ToCSCS_v1, fragment.HLT_Mu8_IP3_part0_v3, fragment.HLT_Mu8_IP3_part1_v3, fragment.HLT_Mu8_IP3_part2_v3, fragment.HLT_Mu8_IP3_part3_v3, fragment.HLT_Mu8_IP3_part4_v3, fragment.HLT_Mu9_IP0_part0_v2, fragment.HLT_Mu9_IP3_part0_v2, fragment.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, fragment.HLT_TrkMu6NoFiltersNoVtx_v1, fragment.HLT_TrkMu16NoFiltersNoVtx_v1, fragment.HLT_DoubleTrkMu_16_6_NoFiltersNoVtx_v1, fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1, fragment.HLT_DoubleMediumChargedIsoPFTauHPS40_Trk1_eta2p1_v1, fragment.HLT_DoubleTightChargedIsoPFTauHPS35_Trk1_eta2p1_v1, fragment.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, fragment.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v1, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v1, fragment.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, fragment.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v1, fragment.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v1, fragment.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v1, fragment.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepJet_4p5_v1, fragment.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepJet_4p5_v1, fragment.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepJet_2p94_v1, fragment.HLT_PFHT450_SixPFJet36_PFBTagDeepJet_1p59_v1, fragment.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet103_88_75_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet105_88_76_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet111_90_80_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, fragment.HLT_QuadPFJet98_83_71_15_PFBTagDeepJet_1p3_VBF2_v1, fragment.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v1, fragment.HLT_QuadPFJet70_50_40_30_v1, fragment.HLT_QuadPFJet70_50_40_30_PFBTagParticleNet_2BTagSum0p65_v1, fragment.HLT_QuadPFJet70_50_40_35_PFBTagParticleNet_2BTagSum0p65_v1, fragment.HLT_QuadPFJet70_50_45_35_PFBTagParticleNet_2BTagSum0p65_v1, fragment.HLT_AK8PFJet230_SoftDropMass40_v1, fragment.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, fragment.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, fragment.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, fragment.HLT_AK8PFJet400_SoftDropMass40_v1, fragment.HLT_AK8PFJet425_SoftDropMass40_v1, fragment.HLT_AK8PFJet450_SoftDropMass40_v1, fragment.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, fragment.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, fragment.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, fragment.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1, fragment.HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1, fragment.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v1, fragment.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1, fragment.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v1, fragment.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1, fragment.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1, fragment.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1, fragment.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v1, fragment.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v1, fragment.HLT_L1Mu6HT240_v1, fragment.HLT_Mu6HT240_DisplacedDijet30_Inclusive0PtrkShortSig5_v1, fragment.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v1, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v1, fragment.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v1, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v1, fragment.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v1, fragment.HLT_HT430_DisplacedDijet30_Inclusive1PtrkShortSig5_v1, fragment.HLT_HT430_DisplacedDijet35_Inclusive1PtrkShortSig5_v1, fragment.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v1, fragment.HLT_CaloMET60_DTCluster50_v1, fragment.HLT_CaloMET60_DTClusterNoMB1S50_v1, fragment.HLT_L1MET_DTCluster50_v1, fragment.HLT_L1MET_DTClusterNoMB1S50_v1, fragment.HLT_CscCluster_Loose_v1, fragment.HLT_CscCluster_Medium_v1, fragment.HLT_CscCluster_Tight_v1, fragment.HLT_L1CSCShower_DTCluster50_v1, fragment.HLT_L1CSCShower_DTCluster75_v1, fragment.HLT_PFMET105_IsoTrk50_v1, fragment.HLT_PFMET105_PFJet100_looseRecoiling_v1, fragment.HLT_PFMET110_PFJet100_v1, fragment.HLT_PFMET110_PFJet100_looseRecoiling_v1, fragment.HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1, fragment.HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1, fragment.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1, fragment.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1, fragment.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1, fragment.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1, fragment.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1, fragment.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1, fragment.HLT_DiPhoton10Time1ns_v1, fragment.HLT_DiPhoton10Time1p2ns_v1, fragment.HLT_DiPhoton10Time1p4ns_v1, fragment.HLT_DiPhoton10Time1p6ns_v1, fragment.HLT_DiPhoton10Time1p8ns_v1, fragment.HLT_DiPhoton10Time2ns_v1, fragment.HLT_DiPhoton10sminlt0p1_v1, fragment.HLT_DiPhoton10sminlt0p12_v1, fragment.HLT_DiPhoton10sminlt0p14_v1, fragment.HLT_DiPhoton10sminlt0p16_v1, fragment.HLT_DiPhoton10_CaloIdL_v1, fragment.HLT_ExpressMuons_v1, fragment.HLT_OnlineMonitorGroup_v1, fragment.DQM_EcalReconstruction_v1, fragment.DQM_HcalReconstruction_v1, fragment.DQM_PixelReconstruction_v1, fragment.HLT_PPSMaxTracksPerArm1_v1, fragment.HLT_PPSMaxTracksPerRP4_v1, fragment.HLTriggerFinalPath, fragment.HLTAnalyzerEndpath, fragment.ScoutingPFOutput, fragment.Dataset_AlCaLumiPixelCountsExpress, fragment.Dataset_AlCaLumiPixelCountsPrompt, fragment.Dataset_AlCaP0, fragment.Dataset_AlCaPPS, fragment.Dataset_AlCaPhiSym, fragment.Dataset_BTagMu, fragment.Dataset_Commissioning, fragment.Dataset_Cosmics, fragment.Dataset_DQMGPUvsCPU, fragment.Dataset_DQMOnlineBeamspot, fragment.Dataset_DisplacedJet, fragment.Dataset_DoubleMuon, fragment.Dataset_DoubleMuonLowMass, fragment.Dataset_EGamma, fragment.Dataset_EcalLaser, fragment.Dataset_EmptyBX, fragment.Dataset_EphemeralHLTPhysics0, fragment.Dataset_EphemeralHLTPhysics1, fragment.Dataset_EphemeralHLTPhysics2, fragment.Dataset_EphemeralHLTPhysics3, fragment.Dataset_EphemeralHLTPhysics4, fragment.Dataset_EphemeralHLTPhysics5, fragment.Dataset_EphemeralHLTPhysics6, fragment.Dataset_EphemeralHLTPhysics7, fragment.Dataset_EphemeralZeroBias0, fragment.Dataset_EphemeralZeroBias1, fragment.Dataset_EphemeralZeroBias2, fragment.Dataset_EphemeralZeroBias3, fragment.Dataset_EphemeralZeroBias4, fragment.Dataset_EphemeralZeroBias5, fragment.Dataset_EphemeralZeroBias6, fragment.Dataset_EphemeralZeroBias7, fragment.Dataset_EventDisplay, fragment.Dataset_ExpressAlignment, fragment.Dataset_ExpressPhysics, fragment.Dataset_FSQJet1, fragment.Dataset_FSQJet2, fragment.Dataset_HINCaloJets, fragment.Dataset_HINPFJets, fragment.Dataset_HLTMonitor, fragment.Dataset_HLTPhysics, fragment.Dataset_HcalNZS, fragment.Dataset_HighPtLowerPhotons, fragment.Dataset_HighPtPhoton30AndZ, fragment.Dataset_IsolatedBunch, fragment.Dataset_JetHT, fragment.Dataset_L1Accept, fragment.Dataset_MET, fragment.Dataset_MonteCarlo, fragment.Dataset_MuonEG, fragment.Dataset_NoBPTX, fragment.Dataset_OnlineMonitor, fragment.Dataset_ParkingBPH1, fragment.Dataset_ParkingBPH2, fragment.Dataset_ParkingBPH3, fragment.Dataset_ParkingBPH4, fragment.Dataset_ParkingBPH5, fragment.Dataset_ParkingBPHPromptCSCS, fragment.Dataset_RPCMonitor, fragment.Dataset_ScoutingPFMonitor, fragment.Dataset_ScoutingPFRun3, fragment.Dataset_SingleMuon, fragment.Dataset_Tau, fragment.Dataset_TestEnablesEcalHcal, fragment.Dataset_TestEnablesEcalHcalDQM, fragment.Dataset_ZeroBias, )) # dummify hltGetConditions in cff's diff --git a/HLTrigger/Configuration/python/HLT_HIon_cff.py b/HLTrigger/Configuration/python/HLT_HIon_cff.py index 0ce568be54560..fd8dfe769d65d 100644 --- a/HLTrigger/Configuration/python/HLT_HIon_cff.py +++ b/HLTrigger/Configuration/python/HLT_HIon_cff.py @@ -1,6 +1,6 @@ # hltGetConfiguration --cff --data /dev/CMSSW_12_4_0/HIon --type HIon -# /dev/CMSSW_12_4_0/HIon/V13 (CMSSW_12_4_0_pre4) +# /dev/CMSSW_12_4_0/HIon/V22 (CMSSW_12_4_0_pre4) import FWCore.ParameterSet.Config as cms @@ -12,7 +12,7 @@ fragment.ProcessAcceleratorCUDA = ProcessAcceleratorCUDA() fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_4_0/HIon/V13') + tableName = cms.string('/dev/CMSSW_12_4_0/HIon/V22') ) fragment.transferSystem = cms.PSet( diff --git a/HLTrigger/Configuration/python/HLT_PIon_cff.py b/HLTrigger/Configuration/python/HLT_PIon_cff.py index c1831117cef91..c317a5b3e2770 100644 --- a/HLTrigger/Configuration/python/HLT_PIon_cff.py +++ b/HLTrigger/Configuration/python/HLT_PIon_cff.py @@ -1,6 +1,6 @@ # hltGetConfiguration --cff --data /dev/CMSSW_12_4_0/PIon --type PIon -# /dev/CMSSW_12_4_0/PIon/V13 (CMSSW_12_4_0_pre4) +# /dev/CMSSW_12_4_0/PIon/V22 (CMSSW_12_4_0_pre4) import FWCore.ParameterSet.Config as cms @@ -12,7 +12,7 @@ fragment.ProcessAcceleratorCUDA = ProcessAcceleratorCUDA() fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_4_0/PIon/V13') + tableName = cms.string('/dev/CMSSW_12_4_0/PIon/V22') ) fragment.transferSystem = cms.PSet( diff --git a/HLTrigger/Configuration/python/HLT_PRef_cff.py b/HLTrigger/Configuration/python/HLT_PRef_cff.py index 1e93ad7a87743..dc517ea05c521 100644 --- a/HLTrigger/Configuration/python/HLT_PRef_cff.py +++ b/HLTrigger/Configuration/python/HLT_PRef_cff.py @@ -1,6 +1,6 @@ # hltGetConfiguration --cff --data /dev/CMSSW_12_4_0/PRef --type PRef -# /dev/CMSSW_12_4_0/PRef/V13 (CMSSW_12_4_0_pre4) +# /dev/CMSSW_12_4_0/PRef/V22 (CMSSW_12_4_0_pre4) import FWCore.ParameterSet.Config as cms @@ -12,7 +12,7 @@ fragment.ProcessAcceleratorCUDA = ProcessAcceleratorCUDA() fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_4_0/PRef/V13') + tableName = cms.string('/dev/CMSSW_12_4_0/PRef/V22') ) fragment.transferSystem = cms.PSet( diff --git a/HLTrigger/Configuration/python/HLTrigger_Datasets_GRun_cff.py b/HLTrigger/Configuration/python/HLTrigger_Datasets_GRun_cff.py index edb6d724fa5ec..13ae4b75c3c2c 100644 --- a/HLTrigger/Configuration/python/HLTrigger_Datasets_GRun_cff.py +++ b/HLTrigger/Configuration/python/HLTrigger_Datasets_GRun_cff.py @@ -193,7 +193,8 @@ 'MC_PFHT_v16', 'MC_PFMET_v17', 'MC_PFMHT_v16', - 'MC_ReducedIterativeTracking_v12' + 'MC_ReducedIterativeTracking_v12', + 'MC_Run3_PFScoutingPixelTracking_v16' ) from HLTrigger.HLTfilters.triggerResultsFilter_cfi import triggerResultsFilter as streamPhysicsCommissioning_datasetNoBPTX_selector @@ -237,6 +238,17 @@ streamPhysicsEGamma_datasetEGamma_selector.throw = cms.bool(False) streamPhysicsEGamma_datasetEGamma_selector.triggerConditions = cms.vstring( 'HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4', + 'HLT_DiPhoton10Time1ns_v1', + 'HLT_DiPhoton10Time1p2ns_v1', + 'HLT_DiPhoton10Time1p4ns_v1', + 'HLT_DiPhoton10Time1p6ns_v1', + 'HLT_DiPhoton10Time1p8ns_v1', + 'HLT_DiPhoton10Time2ns_v1', + 'HLT_DiPhoton10_CaloIdL_v1', + 'HLT_DiPhoton10sminlt0p12_v1', + 'HLT_DiPhoton10sminlt0p14_v1', + 'HLT_DiPhoton10sminlt0p16_v1', + 'HLT_DiPhoton10sminlt0p1_v1', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13', 'HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13', 'HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2', @@ -477,7 +489,20 @@ 'HLT_CscCluster_Loose_v1', 'HLT_CscCluster_Medium_v1', 'HLT_CscCluster_Tight_v1', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT425_v9', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1', @@ -794,6 +819,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2', 'HLT_DoubleL2Mu50_v2', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10', 'HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10', @@ -803,6 +829,7 @@ 'HLT_DoubleMu43NoFiltersNoVtx_v4', 'HLT_DoubleMu48NoFiltersNoVtx_v4', 'HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15', diff --git a/HLTrigger/Configuration/python/Tools/confdb.py b/HLTrigger/Configuration/python/Tools/confdb.py index 0aa4c95897f5b..66b0686d76a04 100644 --- a/HLTrigger/Configuration/python/Tools/confdb.py +++ b/HLTrigger/Configuration/python/Tools/confdb.py @@ -333,11 +333,9 @@ def addGlobalOptions(self): self.data += """ # enable TrigReport, TimeReport and MultiThreading -%(process)s.options = cms.untracked.PSet( - wantSummary = cms.untracked.bool( True ), - numberOfThreads = cms.untracked.uint32( 4 ), - numberOfStreams = cms.untracked.uint32( 0 ), -) +%(process)s.options.wantSummary = True +%(process)s.options.numberOfThreads = 4 +%(process)s.options.numberOfStreams = 0 """ def _fix_parameter(self, **args): diff --git a/HLTrigger/Configuration/tables/GRun.txt b/HLTrigger/Configuration/tables/GRun.txt index ac0f784b0c832..192056ff83151 100644 --- a/HLTrigger/Configuration/tables/GRun.txt +++ b/HLTrigger/Configuration/tables/GRun.txt @@ -715,6 +715,32 @@ HLT_PFMET105_IsoTrk50_v* # CMSHLT HLT_PFMET105_PFJet100_looseRecoiling_v* # CMSHLT-2211 HLT_PFMET110_PFJet100_v* # CMSHLT-2211 HLT_PFMET110_PFJet100_looseRecoiling_v* # CMSHLT-2211 +HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v* # CMSHLT-2301 +HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v* # CMSHLT-2301 +HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v* # CMSHLT-2280 +HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v* # CMSHLT-2280 +HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v* # CMSHLT-2280 +HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v* # CMSHLT-2280 +HLT_DiPhoton10Time1ns_v* # CMSHLT-2280 +HLT_DiPhoton10Time1p2ns_v* # CMSHLT-2280 +HLT_DiPhoton10Time1p4ns_v* # CMSHLT-2280 +HLT_DiPhoton10Time1p6ns_v* # CMSHLT-2280 +HLT_DiPhoton10Time1p8ns_v* # CMSHLT-2280 +HLT_DiPhoton10Time2ns_v* # CMSHLT-2280 +HLT_DiPhoton10sminlt0p1_v* # CMSHLT-2280 +HLT_DiPhoton10sminlt0p12_v* # CMSHLT-2280 +HLT_DiPhoton10sminlt0p14_v* # CMSHLT-2280 +HLT_DiPhoton10sminlt0p16_v* # CMSHLT-2280 +HLT_DiPhoton10_CaloIdL_v* # CMSHLT-2280 HLT_L1SingleMuCosmics_v* # CMSHLT-2097 @@ -797,6 +823,7 @@ MC_PFBTagDeepCSV_v* # CMSHLT-1241 MC_CaloBTagDeepCSV_v* # CMSHLT-1241 MC_AK4CaloJetsFromPV_v* # CMSHLT-1241 MC_PFBTagDeepJet_v* # CMSHLT-2184 +MC_Run3_PFScoutingPixelTracking_v* # CMSHLT-2302 ######## paths that are different between GRun and online_grun ################################ diff --git a/HLTrigger/Configuration/tables/online_grun.txt b/HLTrigger/Configuration/tables/online_grun.txt index a06f67e100191..1f862c67762f3 100644 --- a/HLTrigger/Configuration/tables/online_grun.txt +++ b/HLTrigger/Configuration/tables/online_grun.txt @@ -705,6 +705,32 @@ HLT_PFMET105_IsoTrk50_v* # CMSHLT HLT_PFMET105_PFJet100_looseRecoiling_v* # CMSHLT-2211 HLT_PFMET110_PFJet100_v* # CMSHLT-2211 HLT_PFMET110_PFJet100_looseRecoiling_v* # CMSHLT-2211 +HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v* # CMSHLT-2301 +HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v* # CMSHLT-2301 +HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v* # CMSHLT-2280 +HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v* # CMSHLT-2280 +HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v* # CMSHLT-2280 +HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v* # CMSHLT-2280 +HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v* # CMSHLT-2280 +HLT_DiPhoton10Time1ns_v* # CMSHLT-2280 +HLT_DiPhoton10Time1p2ns_v* # CMSHLT-2280 +HLT_DiPhoton10Time1p4ns_v* # CMSHLT-2280 +HLT_DiPhoton10Time1p6ns_v* # CMSHLT-2280 +HLT_DiPhoton10Time1p8ns_v* # CMSHLT-2280 +HLT_DiPhoton10Time2ns_v* # CMSHLT-2280 +HLT_DiPhoton10sminlt0p1_v* # CMSHLT-2280 +HLT_DiPhoton10sminlt0p12_v* # CMSHLT-2280 +HLT_DiPhoton10sminlt0p14_v* # CMSHLT-2280 +HLT_DiPhoton10sminlt0p16_v* # CMSHLT-2280 +HLT_DiPhoton10_CaloIdL_v* # CMSHLT-2280 HLT_L1SingleMuCosmics_v* # CMSHLT-2097 diff --git a/HLTrigger/Configuration/test/OnLine_HLT_FULL.py b/HLTrigger/Configuration/test/OnLine_HLT_FULL.py index b722889664a66..60f8223503af9 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_FULL.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_FULL.py @@ -1,6 +1,6 @@ # hltGetConfiguration --full --data /dev/CMSSW_12_4_0/HLT --type FULL --unprescale --process HLTFULL --globaltag auto:run3_hlt_FULL --input file:RelVal_Raw_FULL_DATA.root -# /dev/CMSSW_12_4_0/HLT/V24 (CMSSW_12_4_0_pre4) +# /dev/CMSSW_12_4_0/HLT/V33 (CMSSW_12_4_0_pre4) import FWCore.ParameterSet.Config as cms @@ -12,7 +12,7 @@ process.ProcessAcceleratorCUDA = ProcessAcceleratorCUDA() process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_4_0/HLT/V24') + tableName = cms.string('/dev/CMSSW_12_4_0/HLT/V33') ) process.transferSystem = cms.PSet( @@ -2799,7 +2799,20 @@ 'HLT_CscCluster_Loose_v1', 'HLT_CscCluster_Medium_v1', 'HLT_CscCluster_Tight_v1', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT425_v9', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1', @@ -2838,6 +2851,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2', 'HLT_DoubleL2Mu50_v2', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10', 'HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10', @@ -2853,6 +2867,7 @@ 'HLT_HIL3DoubleMu0_OS_m2p5to4p5ForPPRef_v6', 'HLT_HIL3DoubleMu0_OS_m7to14ForPPRef_v6', 'HLT_L1DoubleMu0_v1', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15', @@ -2954,6 +2969,17 @@ 'HLT_Trimuon5_3p5_2_Upsilon_Muon_v5', 'HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v3' ), EGamma = cms.vstring( 'HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4', + 'HLT_DiPhoton10Time1ns_v1', + 'HLT_DiPhoton10Time1p2ns_v1', + 'HLT_DiPhoton10Time1p4ns_v1', + 'HLT_DiPhoton10Time1p6ns_v1', + 'HLT_DiPhoton10Time1p8ns_v1', + 'HLT_DiPhoton10Time2ns_v1', + 'HLT_DiPhoton10_CaloIdL_v1', + 'HLT_DiPhoton10sminlt0p12_v1', + 'HLT_DiPhoton10sminlt0p14_v1', + 'HLT_DiPhoton10sminlt0p16_v1', + 'HLT_DiPhoton10sminlt0p1_v1', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13', 'HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13', 'HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2', @@ -4077,7 +4103,8 @@ 'MC_PFHT_v16', 'MC_PFMET_v17', 'MC_PFMHT_v16', - 'MC_ReducedIterativeTracking_v12' ), + 'MC_ReducedIterativeTracking_v12', + 'MC_Run3_PFScoutingPixelTracking_v16' ), MuPlusX = cms.vstring( 'HLT_HIL2Mu3Eta2p5_AK4CaloJet100Eta2p1ForPPRef_v11', 'HLT_HIL2Mu3Eta2p5_AK4CaloJet40Eta2p1ForPPRef_v11', 'HLT_HIL2Mu3Eta2p5_AK4CaloJet60Eta2p1ForPPRef_v11', @@ -4269,6 +4296,17 @@ 'HLT_DiPFJetAve60_v14', 'HLT_DiPFJetAve80_HFJEC_v16', 'HLT_DiPFJetAve80_v13', + 'HLT_DiPhoton10Time1ns_v1', + 'HLT_DiPhoton10Time1p2ns_v1', + 'HLT_DiPhoton10Time1p4ns_v1', + 'HLT_DiPhoton10Time1p6ns_v1', + 'HLT_DiPhoton10Time1p8ns_v1', + 'HLT_DiPhoton10Time2ns_v1', + 'HLT_DiPhoton10_CaloIdL_v1', + 'HLT_DiPhoton10sminlt0p12_v1', + 'HLT_DiPhoton10sminlt0p14_v1', + 'HLT_DiPhoton10sminlt0p16_v1', + 'HLT_DiPhoton10sminlt0p1_v1', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13', 'HLT_Dimuon0_Jpsi3p5_Muon2_v5', 'HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7', @@ -4333,6 +4371,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2', 'HLT_DoubleL2Mu50_v2', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1', 'HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1', @@ -4368,8 +4407,7 @@ 'HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepJet_p71_v1', 'HLT_DoublePFJets200_PFBTagDeepCSV_p71_v1', 'HLT_DoublePFJets200_PFBTagDeepJet_p71_v1', - 'HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1', - 'HLT_DoublePFJets350_PFBTagDeepJet_p71_v1', + 'HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1')+cms.vstring( 'HLT_DoublePFJets350_PFBTagDeepJet_p71_v1', 'HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1', 'HLT_DoublePFJets40_PFBTagDeepCSV_p71_v1', 'HLT_DoublePFJets40_PFBTagDeepJet_p71_v1', @@ -4380,7 +4418,8 @@ 'HLT_Ele115_CaloIdVT_GsfTrkIdT_v14', 'HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v18', 'HLT_Ele135_CaloIdVT_GsfTrkIdT_v7', - 'HLT_Ele145_CaloIdVT_GsfTrkIdT_v8')+cms.vstring( 'HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3', + 'HLT_Ele145_CaloIdVT_GsfTrkIdT_v8', + 'HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3', 'HLT_Ele15_Ele8_CaloIdL_TrackIdL_IsoVL_v3', 'HLT_Ele15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8', 'HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v16', @@ -4458,7 +4497,20 @@ 'HLT_HIZeroBias_part7_v6', 'HLT_HIZeroBias_part8_v6', 'HLT_HIZeroBias_part9_v6', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT425_v9', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1', @@ -4561,6 +4613,7 @@ 'HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5', 'HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4', 'HLT_L2Mu50_v2', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1', 'HLT_MET105_IsoTrk50_v9', 'HLT_MET120_IsoTrk50_v9', 'HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12', @@ -4608,8 +4661,7 @@ 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v3', 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v3', 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v3', - 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3', - 'HLT_Mu19_TrkIsoVVL_v4', + 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3')+cms.vstring( 'HLT_Mu19_TrkIsoVVL_v4', 'HLT_Mu19_v4', 'HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v1', 'HLT_Mu20_Mu10_DZ_v4', @@ -4634,7 +4686,8 @@ 'HLT_Mu37_Ele27_CaloIdL_MW_v5', 'HLT_Mu37_TkMu27_v5', 'HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v1', - 'HLT_Mu3_PFJet40_v16')+cms.vstring( 'HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2', + 'HLT_Mu3_PFJet40_v16', + 'HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2', 'HLT_Mu3er1p5_PFJet100er2p5_PFMET70_PFMHT70_IDTight_v2', 'HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v2', 'HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v2', @@ -4862,8 +4915,7 @@ 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1', - 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1', - 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1', + 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1')+cms.vstring( 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1', @@ -4888,7 +4940,8 @@ 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1', 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1', 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1', - 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1')+cms.vstring( 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1', + 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1', + 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1', 'HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part0_v1', 'HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part1_v1', 'HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part2_v1', @@ -5372,11 +5425,12 @@ ) ), DumpStat = cms.untracked.bool( False ), - ReconnectEachRun = cms.untracked.bool( False ), + ReconnectEachRun = cms.untracked.bool( True ), RefreshAlways = cms.untracked.bool( False ), - RefreshEachRun = cms.untracked.bool( False ), + RefreshEachRun = cms.untracked.bool( True ), RefreshOpenIOVs = cms.untracked.bool( False ), - pfnPostfix = cms.untracked.string( "None" ) + pfnPostfix = cms.untracked.string( "" ), + pfnPrefix = cms.untracked.string( "" ) ) process.HcalTimeSlewEP = cms.ESSource( "HcalTimeSlewEP", appendToDataLabel = cms.string( "HBHE" ), @@ -18653,9 +18707,9 @@ propagatorAny = cms.ESInputTag( "","SteppingHelixPropagatorAny" ), propagatorOpposite = cms.ESInputTag( "","hltESPSteppingHelixPropagatorOpposite" ) ) -process.hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9 = cms.EDFilter( "HLTL1TSeed", +process.hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50 = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleMu0er1p5_SQ_OS_dR_Max1p4 OR L1_DoubleMu0er1p4_SQ_OS_dR_Max1p4 OR L1_TripleMu_5SQ_3SQ_0_DoubleMu_5_3_SQ_OS_Mass_Max9 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_DoubleMu4p5_SQ_OS_dR_Max1p2" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleMu0er2p0_SQ_OS_dEta_Max1p6 OR L1_DoubleMu0er2p0_SQ_OS_dEta_Max1p5 OR L1_DoubleMu0er1p5_SQ_OS_dR_Max1p4 OR L1_DoubleMu0er1p4_SQ_OS_dR_Max1p4 OR L1_TripleMu_5SQ_3SQ_0_DoubleMu_5_3_SQ_OS_Mass_Max9 OR L1_TripleMu_5SQ_3SQ_0OQ_DoubleMu_5_3_SQ_OS_Mass_Max9 OR L1_TripleMu_2SQ_1p5SQ_0OQ_Mass_Max12 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_DoubleMu4p5_SQ_OS_dR_Max1p2" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -18672,7 +18726,7 @@ process.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 = cms.EDFilter( "HLTMuonL1TFilter", saveTags = cms.bool( True ), CandTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - PreviousCandTag = cms.InputTag( "hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9" ), + PreviousCandTag = cms.InputTag( "hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50" ), MaxEta = cms.double( 2.5 ), MinPt = cms.double( 0.0 ), MaxDeltaR = cms.double( 0.3 ), @@ -18727,10 +18781,10 @@ MaxDr = cms.double( 0.6 ), MaxDz = cms.double( 9999.0 ), ChargeOpt = cms.int32( 0 ), - MinPtPair = cms.vdouble( 6.0 ), + MinPtPair = cms.vdouble( 5.0 ), MaxPtPair = cms.vdouble( 1.0E125 ), MinPtMax = cms.vdouble( 0.0 ), - MinPtMin = cms.vdouble( 3.0 ), + MinPtMin = cms.vdouble( 2.5 ), MaxPtMin = cms.vdouble( 1.0E125 ), MinInvMass = cms.vdouble( 0.5 ), MaxInvMass = cms.vdouble( 1.7 ), @@ -19309,7 +19363,7 @@ PreviousCandTag = cms.InputTag( "hltdstau3mumuontrkFltr" ), MaxEta = cms.double( 2.5 ), MinPt = cms.double( 1.2 ), - MinPtTriplet = cms.double( 8.0 ), + MinPtTriplet = cms.double( 7.0 ), MinInvMass = cms.double( 1.6 ), MaxInvMass = cms.double( 2.1 ), ChargeOpt = cms.int32( -1 ) @@ -65661,7 +65715,7 @@ ) process.hltL1sDSTRun3PFScoutingPixelTracking = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleMu_12_5 OR L1_DoubleMu_15_7 OR L1_HTT200er OR L1_HTT255er OR L1_HTT280er OR L1_HTT320er OR L1_HTT360er OR L1_ETT2000 OR L1_HTT400er OR L1_HTT450er OR L1_SingleJet180 OR L1_SingleJet200 OR L1_DoubleJet30er2p5_Mass_Min300_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min330_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min360_dEta_Max1p5 OR L1_DoubleMu4p5er2p0_SQ_OS_Mass_Min7 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_SingleEG36er2p5 OR L1_SingleLooseIsoEG28er2p1" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleMu_12_5 OR L1_DoubleMu_15_7 OR L1_HTT200er OR L1_HTT255er OR L1_HTT280er OR L1_HTT320er OR L1_HTT360er OR L1_ETT2000 OR L1_HTT400er OR L1_HTT450er OR L1_SingleJet180 OR L1_SingleJet200 OR L1_DoubleJet30er2p5_Mass_Min300_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min330_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min360_dEta_Max1p5 OR L1_DoubleMu4p5er2p0_SQ_OS_Mass_Min7 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_SingleLooseIsoEG28er2p1 OR L1_DoubleEG_LooseIso18_LooseIso12_er1p5" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -66856,7 +66910,7 @@ vertexCollection = cms.InputTag( "hltPixelVertices" ), mantissaPrecision = cms.int32( 10 ), vtxMinDist = cms.double( 0.01 ), - ptMin = cms.double( 0.3 ) + ptMin = cms.double( 3.0 ) ) process.hltScoutingPrimaryVertexPacker = cms.EDProducer( "HLTScoutingPrimaryVertexProducer", vertexCollection = cms.InputTag( 'hltPixelVertices','','@currentProcess' ), @@ -66912,7 +66966,7 @@ egammaHoverECut = cms.double( 1.0 ), saveRecHitTiming = cms.bool( False ), mantissaPrecision = cms.int32( 10 ), - rechitMatrixSize = cms.int32( 15 ), + rechitMatrixSize = cms.int32( 10 ), rechitZeroSuppression = cms.bool( True ), ecalRechitEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), ecalRechitEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ) @@ -77447,6 +77501,22 @@ MinJets = cms.int32( 1 ), TriggerType = cms.int32( 86 ) ) +process.hltL1sMCRun3PFScoutingPixelTracking = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1GlobalDecision" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +process.hltPreMCRun3PFScoutingPixelTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltL1sAlCaEcalPi0Eta = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_AlwaysTrue OR L1_IsolatedBunch OR L1_SingleEG8er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG26er2p5 OR L1_SingleEG34er2p5 OR L1_SingleEG36er2p5 OR L1_SingleEG38er2p5 OR L1_SingleEG40er2p5 OR L1_SingleEG42er2p5 OR L1_SingleEG45er2p5 OR L1_SingleEG60 OR L1_SingleIsoEG26er2p5 OR L1_SingleIsoEG28er2p5 OR L1_SingleIsoEG30er2p5 OR L1_SingleIsoEG32er2p5 OR L1_SingleIsoEG34er2p5 OR L1_SingleIsoEG24er2p1 OR L1_SingleIsoEG26er2p1 OR L1_SingleIsoEG28er2p1 OR L1_SingleIsoEG30er2p1 OR L1_SingleIsoEG32er2p1 OR L1_DoubleEG_22_10_er2p5 OR L1_DoubleEG_25_14_er2p5 OR L1_DoubleEG_25_12_er2p5 OR L1_SingleJet35 OR L1_SingleJet60 OR L1_SingleJet90 OR L1_SingleJet120 OR L1_SingleJet140er2p5 OR L1_SingleJet160er2p5 OR L1_SingleJet180 OR L1_SingleJet200 OR L1_DoubleJet40er2p5 OR L1_DoubleJet100er2p5 OR L1_DoubleJet120er2p5 OR L1_QuadJet60er2p5 OR L1_HTT120er OR L1_HTT160er OR L1_HTT200er OR L1_HTT255er OR L1_HTT280er OR L1_HTT320er" ), @@ -82323,7 +82393,7 @@ L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) ) -process.hltL1sDoubleTauJet = cms.EDFilter( "HLTL1TSeed", +process.hltL1sBigORDoubleTauJet = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_DoubleIsoTau26er2p1_Jet55_RmOvlp_dR0p5" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), @@ -82363,7 +82433,7 @@ L1TauTrigger = cms.InputTag( "hltL1sMu22erIsoTau40er" ) ), cms.PSet( L1CollectionName = cms.string( "DoubleTauJet" ), - L1TauTrigger = cms.InputTag( "hltL1sDoubleTauJet" ) + L1TauTrigger = cms.InputTag( "hltL1sBigORDoubleTauJet" ) ), cms.PSet( L1CollectionName = cms.string( "VBFIsoTau" ), L1TauTrigger = cms.InputTag( "hltL1VBFDiJetIsoTau" ) @@ -82390,7 +82460,7 @@ nExpected = cms.int32( 2 ), L1TauSrc = cms.InputTag( "hltL1sDoubleTauBigOR" ), L2Outcomes = cms.InputTag( 'hltL2TauTagNNProducer','DoubleTau' ), - DiscrWP = cms.double( 0.4327 ), + DiscrWP = cms.double( 0.386 ), l1TauPtThreshold = cms.double( 250.0 ) ) process.hltL1sTauVeryBigOR = cms.EDFilter( "HLTL1TSeed", @@ -82810,10 +82880,9 @@ is_online = cms.bool( True ), VSeWP = cms.vstring( '-1.' ), VSmuWP = cms.vstring( '-1.' ), - VSjetWP = cms.vstring( 'double t1 = 0.5701, t2 = 0.4610, t3 = 0.125, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', - 'double t1 = 0.844, t2 = 0.8457, t3 = 0.125, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', - 'double t1 = 0.5890, t2 = 0.3310, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', - 'double t1 = 0.9619, t2 = 0.9269, t3 = 0.5, x1 = 50, x2 = 300, x3 = 500; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', + VSjetWP = cms.vstring( 'double t1 = 0.62, t2 = 0.3891, t3 = 0.05, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', + 'double t1 = 0.7045, t2 = 0.7029, t3 = 0.05, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', + 'double t1 = 0.5419, t2 = 0.4837, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', 'double t1 = 0.6072, t2 = 0.125, x1 = 180, x2 = 500; if (pt <= x1) return t1; if (pt >= x2) return t2; return (t2 - t1) / (x2 - x1) * (pt - x1) + t1;' ), basicTauDiscriminators = cms.untracked.InputTag( "hltHpsPFTauBasicDiscriminatorsForDeepTau" ), basicTauDiscriminatorsdR03 = cms.untracked.InputTag( "hltHpsPFTauBasicDiscriminatorsdR03ForDeepTau" ), @@ -82829,7 +82898,7 @@ cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.5701, t2 = 0.4610, t3 = 0.125, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.62, t2 = 0.3891, t3 = 0.05, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -82852,15 +82921,6 @@ MaxEta = cms.double( 2.1 ), MinN = cms.int32( 2 ) ) -process.hltHpsDoublePFTau35MediumDitauWPDeepTauDz02 = cms.EDFilter( "HLTPFTauPairDzMatchFilter", - saveTags = cms.bool( True ), - JetSrc = cms.InputTag( "hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatch" ), - JetMinPt = cms.double( 35.0 ), - JetMaxEta = cms.double( 2.1 ), - JetMinDR = cms.double( 0.5 ), - JetMaxDZ = cms.double( 0.2 ), - TriggerType = cms.int32( 84 ) -) process.hltPreDoubleMediumChargedIsoPFTauHPS40Trk1eta2p1 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -83205,10 +83265,10 @@ discriminators = cms.VPSet( ), discriminatorContainers = cms.VPSet( - cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), + cms.PSet( discriminator = cms.InputTag( 'hltHpsPFTauDeepTauProducer','VSjet' ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.844, t2 = 0.8457, t3 = 0.125, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.7045, t2 = 0.7029, t3 = 0.05, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -83287,7 +83347,7 @@ cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.5890, t2 = 0.3310, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.5419, t2 = 0.4837, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -83765,7 +83825,7 @@ nExpected = cms.int32( 1 ), L1TauSrc = cms.InputTag( "hltL1sBigOrMuXXerIsoTauYYer" ), L2Outcomes = cms.InputTag( 'hltL2TauTagNNProducer','MuXXTauYY' ), - DiscrWP = cms.double( 0.4327 ), + DiscrWP = cms.double( 0.386 ), l1TauPtThreshold = cms.double( 250.0 ) ) process.hltHpsSinglePFTau35 = cms.EDFilter( "HLT1PFTau", @@ -83883,7 +83943,7 @@ saveTags = cms.bool( True ), Jets = cms.InputTag( "hltPFJetForBtag" ), JetTags = cms.InputTag( 'hltDeepJetDiscriminatorsJetTags','BvsAll' ), - MinTag = cms.double( 0.24 ), + MinTag = cms.double( 0.28746 ), MaxTag = cms.double( 999999.0 ), MinJets = cms.int32( 2 ), TriggerType = cms.int32( 86 ) @@ -85244,6 +85304,18 @@ TriggerType = cms.int32( 85 ), deltaR = cms.double( 0.8 ) ) +process.hltL1sDoubleTauJet = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleIsoTau26er2p1_Jet55_RmOvlp_dR0p5" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) process.hltPreDoubleMediumDeepTauIsoPFTauHPS30L2NNeta2p1PFJet60 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -85251,9 +85323,9 @@ process.hltL2DoubleTauJetTagNNFilter = cms.EDFilter( "L2TauTagFilter", saveTags = cms.bool( True ), nExpected = cms.int32( 2 ), - L1TauSrc = cms.InputTag( "hltL1sDoubleTauJet" ), + L1TauSrc = cms.InputTag( "hltL1sBigORDoubleTauJet" ), L2Outcomes = cms.InputTag( 'hltL2TauTagNNProducer','DoubleTauJet' ), - DiscrWP = cms.double( 0.4327 ), + DiscrWP = cms.double( 0.386 ), l1TauPtThreshold = cms.double( 250.0 ) ) process.hltHpsSelectedPFTausMediumDitauWPDeepTauDoubleTauJet = cms.EDFilter( "PFTauSelector", @@ -85265,7 +85337,7 @@ cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.5701, t2 = 0.4610, t3 = 0.125, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.62, t2 = 0.3891, t3 = 0.05, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -85288,15 +85360,6 @@ MaxEta = cms.double( 2.1 ), MinN = cms.int32( 2 ) ) -process.hltHpsDoublePFTau30MediumDitauWPDeepTauDz02DoubleTauJet = cms.EDFilter( "HLTPFTauPairDzMatchFilter", - saveTags = cms.bool( True ), - JetSrc = cms.InputTag( "hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatchDoubleTauJet" ), - JetMinPt = cms.double( 30.0 ), - JetMaxEta = cms.double( 2.1 ), - JetMinDR = cms.double( 0.5 ), - JetMaxDZ = cms.double( 0.2 ), - TriggerType = cms.int32( 84 ) -) process.hlt1PFJet60L1HLTMatched = cms.EDFilter( "HLT1PFJet", saveTags = cms.bool( True ), inputTag = cms.InputTag( "hltPFJetsCorrectedMatchedToL1" ), @@ -88982,216 +89045,1917 @@ MaxPt = cms.double( -1.0 ), MinN = cms.int32( 1 ) ) -process.hltPreExpressMuons = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltExpressMuonsFilter = cms.EDFilter( "TriggerResultsFilter", - usePathStatus = cms.bool( True ), - hltResults = cms.InputTag( 'TriggerResults','','@currentProcess' ), - l1tResults = cms.InputTag( "" ), - l1tIgnoreMaskAndPrescale = cms.bool( False ), - throw = cms.bool( True ), - triggerConditions = cms.vstring( '( HLT_IsoMu20_v15 OR HLT_IsoMu24_v13 OR HLT_IsoMu27_v16 )' ) -) -process.hltPreOnlineMonitorGroup = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltOnlineMonitorGroupFilter = cms.EDFilter( "TriggerResultsFilter", - usePathStatus = cms.bool( True ), - hltResults = cms.InputTag( 'TriggerResults','','@currentProcess' ), - l1tResults = cms.InputTag( "" ), - l1tIgnoreMaskAndPrescale = cms.bool( False ), - throw = cms.bool( True ), - triggerConditions = cms.vstring( '( HLT_Random_v3 OR HLT_HcalNZS_v13 OR HLT_HcalPhiSym_v15 OR HLT_L1SingleMu7_v1 OR HLT_L1DoubleMu0_v1 OR HLT_L1SingleEG10_v2 OR HLT_L1SingleEG18_v1 OR HLT_Photon22_v2 OR HLT_L1SingleJet35_v1 OR HLT_L1SingleJet200_v1 OR HLT_L1DoubleJetC50_v2 OR HLT_CaloJet10_NoJetID_v3 OR HLT_CaloJet20_NoJetID_v3 OR HLT_CaloJet50_NoJetID_v3 )' ) -) -process.hltPreHIOnlineMonitorGroup = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltHIOnlineMonitorGroupFilter = cms.EDFilter( "TriggerResultsFilter", - usePathStatus = cms.bool( True ), - hltResults = cms.InputTag( 'TriggerResults','','@currentProcess' ), - l1tResults = cms.InputTag( "" ), - l1tIgnoreMaskAndPrescale = cms.bool( False ), - throw = cms.bool( True ), - triggerConditions = cms.vstring( '( HLT_HIRandom_v1 OR HLT_HIHcalNZS_v1 OR HLT_HIHcalPhiSym_v1 )' ) -) -process.hltL1sDQMEcalReconstruction = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1GlobalDecision" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) -) -process.hltPreDQMEcalReconstruction = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltEcalConsumerCPU = cms.EDAnalyzer( "GenericConsumer", - eventProducts = cms.untracked.vstring( 'hltEcalDigis@cpu', - 'hltEcalUncalibRecHit@cpu', - 'hltEcalRecHit@cpu' ), - lumiProducts = cms.untracked.vstring( ), - runProducts = cms.untracked.vstring( ) -) -process.hltEcalConsumerGPU = cms.EDAnalyzer( "GenericConsumer", - eventProducts = cms.untracked.vstring( 'hltEcalDigis@cuda', - 'hltEcalUncalibRecHit@cuda', - 'hltEcalRecHit@cuda' ), - lumiProducts = cms.untracked.vstring( ), - runProducts = cms.untracked.vstring( ) -) -process.hltL1sDQMHcalReconstruction = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1GlobalDecision" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) -) -process.hltPreDQMHcalReconstruction = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltHcalConsumerCPU = cms.EDAnalyzer( "GenericConsumer", - eventProducts = cms.untracked.vstring( 'hltHbhereco@cpu' ), - lumiProducts = cms.untracked.vstring( ), - runProducts = cms.untracked.vstring( ) -) -process.hltHcalConsumerGPU = cms.EDAnalyzer( "GenericConsumer", - eventProducts = cms.untracked.vstring( 'hltHbhereco@cuda' ), - lumiProducts = cms.untracked.vstring( ), - runProducts = cms.untracked.vstring( ) -) -process.hltL1sDQMPixelReconstruction = cms.EDFilter( "HLTL1TSeed", - saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1GlobalDecision" ), - L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), - L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), - L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), - L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), - L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), - L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), - L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) -) -process.hltPreDQMPixelReconstruction = cms.EDFilter( "HLTPrescaler", - offset = cms.uint32( 0 ), - L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) -) -process.hltPixelConsumerCPU = cms.EDAnalyzer( "GenericConsumer", - eventProducts = cms.untracked.vstring( 'hltSiPixelDigis@cpu', - 'hltSiPixelClusters@cpu', - 'hltSiPixelRecHits@cpu', - 'hltPixelTracksSoA@cpu', - 'hltPixelVerticesSoA@cpu' ), - lumiProducts = cms.untracked.vstring( ), - runProducts = cms.untracked.vstring( ) -) -process.hltPixelConsumerGPU = cms.EDAnalyzer( "GenericConsumer", - eventProducts = cms.untracked.vstring( 'hltSiPixelDigis@cuda', - 'hltSiPixelClusters@cuda', - 'hltSiPixelRecHits@cuda', - 'hltPixelTracksSoA@cuda', - 'hltPixelVerticesSoA@cuda' ), - lumiProducts = cms.untracked.vstring( ), - runProducts = cms.untracked.vstring( ) -) -process.hltPreTOTEM1ANDPixelTrackCountingMult1part0 = cms.EDFilter( "HLTPrescaler", +process.hltPreDoubleL3Iter4Mu1610NoVtxDxyMin0p01cm = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) ) -process.hltSiPixelDigisForHighBeta = cms.EDProducer( "SiPixelRawToDigi", - IncludeErrors = cms.bool( True ), - UseQualityInfo = cms.bool( True ), - ErrorList = cms.vint32( 29 ), - UserErrorList = cms.vint32( ), - InputLabel = cms.InputTag( "rawDataCollector" ), - Regions = cms.PSet( ), - UsePilotBlade = cms.bool( False ), - UsePhase1 = cms.bool( True ), - CablingMapLabel = cms.string( "" ), - SiPixelQualityLabel = cms.string( "" ) -) -process.hltSiPixelClustersForHighBeta = cms.EDProducer( "SiPixelClusterProducer", - src = cms.InputTag( "hltSiPixelDigisForHighBeta" ), - ClusterMode = cms.string( "PixelThresholdClusterizer" ), - maxNumberOfClusters = cms.int32( 40000 ), - payloadType = cms.string( "HLT" ), - ChannelThreshold = cms.int32( 10 ), - MissCalibrate = cms.bool( True ), - SplitClusters = cms.bool( False ), - VCaltoElectronGain = cms.int32( 1 ), - VCaltoElectronGain_L1 = cms.int32( 1 ), - VCaltoElectronOffset = cms.int32( 0 ), - VCaltoElectronOffset_L1 = cms.int32( 0 ), - SeedThreshold = cms.int32( 1000 ), - ClusterThreshold_L1 = cms.int32( 4000 ), - ClusterThreshold = cms.int32( 4000 ), - ElectronPerADCGain = cms.double( 135.0 ), - Phase2Calibration = cms.bool( False ), - Phase2ReadoutMode = cms.int32( -1 ), - Phase2DigiBaseline = cms.double( 1200.0 ), - Phase2KinkADC = cms.int32( 8 ) +process.hltIterL3TrajSeedOIStateFromDisplacedL2Muons = cms.EDProducer( "TSGFromL2Muon", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSteppingHelixPropagatorOpposite', + 'hltESPSteppingHelixPropagatorAlong' ) + ), + MuonTrackingRegionBuilder = cms.PSet( ), + TrackerSeedCleaner = cms.PSet( ), + TkSeedGenerator = cms.PSet( + copyMuonRecHit = cms.bool( False ), + propagatorName = cms.string( "hltESPSteppingHelixPropagatorAlong" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + errorMatrixPset = cms.PSet( + atIP = cms.bool( True ), + action = cms.string( "use" ), + errorMatrixValuesPSet = cms.PSet( + xAxis = cms.vdouble( 0.0, 13.0, 30.0, 70.0, 1000.0 ), + zAxis = cms.vdouble( -3.14159, 3.14159 ), + yAxis = cms.vdouble( 0.0, 1.0, 1.4, 10.0 ), + pf3_V14 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V25 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V13 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V24 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V35 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V12 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V23 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V34 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V45 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V11 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V22 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V33 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V44 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V55 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V15 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ) + ) + ), + ComponentName = cms.string( "TSGForRoadSearch" ), + maxChi2 = cms.double( 40.0 ), + manySeeds = cms.bool( False ), + propagatorCompatibleName = cms.string( "hltESPSteppingHelixPropagatorOpposite" ), + option = cms.uint32( 3 ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + PtCut = cms.double( 1.0 ), + PCut = cms.double( 2.5 ) ) -process.hltSiPixelClustersCacheForHighBeta = cms.EDProducer( "SiPixelClusterShapeCacheProducer", - src = cms.InputTag( "hltSiPixelClustersForHighBeta" ), - onDemand = cms.bool( False ) +process.hltIterL3OIStateGlbDisplacedTrackCandidates = cms.EDProducer( "CkfTrackCandidateMaker", + cleanTrajectoryAfterInOut = cms.bool( False ), + doSeedingRegionRebuilding = cms.bool( False ), + onlyPixelHitsForSeedCleaner = cms.bool( False ), + reverseTrajectories = cms.bool( True ), + useHitsSplitting = cms.bool( False ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + src = cms.InputTag( "hltIterL3TrajSeedOIStateFromDisplacedL2Muons" ), + clustersToSkip = cms.InputTag( "" ), + phase2clustersToSkip = cms.InputTag( "" ), + TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetMuonCkfTrajectoryBuilder" ) ), + TransientInitialStateEstimatorParameters = cms.PSet( + propagatorAlongTISE = cms.string( "PropagatorWithMaterial" ), + numberMeasurementsForFit = cms.int32( 3 ), + propagatorOppositeTISE = cms.string( "PropagatorWithMaterialOpposite" ) + ), + numHitsForSeedCleaner = cms.int32( 4 ), + NavigationSchool = cms.string( "SimpleNavigationSchool" ), + RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), + TrajectoryCleaner = cms.string( "muonSeededTrajectoryCleanerBySharedHits" ), + maxNSeeds = cms.uint32( 500000 ), + maxSeedsBeforeCleaning = cms.uint32( 5000 ) ) -process.hltSiPixelRecHitsForHighBeta = cms.EDProducer( "SiPixelRecHitConverter", - src = cms.InputTag( "hltSiPixelClustersForHighBeta" ), - CPE = cms.string( "hltESPPixelCPEGeneric" ), - VerboseLevel = cms.untracked.int32( 0 ) +process.hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks = cms.EDProducer( "TrackProducer", + useSimpleMF = cms.bool( False ), + SimpleMagneticField = cms.string( "" ), + src = cms.InputTag( "hltIterL3OIStateGlbDisplacedTrackCandidates" ), + clusterRemovalInfo = cms.InputTag( "" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Fitter = cms.string( "hltESPKFFittingSmootherWithOutliersRejectionAndRK" ), + useHitsSplitting = cms.bool( False ), + alias = cms.untracked.string( "" ), + TrajectoryInEvent = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + AlgorithmName = cms.string( "iter10" ), + Propagator = cms.string( "PropagatorWithMaterial" ), + GeometricInnerState = cms.bool( True ), + NavigationSchool = cms.string( "" ), + MeasurementTracker = cms.string( "" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ) ) -process.hltPixelTracksTrackingRegionsForHighBeta = cms.EDProducer( "GlobalTrackingRegionFromBeamSpotEDProducer", - RegionPSet = cms.PSet( - nSigmaZ = cms.double( 4.0 ), +process.hltL3GlbDisplacedMuonsIterL3OIState = cms.EDProducer( "L3MuonProducer", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSmartPropagatorAny', + 'SteppingHelixPropagatorAny', + 'hltESPSmartPropagator', + 'hltESPSteppingHelixPropagatorOpposite' ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + TrackLoaderParameters = cms.PSet( + MuonSeededTracksInstance = cms.untracked.string( "L2Seeded" ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), - ptMin = cms.double( 0.05 ), - originRadius = cms.double( 0.2 ), - precise = cms.bool( True ) + DoSmoothing = cms.bool( True ), + SmoothTkTrack = cms.untracked.bool( False ), + VertexConstraint = cms.bool( False ), + MuonUpdatorAtVertexParameters = cms.PSet( + MaxChi2 = cms.double( 1000000.0 ), + BeamSpotPositionErrors = cms.vdouble( 0.1, 0.1, 5.3 ), + Propagator = cms.string( "hltESPSteppingHelixPropagatorOpposite" ) + ), + PutTkTrackIntoEvent = cms.untracked.bool( False ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + L3TrajBuilderParameters = cms.PSet( + PtCut = cms.double( 1.0 ), + TrackerPropagator = cms.string( "SteppingHelixPropagatorAny" ), + GlobalMuonTrackMatcher = cms.PSet( + Chi2Cut_3 = cms.double( 200.0 ), + DeltaDCut_2 = cms.double( 10.0 ), + Eta_threshold = cms.double( 1.2 ), + Quality_2 = cms.double( 15.0 ), + DeltaDCut_1 = cms.double( 40.0 ), + Quality_3 = cms.double( 7.0 ), + DeltaDCut_3 = cms.double( 15.0 ), + Quality_1 = cms.double( 20.0 ), + Pt_threshold1 = cms.double( 0.0 ), + DeltaRCut_2 = cms.double( 0.2 ), + DeltaRCut_1 = cms.double( 0.1 ), + Pt_threshold2 = cms.double( 9.99999999E8 ), + Chi2Cut_1 = cms.double( 50.0 ), + Chi2Cut_2 = cms.double( 50.0 ), + DeltaRCut_3 = cms.double( 1.0 ), + LocChi2Cut = cms.double( 0.001 ), + Propagator = cms.string( "hltESPSmartPropagator" ), + MinPt = cms.double( 1.0 ), + MinP = cms.double( 2.5 ) + ), + ScaleTECxFactor = cms.double( -1.0 ), + tkTrajUseVertex = cms.bool( False ), + MuonTrackingRegionBuilder = cms.PSet( + Rescale_Dz = cms.double( 4.0 ), + Pt_fixed = cms.bool( False ), + Eta_fixed = cms.bool( True ), + Eta_min = cms.double( 0.1 ), + DeltaZ = cms.double( 24.2 ), + maxRegions = cms.int32( 2 ), + EtaR_UpperLimit_Par1 = cms.double( 0.25 ), + UseVertex = cms.bool( False ), + Z_fixed = cms.bool( False ), + PhiR_UpperLimit_Par1 = cms.double( 0.6 ), + PhiR_UpperLimit_Par2 = cms.double( 0.2 ), + Rescale_phi = cms.double( 3.0 ), + DeltaEta = cms.double( 0.2 ), + precise = cms.bool( True ), + OnDemand = cms.int32( -1 ), + EtaR_UpperLimit_Par2 = cms.double( 0.15 ), + MeasurementTrackerName = cms.InputTag( "hltESPMeasurementTracker" ), + vertexCollection = cms.InputTag( "pixelVertices" ), + Pt_min = cms.double( 3.0 ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Phi_fixed = cms.bool( True ), + DeltaR = cms.double( 0.025 ), + input = cms.InputTag( "hltL2Muons" ), + DeltaPhi = cms.double( 0.15 ), + Phi_min = cms.double( 0.1 ), + Rescale_eta = cms.double( 3.0 ) + ), + TrackTransformer = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + RefitDirection = cms.string( "insideOut" ), + RefitRPCHits = cms.bool( True ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + tkTrajBeamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + RefitRPCHits = cms.bool( True ), + tkTrajVertex = cms.InputTag( "Notused" ), + GlbRefitterParameters = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), + RefitFlag = cms.bool( True ), + SkipStation = cms.int32( -1 ), + Chi2CutRPC = cms.double( 1.0 ), + PropDirForCosmics = cms.bool( False ), + CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + HitThreshold = cms.int32( 1 ), + DYTthrs = cms.vint32( 30, 15 ), + TrackerSkipSystem = cms.int32( -1 ), + RefitDirection = cms.string( "insideOut" ), + Chi2CutCSC = cms.double( 150.0 ), + Chi2CutDT = cms.double( 10.0 ), + RefitRPCHits = cms.bool( True ), + TrackerSkipSection = cms.int32( -1 ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonHitsOption = cms.int32( 1 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ) + ), + PCut = cms.double( 2.5 ), + tkTrajMaxDXYBeamSpot = cms.double( 9999.0 ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + tkTrajMaxChi2 = cms.double( 9999.0 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + ScaleTECyFactor = cms.double( -1.0 ), + tkTrajLabel = cms.InputTag( "hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks" ) ) ) -process.hltPixelLayerTripletsForHighBeta = cms.EDProducer( "SeedingLayersEDProducer", - layerList = cms.vstring( 'BPix1+BPix2+BPix3', - 'BPix2+BPix3+BPix4', - 'BPix1+BPix3+BPix4', - 'BPix1+BPix2+BPix4', - 'BPix2+BPix3+FPix1_pos', - 'BPix2+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix1_pos', - 'BPix1+BPix2+FPix1_neg', - 'BPix2+FPix1_pos+FPix2_pos', - 'BPix2+FPix1_neg+FPix2_neg', - 'BPix1+FPix1_pos+FPix2_pos', - 'BPix1+FPix1_neg+FPix2_neg', - 'FPix1_pos+FPix2_pos+FPix3_pos', - 'FPix1_neg+FPix2_neg+FPix3_neg', - 'BPix1+BPix3+FPix1_pos', - 'BPix1+BPix2+FPix2_pos', - 'BPix1+BPix3+FPix1_neg', - 'BPix1+BPix2+FPix2_neg', - 'BPix1+FPix2_neg+FPix3_neg', - 'BPix1+FPix1_neg+FPix3_neg', - 'BPix1+FPix2_pos+FPix3_pos', - 'BPix1+FPix1_pos+FPix3_pos' ), - BPix = cms.PSet( - hitErrorRPhi = cms.double( 0.0027 ), - TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ), - useErrorsFromParam = cms.bool( True ), - hitErrorRZ = cms.double( 0.006 ), - HitProducer = cms.string( "hltSiPixelRecHitsForHighBeta" ) +process.hltIterL3NoFiltersNoVtxTrajSeedOIHit = cms.EDProducer( "TSGFromL2Muon", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'PropagatorWithMaterial', + 'hltESPSmartPropagatorAnyOpposite' ) + ), + MuonTrackingRegionBuilder = cms.PSet( ), + TrackerSeedCleaner = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + cleanerFromSharedHits = cms.bool( True ), + directionCleaner = cms.bool( True ), + ptCleaner = cms.bool( True ) + ), + TkSeedGenerator = cms.PSet( + iterativeTSG = cms.PSet( + MeasurementTrackerName = cms.string( "hltESPMeasurementTracker" ), + beamSpot = cms.InputTag( "unused" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + SelectState = cms.bool( False ), + ErrorRescaling = cms.double( 3.0 ), + UseVertexState = cms.bool( True ), + SigmaZ = cms.double( 25.0 ), + MaxChi2 = cms.double( 40.0 ), + errorMatrixPset = cms.PSet( + atIP = cms.bool( True ), + action = cms.string( "use" ), + errorMatrixValuesPSet = cms.PSet( + xAxis = cms.vdouble( 0.0, 13.0, 30.0, 70.0, 1000.0 ), + zAxis = cms.vdouble( -3.14159, 3.14159 ), + yAxis = cms.vdouble( 0.0, 1.0, 1.4, 10.0 ), + pf3_V14 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V25 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V13 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V24 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V35 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V12 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V23 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V34 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V45 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V11 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V22 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V33 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V44 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V55 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V15 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ) + ) + ), + Propagator = cms.string( "hltESPSmartPropagatorAnyOpposite" ), + ComponentName = cms.string( "TSGFromPropagation" ), + UpdateState = cms.bool( True ), + ResetMethod = cms.string( "matrix" ) + ), + PSetNames = cms.vstring( 'skipTSG', + 'iterativeTSG' ), + skipTSG = cms.PSet( ), + ComponentName = cms.string( "DualByL2TSG" ), + L3TkCollectionA = cms.InputTag( "hltL3GlbDisplacedMuonsIterL3OIState" ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + PtCut = cms.double( 1.0 ), + PCut = cms.double( 2.5 ) +) +process.hltIterL3OIHitGlbDisplacedTrackCandidates = cms.EDProducer( "CkfTrackCandidateMaker", + cleanTrajectoryAfterInOut = cms.bool( False ), + doSeedingRegionRebuilding = cms.bool( False ), + onlyPixelHitsForSeedCleaner = cms.bool( False ), + reverseTrajectories = cms.bool( True ), + useHitsSplitting = cms.bool( False ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + src = cms.InputTag( "hltIterL3NoFiltersNoVtxTrajSeedOIHit" ), + clustersToSkip = cms.InputTag( "" ), + phase2clustersToSkip = cms.InputTag( "" ), + TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetMuonCkfTrajectoryBuilder" ) ), + TransientInitialStateEstimatorParameters = cms.PSet( + propagatorAlongTISE = cms.string( "PropagatorWithMaterial" ), + numberMeasurementsForFit = cms.int32( 3 ), + propagatorOppositeTISE = cms.string( "PropagatorWithMaterialOpposite" ) + ), + numHitsForSeedCleaner = cms.int32( 4 ), + NavigationSchool = cms.string( "SimpleNavigationSchool" ), + RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), + TrajectoryCleaner = cms.string( "muonSeededTrajectoryCleanerBySharedHits" ), + maxNSeeds = cms.uint32( 500000 ), + maxSeedsBeforeCleaning = cms.uint32( 5000 ) +) +process.hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks = cms.EDProducer( "TrackProducer", + useSimpleMF = cms.bool( False ), + SimpleMagneticField = cms.string( "" ), + src = cms.InputTag( "hltIterL3OIHitGlbDisplacedTrackCandidates" ), + clusterRemovalInfo = cms.InputTag( "" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Fitter = cms.string( "hltESPKFFittingSmootherWithOutliersRejectionAndRK" ), + useHitsSplitting = cms.bool( False ), + alias = cms.untracked.string( "" ), + TrajectoryInEvent = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + AlgorithmName = cms.string( "iter10" ), + Propagator = cms.string( "PropagatorWithMaterial" ), + GeometricInnerState = cms.bool( True ), + NavigationSchool = cms.string( "" ), + MeasurementTracker = cms.string( "" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ) +) +process.hltL3GlbDisplacedMuonsIterL3OIHit = cms.EDProducer( "L3MuonProducer", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSmartPropagatorAny', + 'SteppingHelixPropagatorAny', + 'hltESPSmartPropagator', + 'hltESPSteppingHelixPropagatorOpposite' ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + TrackLoaderParameters = cms.PSet( + MuonSeededTracksInstance = cms.untracked.string( "L2Seeded" ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + DoSmoothing = cms.bool( True ), + SmoothTkTrack = cms.untracked.bool( False ), + VertexConstraint = cms.bool( False ), + MuonUpdatorAtVertexParameters = cms.PSet( + MaxChi2 = cms.double( 1000000.0 ), + BeamSpotPositionErrors = cms.vdouble( 0.1, 0.1, 5.3 ), + Propagator = cms.string( "hltESPSteppingHelixPropagatorOpposite" ) + ), + PutTkTrackIntoEvent = cms.untracked.bool( False ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + L3TrajBuilderParameters = cms.PSet( + PtCut = cms.double( 1.0 ), + TrackerPropagator = cms.string( "SteppingHelixPropagatorAny" ), + GlobalMuonTrackMatcher = cms.PSet( + Chi2Cut_3 = cms.double( 200.0 ), + DeltaDCut_2 = cms.double( 10.0 ), + Eta_threshold = cms.double( 1.2 ), + Quality_2 = cms.double( 15.0 ), + DeltaDCut_1 = cms.double( 40.0 ), + Quality_3 = cms.double( 7.0 ), + DeltaDCut_3 = cms.double( 15.0 ), + Quality_1 = cms.double( 20.0 ), + Pt_threshold1 = cms.double( 0.0 ), + DeltaRCut_2 = cms.double( 0.2 ), + DeltaRCut_1 = cms.double( 0.1 ), + Pt_threshold2 = cms.double( 9.99999999E8 ), + Chi2Cut_1 = cms.double( 50.0 ), + Chi2Cut_2 = cms.double( 50.0 ), + DeltaRCut_3 = cms.double( 1.0 ), + LocChi2Cut = cms.double( 0.001 ), + Propagator = cms.string( "hltESPSmartPropagator" ), + MinPt = cms.double( 1.0 ), + MinP = cms.double( 2.5 ) + ), + ScaleTECxFactor = cms.double( -1.0 ), + tkTrajUseVertex = cms.bool( False ), + MuonTrackingRegionBuilder = cms.PSet( + Rescale_Dz = cms.double( 4.0 ), + Pt_fixed = cms.bool( False ), + Eta_fixed = cms.bool( True ), + Eta_min = cms.double( 0.1 ), + DeltaZ = cms.double( 24.2 ), + maxRegions = cms.int32( 2 ), + EtaR_UpperLimit_Par1 = cms.double( 0.25 ), + UseVertex = cms.bool( False ), + Z_fixed = cms.bool( False ), + PhiR_UpperLimit_Par1 = cms.double( 0.6 ), + PhiR_UpperLimit_Par2 = cms.double( 0.2 ), + Rescale_phi = cms.double( 3.0 ), + DeltaEta = cms.double( 0.2 ), + precise = cms.bool( True ), + OnDemand = cms.int32( -1 ), + EtaR_UpperLimit_Par2 = cms.double( 0.15 ), + MeasurementTrackerName = cms.InputTag( "hltESPMeasurementTracker" ), + vertexCollection = cms.InputTag( "pixelVertices" ), + Pt_min = cms.double( 3.0 ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Phi_fixed = cms.bool( True ), + DeltaR = cms.double( 0.025 ), + input = cms.InputTag( "hltL2Muons" ), + DeltaPhi = cms.double( 0.15 ), + Phi_min = cms.double( 0.1 ), + Rescale_eta = cms.double( 3.0 ) + ), + TrackTransformer = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + RefitDirection = cms.string( "insideOut" ), + RefitRPCHits = cms.bool( True ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + tkTrajBeamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + RefitRPCHits = cms.bool( True ), + tkTrajVertex = cms.InputTag( "Notused" ), + GlbRefitterParameters = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), + RefitFlag = cms.bool( True ), + SkipStation = cms.int32( -1 ), + Chi2CutRPC = cms.double( 1.0 ), + PropDirForCosmics = cms.bool( False ), + CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + HitThreshold = cms.int32( 1 ), + DYTthrs = cms.vint32( 30, 15 ), + TrackerSkipSystem = cms.int32( -1 ), + RefitDirection = cms.string( "insideOut" ), + Chi2CutCSC = cms.double( 150.0 ), + Chi2CutDT = cms.double( 10.0 ), + RefitRPCHits = cms.bool( True ), + TrackerSkipSection = cms.int32( -1 ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonHitsOption = cms.int32( 1 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ) + ), + PCut = cms.double( 2.5 ), + tkTrajMaxDXYBeamSpot = cms.double( 9999.0 ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + tkTrajMaxChi2 = cms.double( 9999.0 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + ScaleTECyFactor = cms.double( -1.0 ), + tkTrajLabel = cms.InputTag( "hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks" ) + ) +) +process.hltIterL3OIL3GlbDisplacedMuonsLinksCombination = cms.EDProducer( "L3TrackLinksCombiner", + labels = cms.VInputTag( 'hltL3GlbDisplacedMuonsIterL3OIState','hltL3GlbDisplacedMuonsIterL3OIHit' ) +) +process.hltIterL3OIL3GlbDisplacedMuons = cms.EDProducer( "L3TrackCombiner", + labels = cms.VInputTag( 'hltL3GlbDisplacedMuonsIterL3OIState','hltL3GlbDisplacedMuonsIterL3OIHit' ) +) +process.hltIterL3OIGlbDisplacedMuonCandidates = cms.EDProducer( "L3MuonCandidateProducer", + InputObjects = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuons" ), + InputLinksObjects = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuonsLinksCombination" ), + MuonPtOption = cms.string( "Global" ) +) +process.hltL2SelectorForL3IOForGlbDisplaced = cms.EDProducer( "HLTMuonL2SelectorForL3IO", + l2Src = cms.InputTag( "hltL2Muons" ), + l3OISrc = cms.InputTag( "hltIterL3OIGlbDisplacedMuonCandidates" ), + InputLinks = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuonsLinksCombination" ), + applyL3Filters = cms.bool( False ), + MinNhits = cms.int32( 1 ), + MaxNormalizedChi2 = cms.double( 20.0 ), + MinNmuonHits = cms.int32( 1 ), + MaxPtDifference = cms.double( 0.3 ) +) +process.hltDisplacedhltIter4PixelLessLayerTripletsForGlbDisplacedMuons = cms.EDProducer( "SeedingLayersEDProducer", + layerList = cms.vstring( 'TIB1+TIB2+MTIB3', + 'TIB1+TIB2+MTID1_pos', + 'TIB1+TIB2+MTID1_neg', + 'TID1_pos+TID2_pos+TID3_pos', + 'TID1_neg+TID2_neg+TID3_neg', + 'TID1_pos+TID2_pos+MTID3_pos', + 'TID1_neg+TID2_neg+MTID3_neg' ), + BPix = cms.PSet( ), + FPix = cms.PSet( ), + TIB = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + skipClusters = cms.InputTag( "" ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ) + ), + TID = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 1 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 2 ) + ), + TOB = cms.PSet( ), + TEC = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 1 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 2 ) + ), + MTIB = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + skipClusters = cms.InputTag( "" ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ) + ), + MTID = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 3 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 3 ) + ), + MTOB = cms.PSet( ), + MTEC = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 3 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 3 ) + ) +) +process.hltDisplacedhltIter4PixelLessClusterCheckForGlbDisplacedMuons = cms.EDProducer( "ClusterCheckerEDProducer", + doClusterCheck = cms.bool( False ), + MaxNumberOfCosmicClusters = cms.uint32( 800000 ), + ClusterCollectionLabel = cms.InputTag( "hltSiStripClusters" ), + MaxNumberOfPixelClusters = cms.uint32( 40000 ), + PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), + cut = cms.string( "" ), + silentClusterCheck = cms.untracked.bool( False ) +) +process.hltDisplacedhltIter4PixelLessSeedsForGlbDisplaced = cms.EDProducer( "TSGFromL2Muon", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'PropagatorWithMaterial' ) + ), + MuonTrackingRegionBuilder = cms.PSet( refToPSet_ = cms.string( "HLTPSetMuonTrackingRegionBuilder8356" ) ), + TrackerSeedCleaner = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + cleanerFromSharedHits = cms.bool( True ), + directionCleaner = cms.bool( True ), + ptCleaner = cms.bool( True ) + ), + TkSeedGenerator = cms.PSet( + iterativeTSG = cms.PSet( + firstTSG = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + OrderedHitsFactoryPSet = cms.PSet( + SeedingLayers = cms.InputTag( "hltDisplacedhltIter4PixelLessLayerTripletsForGlbDisplacedMuons" ), + ComponentName = cms.string( "StandardHitTripletGenerator" ), + GeneratorPSet = cms.PSet( + SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ), + maxElement = cms.uint32( 0 ), + useFixedPreFiltering = cms.bool( False ), + extraHitRZtolerance = cms.double( 0.06 ), + phiPreFiltering = cms.double( 0.3 ), + extraHitRPhitolerance = cms.double( 0.06 ), + useBending = cms.bool( True ), + ComponentName = cms.string( "PixelTripletHLTGenerator" ), + useMultScattering = cms.bool( True ) + ) + ), + SeedCreatorPSet = cms.PSet( refToPSet_ = cms.string( "HLTSeedFromConsecutiveHitsCreator" ) ), + ComponentName = cms.string( "TSGFromOrderedHits" ) + ), + PSetNames = cms.vstring( 'firstTSG' ), + ComponentName = cms.string( "CombinedTSG" ) + ), + PSetNames = cms.vstring( 'skipTSG', + 'iterativeTSG' ), + skipTSG = cms.PSet( ), + ComponentName = cms.string( "DualByL2TSG" ), + L3TkCollectionA = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuons" ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2SelectorForL3IOForGlbDisplaced" ), + PtCut = cms.double( 1.0 ), + PCut = cms.double( 2.5 ) +) +process.hltDisplacedhltIter4CkfTrackCandidatesForGlbDisplacedMuons = cms.EDProducer( "CkfTrackCandidateMaker", + cleanTrajectoryAfterInOut = cms.bool( False ), + doSeedingRegionRebuilding = cms.bool( False ), + onlyPixelHitsForSeedCleaner = cms.bool( False ), + reverseTrajectories = cms.bool( False ), + useHitsSplitting = cms.bool( False ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + src = cms.InputTag( "hltDisplacedhltIter4PixelLessSeedsForGlbDisplaced" ), + clustersToSkip = cms.InputTag( "" ), + phase2clustersToSkip = cms.InputTag( "" ), + TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTIter4PSetTrajectoryBuilderIT" ) ), + TransientInitialStateEstimatorParameters = cms.PSet( + propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), + numberMeasurementsForFit = cms.int32( 4 ), + propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) + ), + numHitsForSeedCleaner = cms.int32( 4 ), + NavigationSchool = cms.string( "SimpleNavigationSchool" ), + RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), + TrajectoryCleaner = cms.string( "hltESPTrajectoryCleanerBySharedHits" ), + maxNSeeds = cms.uint32( 100000 ), + maxSeedsBeforeCleaning = cms.uint32( 1000 ) +) +process.hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons = cms.EDProducer( "TrackProducer", + useSimpleMF = cms.bool( True ), + SimpleMagneticField = cms.string( "ParabolicMf" ), + src = cms.InputTag( "hltDisplacedhltIter4CkfTrackCandidatesForGlbDisplacedMuons" ), + clusterRemovalInfo = cms.InputTag( "" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Fitter = cms.string( "hltESPFittingSmootherIT" ), + useHitsSplitting = cms.bool( False ), + alias = cms.untracked.string( "ctfWithMaterialTracks" ), + TrajectoryInEvent = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + AlgorithmName = cms.string( "hltIterX" ), + Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), + GeometricInnerState = cms.bool( True ), + NavigationSchool = cms.string( "" ), + MeasurementTracker = cms.string( "" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ) +) +process.hltIter4IterL3FromL2MuonTrackCutClassifier = cms.EDProducer( "TrackCutClassifier", + src = cms.InputTag( "hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons" ), + beamspot = cms.InputTag( "hltOnlineBeamSpot" ), + vertices = cms.InputTag( "Notused" ), + ignoreVertices = cms.bool( True ), + qualityCuts = cms.vdouble( -0.7, 0.1, 0.7 ), + mva = cms.PSet( + minPixelHits = cms.vint32( 0, 0, 0 ), + maxDzWrtBS = cms.vdouble( 3.40282346639E38, 24.0, 100.0 ), + dr_par = cms.PSet( + d0err = cms.vdouble( 0.003, 0.003, 3.40282346639E38 ), + dr_par2 = cms.vdouble( 0.3, 0.3, 3.40282346639E38 ), + dr_par1 = cms.vdouble( 0.4, 0.4, 3.40282346639E38 ), + dr_exp = cms.vint32( 4, 4, 2147483647 ), + d0err_par = cms.vdouble( 0.001, 0.001, 3.40282346639E38 ) + ), + maxLostLayers = cms.vint32( 1, 1, 1 ), + min3DLayers = cms.vint32( 0, 0, 0 ), + dz_par = cms.PSet( + dz_par1 = cms.vdouble( 0.4, 0.4, 3.40282346639E38 ), + dz_par2 = cms.vdouble( 0.35, 0.35, 3.40282346639E38 ), + dz_exp = cms.vint32( 4, 4, 2147483647 ) + ), + minNVtxTrk = cms.int32( 3 ), + maxDz = cms.vdouble( 0.5, 0.2, 3.40282346639E38 ), + minNdof = cms.vdouble( 1.0E-5, 1.0E-5, 1.0E-5 ), + maxChi2 = cms.vdouble( 3.40282346639E38, 3.40282346639E38, 3.40282346639E38 ), + maxChi2n = cms.vdouble( 1.2, 1.0, 0.7 ), + maxDr = cms.vdouble( 0.5, 0.03, 3.40282346639E38 ), + minLayers = cms.vint32( 3, 3, 4 ) + ) +) +process.hltIter4IterL3FromL2MuonTrackSelectionHighPurity = cms.EDProducer( "TrackCollectionFilterCloner", + originalSource = cms.InputTag( "hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons" ), + originalMVAVals = cms.InputTag( 'hltIter4IterL3FromL2MuonTrackCutClassifier','MVAValues' ), + originalQualVals = cms.InputTag( 'hltIter4IterL3FromL2MuonTrackCutClassifier','QualityMasks' ), + minQuality = cms.string( "highPurity" ), + copyExtras = cms.untracked.bool( True ), + copyTrajectories = cms.untracked.bool( False ) +) +process.hltIterOIhitMergedWithOIGlbDisplacedMuons = cms.EDProducer( "TrackListMerger", + ShareFrac = cms.double( 0.19 ), + FoundHitBonus = cms.double( 5.0 ), + LostHitPenalty = cms.double( 20.0 ), + MinPT = cms.double( 0.05 ), + Epsilon = cms.double( -0.001 ), + MaxNormalizedChisq = cms.double( 1000.0 ), + MinFound = cms.int32( 3 ), + TrackProducers = cms.VInputTag( 'hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks','hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks' ), + hasSelector = cms.vint32( 0, 0 ), + indivShareFrac = cms.vdouble( 1.0, 1.0 ), + selectedTrackQuals = cms.VInputTag( 'hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks','hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks' ), + setsToMerge = cms.VPSet( + cms.PSet( pQual = cms.bool( False ), + tLists = cms.vint32( 0, 1 ) + ) + ), + trackAlgoPriorityOrder = cms.string( "hltESPTrackAlgoPriorityOrder" ), + allowFirstHitShare = cms.bool( True ), + newQuality = cms.string( "confirmed" ), + copyExtras = cms.untracked.bool( True ), + writeOnlyTrkQuals = cms.bool( False ), + copyMVA = cms.bool( False ) +) +process.hltIter4MergedWithOIGlbDisplacedMuons = cms.EDProducer( "TrackListMerger", + ShareFrac = cms.double( 0.19 ), + FoundHitBonus = cms.double( 5.0 ), + LostHitPenalty = cms.double( 20.0 ), + MinPT = cms.double( 0.05 ), + Epsilon = cms.double( -0.001 ), + MaxNormalizedChisq = cms.double( 1000.0 ), + MinFound = cms.int32( 3 ), + TrackProducers = cms.VInputTag( 'hltIterOIhitMergedWithOIGlbDisplacedMuons','hltIter4IterL3FromL2MuonTrackSelectionHighPurity' ), + hasSelector = cms.vint32( 0, 0 ), + indivShareFrac = cms.vdouble( 1.0, 1.0 ), + selectedTrackQuals = cms.VInputTag( 'hltIterOIhitMergedWithOIGlbDisplacedMuons','hltIter4IterL3FromL2MuonTrackSelectionHighPurity' ), + setsToMerge = cms.VPSet( + cms.PSet( pQual = cms.bool( False ), + tLists = cms.vint32( 0, 1 ) + ) + ), + trackAlgoPriorityOrder = cms.string( "hltESPTrackAlgoPriorityOrder" ), + allowFirstHitShare = cms.bool( True ), + newQuality = cms.string( "confirmed" ), + copyExtras = cms.untracked.bool( True ), + writeOnlyTrkQuals = cms.bool( False ), + copyMVA = cms.bool( False ) +) +process.hltIterL3GlbDisplacedMuons = cms.EDProducer( "L3MuonProducer", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSmartPropagatorAny', + 'SteppingHelixPropagatorAny', + 'hltESPSmartPropagator', + 'hltESPSteppingHelixPropagatorOpposite' ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + TrackLoaderParameters = cms.PSet( + MuonSeededTracksInstance = cms.untracked.string( "L2Seeded" ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + DoSmoothing = cms.bool( True ), + SmoothTkTrack = cms.untracked.bool( False ), + VertexConstraint = cms.bool( False ), + MuonUpdatorAtVertexParameters = cms.PSet( + MaxChi2 = cms.double( 1000000.0 ), + BeamSpotPositionErrors = cms.vdouble( 0.1, 0.1, 5.3 ), + Propagator = cms.string( "hltESPSteppingHelixPropagatorOpposite" ) + ), + PutTkTrackIntoEvent = cms.untracked.bool( False ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + L3TrajBuilderParameters = cms.PSet( + PtCut = cms.double( 1.0 ), + TrackerPropagator = cms.string( "SteppingHelixPropagatorAny" ), + GlobalMuonTrackMatcher = cms.PSet( + Chi2Cut_3 = cms.double( 200.0 ), + DeltaDCut_2 = cms.double( 10.0 ), + Eta_threshold = cms.double( 1.2 ), + Quality_2 = cms.double( 15.0 ), + DeltaDCut_1 = cms.double( 40.0 ), + Quality_3 = cms.double( 7.0 ), + DeltaDCut_3 = cms.double( 15.0 ), + Quality_1 = cms.double( 20.0 ), + Pt_threshold1 = cms.double( 0.0 ), + DeltaRCut_2 = cms.double( 0.2 ), + DeltaRCut_1 = cms.double( 0.1 ), + Pt_threshold2 = cms.double( 9.99999999E8 ), + Chi2Cut_1 = cms.double( 50.0 ), + Chi2Cut_2 = cms.double( 50.0 ), + DeltaRCut_3 = cms.double( 1.0 ), + LocChi2Cut = cms.double( 0.001 ), + Propagator = cms.string( "hltESPSmartPropagator" ), + MinPt = cms.double( 1.0 ), + MinP = cms.double( 2.5 ) + ), + ScaleTECxFactor = cms.double( -1.0 ), + tkTrajUseVertex = cms.bool( False ), + MuonTrackingRegionBuilder = cms.PSet( + Rescale_Dz = cms.double( 4.0 ), + Pt_fixed = cms.bool( False ), + Eta_fixed = cms.bool( True ), + Eta_min = cms.double( 0.1 ), + DeltaZ = cms.double( 24.2 ), + maxRegions = cms.int32( 2 ), + EtaR_UpperLimit_Par1 = cms.double( 0.25 ), + UseVertex = cms.bool( False ), + Z_fixed = cms.bool( False ), + PhiR_UpperLimit_Par1 = cms.double( 0.6 ), + PhiR_UpperLimit_Par2 = cms.double( 0.2 ), + Rescale_phi = cms.double( 3.0 ), + DeltaEta = cms.double( 0.2 ), + precise = cms.bool( True ), + OnDemand = cms.int32( -1 ), + EtaR_UpperLimit_Par2 = cms.double( 0.15 ), + MeasurementTrackerName = cms.InputTag( "hltESPMeasurementTracker" ), + vertexCollection = cms.InputTag( "pixelVertices" ), + Pt_min = cms.double( 3.0 ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Phi_fixed = cms.bool( True ), + DeltaR = cms.double( 0.025 ), + input = cms.InputTag( "hltL2Muons" ), + DeltaPhi = cms.double( 0.15 ), + Phi_min = cms.double( 0.1 ), + Rescale_eta = cms.double( 3.0 ) + ), + TrackTransformer = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + RefitDirection = cms.string( "insideOut" ), + RefitRPCHits = cms.bool( True ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + tkTrajBeamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + RefitRPCHits = cms.bool( True ), + tkTrajVertex = cms.InputTag( "Notused" ), + GlbRefitterParameters = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), + RefitFlag = cms.bool( True ), + SkipStation = cms.int32( -1 ), + Chi2CutRPC = cms.double( 1.0 ), + PropDirForCosmics = cms.bool( False ), + CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + HitThreshold = cms.int32( 1 ), + DYTthrs = cms.vint32( 30, 15 ), + TrackerSkipSystem = cms.int32( -1 ), + RefitDirection = cms.string( "insideOut" ), + Chi2CutCSC = cms.double( 150.0 ), + Chi2CutDT = cms.double( 10.0 ), + RefitRPCHits = cms.bool( True ), + TrackerSkipSection = cms.int32( -1 ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonHitsOption = cms.int32( 1 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ) + ), + PCut = cms.double( 2.5 ), + tkTrajMaxDXYBeamSpot = cms.double( 9999.0 ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + tkTrajMaxChi2 = cms.double( 9999.0 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + ScaleTECyFactor = cms.double( -1.0 ), + tkTrajLabel = cms.InputTag( "hltIter4MergedWithOIGlbDisplacedMuons" ) + ) +) +process.hltIterL3GlbDisplacedMuonsTracks = cms.EDProducer( "L3TrackCombiner", + labels = cms.VInputTag( 'hltIterL3GlbDisplacedMuons' ) +) +process.hltIterL3GlbDisplacedMuonsLinksCombination = cms.EDProducer( "L3TrackLinksCombiner", + labels = cms.VInputTag( 'hltIterL3GlbDisplacedMuons' ) +) +process.hltIterL3wIter4GlbDisplacedMuonCandidates = cms.EDProducer( "L3MuonCandidateProducer", + InputObjects = cms.InputTag( "hltIterL3GlbDisplacedMuonsTracks" ), + InputLinksObjects = cms.InputTag( "hltIterL3GlbDisplacedMuonsLinksCombination" ), + MuonPtOption = cms.string( "Global" ) +) +process.hltL3fL1DoubleMuf0L2NVf15f7L3DoubleMuNVf10DisplacedIter4 = cms.EDFilter( "HLTMuonL3SimplePreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltIterL3wIter4GlbDisplacedMuonCandidates" ), + PreviousCandTag = cms.InputTag( "" ), + MinN = cms.int32( 2 ), + MaxEta = cms.double( 2.5 ), + MinNhits = cms.int32( 0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 10.0 ), + NSigmaPt = cms.double( 0.0 ), + MaxNormalizedChi2 = cms.double( 9999.0 ), + MaxDXYBeamSpot = cms.double( 9999.0 ), + MinDXYBeamSpot = cms.double( 0.01 ), + MinNmuonHits = cms.int32( 12 ), + MaxPtDifference = cms.double( 9999.0 ), + MinTrackPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( False ) +) +process.hltL3fL1DoubleMuf0L2NVf15f7L3SingleMuNVf16DisplacedIter4 = cms.EDFilter( "HLTMuonL3SimplePreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltIterL3wIter4GlbDisplacedMuonCandidates" ), + PreviousCandTag = cms.InputTag( "" ), + MinN = cms.int32( 1 ), + MaxEta = cms.double( 2.5 ), + MinNhits = cms.int32( 0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 16.0 ), + NSigmaPt = cms.double( 0.0 ), + MaxNormalizedChi2 = cms.double( 9999.0 ), + MaxDXYBeamSpot = cms.double( 9999.0 ), + MinDXYBeamSpot = cms.double( 0.01 ), + MinNmuonHits = cms.int32( 12 ), + MaxPtDifference = cms.double( 9999.0 ), + MinTrackPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( False ) +) +process.hltPreL3Iter4Mu10NoVtxDxyMin0p01cm = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered7 = cms.EDFilter( "HLTMuonL2FromL1TPreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltL2MuonCandidatesNoVtx" ), + PreviousCandTag = cms.InputTag( "hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0" ), + SeedMapTag = cms.InputTag( "hltL2Muons" ), + MinN = cms.int32( 1 ), + MaxEta = cms.double( 2.5 ), + AbsEtaBins = cms.vdouble( 5.0 ), + MinNstations = cms.vint32( 0 ), + MinNhits = cms.vint32( 0 ), + CutOnChambers = cms.bool( True ), + MinNchambers = cms.vint32( 0 ), + MaxDr = cms.double( 9999.0 ), + MinDr = cms.double( -1.0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 7.0 ), + NSigmaPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( True ) +) +process.hltL3fL1f0L2f0Filtered10GlbDisplacedIter4 = cms.EDFilter( "HLTMuonL3SimplePreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltIterL3wIter4GlbDisplacedMuonCandidates" ), + PreviousCandTag = cms.InputTag( "" ), + MinN = cms.int32( 1 ), + MaxEta = cms.double( 2.5 ), + MinNhits = cms.int32( 0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 10.0 ), + NSigmaPt = cms.double( 0.0 ), + MaxNormalizedChi2 = cms.double( 9999.0 ), + MaxDXYBeamSpot = cms.double( 9999.0 ), + MinDXYBeamSpot = cms.double( 0.01 ), + MinNmuonHits = cms.int32( 12 ), + MaxPtDifference = cms.double( 9999.0 ), + MinTrackPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( False ) +) +process.hltL1sVoHTT200SingleLLPJet60 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_HTT120_SingleLLPJet40 OR L1_HTT160_SingleLLPJet50 OR L1_HTT200_SingleLLPJet60" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +process.hltPreHT170L1SingleLLPJetDisplacedDijet40DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltHT170 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 170.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +process.hltPreHT200L1SingleLLPJetDisplacedDijet40DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltHT200 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 200.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +process.hltPreHT200L1SingleLLPJetDisplacedDijet60DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHT270L1SingleLLPJetDisplacedDijet40DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltHT270 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 270.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +process.hltPreHT320L1SingleLLPJetDisplacedDijet60Inclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltHT320 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 320.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +process.hltPreHT420L1SingleLLPJetDisplacedDijet60Inclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltHT420 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 420.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +process.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay1nsTrackless = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay2nsInclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay0p5nsTrackless = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay1nsInclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHT200L1SingleLLPJetDisplacedDijet30Inclusive1PtrkShortSig5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHT200L1SingleLLPJetDisplacedDijet35Inclusive1PtrkShortSig5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHT200L1SingleLLPJetDisplacedDijet40Inclusive1PtrkShortSig5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_Mu6_DoubleEG12er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG34er2p5 OR L1_SingleEG36er2p5 OR L1_SingleEG38er2p5 OR L1_SingleEG40er2p5 OR L1_SingleEG42er2p5 OR L1_SingleEG45er2p5 OR L1_SingleEG60 OR L1_DoubleEG_15_10_er2p5 OR L1_DoubleEG_20_10_er2p5 OR L1_DoubleEG_22_10_er2p5 OR L1_DoubleEG_25_12_er2p5 OR L1_DoubleEG_25_14_er2p5 OR L1_DoubleEG_27_14_er2p5 OR L1_DoubleEG_LooseIso22_12_er2p5 OR L1_DoubleEG_LooseIso25_12_er2p5 OR L1_TripleEG_18_17_8_er2p5 OR L1_TripleEG_18_18_12_er2p5 OR L1_DoubleEG8er2p5_HTT300er OR L1_DoubleEG8er2p5_HTT320er" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +process.hltPreDiPhoton10Time1ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig = cms.EDFilter( "HLTEgammaL1TMatchFilterRegional", + saveTags = cms.bool( True ), + candIsolatedTag = cms.InputTag( "hltEgammaCandidates" ), + l1IsolatedTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + candNonIsolatedTag = cms.InputTag( "" ), + l1NonIsolatedTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1SeedFilterTag = cms.InputTag( "hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig" ), + l1CenJetsTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + l1TausTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + ncandcut = cms.int32( 1 ), + doIsolated = cms.bool( False ), + region_eta_size = cms.double( 0.522 ), + region_eta_size_ecap = cms.double( 1.0 ), + region_phi_size = cms.double( 1.044 ), + barrel_end = cms.double( 1.4791 ), + endcap_end = cms.double( 2.65 ) +) +process.hltEG10EtFilter = cms.EDFilter( "HLTEgammaEtFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig" ), + l1EGCand = cms.InputTag( "hltEgammaCandidates" ), + etcutEB = cms.double( 10.0 ), + etcutEE = cms.double( 10.0 ), + ncandcut = cms.int32( 1 ) +) +process.hltEG10HEFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltEG10EtFilter" ), + varTag = cms.InputTag( "hltEgammaHoverE" ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( -1.0 ), + thrRegularEE = cms.vdouble( -1.0 ), + thrOverEEB = cms.vdouble( 0.2 ), + thrOverEEE = cms.vdouble( 0.2 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 1 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidates" ) +) +process.hltEG10CaloIdLClusterShapeFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltEG10HEFilter" ), + varTag = cms.InputTag( 'hltEgammaClusterShape','sigmaIEtaIEta5x5NoiseCleaned' ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( 0.016 ), + thrRegularEE = cms.vdouble( 0.04 ), + thrOverEEB = cms.vdouble( -1.0 ), + thrOverEEE = cms.vdouble( -1.0 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 1 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidates" ) +) +process.hltEG10CaloIdLTime1nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10EtUnseededFilter = cms.EDFilter( "HLTEgammaEtFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEgammaCandidatesWrapperUnseeded" ), + l1EGCand = cms.InputTag( "hltEgammaCandidatesUnseeded" ), + etcutEB = cms.double( 10.0 ), + etcutEE = cms.double( 10.0 ), + ncandcut = cms.int32( 2 ) +) +process.hltDiEG10HEUnseededFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltDiEG10EtUnseededFilter" ), + varTag = cms.InputTag( "hltEgammaHoverEUnseeded" ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( -1.0 ), + thrRegularEE = cms.vdouble( -1.0 ), + thrOverEEB = cms.vdouble( 0.2 ), + thrOverEEE = cms.vdouble( 0.2 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 2 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidatesUnseeded" ) +) +process.hltDiEG10CaloIdLClusterShapeUnseededFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltDiEG10HEUnseededFilter" ), + varTag = cms.InputTag( 'hltEgammaClusterShapeUnseeded','sigmaIEtaIEta5x5NoiseCleaned' ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( 0.016 ), + thrRegularEE = cms.vdouble( 0.04 ), + thrOverEEB = cms.vdouble( -1.0 ), + thrOverEEE = cms.vdouble( -1.0 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 2 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidatesUnseeded" ) +) +process.hltDiEG10CaloIdLTime1nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10Time1p2ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLTime1p2nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.2 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLTime1p2nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.2 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10Time1p4ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLTime1p4nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.4 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLTime1p4nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.4 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10Time1p6ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLTime1p6nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.6 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLTime1p6nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.6 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10Time1p8ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLTime1p8nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.8 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLTime1p8nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.8 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10Time2ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLTime2nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 2.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLTime2nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 2.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10sminlt0p1 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLsminlt0p1Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.1 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLsminlt0p1UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.1 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10sminlt0p12 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLsminlt0p12Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.12 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLsminlt0p12UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.12 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10sminlt0p14 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLsminlt0p14Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.14 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLsminlt0p14UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.14 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10sminlt0p16 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLsminlt0p16Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.16 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLsminlt0p16UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.16 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10CaloIdL = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreExpressMuons = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltExpressMuonsFilter = cms.EDFilter( "TriggerResultsFilter", + usePathStatus = cms.bool( True ), + hltResults = cms.InputTag( 'TriggerResults','','@currentProcess' ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMaskAndPrescale = cms.bool( False ), + throw = cms.bool( True ), + triggerConditions = cms.vstring( '( HLT_IsoMu20_v15 OR HLT_IsoMu24_v13 OR HLT_IsoMu27_v16 )' ) +) +process.hltPreOnlineMonitorGroup = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltOnlineMonitorGroupFilter = cms.EDFilter( "TriggerResultsFilter", + usePathStatus = cms.bool( True ), + hltResults = cms.InputTag( 'TriggerResults','','@currentProcess' ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMaskAndPrescale = cms.bool( False ), + throw = cms.bool( True ), + triggerConditions = cms.vstring( '( HLT_Random_v3 OR HLT_HcalNZS_v13 OR HLT_HcalPhiSym_v15 OR HLT_L1SingleMu7_v1 OR HLT_L1DoubleMu0_v1 OR HLT_L1SingleEG10_v2 OR HLT_L1SingleEG18_v1 OR HLT_Photon22_v2 OR HLT_L1SingleJet35_v1 OR HLT_L1SingleJet200_v1 OR HLT_L1DoubleJetC50_v2 OR HLT_CaloJet10_NoJetID_v3 OR HLT_CaloJet20_NoJetID_v3 OR HLT_CaloJet50_NoJetID_v3 )' ) +) +process.hltPreHIOnlineMonitorGroup = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltHIOnlineMonitorGroupFilter = cms.EDFilter( "TriggerResultsFilter", + usePathStatus = cms.bool( True ), + hltResults = cms.InputTag( 'TriggerResults','','@currentProcess' ), + l1tResults = cms.InputTag( "" ), + l1tIgnoreMaskAndPrescale = cms.bool( False ), + throw = cms.bool( True ), + triggerConditions = cms.vstring( '( HLT_HIRandom_v1 OR HLT_HIHcalNZS_v1 OR HLT_HIHcalPhiSym_v1 )' ) +) +process.hltL1sDQMEcalReconstruction = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1GlobalDecision" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +process.hltPreDQMEcalReconstruction = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEcalConsumerCPU = cms.EDAnalyzer( "GenericConsumer", + eventProducts = cms.untracked.vstring( 'hltEcalDigis@cpu', + 'hltEcalUncalibRecHit@cpu', + 'hltEcalRecHit@cpu' ), + lumiProducts = cms.untracked.vstring( ), + runProducts = cms.untracked.vstring( ) +) +process.hltEcalConsumerGPU = cms.EDAnalyzer( "GenericConsumer", + eventProducts = cms.untracked.vstring( 'hltEcalDigis@cuda', + 'hltEcalUncalibRecHit@cuda', + 'hltEcalRecHit@cuda' ), + lumiProducts = cms.untracked.vstring( ), + runProducts = cms.untracked.vstring( ) +) +process.hltL1sDQMHcalReconstruction = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1GlobalDecision" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +process.hltPreDQMHcalReconstruction = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltHcalConsumerCPU = cms.EDAnalyzer( "GenericConsumer", + eventProducts = cms.untracked.vstring( 'hltHbhereco@cpu' ), + lumiProducts = cms.untracked.vstring( ), + runProducts = cms.untracked.vstring( ) +) +process.hltHcalConsumerGPU = cms.EDAnalyzer( "GenericConsumer", + eventProducts = cms.untracked.vstring( 'hltHbhereco@cuda' ), + lumiProducts = cms.untracked.vstring( ), + runProducts = cms.untracked.vstring( ) +) +process.hltL1sDQMPixelReconstruction = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1GlobalDecision" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +process.hltPreDQMPixelReconstruction = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPixelConsumerCPU = cms.EDAnalyzer( "GenericConsumer", + eventProducts = cms.untracked.vstring( 'hltSiPixelDigis@cpu', + 'hltSiPixelClusters@cpu', + 'hltSiPixelRecHits@cpu', + 'hltPixelTracksSoA@cpu', + 'hltPixelVerticesSoA@cpu' ), + lumiProducts = cms.untracked.vstring( ), + runProducts = cms.untracked.vstring( ) +) +process.hltPixelConsumerGPU = cms.EDAnalyzer( "GenericConsumer", + eventProducts = cms.untracked.vstring( 'hltSiPixelDigis@cuda', + 'hltSiPixelClusters@cuda', + 'hltSiPixelRecHits@cuda', + 'hltPixelTracksSoA@cuda', + 'hltPixelVerticesSoA@cuda' ), + lumiProducts = cms.untracked.vstring( ), + runProducts = cms.untracked.vstring( ) +) +process.hltPreTOTEM1ANDPixelTrackCountingMult1part0 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltSiPixelDigisForHighBeta = cms.EDProducer( "SiPixelRawToDigi", + IncludeErrors = cms.bool( True ), + UseQualityInfo = cms.bool( True ), + ErrorList = cms.vint32( 29 ), + UserErrorList = cms.vint32( ), + InputLabel = cms.InputTag( "rawDataCollector" ), + Regions = cms.PSet( ), + UsePilotBlade = cms.bool( False ), + UsePhase1 = cms.bool( True ), + CablingMapLabel = cms.string( "" ), + SiPixelQualityLabel = cms.string( "" ) +) +process.hltSiPixelClustersForHighBeta = cms.EDProducer( "SiPixelClusterProducer", + src = cms.InputTag( "hltSiPixelDigisForHighBeta" ), + ClusterMode = cms.string( "PixelThresholdClusterizer" ), + maxNumberOfClusters = cms.int32( 40000 ), + payloadType = cms.string( "HLT" ), + ChannelThreshold = cms.int32( 10 ), + MissCalibrate = cms.bool( True ), + SplitClusters = cms.bool( False ), + VCaltoElectronGain = cms.int32( 1 ), + VCaltoElectronGain_L1 = cms.int32( 1 ), + VCaltoElectronOffset = cms.int32( 0 ), + VCaltoElectronOffset_L1 = cms.int32( 0 ), + SeedThreshold = cms.int32( 1000 ), + ClusterThreshold_L1 = cms.int32( 4000 ), + ClusterThreshold = cms.int32( 4000 ), + ElectronPerADCGain = cms.double( 135.0 ), + Phase2Calibration = cms.bool( False ), + Phase2ReadoutMode = cms.int32( -1 ), + Phase2DigiBaseline = cms.double( 1200.0 ), + Phase2KinkADC = cms.int32( 8 ) +) +process.hltSiPixelClustersCacheForHighBeta = cms.EDProducer( "SiPixelClusterShapeCacheProducer", + src = cms.InputTag( "hltSiPixelClustersForHighBeta" ), + onDemand = cms.bool( False ) +) +process.hltSiPixelRecHitsForHighBeta = cms.EDProducer( "SiPixelRecHitConverter", + src = cms.InputTag( "hltSiPixelClustersForHighBeta" ), + CPE = cms.string( "hltESPPixelCPEGeneric" ), + VerboseLevel = cms.untracked.int32( 0 ) +) +process.hltPixelTracksTrackingRegionsForHighBeta = cms.EDProducer( "GlobalTrackingRegionFromBeamSpotEDProducer", + RegionPSet = cms.PSet( + nSigmaZ = cms.double( 4.0 ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + ptMin = cms.double( 0.05 ), + originRadius = cms.double( 0.2 ), + precise = cms.bool( True ) + ) +) +process.hltPixelLayerTripletsForHighBeta = cms.EDProducer( "SeedingLayersEDProducer", + layerList = cms.vstring( 'BPix1+BPix2+BPix3', + 'BPix2+BPix3+BPix4', + 'BPix1+BPix3+BPix4', + 'BPix1+BPix2+BPix4', + 'BPix2+BPix3+FPix1_pos', + 'BPix2+BPix3+FPix1_neg', + 'BPix1+BPix2+FPix1_pos', + 'BPix1+BPix2+FPix1_neg', + 'BPix2+FPix1_pos+FPix2_pos', + 'BPix2+FPix1_neg+FPix2_neg', + 'BPix1+FPix1_pos+FPix2_pos', + 'BPix1+FPix1_neg+FPix2_neg', + 'FPix1_pos+FPix2_pos+FPix3_pos', + 'FPix1_neg+FPix2_neg+FPix3_neg', + 'BPix1+BPix3+FPix1_pos', + 'BPix1+BPix2+FPix2_pos', + 'BPix1+BPix3+FPix1_neg', + 'BPix1+BPix2+FPix2_neg', + 'BPix1+FPix2_neg+FPix3_neg', + 'BPix1+FPix1_neg+FPix3_neg', + 'BPix1+FPix2_pos+FPix3_pos', + 'BPix1+FPix1_pos+FPix3_pos' ), + BPix = cms.PSet( + hitErrorRPhi = cms.double( 0.0027 ), + TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ), + useErrorsFromParam = cms.bool( True ), + hitErrorRZ = cms.double( 0.006 ), + HitProducer = cms.string( "hltSiPixelRecHitsForHighBeta" ) ), FPix = cms.PSet( hitErrorRPhi = cms.double( 0.0051 ), @@ -115240,6 +117004,12 @@ lsPSet = cms.PSet( nbins = cms.int32( 2500 ) ) ) ) +process.hltOnlineBeamMonitor = cms.EDProducer( "OnlineBeamMonitor", + MonitorName = cms.untracked.string( "HLT/BeamSpotMonitor" ), + AppendRunToFileName = cms.untracked.bool( False ), + WriteDIPAscii = cms.untracked.bool( False ), + DIPFileName = cms.untracked.string( "BeamFitResultsForDIP.txt" ) +) process.hltDatasetAlCaLumiPixelCountsExpress = cms.EDFilter( "TriggerResultsFilter", usePathStatus = cms.bool( True ), hltResults = cms.InputTag( "" ), @@ -115406,7 +117176,20 @@ 'HLT_CscCluster_Loose_v1', 'HLT_CscCluster_Medium_v1', 'HLT_CscCluster_Tight_v1', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT425_v9', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1', @@ -115456,6 +117239,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2', 'HLT_DoubleL2Mu50_v2', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10', 'HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10', @@ -115471,6 +117255,7 @@ 'HLT_HIL3DoubleMu0_OS_m2p5to4p5ForPPRef_v6', 'HLT_HIL3DoubleMu0_OS_m7to14ForPPRef_v6', 'HLT_L1DoubleMu0_v1', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15', @@ -115594,6 +117379,17 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4', + 'HLT_DiPhoton10Time1ns_v1', + 'HLT_DiPhoton10Time1p2ns_v1', + 'HLT_DiPhoton10Time1p4ns_v1', + 'HLT_DiPhoton10Time1p6ns_v1', + 'HLT_DiPhoton10Time1p8ns_v1', + 'HLT_DiPhoton10Time2ns_v1', + 'HLT_DiPhoton10_CaloIdL_v1', + 'HLT_DiPhoton10sminlt0p12_v1', + 'HLT_DiPhoton10sminlt0p14_v1', + 'HLT_DiPhoton10sminlt0p16_v1', + 'HLT_DiPhoton10sminlt0p1_v1', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13', 'HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13', 'HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2', @@ -117947,7 +119743,8 @@ 'MC_PFHT_v16', 'MC_PFMET_v17', 'MC_PFMHT_v16', - 'MC_ReducedIterativeTracking_v12' ) + 'MC_ReducedIterativeTracking_v12', + 'MC_Run3_PFScoutingPixelTracking_v16' ) ) process.hltPreDatasetMonteCarlo = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -118194,6 +119991,17 @@ 'HLT_DiPFJetAve60_v14 / 3', 'HLT_DiPFJetAve80_HFJEC_v16 / 3', 'HLT_DiPFJetAve80_v13 / 3', + 'HLT_DiPhoton10Time1ns_v1 / 3', + 'HLT_DiPhoton10Time1p2ns_v1 / 3', + 'HLT_DiPhoton10Time1p4ns_v1 / 3', + 'HLT_DiPhoton10Time1p6ns_v1 / 3', + 'HLT_DiPhoton10Time1p8ns_v1 / 3', + 'HLT_DiPhoton10Time2ns_v1 / 3', + 'HLT_DiPhoton10_CaloIdL_v1 / 3', + 'HLT_DiPhoton10sminlt0p12_v1 / 3', + 'HLT_DiPhoton10sminlt0p14_v1 / 3', + 'HLT_DiPhoton10sminlt0p16_v1 / 3', + 'HLT_DiPhoton10sminlt0p1_v1 / 3', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13 / 3', 'HLT_Dimuon0_Jpsi3p5_Muon2_v5 / 3', 'HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7 / 3', @@ -118258,6 +120066,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2 / 3', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2 / 3', 'HLT_DoubleL2Mu50_v2 / 3', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1 / 3', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1 / 3', 'HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1 / 3', 'HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1 / 3', @@ -118293,8 +120102,7 @@ 'HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepJet_p71_v1 / 3', 'HLT_DoublePFJets200_PFBTagDeepCSV_p71_v1 / 3', 'HLT_DoublePFJets200_PFBTagDeepJet_p71_v1 / 3', - 'HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1 / 3', - 'HLT_DoublePFJets350_PFBTagDeepJet_p71_v1 / 3', + 'HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1 / 3')+cms.vstring( 'HLT_DoublePFJets350_PFBTagDeepJet_p71_v1 / 3', 'HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1 / 3', 'HLT_DoublePFJets40_PFBTagDeepCSV_p71_v1 / 3', 'HLT_DoublePFJets40_PFBTagDeepJet_p71_v1 / 3', @@ -118305,7 +120113,8 @@ 'HLT_Ele115_CaloIdVT_GsfTrkIdT_v14 / 3', 'HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v18 / 3', 'HLT_Ele135_CaloIdVT_GsfTrkIdT_v7 / 3', - 'HLT_Ele145_CaloIdVT_GsfTrkIdT_v8 / 3')+cms.vstring( 'HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3 / 3', + 'HLT_Ele145_CaloIdVT_GsfTrkIdT_v8 / 3', + 'HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3 / 3', 'HLT_Ele15_Ele8_CaloIdL_TrackIdL_IsoVL_v3 / 3', 'HLT_Ele15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8 / 3', 'HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v16 / 3', @@ -118383,7 +120192,20 @@ 'HLT_HIZeroBias_part7_v6 / 3', 'HLT_HIZeroBias_part8_v6 / 3', 'HLT_HIZeroBias_part9_v6 / 3', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1 / 3', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 / 3', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 / 3', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13 / 3', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 / 3', 'HLT_HT425_v9 / 3', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1 / 3', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1 / 3', @@ -118486,6 +120308,7 @@ 'HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5 / 3', 'HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4 / 3', 'HLT_L2Mu50_v2 / 3', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1 / 3', 'HLT_MET105_IsoTrk50_v9 / 3', 'HLT_MET120_IsoTrk50_v9 / 3', 'HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12 / 3', @@ -118533,8 +120356,7 @@ 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v3 / 3', 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v3 / 3', 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v3 / 3', - 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3 / 3', - 'HLT_Mu19_TrkIsoVVL_v4 / 3', + 'HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3 / 3')+cms.vstring( 'HLT_Mu19_TrkIsoVVL_v4 / 3', 'HLT_Mu19_v4 / 3', 'HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v1 / 3', 'HLT_Mu20_Mu10_DZ_v4 / 3', @@ -118559,7 +120381,8 @@ 'HLT_Mu37_Ele27_CaloIdL_MW_v5 / 3', 'HLT_Mu37_TkMu27_v5 / 3', 'HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v1 / 3', - 'HLT_Mu3_PFJet40_v16 / 3')+cms.vstring( 'HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2 / 3', + 'HLT_Mu3_PFJet40_v16 / 3', + 'HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2 / 3', 'HLT_Mu3er1p5_PFJet100er2p5_PFMET70_PFMHT70_IDTight_v2 / 3', 'HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v2 / 3', 'HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v2 / 3', @@ -118787,8 +120610,7 @@ 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1 / 3', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1 / 3', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1 / 3', - 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1 / 3', - 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1 / 3', + 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1 / 3')+cms.vstring( 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1 / 3', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1 / 3', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1 / 3', 'HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1 / 3', @@ -118813,7 +120635,8 @@ 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1 / 3', 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1 / 3', 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1 / 3', - 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1 / 3')+cms.vstring( 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1 / 3', + 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1 / 3', + 'HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1 / 3', 'HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part0_v1 / 3', 'HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part1_v1 / 3', 'HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part2_v1 / 3', @@ -122393,7 +124216,7 @@ process.HLTDiphoton3018R9Idb50e90ANDIso60CaloId15b35eANDHE12b10eMass55NoPixelVetoSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGOrFilter + process.hltEG30L1SingleAndDoubleEGOrEtFilter + process.hltEgammaR9ID + process.hltEG30R9Id50b80eR9IdFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG30HE12b10eR9Id50b80eHEFilter + process.hltEG30R9Id50b90eHE12b10eR9Id50b80eR9IdFilter + process.hltEgammaClusterShape + process.hltEG30CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeFilter + process.hltEgammaEcalPFClusterIso + process.hltEG30Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltDiEG18EtUnseededFilter + process.hltEgammaR9IDUnseeded + process.hltDiEG18R9Id50b80eR9IdUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG18HE12b10eR9Id50b80eHEUnseededFilter + process.hltEG18R9Id50b90eHE12b10eR9Id50b80eR9IdUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltEG18CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeUnseededFilter + process.hltEgammaEcalPFClusterIsoUnseeded + process.hltEG18Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoUnseededFilter + process.HLTTrackReconstructionForIsoForPhotons + process.hltEgammaHollowTrackIsoUnseeded + process.hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eTrackIsoUnseededFilter + process.hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eMass55CombMassLastFilter ) process.HLTDiphoton3018R9Idb50e90ANDIso60CaloId15b35eANDHE12b10eNoPixelVetoSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGOrFilter + process.hltEG30L1SingleAndDoubleEGOrEtFilter + process.hltEgammaR9ID + process.hltEG30R9Id50b80eR9IdFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG30HE12b10eR9Id50b80eHEFilter + process.hltEG30R9Id50b90eHE12b10eR9Id50b80eR9IdFilter + process.hltEgammaClusterShape + process.hltEG30CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeFilter + process.hltEgammaEcalPFClusterIso + process.hltEG30Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltDiEG18EtUnseededFilter + process.hltEgammaR9IDUnseeded + process.hltDiEG18R9Id50b80eR9IdUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG18HE12b10eR9Id50b80eHEUnseededFilter + process.hltEG18R9Id50b90eHE12b10eR9Id50b80eR9IdUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltEG18CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeUnseededFilter + process.hltEgammaEcalPFClusterIsoUnseeded + process.hltEG18Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoUnseededFilter + process.HLTTrackReconstructionForIsoForPhotons + process.hltEgammaHollowTrackIsoUnseeded + process.hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eTrackIsoUnseededFilter ) process.HLTBeginSequenceParking = cms.Sequence( process.hltTriggerType + process.hltEnableParking + process.HLTL1UnpackerSequence + process.HLTBeamSpot ) -process.HLTL2TauTagNNSequence = cms.Sequence( process.HLTDoLocalPixelSequence + process.HLTRecoPixelTracksSequence + process.HLTRecopixelvertexingSequence + process.HLTDoCaloSequence + cms.ignore(process.hltL1sDoubleTauBigOR) + cms.ignore(process.hltL1sSingleTau) + cms.ignore(process.hltL1sBigOrMuXXerIsoTauYYer) + cms.ignore(process.hltL1sMu22erIsoTau40er) + cms.ignore(process.hltL1sDoubleTauJet) + cms.ignore(process.hltL1VBFDiJetIsoTau) + process.hltL2TauTagNNProducer ) +process.HLTL2TauTagNNSequence = cms.Sequence( process.HLTDoLocalPixelSequence + process.HLTRecoPixelTracksSequence + process.HLTRecopixelvertexingSequence + process.HLTDoCaloSequence + cms.ignore(process.hltL1sDoubleTauBigOR) + cms.ignore(process.hltL1sSingleTau) + cms.ignore(process.hltL1sBigOrMuXXerIsoTauYYer) + cms.ignore(process.hltL1sMu22erIsoTau40er) + cms.ignore(process.hltL1sBigORDoubleTauJet) + cms.ignore(process.hltL1VBFDiJetIsoTau) + process.hltL2TauTagNNProducer ) process.HLTHPSDeepTauIsoPFTauSequence = cms.Sequence( cms.ignore(process.hltL1sTauVeryBigOR) + process.hltHpsL1JetsHLTForDeepTauInput + process.hltHpsPFTauDiscriminationByDecayModeFindingNewDMsL1matched + process.hltHpsPFTauPrimaryVertexProducerForDeepTau + process.hltHpsPFTauSecondaryVertexProducerForDeepTau + process.hltHpsPFTauTransverseImpactParametersForDeepTau + process.hltFixedGridRhoProducerFastjetAllTau + process.hltHpsPFTauBasicDiscriminatorsForDeepTau + process.hltHpsPFTauBasicDiscriminatorsdR03ForDeepTau + process.hltHpsPFTauDeepTauProducer ) process.HLTCaloTausCreatorL1TauSeededRegionalSequence = cms.Sequence( process.HLTDoCaloSequence + cms.ignore(process.hltL1sTauVeryBigOR) + process.hltCaloTowerL1sTauVeryBigORSeededRegional + process.hltAkIsoTauL1sTauVeryBigORSeededRegional ) process.HLTL2TauJetsL1TauSeededSequence = cms.Sequence( process.HLTCaloTausCreatorL1TauSeededRegionalSequence + process.hltL2TauJetsL1TauSeeded ) @@ -122437,6 +124260,22 @@ process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt1PtrkShortSig5 = cms.Sequence( process.hltL3DisplacedDijetFullTracksJetTracksAssociatorAtVertexLowPt + process.hltL3DisplacedDijet100FullTracksTrackIPProducerLowPt + process.hltL3DisplacedDijetFullTracksJetTagProducerFromIPLowPtShortSig5 + process.hltTwoPromptHLTL3DisplacedDijetFullTracksHLTCaloJetTagFilterLowPt1PtrkShortSig5 ) process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt1PtrkShortSig5 = cms.Sequence( process.hltL4DisplacedDijetFullTracksJetPromptTracksAssociatorAtVertexLowPt1PtrkShortSig5 + process.hltL4PromptDisplacedDijetFullTracksTrackIPProducerLowPt1PtrkShortSig5 + process.hltL4PromptDisplacedDijetFullTracksJetTagProducerFromIPLowPt1PtrkShortSig5 + process.hltL4PromptDisplacedDijetFullTracksHLTCaloJetTagFilterLowPt1PtrkShortSig5 ) process.HLTDisplacedTrackRequirementLooseDisplacedJetsLowPt1PtrkShortSig5 = cms.Sequence( process.hltL4DisplacedDijetFullTracksJetTracksAssociatorAtVertexLowPt1PtrkShortSig5 + process.hltL4TaggedDisplacedDijetFullTracksTrackIPProducerLowPt1PtrkPt0p5ShortSig5 + process.hltL4DisplacedDijetFullTracksJetTagProducerLooseFromIPLowPt1PtrkPt0p5ShortSig5 + process.hltL4DisplacedDijetFullTracksHLTCaloJetTagFilterLooseLowPt1PtrkPt0p5ShortSig5 ) +process.HLTIterL3OIGlbDisplacedMuonTkCandidateSequence = cms.Sequence( process.hltIterL3TrajSeedOIStateFromDisplacedL2Muons + process.hltIterL3OIStateGlbDisplacedTrackCandidates + process.hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks + process.hltL3GlbDisplacedMuonsIterL3OIState + process.hltIterL3NoFiltersNoVtxTrajSeedOIHit + process.hltIterL3OIHitGlbDisplacedTrackCandidates + process.hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks + process.hltL3GlbDisplacedMuonsIterL3OIHit ) +process.HLTIterL3GlbDisplacedMuonCandidateSequence = cms.Sequence( process.HLTDoLocalPixelSequence + process.HLTDoLocalStripSequence + process.HLTIterL3OIGlbDisplacedMuonTkCandidateSequence + process.hltIterL3OIL3GlbDisplacedMuonsLinksCombination + process.hltIterL3OIL3GlbDisplacedMuons + process.hltIterL3OIGlbDisplacedMuonCandidates + process.hltL2SelectorForL3IOForGlbDisplaced ) +process.HLTIterativeTrackingIteration4GlbDisplacedMuons = cms.Sequence( process.hltDisplacedhltIter4PixelLessLayerTripletsForGlbDisplacedMuons + process.hltDisplacedhltIter4PixelLessClusterCheckForGlbDisplacedMuons + process.hltDisplacedhltIter4PixelLessSeedsForGlbDisplaced + process.hltDisplacedhltIter4CkfTrackCandidatesForGlbDisplacedMuons + process.hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons + process.hltIter4IterL3FromL2MuonTrackCutClassifier + process.hltIter4IterL3FromL2MuonTrackSelectionHighPurity ) +process.HLTL3GblDisplacedMuonNoCandRecoSequence = cms.Sequence( process.HLTIterL3GlbDisplacedMuonCandidateSequence + process.HLTIterativeTrackingIteration4GlbDisplacedMuons + process.hltIterOIhitMergedWithOIGlbDisplacedMuons + process.hltIter4MergedWithOIGlbDisplacedMuons + process.hltIterL3GlbDisplacedMuons + process.hltIterL3GlbDisplacedMuonsTracks + process.hltIterL3GlbDisplacedMuonsLinksCombination ) +process.HLTL3GblIter4DisplacedMuonRecoSequence = cms.Sequence( process.HLTL3GblDisplacedMuonNoCandRecoSequence + process.hltIterL3wIter4GlbDisplacedMuonCandidates ) +process.HLTDiPho10CaloIdLTime1nsSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLTime1nsFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLTime1nsUnseededFilter ) +process.HLTDiPho10CaloIdLTime1p2nsSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLTime1p2nsFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLTime1p2nsUnseededFilter ) +process.HLTDiPho10CaloIdLTime1p4nsSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLTime1p4nsFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLTime1p4nsUnseededFilter ) +process.HLTDiPho10CaloIdLTime1p6nsSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLTime1p6nsFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLTime1p6nsUnseededFilter ) +process.HLTDiPho10CaloIdLTime1p8nsSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLTime1p8nsFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLTime1p8nsUnseededFilter ) +process.HLTDiPho10CaloIdLTime2nsSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLTime2nsFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLTime2nsUnseededFilter ) +process.HLTDiPho10CaloIdLsminlt0p1Sequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLsminlt0p1Filter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLsminlt0p1UnseededFilter ) +process.HLTDiPho10CaloIdLsminlt0p12Sequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLsminlt0p12Filter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLsminlt0p12UnseededFilter ) +process.HLTDiPho10CaloIdLsminlt0p14Sequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLsminlt0p14Filter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLsminlt0p14UnseededFilter ) +process.HLTDiPho10CaloIdLsminlt0p16Sequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLsminlt0p16Filter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLsminlt0p16UnseededFilter ) +process.HLTDiPho10CaloIdLSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter ) process.HLTDoLocalPixelForHighBetaSequence = cms.Sequence( process.hltSiPixelDigisForHighBeta + process.hltSiPixelClustersForHighBeta + process.hltSiPixelClustersCacheForHighBeta + process.hltSiPixelRecHitsForHighBeta ) process.HLTPixelTrackingForHighBetaSequence = cms.Sequence( process.hltPixelTracksFilter + process.hltPixelTracksFitter + process.hltPixelTracksTrackingRegionsForHighBeta + process.hltPixelLayerTripletsForHighBeta + process.hltPixelTracksHitDoubletsForHighBeta + process.hltPixelTracksHitTripletsForHighBeta + process.hltPixelTracksForHighBeta ) process.HLTPixelTrackingForHighBetaBPixSequence = cms.Sequence( process.hltPixelTracksFilter + process.hltPixelTracksFitter + process.hltPixelTracksTrackingRegionsForHighBeta + process.hltPixelLayerTripletsForHighBetaBPix + process.hltPixelTracksHitDoubletsForHighBetaBPix + process.hltPixelTracksHitTripletsForHighBetaBPix + process.hltPixelTracksForHighBetaBPix ) @@ -122632,8 +124471,8 @@ process.HLT_DoubleMu4_LowMass_Displaced_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMuForLowMassDisplaced + process.hltPreDoubleMu4LowMassDisplaced + process.hltL1fL1sDoubleMuL1Filtered0ForLowMassDisplaced + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sDoubleMuL1Filtered0ForLowMassDisplaced) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMuL1Filtered0ForLowMassDisplaced) + process.hltDoubleMu4LowMassDisplacedL3Filtered + process.hltDisplacedmumuVtxProducerDoubleMu4LowMassDisplaced + process.hltDisplacedmumuFilterDoubleMu4LowMassDisplaced + process.HLTEndSequence ) process.HLT_Mu0_L1DoubleMu_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMuForLowMassInclusive + process.hltPreMu0L1DoubleMu + process.hltL1fL1sL1DoubleMuL1Filtered0LowMassInclusive + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sL1DoubleMuL1f0L2PreFiltered0ForLowMassInclusive) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sL1DoubleMuL1Filtered0LowMassInclusive) + process.hltL3fL1sDoubleMu0SQL1f0L2PreFilteres0L3Filtered0 + process.HLTEndSequence ) process.HLT_Mu4_L1DoubleMu_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMuForLowMassInclusive + process.hltPreMu4L1DoubleMu + process.hltL1fL1sL1DoubleMuL1Filtered0LowMassInclusive + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sL1DoubleMuL1f0L2PreFiltered0ForLowMassInclusive) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sL1DoubleMuL1Filtered0LowMassInclusive) + process.hltL3fL1sDoubleMu0SQL1f0L2PreFilteres0L3Filtered4 + process.HLTEndSequence ) -process.HLT_DoubleMu3_Trk_Tau3mu_v12 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9 + process.hltPreDoubleMu3TrkTau3mu + process.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + process.hltDoubleMu3TrkTau3muL3Filtered + process.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + process.hltDisplacedmumuFilterDoubleMu3Tau3mu + process.HLTBphTrackingDisplacedTau3muReg + process.hltTau3muTkAllConeTracksIter + process.hltTau3muTkVertexProducer + process.hltTau3muTkVertexFilter + process.HLTEndSequence ) -process.HLT_DoubleMu3_TkMu_DsTau3Mu_v4 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9 + process.hltPreDoubleMu3TkMuDsTau3Mu + process.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + process.hltDoubleMu3TrkTau3muL3Filtered + process.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + process.hltDisplacedmumuFilterDoubleMu3Tau3mu + process.HLTTrackerMuonSequenceLowPt + process.hltdstau3mumuontrkFltr + process.hltdstau3muDisplaced3muVtxProducer + process.hltdstau3muDisplaced3muFltr + process.HLTEndSequence ) +process.HLT_DoubleMu3_Trk_Tau3mu_v12 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50 + process.hltPreDoubleMu3TrkTau3mu + process.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + process.hltDoubleMu3TrkTau3muL3Filtered + process.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + process.hltDisplacedmumuFilterDoubleMu3Tau3mu + process.HLTBphTrackingDisplacedTau3muReg + process.hltTau3muTkAllConeTracksIter + process.hltTau3muTkVertexProducer + process.hltTau3muTkVertexFilter + process.HLTEndSequence ) +process.HLT_DoubleMu3_TkMu_DsTau3Mu_v4 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50 + process.hltPreDoubleMu3TkMuDsTau3Mu + process.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + process.hltDoubleMu3TrkTau3muL3Filtered + process.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + process.hltDisplacedmumuFilterDoubleMu3Tau3mu + process.HLTTrackerMuonSequenceLowPt + process.hltdstau3mumuontrkFltr + process.hltdstau3muDisplaced3muVtxProducer + process.hltdstau3muDisplaced3muFltr + process.HLTEndSequence ) process.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu3SQHTT200 + process.hltPreDoubleMu4Mass3p8DZPFHT350 + process.hltDoubleMuon4L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltDoubleMuon4L2PreFiltered0) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3DoubleMuon4L1Filtered0) + process.hltL3fL1DiMu3SQHT200L3PreFiltered4 + process.hltDoubleMuon4Mass3p8Filtered + process.hltDoubleMu4Mass3p8DZFilter + process.HLTAK4PFJetsSequence + process.hltPFHTJet30 + process.hltPFHT350Jet30 + process.HLTEndSequence ) process.HLT_DoubleMu4_MuMuTrk_Displaced_v15 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0er1p5OSIorDoubleMu0er1p4OSIorDoubleMu4OSIorDoubleMu4p5OS + process.hltPreDoubleMu4MuMuTrkDisplaced + process.hltL1fL1sDoubleMu0er15OSIorDoubleMu0er14OSIorDoubleMu4OSIorDoubleMu4p5OSL1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sDoubleMu0er15OSIorDoubleMu0er14OSIorDoubleMu4OSIorDoubleMu4p5OSL1Filtered0) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu0er15OSIorDoubleMu0er14OSIorDoubleMu4OSIorDoubleMu4p5OSL1Filtered0) + process.hltDoubleMu4MuMuDisplacedL3Filtered + process.hltDisplacedmumuVtxProducerDoubleMu4MuMu + process.hltDisplacedmumuFilterDoubleMu4MuMu + process.HLTBphTrackingDisplacedMuMuReg + process.hltMuMuTkAllConeTracksIter + process.hltMuMuTkVertexProducer + process.hltMuMuTkVertexFilter + process.HLTEndSequence ) process.HLT_Mu3_PFJet40_v16 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu3IorMu3Jet30er2p5 + process.hltPreMu3PFJet40 + process.hltL1fL1sMu3Jet30L1Filtered0 + process.hltL1sSingleJet35ObjectMap + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sMu3L1f0L2Filtered0) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sMu3L1Filtered0) + process.hltL3fL1sMu3L1f0L2f0L3Filtered3 + process.HLTAK4PFJetsSequence + process.hltMu3JetCollectionsForLeptonPlusPFJets + process.hltMu3PFJet40MuCleaned + process.HLTEndSequence ) @@ -123294,6 +125133,7 @@ process.MC_DoubleGlbTrkMu_TrkIsoVVL_DZ_v12 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0 + process.hltPreMCDoubleGlbTrkMuTrkIsoVVLDZ + process.hltL1fL1sDoubleMu0HighQL1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sDoubleMu0L1f0OneMuL2doubleGlb) + process.HLTL3muonrecoSequence + process.hltL3fL1sDoubleMu0L1f0L2f10L3doubleGlb + process.HLTTrackerMuonSequence + process.hltDiMuonGlbTrk + process.HLTGlbtrkmuontrkisovvlSequence + process.hltDiMuonGlbTrkRelTrkIsoFiltered0p4 + process.hltDiMuonGlbTrkRelTrkIsoFiltered0p4DzFiltered0p2 + process.HLTEndSequence ) process.MC_DoubleMuNoFiltersNoVtx_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0 + process.hltPreMCDoubleMuNoFiltersNoVtx + process.hltL1fL1sDoubleMu0HighQL1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + cms.ignore(process.hltL2fDimuonL1f0L2NoVtx) + process.HLTL3NoFiltersNoVtxmuonrecoSequence + process.hltL3fDimuonL1f0L2NVL3NoFiltersNoVtx + process.HLTEndSequence ) process.MC_PFBTagDeepJet_v1 = cms.Path( process.HLTBeginSequence + process.hltPreMCPFBTagDeepJet + process.HLTAK4PFJetsSequence + process.HLTBtagDeepJetSequencePF + process.hltBTagPFDeepJet4p06Single + process.HLTEndSequence ) +process.MC_Run3_PFScoutingPixelTracking_v16 = cms.Path( process.HLTBeginSequence + process.hltL1sMCRun3PFScoutingPixelTracking + process.hltPreMCRun3PFScoutingPixelTracking + process.HLTAK4CaloJetsSequence + process.HLTPixelOnlyPFScoutingSequence + process.hltEgammaR9ID + process.HLTL2muonrecoSequenceNoVtx + process.HLTL3muonrecoSequenceNoVtx + process.hltDisplacedmumuVtxNoMatchingProducer + process.HLTMuIsolationSequenceNoVtx + process.hltFEDSelectorL1 + process.HLTPixelOnlyPFScoutingPackingSequence + process.HLTEndSequence ) process.AlCa_EcalPi0EBonly_v13 = cms.Path( process.HLTBeginSequence + process.hltL1sAlCaEcalPi0Eta + process.hltPreAlCaEcalPi0EBonly + process.HLTDoFullUnpackingEgammaEcalSequence + process.hltSimple3x3Clusters + process.hltAlCaPi0RecHitsFilterEBonlyRegional + process.hltAlCaPi0EBUncalibrator + process.hltAlCaPi0EBRechitsToDigis + process.HLTEndSequence ) process.AlCa_EcalPi0EEonly_v13 = cms.Path( process.HLTBeginSequence + process.hltL1sAlCaEcalPi0Eta + process.hltPreAlCaEcalPi0EEonly + process.HLTDoFullUnpackingEgammaEcalSequence + process.hltSimple3x3Clusters + process.hltAlCaPi0RecHitsFilterEEonlyRegional + process.hltAlCaPi0EEUncalibrator + process.hltAlCaPi0EERechitsToDigis + process.HLTEndSequence ) process.AlCa_EcalEtaEBonly_v13 = cms.Path( process.HLTBeginSequence + process.hltL1sAlCaEcalPi0Eta + process.hltPreAlCaEcalEtaEBonly + process.HLTDoFullUnpackingEgammaEcalSequence + process.hltSimple3x3Clusters + process.hltAlCaEtaRecHitsFilterEBonlyRegional + process.hltAlCaEtaEBUncalibrator + process.hltAlCaEtaEBRechitsToDigis + process.HLTEndSequence ) @@ -123408,7 +125248,7 @@ process.HLT_TrkMu6NoFiltersNoVtx_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu3 + process.hltPreTrkMu6NoFiltersNoVtx + process.hltL1fL1sSingleMu3L1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + cms.ignore(process.hltL2fL1sSingleMu3L1f0L2Filtered10OneMuNoVtx) + process.HLTL3muonrecoSequenceNoVtx + process.hltL3fL1sSingleMu3L1f0L2f10OneMuL3Filtered6NoVtx + process.HLTTrackerMuonSequenceNoVtx + process.hltSingleTrkMuFiltered6NoVtx + process.HLTEndSequence ) process.HLT_TrkMu16NoFiltersNoVtx_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu7 + process.hltPreTrkMu16NoFiltersNoVtx + process.hltL1fL1sSingleMu7L1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + cms.ignore(process.hltL2fL1sSingleMu7L1f0L2Filtered10OneMuNoVtx) + process.HLTL3muonrecoSequenceNoVtx + process.hltL3fL1sSingleMu7L1f0L2f10OneMuL3Filtered16NoVtx + process.HLTTrackerMuonSequenceNoVtx + process.hltSingleTrkMuFiltered16NoVtx + process.HLTEndSequence ) process.HLT_DoubleTrkMu_16_6_NoFiltersNoVtx_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0SQ + process.hltPreDoubleTrkMu166NoFiltersNoVtx + process.hltL1fL1sDoubleMu0SQL1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + cms.ignore(process.hltL2pfL1sDoubleMu0SQL1f0L2PreFiltered0NoVtx) + cms.ignore(process.hltL2fL1sDoubleMu0SQL1f0L2Filtered10OneMuNoVtx) + process.HLTL3muonrecoSequenceNoVtx + process.hltL3pfL1sDoubleMu0SQL1f0L2pf0OneMuL3PreFiltered6NoVtx + process.hltL3fL1sDoubleMu0SQL1f0L2f10OneMuL3Filtered16NoVtx + process.HLTTrackerMuonSequenceNoVtx + process.hltDoubleTrkMuFiltered6NoVtx + process.hltSingleTrkMuFiltered16NoVtx + process.HLTEndSequence ) -process.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleTauBigOR + process.hltPreDoubleMediumDeepTauIsoPFTauHPS35L2NNeta2p1 + process.HLTL2TauTagNNSequence + process.hltL2DoubleTauTagNNFilter + process.HLTGlobalPFTauHPSSequence + process.HLTHPSDeepTauIsoPFTauSequence + process.hltHpsSelectedPFTausMediumDitauWPDeepTau + process.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatch + process.hltHpsDoublePFTau35MediumDitauWPDeepTauL1HLTMatched + process.hltHpsDoublePFTau35MediumDitauWPDeepTauDz02 + process.HLTEndSequence ) +process.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleTauBigOR + process.hltPreDoubleMediumDeepTauIsoPFTauHPS35L2NNeta2p1 + process.HLTL2TauTagNNSequence + process.hltL2DoubleTauTagNNFilter + process.HLTGlobalPFTauHPSSequence + process.HLTHPSDeepTauIsoPFTauSequence + process.hltHpsSelectedPFTausMediumDitauWPDeepTau + process.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatch + process.hltHpsDoublePFTau35MediumDitauWPDeepTauL1HLTMatched + process.HLTEndSequence ) process.HLT_DoubleMediumChargedIsoPFTauHPS40_Trk1_eta2p1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleTauBigOR + process.hltPreDoubleMediumChargedIsoPFTauHPS40Trk1eta2p1 + process.HLTL2TauJetsL1TauSeededSequence + process.hltDoubleL2Tau26eta2p2 + process.HLTL2p5IsoTauL1TauSeededGlobalSequence + process.hltDoubleL2GlobIsoTau26eta2p2 + process.HLTGlobalPFTauHPSSequence + process.HLTHPSDoublePFTauPt40Eta2p1Trk1 + process.HLTHPSMediumChargedIsoPFTauSequence + process.hltHpsSelectedPFTausTrackPt1MediumChargedIsolation + process.hltHpsDoublePFTau40TrackPt1MediumChargedIsolation + process.hltHpsL1JetsHLTDoublePFTauTrackPt1MediumChargedIsolationMatch + process.hltHpsDoublePFTau40TrackPt1MediumChargedIsolationL1HLTMatched + process.hltHpsDoublePFTau40TrackPt1MediumChargedIsolationDz02 + process.HLTEndSequence ) process.HLT_DoubleTightChargedIsoPFTauHPS35_Trk1_eta2p1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleTauBigOR + process.hltPreDoubleTightChargedIsoPFTauHPS35Trk1eta2p1 + process.HLTL2TauJetsL1TauSeededSequence + process.hltDoubleL2Tau26eta2p2 + process.HLTL2p5IsoTauL1TauSeededGlobalSequence + process.hltDoubleL2GlobIsoTau26eta2p2 + process.HLTGlobalPFTauHPSSequence + process.HLTHPSDoublePFTauPt35Eta2p1Trk1 + process.HLTHPSTightChargedIsoPFTauSequence + process.hltHpsSelectedPFTausTrackPt1TightChargedIsolation + process.hltHpsDoublePFTau35TrackPt1TightChargedIsolation + process.hltHpsL1JetsHLTDoublePFTauTrackPt1TightChargedIsolationMatch + process.hltHpsDoublePFTau35TrackPt1TightChargedIsolationL1HLTMatched + process.hltHpsDoublePFTau35TrackPt1TightChargedIsolationDz02 + process.HLTEndSequence ) process.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sBigORLooseIsoEGXXerIsoTauYYerdRMin0p3 + process.hltPreEle24eta2p1WPTightGsfLooseDeepTauPFTauHPS30eta2p1CrossL1 + process.HLTEle24erWPTightGsfForTauSequence + process.HLTGlobalPFTauHPSSequence + process.hltOverlapFilterIsoEle24IsoTau30WPTightGsfCaloJet5 + process.HLTHPSLooseETauWPDeepTauPFTau30Sequence + process.hltHpsL1JetsHLTPFTauLooseEtauWPDeepTauMatch + process.hltHpsSelectedPFTau30LooseETauWPDeepTauL1HLTMatched + process.hltHpsOverlapFilterIsoEle24WPTightGsfLooseETauWPDeepTauPFTau30 + process.HLTEndSequence ) @@ -123445,7 +125285,7 @@ process.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJetOrHTTOrMuHTT + process.hltPreAK8PFJet230SoftDropMass40PFAK8ParticleNetTauTau0p30 + process.HLTAK8CaloJetsSequence + process.hltAK8SingleCaloJet200 + process.HLTAK8PFJetsSequence + process.hltAK8PFJetsCorrectedMatchedToCaloJets200 + process.hltSingleAK8PFJet230 + process.hltAK8PFJets230Constituents + process.hltAK8PFSoftDropJets230 + process.hltAK8SinglePFJets230SoftDropMass40 + process.HLTJetFlavourTagParticleNetSequencePFAK8 + process.hltAK8PFJets230SoftDropMass40 + process.hltAK8SinglePFJets230SoftDropMass40ParticleNetTauTau0p30 + process.HLTEndSequence ) process.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJetOrHTTOrMuHTT + process.hltPreAK8PFJet250SoftDropMass40PFAK8ParticleNetTauTau0p30 + process.HLTAK8CaloJetsSequence + process.hltAK8SingleCaloJet200 + process.HLTAK8PFJetsSequence + process.hltAK8PFJetsCorrectedMatchedToCaloJets200 + process.hltSingleAK8PFJet250 + process.hltAK8PFJets250Constituents + process.hltAK8PFSoftDropJets250 + process.hltAK8SinglePFJets250SoftDropMass40 + process.HLTJetFlavourTagParticleNetSequencePFAK8 + process.hltAK8PFJets250SoftDropMass40 + process.hltAK8SinglePFJets250SoftDropMass40ParticleNetTauTau0p30 + process.HLTEndSequence ) process.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJetOrHTTOrMuHTT + process.hltPreAK8PFJet275SoftDropMass40PFAK8ParticleNetTauTau0p30 + process.HLTAK8CaloJetsSequence + process.hltAK8SingleCaloJet200 + process.HLTAK8PFJetsSequence + process.hltAK8PFJetsCorrectedMatchedToCaloJets200 + process.hltSingleAK8PFJet275 + process.hltAK8PFJets275Constituents + process.hltAK8PFSoftDropJets275 + process.hltAK8SinglePFJets275SoftDropMass40 + process.HLTJetFlavourTagParticleNetSequencePFAK8 + process.hltAK8PFJets275SoftDropMass40 + process.hltAK8SinglePFJets275SoftDropMass40ParticleNetTauTau0p30 + process.HLTEndSequence ) -process.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleTauJet + process.hltPreDoubleMediumDeepTauIsoPFTauHPS30L2NNeta2p1PFJet60 + process.HLTL2TauTagNNSequence + process.hltL2DoubleTauJetTagNNFilter + process.HLTGlobalPFTauHPSSequence + process.HLTHPSDeepTauIsoPFTauSequence + process.hltHpsSelectedPFTausMediumDitauWPDeepTauDoubleTauJet + process.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatchDoubleTauJet + process.hltHpsDoublePFTau30MediumDitauWPDeepTauL1HLTMatchedDoubleTauJet + process.hltHpsDoublePFTau30MediumDitauWPDeepTauDz02DoubleTauJet + process.HLTAK4PFJetsSequence + process.hltPFJetsCorrectedMatchedToL1 + process.hlt1PFJet60L1HLTMatched + process.hltHpsOverlapFilterDeepTauDoublePFTau30PFJet60 + process.HLTEndSequence ) +process.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleTauJet + process.hltPreDoubleMediumDeepTauIsoPFTauHPS30L2NNeta2p1PFJet60 + process.HLTL2TauTagNNSequence + process.hltL2DoubleTauJetTagNNFilter + process.HLTGlobalPFTauHPSSequence + process.HLTHPSDeepTauIsoPFTauSequence + process.hltHpsSelectedPFTausMediumDitauWPDeepTauDoubleTauJet + process.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatchDoubleTauJet + process.hltHpsDoublePFTau30MediumDitauWPDeepTauL1HLTMatchedDoubleTauJet + process.HLTAK4PFJetsSequence + process.hltPFJetsCorrectedMatchedToL1 + process.hlt1PFJet60L1HLTMatched + process.hltHpsOverlapFilterDeepTauDoublePFTau30PFJet60 + process.HLTEndSequence ) process.HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1VBFDiJetIsoTau + process.hltPreDoublePFJets40Mass500MediumDeepTau45L2NNMediumDeepTau20eta2p1 + process.HLTL2TauTagNNSequence + process.hltL2VBFIsoTauNNFilter + process.HLTGlobalPFTauHPSSequence + process.HLTHPSDeepTauIsoPFTauSequenceForVBFIsoTau + process.hltHpsSelectedPFTausMediumDitauWPDeepTauForVBFIsoTau + process.hltHpsDoublePFTau20MediumDitauWPDeepTauNoMatch + process.hltHpsL1VBFJetsAndIsoTauHLTDoublePFTauMediumDitauWPDeepTauMatch + process.hltHpsSinglePFTau45MediumDitauWPDeepTauL1HLTMatched + process.HLTAK4PFJetsSequence + process.hltRealDijetFilter + process.hltVBFIsoTauL1TLooseIDPFJetsMatching + process.hltVBFLooseIDPFDummyFilter + process.hltMatchedVBFIsoTauTwoPFJetsDoubleHpsDeepTauIsoPF25TauOverlapRemoval + process.hltMatchedVBFIsoTauTwoPFJets2CrossCleanedFromDoubleHpsDeepTauIsoPFTauHPS20 + process.HLTEndSequence ) process.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + process.hltPreDoubleL2Mu10NoVtx2ChaVetoL3Mu0DxyMax1cm + process.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + process.hltL2fL1fMuf0DoubleL2MuNoVtx10Q + process.hltL2fDoubleMu10NoVertexL2Filtered + process.HLTL3muonrecoSequenceNoVtx + ~process.hltL3fDimuonL1f0ppL2NV2Chaf10L3NVf0Veto1Prompt + process.HLTEndSequence ) process.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + process.hltPreDoubleL3Mu1610NoVtxDxyMin0p01cm + process.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + process.hltL2fL1DoubleMuf0L2DoubleMuNoVtxFiltered7 + process.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered15 + process.HLTL3NoFiltersNoVtxmuonrecoSequence + process.hltL3fL1DoubleMuf0L2NVf15f7L3DoubleMuNVf10Displaced + process.hltL3fL1DoubleMuf0L2NVf15f7L3SingleMuNVf16Displaced + process.HLTEndSequence ) @@ -123478,6 +125318,32 @@ process.HLT_PFMET105_PFJet100_looseRecoiling_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sETMHF90SingleJet60looseRecoiling + process.hltPrePFMET105PFJet100looseRecoiling + process.HLTRecoMETSequence + process.hltMET75 + process.HLTAK4CaloJetsSequence + process.hltSingleAK4CaloJet70 + process.HLTAK4PFJetsSequence + process.hltPFJetsCorrectedMatchedToCaloJets70 + process.hltSinglePFJet100 + process.hltPFMETProducer + process.hltPFMET105 + process.hltPFJet100PFMET105MinDPhi2 + process.HLTEndSequence ) process.HLT_PFMET110_PFJet100_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sETMHF90SingleJet60looseRecoiling + process.hltPrePFMET110PFJet100 + process.HLTRecoMETSequence + process.hltMET75 + process.HLTAK4CaloJetsSequence + process.hltSingleAK4CaloJet70 + process.HLTAK4PFJetsSequence + process.hltPFJetsCorrectedMatchedToCaloJets70 + process.hltSinglePFJet100 + process.hltPFMETProducer + process.hltPFMET110 + process.HLTEndSequence ) process.HLT_PFMET110_PFJet100_looseRecoiling_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sETMHF90SingleJet60looseRecoiling + process.hltPrePFMET110PFJet100looseRecoiling + process.HLTRecoMETSequence + process.hltMET75 + process.HLTAK4CaloJetsSequence + process.hltSingleAK4CaloJet70 + process.HLTAK4PFJetsSequence + process.hltPFJetsCorrectedMatchedToCaloJets70 + process.hltSinglePFJet100 + process.hltPFMETProducer + process.hltPFMET110 + process.hltPFJet100PFMET110MinDPhi2 + process.HLTEndSequence ) +process.HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + process.hltPreDoubleL3Iter4Mu1610NoVtxDxyMin0p01cm + process.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + process.hltL2fL1DoubleMuf0L2DoubleMuNoVtxFiltered7 + process.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered15 + process.HLTL3GblIter4DisplacedMuonRecoSequence + process.hltL3fL1DoubleMuf0L2NVf15f7L3DoubleMuNVf10DisplacedIter4 + process.hltL3fL1DoubleMuf0L2NVf15f7L3SingleMuNVf16DisplacedIter4 + process.HLTEndSequence ) +process.HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + process.hltPreL3Iter4Mu10NoVtxDxyMin0p01cm + process.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + process.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered7 + process.HLTL3GblIter4DisplacedMuonRecoSequence + process.hltL3fL1f0L2f0Filtered10GlbDisplacedIter4 + process.HLTEndSequence ) +process.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT170L1SingleLLPJetDisplacedDijet40DisplacedTrack + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT170 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + process.hltDisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + process.hltIter02DisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIteration4DisplacedJets + process.HLTDisplacedTrackRequirementDisplacedJetsLowPt + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDisplacedDijet40DisplacedTrack + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + process.hltDisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + process.hltIter02DisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIteration4DisplacedJets + process.HLTDisplacedTrackRequirementDisplacedJetsLowPt + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDisplacedDijet60DisplacedTrack + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt60 + process.hltCentralCaloJetptMidPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsMidPt + process.hltDisplacedHLTCaloJetCollectionProducerMidPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsMidPt + process.hltIter02DisplacedHLTCaloJetCollectionProducerMidPt + process.HLTIterativeTrackingIteration4DisplacedJets + process.HLTDisplacedTrackRequirementDisplacedJetsMidPt + process.HLTEndSequence ) +process.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT270L1SingleLLPJetDisplacedDijet40DisplacedTrack + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT270 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + process.hltDisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + process.hltIter02DisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIteration4DisplacedJets + process.HLTDisplacedTrackRequirementDisplacedJetsLowPt + process.HLTEndSequence ) +process.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT320L1SingleLLPJetDisplacedDijet60Inclusive + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT320 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt60 + process.hltCentralCaloJetptMidPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsMidPt + process.hltDisplacedHLTCaloJetCollectionProducerMidPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsMidPt + process.HLTEndSequence ) +process.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT420L1SingleLLPJetDisplacedDijet60Inclusive + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT420 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt60 + process.hltCentralCaloJetptMidPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsMidPt + process.hltDisplacedHLTCaloJetCollectionProducerMidPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsMidPt + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay1nsTrackless + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltSingleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducerSingle + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPtSingle + process.hltDisplacedHLTCaloJetCollectionProducerLowPtSingle + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPtSingle + process.hltCaloJetTimingProducerSingle + process.hltCaloJetTimingFilterSingle1ns + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay2nsInclusive + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltSingleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducerSingle + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPtSingle + process.hltDisplacedHLTCaloJetCollectionProducerLowPtSingle + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPtSingle + process.hltCaloJetTimingProducerSingle + process.hltCaloJetTimingFilterSingle2ns + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay0p5nsTrackless + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + process.hltDisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + process.hltCaloJetTimingProducer + process.hltCaloJetTimingFilterDouble0p5ns + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay1nsInclusive + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + process.hltDisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + process.hltCaloJetTimingProducer + process.hltCaloJetTimingFilterDouble1ns + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDisplacedDijet30Inclusive1PtrkShortSig5 + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt30 + process.hltCentralCaloJetptLowPt30CollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLow30Pt1PtrkShortSig5 + process.hltDisplacedHLTCaloJetCollectionProducerLow30Pt1PtrkShortSig5 + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLow30Pt1PtrkShortSig5 + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDisplacedDijet35Inclusive1PtrkShortSig5 + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt35 + process.hltCentralCaloJetptLowPt35CollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLow35Pt1PtrkShortSig5 + process.hltDisplacedHLTCaloJetCollectionProducerLow35Pt1PtrkShortSig5 + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLow35Pt1PtrkShortSig5 + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDisplacedDijet40Inclusive1PtrkShortSig5 + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt1PtrkShortSig5 + process.hltDisplacedHLTCaloJetCollectionProducerLowPt1PtrkShortSig5 + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt1PtrkShortSig5 + process.HLTEndSequence ) +process.HLT_DiPhoton10Time1ns_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10Time1ns + process.HLTDiPho10CaloIdLTime1nsSequence + process.HLTEndSequence ) +process.HLT_DiPhoton10Time1p2ns_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10Time1p2ns + process.HLTDiPho10CaloIdLTime1p2nsSequence + process.HLTEndSequence ) +process.HLT_DiPhoton10Time1p4ns_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10Time1p4ns + process.HLTDiPho10CaloIdLTime1p4nsSequence + process.HLTEndSequence ) +process.HLT_DiPhoton10Time1p6ns_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10Time1p6ns + process.HLTDiPho10CaloIdLTime1p6nsSequence + process.HLTEndSequence ) +process.HLT_DiPhoton10Time1p8ns_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10Time1p8ns + process.HLTDiPho10CaloIdLTime1p8nsSequence + process.HLTEndSequence ) +process.HLT_DiPhoton10Time2ns_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10Time2ns + process.HLTDiPho10CaloIdLTime2nsSequence + process.HLTEndSequence ) +process.HLT_DiPhoton10sminlt0p1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10sminlt0p1 + process.HLTDiPho10CaloIdLsminlt0p1Sequence + process.HLTEndSequence ) +process.HLT_DiPhoton10sminlt0p12_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10sminlt0p12 + process.HLTDiPho10CaloIdLsminlt0p12Sequence + process.HLTEndSequence ) +process.HLT_DiPhoton10sminlt0p14_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10sminlt0p14 + process.HLTDiPho10CaloIdLsminlt0p14Sequence + process.HLTEndSequence ) +process.HLT_DiPhoton10sminlt0p16_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10sminlt0p16 + process.HLTDiPho10CaloIdLsminlt0p16Sequence + process.HLTEndSequence ) +process.HLT_DiPhoton10_CaloIdL_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10CaloIdL + process.HLTDiPho10CaloIdLSequence + process.HLTEndSequence ) process.HLT_ExpressMuons_v1 = cms.Path( process.HLTBeginSequence + process.hltPreExpressMuons + process.hltExpressMuonsFilter + process.HLTEndSequence ) process.HLT_OnlineMonitorGroup_v1 = cms.Path( process.HLTBeginSequence + process.hltPreOnlineMonitorGroup + process.hltOnlineMonitorGroupFilter + process.HLTEndSequence ) process.HLT_HIOnlineMonitorGroup_v1 = cms.Path( process.HLTBeginSequence + process.hltPreHIOnlineMonitorGroup + process.hltHIOnlineMonitorGroupFilter + process.HLTEndSequence ) @@ -124131,7 +125997,7 @@ process.HLTriggerFinalPath = cms.Path( process.hltGtStage2Digis + process.hltScalersRawToDigi + process.hltFEDSelector + process.hltTriggerSummaryAOD + process.hltTriggerSummaryRAW + process.hltBoolFalse ) process.HLTAnalyzerEndpath = cms.EndPath( process.hltGtStage2Digis + process.hltPreHLTAnalyzerEndpath + process.hltL1TGlobalSummary + process.hltTrigReport ) process.RatesMonitoring = cms.EndPath( process.hltGtStage2Digis + process.hltPreRatesMonitoring + process.hltHLTriggerJSONMonitoring + process.hltL1TriggerJSONMonitoring ) -process.DQMHistograms = cms.EndPath( process.hltGtStage2Digis + process.hltScalersRawToDigi + process.hltTriggerRatesMonitor + process.hltTriggerBxMonitor + process.hltTriggerObjectTnPMonitor + process.hltLumiMonitor + process.hltPSColumnMonitor ) +process.DQMHistograms = cms.EndPath( process.hltGtStage2Digis + process.hltScalersRawToDigi + process.hltTriggerRatesMonitor + process.hltTriggerBxMonitor + process.hltTriggerObjectTnPMonitor + process.hltLumiMonitor + process.hltPSColumnMonitor + process.hltOnlineBeamMonitor ) process.PhysicsCommissioningOutput = cms.FinalPath( process.hltOutputPhysicsCommissioning ) process.PhysicsEGammaOutput = cms.FinalPath( process.hltOutputPhysicsEGamma ) process.PhysicsEndOfFillOutput = cms.FinalPath( process.hltOutputPhysicsEndOfFill ) @@ -124448,7 +126314,7 @@ process.Dataset_ppForward = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetppForward + process.hltPreDatasetppForward ) -process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.HLT_AK8PFJet360_TrimMass30_v18, process.HLT_AK8PFJet380_TrimMass30_v11, process.HLT_AK8PFJet400_TrimMass30_v12, process.HLT_AK8PFJet420_TrimMass30_v11, process.HLT_AK8PFHT750_TrimMass50_v12, process.HLT_AK8PFHT800_TrimMass50_v12, process.HLT_AK8PFHT850_TrimMass50_v11, process.HLT_AK8PFHT900_TrimMass50_v11, process.HLT_CaloJet10_NoJetID_v3, process.HLT_CaloJet20_NoJetID_v3, process.HLT_CaloJet50_NoJetID_v3, process.HLT_CaloJet500_NoJetID_v12, process.HLT_CaloJet550_NoJetID_v7, process.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v4, process.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v4, process.HLT_Trimuon5_3p5_2_Upsilon_Muon_v5, process.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v3, process.HLT_DoubleEle25_CaloIdL_MW_v4, process.HLT_DoubleEle27_CaloIdL_MW_v4, process.HLT_DoubleEle33_CaloIdL_MW_v17, process.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v7, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v20, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v20, process.HLT_Ele27_Ele37_CaloIdL_MW_v4, process.HLT_Mu27_Ele37_CaloIdL_MW_v5, process.HLT_Mu37_Ele27_CaloIdL_MW_v5, process.HLT_Mu37_TkMu27_v5, process.HLT_DoubleMu4_3_Bs_v15, process.HLT_DoubleMu4_3_Jpsi_v15, process.HLT_DoubleMu4_3_LowMass_v1, process.HLT_DoubleMu4_LowMass_Displaced_v1, process.HLT_Mu0_L1DoubleMu_v1, process.HLT_Mu4_L1DoubleMu_v1, process.HLT_DoubleMu3_Trk_Tau3mu_v12, process.HLT_DoubleMu3_TkMu_DsTau3Mu_v4, process.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8, process.HLT_DoubleMu4_MuMuTrk_Displaced_v15, process.HLT_Mu3_PFJet40_v16, process.HLT_Mu7p5_L2Mu2_Jpsi_v10, process.HLT_Mu7p5_L2Mu2_Upsilon_v10, process.HLT_Mu7p5_Track2_Jpsi_v11, process.HLT_Mu7p5_Track3p5_Jpsi_v11, process.HLT_Mu7p5_Track7_Jpsi_v11, process.HLT_Mu7p5_Track2_Upsilon_v11, process.HLT_Mu7p5_Track3p5_Upsilon_v11, process.HLT_Mu7p5_Track7_Upsilon_v11, process.HLT_Mu3_L1SingleMu5orSingleMu7_v1, process.HLT_DoublePhoton33_CaloIdL_v6, process.HLT_DoublePhoton70_v6, process.HLT_DoublePhoton85_v14, process.HLT_Ele20_WPTight_Gsf_v6, process.HLT_Ele15_WPLoose_Gsf_v3, process.HLT_Ele17_WPLoose_Gsf_v3, process.HLT_Ele20_WPLoose_Gsf_v6, process.HLT_Ele20_eta2p1_WPLoose_Gsf_v6, process.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4, process.HLT_Ele27_WPTight_Gsf_v16, process.HLT_Ele28_WPTight_Gsf_v1, process.HLT_Ele30_WPTight_Gsf_v1, process.HLT_Ele32_WPTight_Gsf_v15, process.HLT_Ele35_WPTight_Gsf_v9, process.HLT_Ele35_WPTight_Gsf_L1EGMT_v5, process.HLT_Ele38_WPTight_Gsf_v9, process.HLT_Ele40_WPTight_Gsf_v9, process.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v9, process.HLT_Ele24_eta2p1_WPTight_Gsf_TightChargedIsoPFTauHPS30_eta2p1_CrossL1_v1, process.HLT_HT450_Beamspot_v11, process.HLT_HT300_Beamspot_v11, process.HLT_HT60_Beamspot_v1, process.HLT_ZeroBias_Beamspot_v4, process.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_CrossL1_v1, process.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_TightID_CrossL1_v1, process.HLT_IsoMu27_LooseChargedIsoPFTau20_Trk1_eta2p1_SingleL1_v5, process.HLT_IsoMu27_LooseChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, process.HLT_IsoMu27_MediumChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, process.HLT_IsoMu27_TightChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, process.HLT_IsoMu20_v15, process.HLT_IsoMu24_v13, process.HLT_IsoMu24_eta2p1_v15, process.HLT_IsoMu27_v16, process.HLT_IsoMu30_v4, process.HLT_UncorrectedJetE30_NoBPTX_v6, process.HLT_UncorrectedJetE30_NoBPTX3BX_v6, process.HLT_UncorrectedJetE60_NoBPTX3BX_v6, process.HLT_UncorrectedJetE70_NoBPTX3BX_v6, process.HLT_L1SingleMu18_v3, process.HLT_L1SingleMu25_v2, process.HLT_L1SingleMuOpen_v2, process.HLT_L1SingleMuOpen_DT_v2, process.HLT_L1SingleMuCosmics_v1, process.HLT_L1SingleMu3_v1, process.HLT_L1SingleMu5_v1, process.HLT_L1SingleMu7_v1, process.HLT_L1DoubleMu0_v1, process.HLT_L1SingleEG10_v2, process.HLT_L1SingleEG15_v2, process.HLT_L1SingleEG18_v1, process.HLT_L1SingleJet16_v1, process.HLT_L1SingleJet20_v1, process.HLT_L1SingleJet35_v1, process.HLT_L1SingleJet8erHE_v1, process.HLT_L1SingleJet10erHE_v1, process.HLT_L1SingleJet12erHE_v1, process.HLT_L1SingleJet200_v1, process.HLT_L1DoubleJetC50_v2, process.HLT_L1EXT_HCAL_LaserMon1_v1, process.HLT_L1EXT_HCAL_LaserMon4_v1, process.HLT_DQMPixels_SingleMuOpen_v1, process.HLT_L2DoubleMu23_NoVertex_v2, process.HLT_L2Mu10_v7, process.HLT_L2Mu10_NoVertex_NoBPTX3BX_v5, process.HLT_L2Mu10_NoVertex_NoBPTX_v6, process.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4, process.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5, process.HLT_L2Mu50_v2, process.HLT_L2Mu23NoVtx_2Cha_v1, process.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v1, process.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2, process.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2, process.HLT_DoubleL2Mu50_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v2, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v14, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v3, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v3, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v3, process.HLT_Mu25_TkMu0_Onia_v8, process.HLT_Mu30_TkMu0_Psi_v1, process.HLT_Mu30_TkMu0_Upsilon_v1, process.HLT_Mu20_TkMu0_Phi_v8, process.HLT_Mu25_TkMu0_Phi_v8, process.HLT_Mu12_v3, process.HLT_Mu15_v3, process.HLT_Mu20_v12, process.HLT_Mu27_v13, process.HLT_Mu50_v13, process.HLT_Mu55_v3, process.HLT_CascadeMu100_v3, process.HLT_HighPtTkMu100_v2, process.HLT_DiPFJet15_NoCaloMatched_v16, process.HLT_DiPFJet25_NoCaloMatched_v16, process.HLT_DiPFJet15_FBEta3_NoCaloMatched_v17, process.HLT_DiPFJet25_FBEta3_NoCaloMatched_v17, process.HLT_DiPFJetAve40_v14, process.HLT_DiPFJetAve60_v14, process.HLT_DiPFJetAve80_v13, process.HLT_DiPFJetAve140_v13, process.HLT_DiPFJetAve200_v13, process.HLT_DiPFJetAve260_v14, process.HLT_DiPFJetAve320_v14, process.HLT_DiPFJetAve400_v14, process.HLT_DiPFJetAve500_v14, process.HLT_DiPFJetAve15_HFJEC_v17, process.HLT_DiPFJetAve25_HFJEC_v17, process.HLT_DiPFJetAve35_HFJEC_v17, process.HLT_DiPFJetAve60_HFJEC_v15, process.HLT_DiPFJetAve80_HFJEC_v16, process.HLT_DiPFJetAve100_HFJEC_v16, process.HLT_DiPFJetAve160_HFJEC_v16, process.HLT_DiPFJetAve220_HFJEC_v16, process.HLT_DiPFJetAve300_HFJEC_v16, process.HLT_AK8PFJet15_v3, process.HLT_AK8PFJet25_v3, process.HLT_AK8PFJet40_v16, process.HLT_AK8PFJet60_v15, process.HLT_AK8PFJet80_v15, process.HLT_AK8PFJet140_v15, process.HLT_AK8PFJet200_v15, process.HLT_AK8PFJet260_v16, process.HLT_AK8PFJet320_v16, process.HLT_AK8PFJet400_v16, process.HLT_AK8PFJet450_v16, process.HLT_AK8PFJet500_v16, process.HLT_AK8PFJet550_v11, process.HLT_PFJet15_v3, process.HLT_PFJet25_v3, process.HLT_PFJet40_v21, process.HLT_PFJet60_v21, process.HLT_PFJet80_v20, process.HLT_PFJet140_v19, process.HLT_PFJet200_v19, process.HLT_PFJet260_v20, process.HLT_PFJet320_v20, process.HLT_PFJet400_v20, process.HLT_PFJet450_v21, process.HLT_PFJet500_v21, process.HLT_PFJet550_v11, process.HLT_PFJetFwd15_v3, process.HLT_PFJetFwd25_v3, process.HLT_PFJetFwd40_v19, process.HLT_PFJetFwd60_v19, process.HLT_PFJetFwd80_v18, process.HLT_PFJetFwd140_v18, process.HLT_PFJetFwd200_v18, process.HLT_PFJetFwd260_v19, process.HLT_PFJetFwd320_v19, process.HLT_PFJetFwd400_v19, process.HLT_PFJetFwd450_v19, process.HLT_PFJetFwd500_v19, process.HLT_AK8PFJetFwd15_v3, process.HLT_AK8PFJetFwd25_v3, process.HLT_AK8PFJetFwd40_v15, process.HLT_AK8PFJetFwd60_v14, process.HLT_AK8PFJetFwd80_v14, process.HLT_AK8PFJetFwd140_v14, process.HLT_AK8PFJetFwd200_v14, process.HLT_AK8PFJetFwd260_v15, process.HLT_AK8PFJetFwd320_v15, process.HLT_AK8PFJetFwd400_v15, process.HLT_AK8PFJetFwd450_v15, process.HLT_AK8PFJetFwd500_v15, process.HLT_PFHT180_v17, process.HLT_PFHT250_v17, process.HLT_PFHT370_v17, process.HLT_PFHT430_v17, process.HLT_PFHT510_v17, process.HLT_PFHT590_v17, process.HLT_PFHT680_v17, process.HLT_PFHT780_v17, process.HLT_PFHT890_v17, process.HLT_PFHT1050_v18, process.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v12, process.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v12, process.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v12, process.HLT_PFHT700_PFMET95_PFMHT95_IDTight_v12, process.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v12, process.HLT_PFHT800_PFMET85_PFMHT85_IDTight_v12, process.HLT_PFMET110_PFMHT110_IDTight_v20, process.HLT_PFMET120_PFMHT120_IDTight_v20, process.HLT_PFMET130_PFMHT130_IDTight_v20, process.HLT_PFMET140_PFMHT140_IDTight_v20, process.HLT_PFMET100_PFMHT100_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET110_PFMHT110_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET120_PFMHT120_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET130_PFMHT130_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET140_PFMHT140_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v9, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v9, process.HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9, process.HLT_PFMETTypeOne110_PFMHT110_IDTight_v12, process.HLT_PFMETTypeOne120_PFMHT120_IDTight_v12, process.HLT_PFMETTypeOne130_PFMHT130_IDTight_v12, process.HLT_PFMETTypeOne140_PFMHT140_IDTight_v11, process.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, process.HLT_MonoCentralPFJet80_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, process.HLT_MonoCentralPFJet80_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, process.HLT_MonoCentralPFJet80_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, process.HLT_MonoCentralPFJet80_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, process.HLT_L1ETMHadSeeds_v2, process.HLT_CaloMHT90_v4, process.HLT_CaloMET80_NotCleaned_v4, process.HLT_CaloMET90_NotCleaned_v4, process.HLT_CaloMET100_NotCleaned_v4, process.HLT_CaloMET110_NotCleaned_v4, process.HLT_CaloMET250_NotCleaned_v4, process.HLT_CaloMET300_NotCleaned_v4, process.HLT_CaloMET350_NotCleaned_v4, process.HLT_PFMET200_NotCleaned_v9, process.HLT_PFMET250_NotCleaned_v9, process.HLT_PFMET300_NotCleaned_v9, process.HLT_PFMET200_BeamHaloCleaned_v9, process.HLT_PFMETTypeOne200_BeamHaloCleaned_v9, process.HLT_MET105_IsoTrk50_v9, process.HLT_MET120_IsoTrk50_v9, process.HLT_SingleJet30_Mu12_SinglePFJet40_v11, process.HLT_Mu12eta2p3_v1, process.HLT_Mu12eta2p3_PFJet40_v1, process.HLT_Mu12_DoublePFJets40_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets100_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets200_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets350_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets40_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets100_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets200_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets40_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets100_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets200_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets350_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_DoublePFJets40_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets100_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets200_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets350_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_Photon300_NoHE_v12, process.HLT_Mu8_TrkIsoVVL_v12, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v18, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v18, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v19, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v19, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepCSV_1p5_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_CaloBtagDeepCSV_1p5_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v11, process.HLT_Mu17_TrkIsoVVL_v13, process.HLT_Mu19_TrkIsoVVL_v4, process.HLT_BTagMu_AK4DiJet20_Mu5_v13, process.HLT_BTagMu_AK4DiJet40_Mu5_v13, process.HLT_BTagMu_AK4DiJet70_Mu5_v13, process.HLT_BTagMu_AK4DiJet110_Mu5_v13, process.HLT_BTagMu_AK4DiJet170_Mu5_v12, process.HLT_BTagMu_AK4Jet300_Mu5_v12, process.HLT_BTagMu_AK8DiJet170_Mu5_v9, process.HLT_BTagMu_AK8Jet170_DoubleMu5_v2, process.HLT_BTagMu_AK8Jet300_Mu5_v12, process.HLT_Ele15_Ele8_CaloIdL_TrackIdL_IsoVL_v3, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v19, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v15, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v7, process.HLT_Mu23_TrkIsoVVL_Ele8_CaloIdL_TrackIdL_IsoVL_DZ_v10, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v7, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v15, process.HLT_Mu12_DoublePhoton20_v5, process.HLT_Photon20_v2, process.HLT_Photon22_v2, process.HLT_Photon25_v4, process.HLT_Photon33_v5, process.HLT_Photon50_v13, process.HLT_Photon75_v13, process.HLT_Photon90_v13, process.HLT_Photon120_v13, process.HLT_Photon150_v6, process.HLT_Photon175_v14, process.HLT_Photon200_v13, process.HLT_Photon100EB_TightID_TightIso_v2, process.HLT_Photon110EB_TightID_TightIso_v2, process.HLT_Photon120EB_TightID_TightIso_v2, process.HLT_Photon100EBHE10_v2, process.HLT_Photon100EEHE10_v2, process.HLT_Photon100EE_TightID_TightIso_v2, process.HLT_Photon50_R9Id90_HE10_IsoM_v14, process.HLT_Photon75_R9Id90_HE10_IsoM_v14, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ300_PFJetsMJJ400DEta3_v5, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ400_PFJetsMJJ600DEta3_v5, process.HLT_Photon90_R9Id90_HE10_IsoM_v14, process.HLT_Photon120_R9Id90_HE10_IsoM_v14, process.HLT_Photon165_R9Id90_HE10_IsoM_v15, process.HLT_Photon90_CaloIdL_PFHT700_v16, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v13, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v13, process.HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13, process.HLT_Photon35_TwoProngs35_v1, process.HLT_IsoMu24_TwoProngs35_v1, process.HLT_Dimuon0_Jpsi_L1_NoOS_v7, process.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v7, process.HLT_Dimuon0_Jpsi_v8, process.HLT_Dimuon0_Jpsi_NoVertexing_v8, process.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7, process.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v7, process.HLT_Dimuon0_Jpsi3p5_Muon2_v5, process.HLT_Dimuon0_Upsilon_L1_4p5_v9, process.HLT_Dimuon0_Upsilon_L1_5_v9, process.HLT_Dimuon0_Upsilon_L1_4p5NoOS_v8, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v9, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v7, process.HLT_Dimuon0_Upsilon_NoVertexing_v7, process.HLT_Dimuon0_Upsilon_L1_5M_v8, process.HLT_Dimuon0_LowMass_L1_0er1p5R_v7, process.HLT_Dimuon0_LowMass_L1_0er1p5_v8, process.HLT_Dimuon0_LowMass_v8, process.HLT_Dimuon0_LowMass_L1_4_v8, process.HLT_Dimuon0_LowMass_L1_4R_v7, process.HLT_Dimuon0_LowMass_L1_TM530_v6, process.HLT_Trimuon2_Upsilon5_Muon_NoL1Mass_v6, process.HLT_Dimuon0_Upsilon_Muon_L1_TM0_v6, process.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v6, process.HLT_TripleMu_5_3_3_Mass3p8_DZ_v8, process.HLT_TripleMu_10_5_5_DZ_v10, process.HLT_TripleMu_12_10_5_v10, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v4, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v4, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v4, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v4, process.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10, process.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v10, process.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v10, process.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v6, process.HLT_DoubleMu4_Jpsi_Displaced_v7, process.HLT_DoubleMu4_Jpsi_NoVertexing_v7, process.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v7, process.HLT_DoubleMu43NoFiltersNoVtx_v4, process.HLT_DoubleMu48NoFiltersNoVtx_v4, process.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v5, process.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v5, process.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v1, process.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v1, process.HLT_DoubleMu40NoFiltersNoVtxDisplaced_v1, process.HLT_DoubleMu20_7_Mass0to30_L1_DM4_v7, process.HLT_DoubleMu20_7_Mass0to30_L1_DM4EG_v8, process.HLT_HT425_v9, process.HLT_HT430_DisplacedDijet40_DisplacedTrack_v13, process.HLT_HT500_DisplacedDijet40_DisplacedTrack_v13, process.HLT_HT430_DisplacedDijet60_DisplacedTrack_v13, process.HLT_HT400_DisplacedDijet40_DisplacedTrack_v13, process.HLT_HT650_DisplacedDijet60_Inclusive_v13, process.HLT_HT550_DisplacedDijet60_Inclusive_v13, process.HLT_DiJet110_35_Mjj650_PFMET110_v9, process.HLT_DiJet110_35_Mjj650_PFMET120_v9, process.HLT_DiJet110_35_Mjj650_PFMET130_v9, process.HLT_TripleJet110_35_35_Mjj650_PFMET110_v9, process.HLT_TripleJet110_35_35_Mjj650_PFMET120_v9, process.HLT_TripleJet110_35_35_Mjj650_PFMET130_v9, process.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v13, process.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v13, process.HLT_Ele28_HighEta_SC20_Mass55_v13, process.HLT_DoubleMu20_7_Mass0to30_Photon23_v8, process.HLT_Ele15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, process.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v16, process.HLT_Ele15_IsoVVVL_PFHT450_v16, process.HLT_Ele50_IsoVVVL_PFHT450_v16, process.HLT_Ele15_IsoVVVL_PFHT600_v20, process.HLT_Mu4_TrkIsoVVL_DiPFJet90_40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v15, process.HLT_Mu8_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v16, process.HLT_Mu10_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT350_PFMETNoMu60_v15, process.HLT_Mu15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, process.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v15, process.HLT_Mu15_IsoVVVL_PFHT450_v15, process.HLT_Mu50_IsoVVVL_PFHT450_v15, process.HLT_Mu15_IsoVVVL_PFHT600_v19, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET70_PFMHT70_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu70_PFMHTNoMu70_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v2, process.HLT_Dimuon10_PsiPrime_Barrel_Seagulls_v7, process.HLT_Dimuon20_Jpsi_Barrel_Seagulls_v7, process.HLT_Dimuon12_Upsilon_y1p4_v2, process.HLT_Dimuon14_Phi_Barrel_Seagulls_v7, process.HLT_Dimuon18_PsiPrime_v14, process.HLT_Dimuon25_Jpsi_v14, process.HLT_Dimuon18_PsiPrime_noCorrL1_v6, process.HLT_Dimuon24_Upsilon_noCorrL1_v6, process.HLT_Dimuon24_Phi_noCorrL1_v6, process.HLT_Dimuon25_Jpsi_noCorrL1_v6, process.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v17, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v17, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v17, process.HLT_DoubleIsoMu20_eta2p1_v7, process.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v6, process.HLT_TrkMu16_DoubleTrkMu6NoFiltersNoVtx_v12, process.HLT_TrkMu17_DoubleTrkMu8NoFiltersNoVtx_v13, process.HLT_Mu8_v12, process.HLT_Mu17_v13, process.HLT_Mu19_v4, process.HLT_Mu17_Photon30_IsoCaloId_v6, process.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v16, process.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, process.HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3, process.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, process.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v18, process.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v16, process.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v18, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18, process.HLT_Ele115_CaloIdVT_GsfTrkIdT_v14, process.HLT_Ele135_CaloIdVT_GsfTrkIdT_v7, process.HLT_Ele145_CaloIdVT_GsfTrkIdT_v8, process.HLT_Ele200_CaloIdVT_GsfTrkIdT_v8, process.HLT_Ele250_CaloIdVT_GsfTrkIdT_v13, process.HLT_Ele300_CaloIdVT_GsfTrkIdT_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepCSV_4p5_v3, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v9, process.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepCSV_2p94_v8, process.HLT_PFHT400_SixPFJet32_v8, process.HLT_PFHT450_SixPFJet36_PFBTagDeepCSV_1p59_v7, process.HLT_PFHT450_SixPFJet36_v7, process.HLT_PFHT400_FivePFJet_100_100_60_30_30_v8, process.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepCSV_4p5_v8, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepCSV_4p5_v8, process.HLT_PFHT350_v19, process.HLT_PFHT350MinPFJet15_v9, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_v5, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_v5, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350MinPFJet15_v11, process.HLT_ECALHT800_v10, process.HLT_DiSC30_18_EIso_AND_HE_Mass70_v13, process.HLT_L1FatEvents_v2, process.HLT_Physics_v7, process.HLT_EphemeralPhysics_v1, process.DST_Physics_v7, process.HLT_Random_v3, process.HLT_Random_TOTEM_part0_v1, process.HLT_Random_TOTEM_part1_v1, process.HLT_Random_TOTEM_part2_v1, process.HLT_Random_TOTEM_part3_v1, process.HLT_ZeroBias_v6, process.HLT_ZeroBias_TOTEM_part0_v1, process.HLT_ZeroBias_TOTEM_part1_v1, process.HLT_ZeroBias_TOTEM_part2_v1, process.HLT_ZeroBias_TOTEM_part3_v1, process.HLT_ZeroBias_Alignment_v1, process.HLT_EphemeralZeroBias_v1, process.DST_ZeroBias_v2, process.DST_Run3_PFScoutingPixelTracking_v16, process.HLT_AK4CaloJet30_v11, process.HLT_AK4CaloJet40_v10, process.HLT_AK4CaloJet50_v10, process.HLT_AK4CaloJet80_v10, process.HLT_AK4CaloJet100_v10, process.HLT_AK4CaloJet120_v9, process.HLT_AK4PFJet30_v19, process.HLT_AK4PFJet50_v19, process.HLT_AK4PFJet80_v19, process.HLT_AK4PFJet100_v19, process.HLT_AK4PFJet120_v18, process.HLT_PixelTracks_Multiplicity60ForPPRef_v5, process.HLT_PixelTracks_Multiplicity85ForPPRef_v5, process.HLT_PixelTracks_Multiplicity110ForPPRef_v5, process.HLT_PixelTracks_Multiplicity135ForPPRef_v5, process.HLT_PixelTracks_Multiplicity160ForPPRef_v5, process.HLT_AK4CaloJet40_Eta5p1ForPPRef_v9, process.HLT_AK4CaloJet60_Eta5p1ForPPRef_v9, process.HLT_AK4CaloJet80_Eta5p1ForPPRef_v9, process.HLT_AK4CaloJet100_Eta5p1ForPPRef_v9, process.HLT_AK4CaloJet110_Eta5p1ForPPRef_v9, process.HLT_AK4CaloJet120_Eta5p1ForPPRef_v9, process.HLT_AK4CaloJet150ForPPRef_v9, process.HLT_AK4PFJet40_Eta5p1ForPPRef_v16, process.HLT_AK4PFJet60_Eta5p1ForPPRef_v16, process.HLT_AK4PFJet80_Eta5p1ForPPRef_v16, process.HLT_AK4PFJet100_Eta5p1ForPPRef_v16, process.HLT_AK4PFJet110_Eta5p1ForPPRef_v16, process.HLT_AK4PFJet120_Eta5p1ForPPRef_v16, process.HLT_AK4CaloJet80_Jet35_Eta1p1ForPPRef_v9, process.HLT_AK4CaloJet80_Jet35_Eta0p7ForPPRef_v9, process.HLT_AK4CaloJet100_Jet35_Eta1p1ForPPRef_v9, process.HLT_AK4CaloJet100_Jet35_Eta0p7ForPPRef_v9, process.HLT_AK4CaloJet80_45_45_Eta2p1ForPPRef_v9, process.HLT_SinglePhoton10_Eta3p1ForPPRef_v8, process.HLT_SinglePhoton15_Eta3p1ForPPRef_v9, process.HLT_SinglePhoton20_Eta3p1ForPPRef_v9, process.HLT_SinglePhoton30_Eta3p1ForPPRef_v9, process.HLT_SinglePhoton40_Eta3p1ForPPRef_v8, process.HLT_SinglePhoton50_Eta3p1ForPPRef_v8, process.HLT_SinglePhoton60_Eta3p1ForPPRef_v8, process.HLT_Photon20_HoverELoose_v10, process.HLT_Photon30_HoverELoose_v10, process.HLT_Photon40_HoverELoose_v10, process.HLT_Photon50_HoverELoose_v10, process.HLT_Photon60_HoverELoose_v10, process.HLT_HIL2Mu3Eta2p5_AK4CaloJet40Eta2p1ForPPRef_v11, process.HLT_HIL2Mu3Eta2p5_AK4CaloJet60Eta2p1ForPPRef_v11, process.HLT_HIL2Mu3Eta2p5_AK4CaloJet80Eta2p1ForPPRef_v11, process.HLT_HIL2Mu3Eta2p5_AK4CaloJet100Eta2p1ForPPRef_v11, process.HLT_HIL1DoubleMu0ForPPRef_v4, process.HLT_HIL1DoubleMu10ForPPRef_v4, process.HLT_HIL2DoubleMu0_NHitQForPPRef_v5, process.HLT_HIL3DoubleMu0_OS_m2p5to4p5ForPPRef_v6, process.HLT_HIL3DoubleMu0_OS_m7to14ForPPRef_v6, process.HLT_HIL2Mu3_NHitQ10ForPPRef_v6, process.HLT_HIL3Mu3_NHitQ15ForPPRef_v6, process.HLT_HIL2Mu5_NHitQ10ForPPRef_v6, process.HLT_HIL3Mu5_NHitQ15ForPPRef_v6, process.HLT_HIL2Mu7_NHitQ10ForPPRef_v6, process.HLT_HIL3Mu7_NHitQ15ForPPRef_v6, process.HLT_HIL2Mu15ForPPRef_v6, process.HLT_HIL3Mu15ForPPRef_v6, process.HLT_HIL2Mu20ForPPRef_v6, process.HLT_HIL3Mu20ForPPRef_v6, process.HLT_FullTrack18ForPPRef_v11, process.HLT_FullTrack24ForPPRef_v11, process.HLT_FullTrack34ForPPRef_v11, process.HLT_FullTrack45ForPPRef_v11, process.HLT_FullTrack53ForPPRef_v11, process.HLT_HIL1CastorMediumJetForPPRef_v4, process.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v2, process.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v2, process.HLT_HIL1NotBptxORForPPRef_v2, process.HLT_HIHT80_Beamspot_ppRef5TeV_v3, process.HLT_HIZeroBias_part0_v6, process.HLT_HIZeroBias_part1_v6, process.HLT_HIZeroBias_part2_v6, process.HLT_HIZeroBias_part3_v6, process.HLT_HIZeroBias_part4_v6, process.HLT_HIZeroBias_part5_v6, process.HLT_HIZeroBias_part6_v6, process.HLT_HIZeroBias_part7_v6, process.HLT_HIZeroBias_part8_v6, process.HLT_HIZeroBias_part9_v6, process.HLT_HIZeroBias_part10_v6, process.HLT_HIZeroBias_part11_v6, process.AlCa_HIEcalPi0EBonly_v1, process.AlCa_HIEcalPi0EEonly_v1, process.AlCa_HIEcalEtaEBonly_v1, process.AlCa_HIEcalEtaEEonly_v1, process.HLT_DmesonPPTrackingGlobal_Dpt8ForPPRef_v11, process.HLT_DmesonPPTrackingGlobal_Dpt15ForPPRef_v11, process.HLT_DmesonPPTrackingGlobal_Dpt20ForPPRef_v11, process.HLT_DmesonPPTrackingGlobal_Dpt30ForPPRef_v11, process.HLT_DmesonPPTrackingGlobal_Dpt40ForPPRef_v11, process.HLT_DmesonPPTrackingGlobal_Dpt50ForPPRef_v11, process.HLT_DmesonPPTrackingGlobal_Dpt60ForPPRef_v11, process.HLT_AK4PFBJetBCSV60_Eta2p1ForPPRef_v16, process.HLT_AK4PFBJetBCSV80_Eta2p1ForPPRef_v16, process.HLT_AK4PFDJet60_Eta2p1ForPPRef_v16, process.HLT_AK4PFDJet80_Eta2p1ForPPRef_v16, process.HLT_AK4PFBJetBSSV60_Eta2p1ForPPRef_v16, process.HLT_AK4PFBJetBSSV80_Eta2p1ForPPRef_v16, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v5, process.AlCa_EcalPhiSym_v9, process.HLT_L1UnpairedBunchBptxMinus_v2, process.HLT_L1UnpairedBunchBptxPlus_v2, process.HLT_L1NotBptxOR_v3, process.HLT_L1BptxXOR_v1, process.HLT_L1TOTEM1_MinBias_v4, process.HLT_L1TOTEM2_ZeroBias_v4, process.HLT_L1MinimumBiasHF_OR_v3, process.HLT_L1MinimumBiasHF_OR_part0_v1, process.HLT_L1MinimumBiasHF_OR_part1_v1, process.HLT_L1MinimumBiasHF_OR_part2_v1, process.HLT_L1MinimumBiasHF_OR_part3_v1, process.HLT_L1MinimumBiasHF_OR_part4_v1, process.HLT_L1MinimumBiasHF_OR_part5_v1, process.HLT_L1MinimumBiasHF_OR_part6_v1, process.HLT_L1MinimumBiasHF_OR_part7_v1, process.HLT_L1MinimumBiasHF_OR_part8_v1, process.HLT_L1MinimumBiasHF_OR_part9_v1, process.HLT_L1MinimumBiasHF0OR_v4, process.HLT_L1MinimumBiasHF1OR_v4, process.HLT_L1MinimumBiasHF2OR_v4, process.HLT_L1MinimumBiasHF2ORNoBptxGating_v5, process.HLT_L1MinimumBiasHF1AND_v4, process.HLT_L1MinimumBiasHF2AND_v4, process.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v2, process.HLT_CDC_L2cosmic_10_er1p0_v1, process.HLT_CDC_L2cosmic_5p5_er1p0_v1, process.HLT_HcalNZS_v13, process.HLT_HcalPhiSym_v15, process.HLT_HcalIsolatedbunch_v5, process.HLT_IsoTrackHB_v4, process.HLT_IsoTrackHE_v4, process.HLT_ZeroBias_FirstCollisionAfterAbortGap_v5, process.HLT_ZeroBias_IsolatedBunches_v5, process.HLT_ZeroBias_FirstCollisionInTrain_v4, process.HLT_ZeroBias_LastCollisionInTrain_v3, process.HLT_ZeroBias_FirstBXAfterTrain_v3, process.AlCa_RPCMuonNormalisation_v13, process.AlCa_HIRPCMuonNormalisation_v1, process.AlCa_LumiPixelsCounts_Random_v2, process.AlCa_LumiPixelsCounts_ZeroBias_v2, process.MC_ReducedIterativeTracking_v12, process.MC_PFMET_v17, process.MC_AK4PFJets_v17, process.MC_PFBTagDeepCSV_v10, process.MC_PFHT_v16, process.MC_PFMHT_v16, process.MC_CaloMET_v8, process.MC_CaloMET_JetIdCleaned_v9, process.MC_AK4CaloJets_v9, process.MC_AK4CaloJetsFromPV_v8, process.MC_CaloBTagDeepCSV_v8, process.MC_CaloHT_v8, process.MC_CaloMHT_v8, process.MC_AK8PFJets_v17, process.MC_AK8TrimPFJets_v17, process.MC_AK8PFHT_v16, process.MC_AK8CaloHT_v8, process.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v13, process.MC_DoubleEle5_CaloIdL_MW_v15, process.MC_Ele5_WPTight_Gsf_v8, process.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v15, process.MC_IsoMu_v15, process.MC_IsoTkMu15_v12, process.MC_DoubleMu_TrkIsoVVL_DZ_v11, process.MC_DoubleGlbTrkMu_TrkIsoVVL_DZ_v12, process.MC_DoubleMuNoFiltersNoVtx_v7, process.MC_PFBTagDeepJet_v1, process.AlCa_EcalPi0EBonly_v13, process.AlCa_EcalPi0EEonly_v13, process.AlCa_EcalEtaEBonly_v13, process.AlCa_EcalEtaEEonly_v13, process.HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12, process.HLT_MediumChargedIsoPFTau200HighPtRelaxedIso_Trk50_eta2p1_v12, process.HLT_MediumChargedIsoPFTau220HighPtRelaxedIso_Trk50_eta2p1_v12, process.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v9, process.HLT_Rsq0p35_v15, process.HLT_Rsq0p40_v15, process.HLT_RsqMR300_Rsq0p09_MR200_v15, process.HLT_RsqMR320_Rsq0p09_MR200_v15, process.HLT_RsqMR300_Rsq0p09_MR200_4jet_v15, process.HLT_RsqMR320_Rsq0p09_MR200_4jet_v15, process.HLT_L1_DoubleJet30_Mass_Min400_Mu10_v1, process.HLT_IsoMu27_MET90_v3, process.HLT_VBF_DoubleLooseChargedIsoPFTau20_Trk1_eta2p1_v3, process.HLT_VBF_DoubleLooseChargedIsoPFTauHPS20_Trk1_eta2p1_v1, process.HLT_VBF_DoubleMediumChargedIsoPFTauHPS20_Trk1_eta2p1_v1, process.HLT_VBF_DoubleTightChargedIsoPFTauHPS20_Trk1_eta2p1_v1, process.HLT_Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50_v5, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v5, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ600DEta3_v5, process.HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9, process.HLT_PFMETNoMu100_PFMHTNoMu100_IDTight_PFHT60_v9, process.HLT_PFMETTypeOne100_PFMHT100_IDTight_PFHT60_v9, process.HLT_Mu18_Mu9_SameSign_v4, process.HLT_Mu18_Mu9_SameSign_DZ_v4, process.HLT_Mu18_Mu9_v4, process.HLT_Mu18_Mu9_DZ_v4, process.HLT_Mu20_Mu10_SameSign_v4, process.HLT_Mu20_Mu10_SameSign_DZ_v4, process.HLT_Mu20_Mu10_v4, process.HLT_Mu20_Mu10_DZ_v4, process.HLT_Mu23_Mu12_SameSign_v4, process.HLT_Mu23_Mu12_SameSign_DZ_v4, process.HLT_Mu23_Mu12_v4, process.HLT_Mu23_Mu12_DZ_v4, process.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v6, process.HLT_DoubleMu2_Jpsi_DoubleTkMu0_Phi_v5, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10, process.HLT_TripleMu_5_3_3_Mass3p8_DCA_v3, process.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_QuadPFJet98_83_71_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet103_88_75_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet105_88_76_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet111_90_80_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet98_83_71_15_v5, process.HLT_QuadPFJet103_88_75_15_v5, process.HLT_QuadPFJet105_88_76_15_v5, process.HLT_QuadPFJet111_90_80_15_v5, process.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p17_v2, process.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p1_v2, process.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_p02_v3, process.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np2_v2, process.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np4_v2, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_v2, process.HLT_Mu12_IP6_ToCSCS_v1, process.HLT_Mu12_IP6_part0_v2, process.HLT_Mu12_IP6_part1_v2, process.HLT_Mu12_IP6_part2_v2, process.HLT_Mu12_IP6_part3_v2, process.HLT_Mu12_IP6_part4_v2, process.HLT_Mu9_IP5_ToCSCS_v1, process.HLT_Mu9_IP5_part0_v2, process.HLT_Mu9_IP5_part1_v2, process.HLT_Mu9_IP5_part2_v2, process.HLT_Mu9_IP5_part3_v2, process.HLT_Mu9_IP5_part4_v2, process.HLT_Mu7_IP4_ToCSCS_v1, process.HLT_Mu7_IP4_part0_v2, process.HLT_Mu7_IP4_part1_v2, process.HLT_Mu7_IP4_part2_v2, process.HLT_Mu7_IP4_part3_v2, process.HLT_Mu7_IP4_part4_v2, process.HLT_Mu9_IP4_ToCSCS_v1, process.HLT_Mu9_IP4_part0_v2, process.HLT_Mu9_IP4_part1_v2, process.HLT_Mu9_IP4_part2_v2, process.HLT_Mu9_IP4_part3_v2, process.HLT_Mu9_IP4_part4_v2, process.HLT_Mu8_IP5_ToCSCS_v1, process.HLT_Mu8_IP5_part0_v2, process.HLT_Mu8_IP5_part1_v2, process.HLT_Mu8_IP5_part2_v2, process.HLT_Mu8_IP5_part3_v2, process.HLT_Mu8_IP5_part4_v2, process.HLT_Mu8_IP6_ToCSCS_v1, process.HLT_Mu8_IP6_part0_v2, process.HLT_Mu8_IP6_part1_v2, process.HLT_Mu8_IP6_part2_v2, process.HLT_Mu8_IP6_part3_v2, process.HLT_Mu8_IP6_part4_v2, process.HLT_Mu9_IP6_ToCSCS_v1, process.HLT_Mu9_IP6_part0_v3, process.HLT_Mu9_IP6_part1_v3, process.HLT_Mu9_IP6_part2_v3, process.HLT_Mu9_IP6_part3_v3, process.HLT_Mu9_IP6_part4_v3, process.HLT_Mu8_IP3_ToCSCS_v1, process.HLT_Mu8_IP3_part0_v3, process.HLT_Mu8_IP3_part1_v3, process.HLT_Mu8_IP3_part2_v3, process.HLT_Mu8_IP3_part3_v3, process.HLT_Mu8_IP3_part4_v3, process.HLT_Mu9_IP0_part0_v2, process.HLT_Mu9_IP3_part0_v2, process.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_TrkMu6NoFiltersNoVtx_v1, process.HLT_TrkMu16NoFiltersNoVtx_v1, process.HLT_DoubleTrkMu_16_6_NoFiltersNoVtx_v1, process.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1, process.HLT_DoubleMediumChargedIsoPFTauHPS40_Trk1_eta2p1_v1, process.HLT_DoubleTightChargedIsoPFTauHPS35_Trk1_eta2p1_v1, process.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, process.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v1, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v1, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v1, process.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v1, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v1, process.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepJet_4p5_v1, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepJet_4p5_v1, process.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepJet_2p94_v1, process.HLT_PFHT450_SixPFJet36_PFBTagDeepJet_1p59_v1, process.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet103_88_75_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet105_88_76_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet111_90_80_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet98_83_71_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v1, process.HLT_QuadPFJet70_50_40_30_v1, process.HLT_QuadPFJet70_50_40_30_PFBTagParticleNet_2BTagSum0p65_v1, process.HLT_QuadPFJet70_50_40_35_PFBTagParticleNet_2BTagSum0p65_v1, process.HLT_QuadPFJet70_50_45_35_PFBTagParticleNet_2BTagSum0p65_v1, process.HLT_AK8PFJet230_SoftDropMass40_v1, process.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, process.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, process.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, process.HLT_AK8PFJet400_SoftDropMass40_v1, process.HLT_AK8PFJet425_SoftDropMass40_v1, process.HLT_AK8PFJet450_SoftDropMass40_v1, process.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, process.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, process.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, process.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1, process.HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1, process.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v1, process.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1, process.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v1, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1, process.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1, process.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v1, process.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v1, process.HLT_L1Mu6HT240_v1, process.HLT_Mu6HT240_DisplacedDijet30_Inclusive0PtrkShortSig5_v1, process.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v1, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v1, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v1, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v1, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v1, process.HLT_HT430_DisplacedDijet30_Inclusive1PtrkShortSig5_v1, process.HLT_HT430_DisplacedDijet35_Inclusive1PtrkShortSig5_v1, process.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v1, process.HLT_CaloMET60_DTCluster50_v1, process.HLT_CaloMET60_DTClusterNoMB1S50_v1, process.HLT_L1MET_DTCluster50_v1, process.HLT_L1MET_DTClusterNoMB1S50_v1, process.HLT_CscCluster_Loose_v1, process.HLT_CscCluster_Medium_v1, process.HLT_CscCluster_Tight_v1, process.HLT_L1CSCShower_DTCluster50_v1, process.HLT_L1CSCShower_DTCluster75_v1, process.HLT_PFMET105_IsoTrk50_v1, process.HLT_PFMET105_PFJet100_looseRecoiling_v1, process.HLT_PFMET110_PFJet100_v1, process.HLT_PFMET110_PFJet100_looseRecoiling_v1, process.HLT_ExpressMuons_v1, process.HLT_OnlineMonitorGroup_v1, process.HLT_HIOnlineMonitorGroup_v1, process.DQM_EcalReconstruction_v1, process.DQM_HcalReconstruction_v1, process.DQM_PixelReconstruction_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part0_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part1_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part2_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part3_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part0_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part1_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part2_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part3_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part0_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part1_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part2_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part3_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part0_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part1_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part2_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part3_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part0_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part1_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part2_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part3_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part0_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part1_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part2_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part3_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part0_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part1_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part2_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part3_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part0_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part1_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part2_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part3_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part0_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part1_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part2_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part3_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part0_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part1_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part2_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part3_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part0_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part1_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part2_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part0_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part1_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part2_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part3_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part0_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part1_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part2_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part0_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part1_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part2_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part3_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part0_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part1_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part2_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part0_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part1_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part2_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part3_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part0_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part1_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part2_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part3_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part0_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part1_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part2_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part3_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part0_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part1_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part2_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part3_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part0_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part1_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part2_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part3_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part0_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part1_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part2_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part3_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part0_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part1_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part2_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part3_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part0_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part1_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part2_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part3_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part0_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part1_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part2_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part3_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part0_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part1_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part2_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part3_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part0_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part1_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part2_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part3_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part0_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part1_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part2_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part3_v1, process.HLT_L1TOTEM_3_v1, process.HLT_L1RomanPot_part0_v1, process.HLT_L1RomanPot_part1_v1, process.HLT_L1RomanPot_part2_v1, process.HLT_L1RomanPot_part3_v1, process.HLT_PPSMaxTracksPerArm1_v1, process.HLT_PPSMaxTracksPerRP4_v1, process.HLT_L1DoubleMu_v1, process.HLT_L1SingleMu_v1, process.HLT_L1DoubleJet_v1, process.HLT_L1DoubleJetANDTotem_v1, process.HLT_L1DoubleJet_gap_v1, process.HLT_L1HFveto_v1, process.HLT_HIPhysics_v1, process.HLT_HIPhysicsForZS_v1, process.HLT_HIRandom_v1, process.AlCa_EcalPhiSymForHI_v1, process.HLT_HIHcalNZS_v1, process.HLT_HIHcalPhiSym_v1, process.AlCa_RPCMuonNormalisationForHI_v1, process.AlCa_EcalPi0EBonlyForHI_v1, process.AlCa_EcalPi0EEonlyForHI_v1, process.AlCa_EcalEtaEBonlyForHI_v1, process.AlCa_EcalEtaEEonlyForHI_v1, process.HLT_HICentralityVeto_v1, process.HLT_HICentralityVeto_Beamspot_v1, process.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v1, process.HLT_HICentralityTag20100_v1, process.HLT_HICentralityTag30100_v1, process.HLT_HICentralityTag50100_v1, process.HLT_HIZeroBias_v1, process.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v1, process.HLT_HIMinimumBias_part0_v1, process.HLT_HIMinimumBias_part1_v1, process.HLT_HIMinimumBias_part2_v1, process.HLT_HIMinimumBias_part3_v1, process.HLT_HIMinimumBias_part4_v1, process.HLT_HIMinimumBias_part5_v1, process.HLT_HIMinimumBias_part6_v1, process.HLT_HIMinimumBias_part7_v1, process.HLT_HIMinimumBias_part8_v1, process.HLT_HIMinimumBias_part9_v1, process.HLT_HIMinimumBias_part10_v1, process.HLT_HIMinimumBias_part11_v1, process.HLT_HIMinimumBias_part12_v1, process.HLT_HIMinimumBias_part13_v1, process.HLT_HIMinimumBias_part14_v1, process.HLT_HIMinimumBias_part15_v1, process.HLT_HIMinimumBias_part16_v1, process.HLT_HIMinimumBias_part17_v1, process.HLT_HIMinimumBias_part18_v1, process.HLT_HIMinimumBias_part19_v1, process.HLT_HIMinimumBiasRF_part0_v1, process.HLT_HIMinimumBiasRF_part1_v1, process.HLT_HIMinimumBiasRF_part2_v1, process.HLT_HIMinimumBiasRF_part3_v1, process.HLT_HIMinimumBiasRF_part4_v1, process.HLT_HIMinimumBiasRF_part5_v1, process.HLT_HIMinimumBiasRF_part6_v1, process.HLT_HIMinimumBiasRF_part7_v1, process.HLT_HIMinimumBiasRF_part8_v1, process.HLT_HIMinimumBiasRF_part9_v1, process.HLT_HIMinimumBiasRF_part10_v1, process.HLT_HIMinimumBiasRF_part11_v1, process.HLT_HIMinimumBiasRF_part12_v1, process.HLT_HIMinimumBiasRF_part13_v1, process.HLT_HIMinimumBiasRF_part14_v1, process.HLT_HIMinimumBiasRF_part15_v1, process.HLT_HIMinimumBiasRF_part16_v1, process.HLT_HIMinimumBiasRF_part17_v1, process.HLT_HIMinimumBiasRF_part18_v1, process.HLT_HIMinimumBiasRF_part19_v1, process.HLT_HIMinimumBiasRF_part20_v1, process.HLT_HIMinimumBiasRF_part21_v1, process.HLT_HIMinimumBiasRF_part22_v1, process.HLT_HIMinimumBiasRF_part23_v1, process.HLT_HIPuAK4CaloJet40Eta5p1_v1, process.HLT_HIPuAK4CaloJet60Eta5p1_v1, process.HLT_HIPuAK4CaloJet80Eta5p1_v1, process.HLT_HIPuAK4CaloJet100Eta5p1_v1, process.HLT_HIPuAK4CaloJet120Eta5p1_v1, process.HLT_HIPuAK4CaloJet40Eta5p1_Centrality_30_100_v1, process.HLT_HIPuAK4CaloJet40Eta5p1_Centrality_50_100_v1, process.HLT_HIPuAK4CaloJet60Eta5p1_Centrality_30_100_v1, process.HLT_HIPuAK4CaloJet60Eta5p1_Centrality_50_100_v1, process.HLT_HIPuAK4CaloJet80Eta5p1_Centrality_30_100_v1, process.HLT_HIPuAK4CaloJet80Eta5p1_Centrality_50_100_v1, process.HLT_HIPuAK4CaloJet100Eta5p1_Centrality_30_100_v1, process.HLT_HIPuAK4CaloJet100Eta5p1_Centrality_50_100_v1, process.HLT_HIPuAK4CaloJet80_35_Eta1p1_v1, process.HLT_HIPuAK4CaloJet100_35_Eta1p1_v1, process.HLT_HIPuAK4CaloJet80_35_Eta0p7_v1, process.HLT_HIPuAK4CaloJet100_35_Eta0p7_v1, process.HLT_HIPuAK4CaloJet80_45_45_Eta2p1_v1, process.HLT_HIPuAK4CaloJet40Fwd_v1, process.HLT_HIPuAK4CaloJet60Fwd_v1, process.HLT_HIPuAK4CaloJet80Fwd_v1, process.HLT_HIPuAK4CaloJet100Fwd_v1, process.HLT_HIPuAK4CaloJet120Fwd_v1, process.HLT_HIIslandPhoton10_Eta2p4_v1, process.HLT_HIIslandPhoton10_Eta1p5_v1, process.HLT_HIIslandPhoton20_Eta2p4_v1, process.HLT_HIIslandPhoton20_Eta1p5_v1, process.HLT_HIIslandPhoton30_Eta2p4_v1, process.HLT_HIIslandPhoton30_Eta1p5_v1, process.HLT_HIIslandPhoton40_Eta2p4_v1, process.HLT_HIIslandPhoton40_Eta1p5_v1, process.HLT_HIIslandPhoton50_Eta2p4_v1, process.HLT_HIIslandPhoton50_Eta1p5_v1, process.HLT_HIIslandPhoton60_Eta2p4_v1, process.HLT_HIIslandPhoton60_Eta1p5_v1, process.HLT_HIGEDPhoton10_v1, process.HLT_HIGEDPhoton20_v1, process.HLT_HIGEDPhoton30_v1, process.HLT_HIGEDPhoton40_v1, process.HLT_HIGEDPhoton50_v1, process.HLT_HIGEDPhoton60_v1, process.HLT_HIGEDPhoton10_EB_v1, process.HLT_HIGEDPhoton20_EB_v1, process.HLT_HIGEDPhoton30_EB_v1, process.HLT_HIGEDPhoton40_EB_v1, process.HLT_HIGEDPhoton50_EB_v1, process.HLT_HIGEDPhoton60_EB_v1, process.HLT_HIGEDPhoton10_HECut_v1, process.HLT_HIGEDPhoton20_HECut_v1, process.HLT_HIGEDPhoton30_HECut_v1, process.HLT_HIGEDPhoton40_HECut_v1, process.HLT_HIGEDPhoton50_HECut_v1, process.HLT_HIGEDPhoton60_HECut_v1, process.HLT_HIGEDPhoton10_EB_HECut_v1, process.HLT_HIGEDPhoton20_EB_HECut_v1, process.HLT_HIGEDPhoton30_EB_HECut_v1, process.HLT_HIGEDPhoton40_EB_HECut_v1, process.HLT_HIGEDPhoton50_EB_HECut_v1, process.HLT_HIGEDPhoton60_EB_HECut_v1, process.HLT_HIEle10Gsf_v1, process.HLT_HIEle15Gsf_v1, process.HLT_HIEle20Gsf_v1, process.HLT_HIEle30Gsf_v1, process.HLT_HIEle40Gsf_v1, process.HLT_HIEle50Gsf_v1, process.HLT_HIEle15Ele10Gsf_v1, process.HLT_HIEle15Ele10GsfMass50_v1, process.HLT_HIDoubleEle10Gsf_v1, process.HLT_HIDoubleEle10GsfMass50_v1, process.HLT_HIDoubleEle15Gsf_v1, process.HLT_HIDoubleEle15GsfMass50_v1, process.HLT_HIL1Mu3Eta2p5_Ele10Gsf_v1, process.HLT_HIL1Mu3Eta2p5_Ele15Gsf_v1, process.HLT_HIL1Mu3Eta2p5_Ele20Gsf_v1, process.HLT_HIL1Mu5Eta2p5_Ele10Gsf_v1, process.HLT_HIL1Mu5Eta2p5_Ele15Gsf_v1, process.HLT_HIL1Mu5Eta2p5_Ele20Gsf_v1, process.HLT_HIL1Mu7Eta2p5_Ele10Gsf_v1, process.HLT_HIL1Mu7Eta2p5_Ele15Gsf_v1, process.HLT_HIL1Mu7Eta2p5_Ele20Gsf_v1, process.HLT_HIEle10Gsf_PuAK4CaloJet40Eta2p1_v1, process.HLT_HIEle10Gsf_PuAK4CaloJet60Eta2p1_v1, process.HLT_HIEle10Gsf_PuAK4CaloJet80Eta2p1_v1, process.HLT_HIEle10Gsf_PuAK4CaloJet100Eta2p1_v1, process.HLT_HIEle15Gsf_PuAK4CaloJet40Eta2p1_v1, process.HLT_HIEle15Gsf_PuAK4CaloJet60Eta2p1_v1, process.HLT_HIEle15Gsf_PuAK4CaloJet80Eta2p1_v1, process.HLT_HIEle15Gsf_PuAK4CaloJet100Eta2p1_v1, process.HLT_HIEle20Gsf_PuAK4CaloJet40Eta2p1_v1, process.HLT_HIEle20Gsf_PuAK4CaloJet60Eta2p1_v1, process.HLT_HIEle20Gsf_PuAK4CaloJet80Eta2p1_v1, process.HLT_HIEle20Gsf_PuAK4CaloJet100Eta2p1_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt15_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt20_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt30_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt40_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt50_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt60_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt15_NoIter10_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt20_NoIter10_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt30_NoIter10_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt40_NoIter10_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt50_NoIter10_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt60_NoIter10_v1, process.HLT_HIDsPPTrackingGlobal_Dpt20_v1, process.HLT_HIDsPPTrackingGlobal_Dpt30_v1, process.HLT_HIDsPPTrackingGlobal_Dpt40_v1, process.HLT_HIDsPPTrackingGlobal_Dpt50_v1, process.HLT_HIDsPPTrackingGlobal_Dpt60_v1, process.HLT_HIDsPPTrackingGlobal_Dpt20_NoIter10_v1, process.HLT_HIDsPPTrackingGlobal_Dpt30_NoIter10_v1, process.HLT_HIDsPPTrackingGlobal_Dpt40_NoIter10_v1, process.HLT_HIDsPPTrackingGlobal_Dpt50_NoIter10_v1, process.HLT_HIDsPPTrackingGlobal_Dpt60_NoIter10_v1, process.HLT_HILcPPTrackingGlobal_Dpt20_v1, process.HLT_HILcPPTrackingGlobal_Dpt30_v1, process.HLT_HILcPPTrackingGlobal_Dpt40_v1, process.HLT_HILcPPTrackingGlobal_Dpt50_v1, process.HLT_HILcPPTrackingGlobal_Dpt60_v1, process.HLT_HILcPPTrackingGlobal_Dpt20_NoIter10_v1, process.HLT_HILcPPTrackingGlobal_Dpt30_NoIter10_v1, process.HLT_HILcPPTrackingGlobal_Dpt40_NoIter10_v1, process.HLT_HILcPPTrackingGlobal_Dpt50_NoIter10_v1, process.HLT_HILcPPTrackingGlobal_Dpt60_NoIter10_v1, process.HLT_HIFullTracks2018_HighPt18_v1, process.HLT_HIFullTracks2018_HighPt24_v1, process.HLT_HIFullTracks2018_HighPt34_v1, process.HLT_HIFullTracks2018_HighPt45_v1, process.HLT_HIFullTracks2018_HighPt56_v1, process.HLT_HIFullTracks2018_HighPt60_v1, process.HLT_HIFullTracks2018_HighPt18_NoIter10_v1, process.HLT_HIFullTracks2018_HighPt24_NoIter10_v1, process.HLT_HIFullTracks2018_HighPt34_NoIter10_v1, process.HLT_HIFullTracks2018_HighPt45_NoIter10_v1, process.HLT_HIFullTracks2018_HighPt56_NoIter10_v1, process.HLT_HIFullTracks2018_HighPt60_NoIter10_v1, process.HLT_HIL1DoubleMuOpen_v1, process.HLT_HIL1DoubleMuOpen_Centrality_30_100_v1, process.HLT_HIL1DoubleMuOpen_Centrality_40_100_v1, process.HLT_HIL1DoubleMuOpen_Centrality_50_100_v1, process.HLT_HIL1DoubleMuOpen_er1p6_v1, process.HLT_HIL1DoubleMuOpen_OS_er1p6_v1, process.HLT_HIL1DoubleMuOpen_OS_Centrality_30_100_v1, process.HLT_HIL1DoubleMuOpen_OS_Centrality_40_100_v1, process.HLT_HIL1DoubleMu0_v1, process.HLT_HIL1DoubleMu10_v1, process.HLT_HIL2_L1DoubleMu10_v1, process.HLT_HIL3_L1DoubleMu10_v1, process.HLT_HIL2DoubleMuOpen_v1, process.HLT_HIL3DoubleMuOpen_v1, process.HLT_HIL3DoubleMuOpen_M60120_v1, process.HLT_HIL3DoubleMuOpen_JpsiPsi_v1, process.HLT_HIL3DoubleMuOpen_Upsi_v1, process.HLT_HIL3Mu0_L2Mu0_v1, process.HLT_HIL3Mu2p5NHitQ10_L2Mu2_v1, process.HLT_HIL1MuOpen_Centrality_70_100_v1, process.HLT_HIL1MuOpen_Centrality_80_100_v1, process.HLT_HIL2Mu3_NHitQ15_v1, process.HLT_HIL2Mu5_NHitQ15_v1, process.HLT_HIL2Mu7_NHitQ15_v1, process.HLT_HIL2Mu3_NHitQ15_tagging_v1, process.HLT_HIL2Mu5_NHitQ15_tagging_v1, process.HLT_HIL2Mu7_NHitQ15_tagging_v1, process.HLT_HIL3Mu2p5_L1DoubleMu0_v1, process.HLT_HIL3Mu3_L1DoubleMuOpen_OS_v1, process.HLT_HIL3Mu3NHitQ10_L1DoubleMuOpen_v1, process.HLT_HIL3Mu3_L1TripleMuOpen_v1, process.HLT_HIL3Mu12_v1, process.HLT_HIL3Mu15_v1, process.HLT_HIL3Mu20_v1, process.HLT_HIL3Mu3_NHitQ10_v1, process.HLT_HIL3Mu5_NHitQ10_v1, process.HLT_HIL3Mu7_NHitQ10_v1, process.HLT_HIL3Mu3_NHitQ10_tagging_v1, process.HLT_HIL3Mu5_NHitQ10_tagging_v1, process.HLT_HIL3Mu7_NHitQ10_tagging_v1, process.HLT_HIL3Mu0NHitQ10_L2Mu0_MAXdR3p5_M1to5_v1, process.HLT_HIL3Mu2p5NHitQ10_L2Mu2_M7toinf_v1, process.HLT_HIL1_ETT8_ETTAsym50_MinimumBiasHF1_OR_BptxAND_v1, process.HLT_HIL1_ETT10_ETTAsym50_MinimumBiasHF1_OR_BptxAND_v1, process.HLT_HIL1_ETT60_ETTAsym65_MinimumBiasHF2_OR_PixelTracks10_v1, process.HLT_HIL1_ETT65_ETTAsym80_MinimumBiasHF2_OR_PixelTracks10_v1, process.HLT_HIFullTracks_Multiplicity020_HF1AND_v1, process.HLT_HIFullTracks_Multiplicity2040_HF1AND_v1, process.HLT_HIFullTracks_Multiplicity4060_v1, process.HLT_HIFullTracks_Multiplicity6080_v1, process.HLT_HIFullTracks_Multiplicity80100_v1, process.HLT_HIFullTracks_Multiplicity020_v1, process.HLT_HIFullTracks_Multiplicity020_HF1OR_v1, process.HLT_HIFullTracks_Multiplicity020_HF2OR_v1, process.HLT_HIFullTracks_Multiplicity2040_v1, process.HLT_HIFullTracks_Multiplicity2040_HF1OR_v1, process.HLT_HIFullTracks_Multiplicity2040_HF2OR_v1, process.HLT_HIFullTracks_Multiplicity335_HF1OR_v1, process.HLT_HIUPC_Mu8_Mu13_v1, process.HLT_HIUPC_Mu8_Mu13_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v1, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2OR_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2OR_v1, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v1, process.HLT_HIUPC_SingleMu0_NotMBHF2OR_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMu0_NotMBHF2AND_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMu0_NotMBHF2AND_v1, process.HLT_HIUPC_DoubleMu0_NotMBHF2OR_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleMu0_NotMBHF2AND_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleMu0_NotMBHF2AND_v1, process.HLT_HIUPC_DoubleMu0_NotMBHF2OR_v1, process.HLT_HIUPC_SingleMu0_NotMBHF2OR_v1, process.HLT_HIUPC_SingleMu3_NotMBHF2OR_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMu3_NotMBHF2OR_v1, process.HLT_HIUPC_SingleMu0_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleMu0_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMu3_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG2_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_v1, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v1, process.HLT_HIUPC_NotMBHF2OR_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_NotMBHF2AND_SinglePixelTrack_v1, process.HLT_HIUPC_NotMBHF2AND_v1, process.HLT_HIUPC_NotMBHF2OR_BptxAND_SinglePixelTrack_v1, process.HLT_HIUPC_ZeroBias_SinglePixelTrack_v1, process.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG2_NotMBHF2OR_SinglePixelTrack_v1, process.HLT_HIUPC_DoubleEG2_NotMBHF2OR_v1, process.HLT_HIUPC_DoubleEG5_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_v1, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v1, process.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG5_NotMBHF2OR_SinglePixelTrack_v1, process.HLT_HIUPC_DoubleEG5_NotMBHF2OR_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_v1, process.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_v1, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_v1, process.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_v1, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2OR_SinglePixelTrack_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2OR_v1, process.HLT_HIUPC_ETT5_Asym50_NotMBHF2OR_v1, process.HLT_HIUPC_ETT5_Asym50_NotMBHF2OR_SinglePixelTrack_v1, process.HLT_HIUPC_ZeroBias_MaxPixelCluster_v1, process.HLT_HIUPC_SingleEG3_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_SingleEG5_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG2_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG5_BptxAND_MaxPixelTrack_v1, process.HLT_HICsAK4PFJet60Eta1p5_v1, process.HLT_HICsAK4PFJet80Eta1p5_v1, process.HLT_HICsAK4PFJet100Eta1p5_v1, process.HLT_HICsAK4PFJet100Eta1p5_Beamspot_v1, process.HLT_HICsAK4PFJet120Eta1p5_v1, process.HLT_HICsAK4PFJet60Eta1p5_Centrality_30_100_v1, process.HLT_HICsAK4PFJet60Eta1p5_Centrality_50_100_v1, process.HLT_HICsAK4PFJet80Eta1p5_Centrality_30_100_v1, process.HLT_HICsAK4PFJet80Eta1p5_Centrality_50_100_v1, process.HLT_HICsAK4PFJet100Eta1p5_Centrality_30_100_v1, process.HLT_HICsAK4PFJet100Eta1p5_Centrality_50_100_v1, process.HLT_HIL3Mu3_EG10HECut_v1, process.HLT_HIL3Mu3_EG15HECut_v1, process.HLT_HIL3Mu3_EG20HECut_v1, process.HLT_HIL3Mu3_EG30HECut_v1, process.HLT_HIL3Mu5_EG10HECut_v1, process.HLT_HIL3Mu5_EG15HECut_v1, process.HLT_HIL3Mu5_EG20HECut_v1, process.HLT_HIL3Mu5_EG30HECut_v1, process.HLT_HIL3Mu7_EG10HECut_v1, process.HLT_HIL3Mu7_EG15HECut_v1, process.HLT_HIL3Mu7_EG20HECut_v1, process.HLT_HIL3Mu7_EG30HECut_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet40Eta2p1_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet60Eta2p1_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet80Eta2p1_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet100Eta2p1_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet40Eta2p1_FilterDr_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet60Eta2p1_FilterDr_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet80Eta2p1_FilterDr_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet100Eta2p1_FilterDr_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet40Eta2p1_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet60Eta2p1_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet80Eta2p1_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet100Eta2p1_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet40Eta2p1_FilterDr_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet60Eta2p1_FilterDr_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet80Eta2p1_FilterDr_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet100Eta2p1_FilterDr_v1, process.HLT_HICastor_MediumJet_NotMBHF2AND_v1, process.HLT_HICastor_MediumJet_NotMBHF2OR_v1, process.HLT_HICastor_MediumJet_MBHF1OR_BptxAND_v1, process.HLT_HICastor_MediumJet_SingleMu0_MBHF1OR_BptxAND_v1, process.HLT_HICastor_MediumJet_SingleEG5_MBHF1OR_BptxAND_v1, process.HLT_HICastor_MediumJet_BptxAND_v1, process.HLT_HICastor_MediumJet_v1, process.HLT_HICastor_HighJet_v1, process.HLT_HICastor_HighJet_BptxAND_v1, process.HLT_HICastor_HighJet_MBHF1OR_BptxAND_v1, process.HLT_HICastor_HighJet_NotMBHF2OR_v1, process.HLT_HICastor_HighJet_NotMBHF2AND_v1, process.HLT_HICastor_HighJet_MBHF1AND_BptxAND_v1, process.HLT_HICastor_HighJet_MBHF2AND_BptxAND_v1, process.HLT_HICastor_Muon_v1, process.HLT_HICastor_Muon_BptxAND_v1, process.HLT_HIIslandPhoton10_Eta2p4_Cent30_100_v1, process.HLT_HIIslandPhoton20_Eta2p4_Cent30_100_v1, process.HLT_HIIslandPhoton30_Eta2p4_Cent30_100_v1, process.HLT_HIIslandPhoton40_Eta2p4_Cent30_100_v1, process.HLT_HIIslandPhoton10_Eta2p4_Cent50_100_v1, process.HLT_HIIslandPhoton20_Eta2p4_Cent50_100_v1, process.HLT_HIIslandPhoton30_Eta2p4_Cent50_100_v1, process.HLT_HIIslandPhoton40_Eta2p4_Cent50_100_v1, process.HLT_HIGEDPhoton10_Cent30_100_v1, process.HLT_HIGEDPhoton20_Cent30_100_v1, process.HLT_HIGEDPhoton30_Cent30_100_v1, process.HLT_HIGEDPhoton40_Cent30_100_v1, process.HLT_HIGEDPhoton10_Cent50_100_v1, process.HLT_HIGEDPhoton20_Cent50_100_v1, process.HLT_HIGEDPhoton30_Cent50_100_v1, process.HLT_HIGEDPhoton40_Cent50_100_v1, process.HLT_HIPuAK4CaloJet60Eta2p4_DeepCSV0p4_v1, process.HLT_HIPuAK4CaloJet80Eta2p4_DeepCSV0p4_v1, process.HLT_HIPuAK4CaloJet100Eta2p4_DeepCSV0p4_v1, process.HLT_HIPuAK4CaloJet60Eta2p4_CSVv2WP0p75_v1, process.HLT_HIPuAK4CaloJet80Eta2p4_CSVv2WP0p75_v1, process.HLT_HIPuAK4CaloJet100Eta2p4_CSVv2WP0p75_v1, process.HLT_HIL1NotBptxOR_v1, process.HLT_HIL1UnpairedBunchBptxMinus_v1, process.HLT_HIL1UnpairedBunchBptxPlus_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part0_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part1_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part2_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part3_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part4_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part5_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part6_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part7_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part8_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part9_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part10_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part11_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part12_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part13_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part14_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part15_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part16_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part17_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part18_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part19_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part0_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part1_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part2_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part3_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part4_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part5_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part6_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part7_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part8_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part9_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part10_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part11_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part12_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part13_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part14_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part15_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part16_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part17_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part18_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part19_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part20_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part21_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part22_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part23_v1, process.HLT_HIL1_ZDC_AND_OR_MinimumBiasHF1_AND_BptxAND_v1, process.HLT_HIL1_ZDC_AND_OR_MinimumBiasHF2_AND_BptxAND_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part0_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part1_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part2_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part3_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part4_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part5_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part6_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part7_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part8_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part9_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part10_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part11_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part12_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part13_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part14_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part15_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part16_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part17_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part18_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part19_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part0_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part1_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part2_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part3_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part4_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part5_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part6_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part7_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part8_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part9_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part10_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part11_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part12_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part13_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part14_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part15_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part16_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part17_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part18_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part19_v1, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.RatesMonitoring, process.DQMHistograms, process.PhysicsCommissioningOutput, process.PhysicsEGammaOutput, process.PhysicsEndOfFillOutput, process.PhysicsHadronsTausOutput, process.PhysicsMuonsOutput, process.PhysicsTracksOutput, process.PhysicsForwardOutput, process.ParkingBPH1Output, process.ParkingBPH2Output, process.ParkingBPH3Output, process.ParkingBPH4Output, process.ParkingBPH5Output, process.DQMOutput, process.DQMEventDisplayOutput, process.DQMCalibrationOutput, process.DQMOnlineBeamspotOutput, process.DQMGPUvsCPUOutput, process.HLTMonitorOutput, process.RPCMONOutput, process.CalibrationOutput, process.EcalCalibrationOutput, process.ALCAPHISYMOutput, process.ALCALumiPixelCountsExpressOutput, process.ALCALumiPixelCountsPromptOutput, process.ALCAP0Output, process.ALCAPPSOutput, process.ExpressOutput, process.ExpressCosmicsOutput, process.ExpressAlignmentOutput, process.NanoDSTOutput, process.ScoutingPFOutput, process.PhysicsScoutingPFMonitorOutput, process.PhysicsHLTPhysics0Output, process.PhysicsHLTPhysics1Output, process.PhysicsHLTPhysics2Output, process.PhysicsHLTPhysics3Output, process.PhysicsZeroBias0Output, process.PhysicsZeroBias1Output, process.PhysicsZeroBias2Output, process.PhysicsZeroBias3Output, process.PhysicsHIZeroBias1Output, process.PhysicsHIZeroBias2Output, process.PhysicsHIZeroBias3Output, process.PhysicsHIZeroBias4Output, process.PhysicsHIZeroBias5Output, process.PhysicsHIZeroBias6Output, process.PhysicsTOTEM1part0Output, process.PhysicsTOTEM1part1Output, process.PhysicsTOTEM1part2Output, process.PhysicsTOTEM1part3Output, process.PhysicsTOTEM2part0Output, process.PhysicsTOTEM2part1Output, process.PhysicsTOTEM2part2Output, process.PhysicsTOTEM2part3Output, process.PhysicsTOTEM3Output, process.PhysicsTOTEM4part0Output, process.PhysicsTOTEM4part1Output, process.PhysicsTOTEM4part2Output, process.PhysicsTOTEM4part3Output, process.PhysicsRandomTOTEM1Output, process.PhysicsRandomTOTEM2Output, process.PhysicsRandomTOTEM3Output, process.PhysicsRandomTOTEM4Output, process.PhysicsZeroBiasTOTEM1Output, process.PhysicsZeroBiasTOTEM2Output, process.PhysicsZeroBiasTOTEM3Output, process.PhysicsZeroBiasTOTEM4Output, process.PhysicsMinimumBias0Output, process.PhysicsMinimumBias1Output, process.PhysicsMinimumBias2Output, process.PhysicsMinimumBias3Output, process.PhysicsMinimumBias4Output, process.PhysicsMinimumBias5Output, process.PhysicsMinimumBias6Output, process.PhysicsMinimumBias7Output, process.PhysicsMinimumBias8Output, process.PhysicsMinimumBias9Output, process.PhysicsHICommissioningOutput, process.PhysicsHIDoubleMuonOutput, process.PhysicsHISingleMuonOutput, process.PhysicsHIHardProbesOutput, process.PhysicsHIMinimumBiasReducedFormat0Output, process.PhysicsHIMinimumBiasReducedFormat1Output, process.PhysicsHIMinimumBiasReducedFormat2Output, process.PhysicsHIMinimumBiasReducedFormat3Output, process.PhysicsHIMinimumBiasReducedFormat4Output, process.PhysicsHIMinimumBiasReducedFormat5Output, process.PhysicsHIMinimumBiasReducedFormat6Output, process.PhysicsHIMinimumBiasReducedFormat7Output, process.PhysicsHIMinimumBiasReducedFormat8Output, process.PhysicsHIMinimumBiasReducedFormat9Output, process.PhysicsHIMinimumBiasReducedFormat10Output, process.PhysicsHIMinimumBiasReducedFormat11Output, process.PhysicsHITrackerNZSOutput, process.PhysicsHIForwardOutput, process.HIHLTMonitorOutput, process.HIDQMOutput, process.HIDQMEventDisplayOutput, process.HIDQMOnlineBeamspotOutput, process.HIExpressOutput, process.HIExpressAlignmentOutput, process.PhysicsHIHardProbesLowerOutput, process.PhysicsHIHardProbesPeripheralOutput, process.PhysicsHIHeavyFlavorOutput, process.PhysicsHIHighMultiplicityOutput, process.PhysicsHILowMultiplicityOutput, process.PhysicsHILowMultiplicityReducedFormatOutput, process.PhysicsHIMinimumBias0Output, process.PhysicsHIMinimumBias1Output, process.PhysicsHIMinimumBias2Output, process.PhysicsHIMinimumBias3Output, process.PhysicsHIMinimumBias4Output, process.PhysicsHIMinimumBias5Output, process.PhysicsHIMinimumBias6Output, process.PhysicsHIMinimumBias7Output, process.PhysicsHIMinimumBias8Output, process.PhysicsHIMinimumBias9Output, process.PhysicsHIMinimumBias10Output, process.PhysicsHIMinimumBias11Output, process.PhysicsHIMinimumBias12Output, process.PhysicsHIMinimumBias13Output, process.PhysicsHIMinimumBias14Output, process.PhysicsHIMinimumBias15Output, process.PhysicsHIMinimumBias16Output, process.PhysicsHIMinimumBias17Output, process.PhysicsHIMinimumBias18Output, process.PhysicsHIMinimumBias19Output, process.Dataset_AlCaLumiPixelCountsExpress, process.Dataset_AlCaLumiPixelCountsPrompt, process.Dataset_AlCaP0, process.Dataset_AlCaPPS, process.Dataset_AlCaPhiSym, process.Dataset_BTagMu, process.Dataset_Commissioning, process.Dataset_Cosmics, process.Dataset_DQMGPUvsCPU, process.Dataset_DQMOnlineBeamspot, process.Dataset_DisplacedJet, process.Dataset_DoubleMuon, process.Dataset_DoubleMuonLowMass, process.Dataset_EGamma, process.Dataset_EcalLaser, process.Dataset_EmptyBX, process.Dataset_EphemeralHLTPhysics0, process.Dataset_EphemeralHLTPhysics1, process.Dataset_EphemeralHLTPhysics2, process.Dataset_EphemeralHLTPhysics3, process.Dataset_EphemeralHLTPhysics4, process.Dataset_EphemeralHLTPhysics5, process.Dataset_EphemeralHLTPhysics6, process.Dataset_EphemeralHLTPhysics7, process.Dataset_EphemeralZeroBias0, process.Dataset_EphemeralZeroBias1, process.Dataset_EphemeralZeroBias2, process.Dataset_EphemeralZeroBias3, process.Dataset_EphemeralZeroBias4, process.Dataset_EphemeralZeroBias5, process.Dataset_EphemeralZeroBias6, process.Dataset_EphemeralZeroBias7, process.Dataset_EventDisplay, process.Dataset_ExpressAlignment, process.Dataset_ExpressCosmics, process.Dataset_ExpressPhysics, process.Dataset_FSQJet1, process.Dataset_FSQJet2, process.Dataset_FullTrack, process.Dataset_HFvetoTOTEM, process.Dataset_HICastor, process.Dataset_HIDQMOnlineBeamspot, process.Dataset_HIDoubleMuon, process.Dataset_HIDoubleMuonPsiPeri, process.Dataset_HIEmptyBX, process.Dataset_HIEventDisplay, process.Dataset_HIExpressAlignment, process.Dataset_HIExpressPhysics, process.Dataset_HIForward, process.Dataset_HIHLTMonitor, process.Dataset_HIHLTPhysics, process.Dataset_HIHardProbes, process.Dataset_HIHardProbesLower, process.Dataset_HIHardProbesPeripheral, process.Dataset_HIHcalNZS, process.Dataset_HIHeavyFlavor, process.Dataset_HIHighMultiplicityETTAsym, process.Dataset_HILowMultiplicity, process.Dataset_HILowMultiplicityReducedFormat, process.Dataset_HIMinimumBias0, process.Dataset_HIMinimumBias1, process.Dataset_HIMinimumBias10, process.Dataset_HIMinimumBias11, process.Dataset_HIMinimumBias12, process.Dataset_HIMinimumBias13, process.Dataset_HIMinimumBias14, process.Dataset_HIMinimumBias15, process.Dataset_HIMinimumBias16, process.Dataset_HIMinimumBias17, process.Dataset_HIMinimumBias18, process.Dataset_HIMinimumBias19, process.Dataset_HIMinimumBias2, process.Dataset_HIMinimumBias3, process.Dataset_HIMinimumBias4, process.Dataset_HIMinimumBias5, process.Dataset_HIMinimumBias6, process.Dataset_HIMinimumBias7, process.Dataset_HIMinimumBias8, process.Dataset_HIMinimumBias9, process.Dataset_HIMinimumBiasReducedFormat0, process.Dataset_HIMinimumBiasReducedFormat1, process.Dataset_HIMinimumBiasReducedFormat10, process.Dataset_HIMinimumBiasReducedFormat11, process.Dataset_HIMinimumBiasReducedFormat2, process.Dataset_HIMinimumBiasReducedFormat3, process.Dataset_HIMinimumBiasReducedFormat4, process.Dataset_HIMinimumBiasReducedFormat5, process.Dataset_HIMinimumBiasReducedFormat6, process.Dataset_HIMinimumBiasReducedFormat7, process.Dataset_HIMinimumBiasReducedFormat8, process.Dataset_HIMinimumBiasReducedFormat9, process.Dataset_HINCaloJets, process.Dataset_HINPFJets, process.Dataset_HIOnlineMonitor, process.Dataset_HISingleMuon, process.Dataset_HITrackerNZS, process.Dataset_HIZeroBias1, process.Dataset_HIZeroBias10, process.Dataset_HIZeroBias11, process.Dataset_HIZeroBias12, process.Dataset_HIZeroBias2, process.Dataset_HIZeroBias3, process.Dataset_HIZeroBias4, process.Dataset_HIZeroBias5, process.Dataset_HIZeroBias6, process.Dataset_HIZeroBias7, process.Dataset_HIZeroBias8, process.Dataset_HIZeroBias9, process.Dataset_HLTMonitor, process.Dataset_HLTPhysics, process.Dataset_HcalNZS, process.Dataset_HeavyFlavor, process.Dataset_HighMultiplicity, process.Dataset_HighPtJet80, process.Dataset_HighPtLowerJets, process.Dataset_HighPtLowerPhotons, process.Dataset_HighPtPhoton30AndZ, process.Dataset_IsolatedBunch, process.Dataset_JetHT, process.Dataset_JetsTOTEM, process.Dataset_L1Accept, process.Dataset_L1MinimumBias, process.Dataset_MET, process.Dataset_MinBiasTOTEM, process.Dataset_MinimumBias, process.Dataset_MinimumBias0, process.Dataset_MinimumBias1, process.Dataset_MinimumBias2, process.Dataset_MinimumBias3, process.Dataset_MinimumBias4, process.Dataset_MinimumBias5, process.Dataset_MinimumBias6, process.Dataset_MinimumBias7, process.Dataset_MinimumBias8, process.Dataset_MinimumBias9, process.Dataset_MonteCarlo, process.Dataset_MuPlusX, process.Dataset_MuonEG, process.Dataset_MuonEGammaTOTEM, process.Dataset_NoBPTX, process.Dataset_OnlineMonitor, process.Dataset_ParkingBPH1, process.Dataset_ParkingBPH2, process.Dataset_ParkingBPH3, process.Dataset_ParkingBPH4, process.Dataset_ParkingBPH5, process.Dataset_ParkingBPHPromptCSCS, process.Dataset_RPCMonitor, process.Dataset_RandomTOTEM1, process.Dataset_RandomTOTEM2, process.Dataset_RandomTOTEM3, process.Dataset_RandomTOTEM4, process.Dataset_ScoutingPFMonitor, process.Dataset_ScoutingPFRun3, process.Dataset_SingleMuHighPt, process.Dataset_SingleMuLowPt, process.Dataset_SingleMuon, process.Dataset_TOTEM1part0, process.Dataset_TOTEM1part1, process.Dataset_TOTEM1part2, process.Dataset_TOTEM1part3, process.Dataset_TOTEM2part0, process.Dataset_TOTEM2part1, process.Dataset_TOTEM2part2, process.Dataset_TOTEM2part3, process.Dataset_TOTEM3, process.Dataset_TOTEM4part0, process.Dataset_TOTEM4part1, process.Dataset_TOTEM4part2, process.Dataset_TOTEM4part3, process.Dataset_Tau, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.Dataset_ZeroBias, process.Dataset_ZeroBiasTOTEM, process.Dataset_ZeroBiasTOTEM1, process.Dataset_ZeroBiasTOTEM2, process.Dataset_ZeroBiasTOTEM3, process.Dataset_ZeroBiasTOTEM4, process.Dataset_ppForward, )) +process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.HLT_AK8PFJet360_TrimMass30_v18, process.HLT_AK8PFJet380_TrimMass30_v11, process.HLT_AK8PFJet400_TrimMass30_v12, process.HLT_AK8PFJet420_TrimMass30_v11, process.HLT_AK8PFHT750_TrimMass50_v12, process.HLT_AK8PFHT800_TrimMass50_v12, process.HLT_AK8PFHT850_TrimMass50_v11, process.HLT_AK8PFHT900_TrimMass50_v11, process.HLT_CaloJet10_NoJetID_v3, process.HLT_CaloJet20_NoJetID_v3, process.HLT_CaloJet50_NoJetID_v3, process.HLT_CaloJet500_NoJetID_v12, process.HLT_CaloJet550_NoJetID_v7, process.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v4, process.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v4, process.HLT_Trimuon5_3p5_2_Upsilon_Muon_v5, process.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v3, process.HLT_DoubleEle25_CaloIdL_MW_v4, process.HLT_DoubleEle27_CaloIdL_MW_v4, process.HLT_DoubleEle33_CaloIdL_MW_v17, process.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v7, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v20, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v20, process.HLT_Ele27_Ele37_CaloIdL_MW_v4, process.HLT_Mu27_Ele37_CaloIdL_MW_v5, process.HLT_Mu37_Ele27_CaloIdL_MW_v5, process.HLT_Mu37_TkMu27_v5, process.HLT_DoubleMu4_3_Bs_v15, process.HLT_DoubleMu4_3_Jpsi_v15, process.HLT_DoubleMu4_3_LowMass_v1, process.HLT_DoubleMu4_LowMass_Displaced_v1, process.HLT_Mu0_L1DoubleMu_v1, process.HLT_Mu4_L1DoubleMu_v1, process.HLT_DoubleMu3_Trk_Tau3mu_v12, process.HLT_DoubleMu3_TkMu_DsTau3Mu_v4, process.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8, process.HLT_DoubleMu4_MuMuTrk_Displaced_v15, process.HLT_Mu3_PFJet40_v16, process.HLT_Mu7p5_L2Mu2_Jpsi_v10, process.HLT_Mu7p5_L2Mu2_Upsilon_v10, process.HLT_Mu7p5_Track2_Jpsi_v11, process.HLT_Mu7p5_Track3p5_Jpsi_v11, process.HLT_Mu7p5_Track7_Jpsi_v11, process.HLT_Mu7p5_Track2_Upsilon_v11, process.HLT_Mu7p5_Track3p5_Upsilon_v11, process.HLT_Mu7p5_Track7_Upsilon_v11, process.HLT_Mu3_L1SingleMu5orSingleMu7_v1, process.HLT_DoublePhoton33_CaloIdL_v6, process.HLT_DoublePhoton70_v6, process.HLT_DoublePhoton85_v14, process.HLT_Ele20_WPTight_Gsf_v6, process.HLT_Ele15_WPLoose_Gsf_v3, process.HLT_Ele17_WPLoose_Gsf_v3, process.HLT_Ele20_WPLoose_Gsf_v6, process.HLT_Ele20_eta2p1_WPLoose_Gsf_v6, process.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4, process.HLT_Ele27_WPTight_Gsf_v16, process.HLT_Ele28_WPTight_Gsf_v1, process.HLT_Ele30_WPTight_Gsf_v1, process.HLT_Ele32_WPTight_Gsf_v15, process.HLT_Ele35_WPTight_Gsf_v9, process.HLT_Ele35_WPTight_Gsf_L1EGMT_v5, process.HLT_Ele38_WPTight_Gsf_v9, process.HLT_Ele40_WPTight_Gsf_v9, process.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v9, process.HLT_Ele24_eta2p1_WPTight_Gsf_TightChargedIsoPFTauHPS30_eta2p1_CrossL1_v1, process.HLT_HT450_Beamspot_v11, process.HLT_HT300_Beamspot_v11, process.HLT_HT60_Beamspot_v1, process.HLT_ZeroBias_Beamspot_v4, process.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_CrossL1_v1, process.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_TightID_CrossL1_v1, process.HLT_IsoMu27_LooseChargedIsoPFTau20_Trk1_eta2p1_SingleL1_v5, process.HLT_IsoMu27_LooseChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, process.HLT_IsoMu27_MediumChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, process.HLT_IsoMu27_TightChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, process.HLT_IsoMu20_v15, process.HLT_IsoMu24_v13, process.HLT_IsoMu24_eta2p1_v15, process.HLT_IsoMu27_v16, process.HLT_IsoMu30_v4, process.HLT_UncorrectedJetE30_NoBPTX_v6, process.HLT_UncorrectedJetE30_NoBPTX3BX_v6, process.HLT_UncorrectedJetE60_NoBPTX3BX_v6, process.HLT_UncorrectedJetE70_NoBPTX3BX_v6, process.HLT_L1SingleMu18_v3, process.HLT_L1SingleMu25_v2, process.HLT_L1SingleMuOpen_v2, process.HLT_L1SingleMuOpen_DT_v2, process.HLT_L1SingleMuCosmics_v1, process.HLT_L1SingleMu3_v1, process.HLT_L1SingleMu5_v1, process.HLT_L1SingleMu7_v1, process.HLT_L1DoubleMu0_v1, process.HLT_L1SingleEG10_v2, process.HLT_L1SingleEG15_v2, process.HLT_L1SingleEG18_v1, process.HLT_L1SingleJet16_v1, process.HLT_L1SingleJet20_v1, process.HLT_L1SingleJet35_v1, process.HLT_L1SingleJet8erHE_v1, process.HLT_L1SingleJet10erHE_v1, process.HLT_L1SingleJet12erHE_v1, process.HLT_L1SingleJet200_v1, process.HLT_L1DoubleJetC50_v2, process.HLT_L1EXT_HCAL_LaserMon1_v1, process.HLT_L1EXT_HCAL_LaserMon4_v1, process.HLT_DQMPixels_SingleMuOpen_v1, process.HLT_L2DoubleMu23_NoVertex_v2, process.HLT_L2Mu10_v7, process.HLT_L2Mu10_NoVertex_NoBPTX3BX_v5, process.HLT_L2Mu10_NoVertex_NoBPTX_v6, process.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4, process.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5, process.HLT_L2Mu50_v2, process.HLT_L2Mu23NoVtx_2Cha_v1, process.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v1, process.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2, process.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2, process.HLT_DoubleL2Mu50_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v2, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v14, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v3, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v3, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v3, process.HLT_Mu25_TkMu0_Onia_v8, process.HLT_Mu30_TkMu0_Psi_v1, process.HLT_Mu30_TkMu0_Upsilon_v1, process.HLT_Mu20_TkMu0_Phi_v8, process.HLT_Mu25_TkMu0_Phi_v8, process.HLT_Mu12_v3, process.HLT_Mu15_v3, process.HLT_Mu20_v12, process.HLT_Mu27_v13, process.HLT_Mu50_v13, process.HLT_Mu55_v3, process.HLT_CascadeMu100_v3, process.HLT_HighPtTkMu100_v2, process.HLT_DiPFJet15_NoCaloMatched_v16, process.HLT_DiPFJet25_NoCaloMatched_v16, process.HLT_DiPFJet15_FBEta3_NoCaloMatched_v17, process.HLT_DiPFJet25_FBEta3_NoCaloMatched_v17, process.HLT_DiPFJetAve40_v14, process.HLT_DiPFJetAve60_v14, process.HLT_DiPFJetAve80_v13, process.HLT_DiPFJetAve140_v13, process.HLT_DiPFJetAve200_v13, process.HLT_DiPFJetAve260_v14, process.HLT_DiPFJetAve320_v14, process.HLT_DiPFJetAve400_v14, process.HLT_DiPFJetAve500_v14, process.HLT_DiPFJetAve15_HFJEC_v17, process.HLT_DiPFJetAve25_HFJEC_v17, process.HLT_DiPFJetAve35_HFJEC_v17, process.HLT_DiPFJetAve60_HFJEC_v15, process.HLT_DiPFJetAve80_HFJEC_v16, process.HLT_DiPFJetAve100_HFJEC_v16, process.HLT_DiPFJetAve160_HFJEC_v16, process.HLT_DiPFJetAve220_HFJEC_v16, process.HLT_DiPFJetAve300_HFJEC_v16, process.HLT_AK8PFJet15_v3, process.HLT_AK8PFJet25_v3, process.HLT_AK8PFJet40_v16, process.HLT_AK8PFJet60_v15, process.HLT_AK8PFJet80_v15, process.HLT_AK8PFJet140_v15, process.HLT_AK8PFJet200_v15, process.HLT_AK8PFJet260_v16, process.HLT_AK8PFJet320_v16, process.HLT_AK8PFJet400_v16, process.HLT_AK8PFJet450_v16, process.HLT_AK8PFJet500_v16, process.HLT_AK8PFJet550_v11, process.HLT_PFJet15_v3, process.HLT_PFJet25_v3, process.HLT_PFJet40_v21, process.HLT_PFJet60_v21, process.HLT_PFJet80_v20, process.HLT_PFJet140_v19, process.HLT_PFJet200_v19, process.HLT_PFJet260_v20, process.HLT_PFJet320_v20, process.HLT_PFJet400_v20, process.HLT_PFJet450_v21, process.HLT_PFJet500_v21, process.HLT_PFJet550_v11, process.HLT_PFJetFwd15_v3, process.HLT_PFJetFwd25_v3, process.HLT_PFJetFwd40_v19, process.HLT_PFJetFwd60_v19, process.HLT_PFJetFwd80_v18, process.HLT_PFJetFwd140_v18, process.HLT_PFJetFwd200_v18, process.HLT_PFJetFwd260_v19, process.HLT_PFJetFwd320_v19, process.HLT_PFJetFwd400_v19, process.HLT_PFJetFwd450_v19, process.HLT_PFJetFwd500_v19, process.HLT_AK8PFJetFwd15_v3, process.HLT_AK8PFJetFwd25_v3, process.HLT_AK8PFJetFwd40_v15, process.HLT_AK8PFJetFwd60_v14, process.HLT_AK8PFJetFwd80_v14, process.HLT_AK8PFJetFwd140_v14, process.HLT_AK8PFJetFwd200_v14, process.HLT_AK8PFJetFwd260_v15, process.HLT_AK8PFJetFwd320_v15, process.HLT_AK8PFJetFwd400_v15, process.HLT_AK8PFJetFwd450_v15, process.HLT_AK8PFJetFwd500_v15, process.HLT_PFHT180_v17, process.HLT_PFHT250_v17, process.HLT_PFHT370_v17, process.HLT_PFHT430_v17, process.HLT_PFHT510_v17, process.HLT_PFHT590_v17, process.HLT_PFHT680_v17, process.HLT_PFHT780_v17, process.HLT_PFHT890_v17, process.HLT_PFHT1050_v18, process.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v12, process.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v12, process.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v12, process.HLT_PFHT700_PFMET95_PFMHT95_IDTight_v12, process.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v12, process.HLT_PFHT800_PFMET85_PFMHT85_IDTight_v12, process.HLT_PFMET110_PFMHT110_IDTight_v20, process.HLT_PFMET120_PFMHT120_IDTight_v20, process.HLT_PFMET130_PFMHT130_IDTight_v20, process.HLT_PFMET140_PFMHT140_IDTight_v20, process.HLT_PFMET100_PFMHT100_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET110_PFMHT110_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET120_PFMHT120_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET130_PFMHT130_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET140_PFMHT140_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v9, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v9, process.HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9, process.HLT_PFMETTypeOne110_PFMHT110_IDTight_v12, process.HLT_PFMETTypeOne120_PFMHT120_IDTight_v12, process.HLT_PFMETTypeOne130_PFMHT130_IDTight_v12, process.HLT_PFMETTypeOne140_PFMHT140_IDTight_v11, process.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, process.HLT_MonoCentralPFJet80_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, process.HLT_MonoCentralPFJet80_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, process.HLT_MonoCentralPFJet80_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, process.HLT_MonoCentralPFJet80_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, process.HLT_L1ETMHadSeeds_v2, process.HLT_CaloMHT90_v4, process.HLT_CaloMET80_NotCleaned_v4, process.HLT_CaloMET90_NotCleaned_v4, process.HLT_CaloMET100_NotCleaned_v4, process.HLT_CaloMET110_NotCleaned_v4, process.HLT_CaloMET250_NotCleaned_v4, process.HLT_CaloMET300_NotCleaned_v4, process.HLT_CaloMET350_NotCleaned_v4, process.HLT_PFMET200_NotCleaned_v9, process.HLT_PFMET250_NotCleaned_v9, process.HLT_PFMET300_NotCleaned_v9, process.HLT_PFMET200_BeamHaloCleaned_v9, process.HLT_PFMETTypeOne200_BeamHaloCleaned_v9, process.HLT_MET105_IsoTrk50_v9, process.HLT_MET120_IsoTrk50_v9, process.HLT_SingleJet30_Mu12_SinglePFJet40_v11, process.HLT_Mu12eta2p3_v1, process.HLT_Mu12eta2p3_PFJet40_v1, process.HLT_Mu12_DoublePFJets40_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets100_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets200_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets350_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets40_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets100_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets200_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets40_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets100_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets200_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets350_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_DoublePFJets40_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets100_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets200_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets350_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_Photon300_NoHE_v12, process.HLT_Mu8_TrkIsoVVL_v12, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v18, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v18, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v19, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v19, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepCSV_1p5_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_CaloBtagDeepCSV_1p5_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v11, process.HLT_Mu17_TrkIsoVVL_v13, process.HLT_Mu19_TrkIsoVVL_v4, process.HLT_BTagMu_AK4DiJet20_Mu5_v13, process.HLT_BTagMu_AK4DiJet40_Mu5_v13, process.HLT_BTagMu_AK4DiJet70_Mu5_v13, process.HLT_BTagMu_AK4DiJet110_Mu5_v13, process.HLT_BTagMu_AK4DiJet170_Mu5_v12, process.HLT_BTagMu_AK4Jet300_Mu5_v12, process.HLT_BTagMu_AK8DiJet170_Mu5_v9, process.HLT_BTagMu_AK8Jet170_DoubleMu5_v2, process.HLT_BTagMu_AK8Jet300_Mu5_v12, process.HLT_Ele15_Ele8_CaloIdL_TrackIdL_IsoVL_v3, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v19, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v15, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v7, process.HLT_Mu23_TrkIsoVVL_Ele8_CaloIdL_TrackIdL_IsoVL_DZ_v10, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v7, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v15, process.HLT_Mu12_DoublePhoton20_v5, process.HLT_Photon20_v2, process.HLT_Photon22_v2, process.HLT_Photon25_v4, process.HLT_Photon33_v5, process.HLT_Photon50_v13, process.HLT_Photon75_v13, process.HLT_Photon90_v13, process.HLT_Photon120_v13, process.HLT_Photon150_v6, process.HLT_Photon175_v14, process.HLT_Photon200_v13, process.HLT_Photon100EB_TightID_TightIso_v2, process.HLT_Photon110EB_TightID_TightIso_v2, process.HLT_Photon120EB_TightID_TightIso_v2, process.HLT_Photon100EBHE10_v2, process.HLT_Photon100EEHE10_v2, process.HLT_Photon100EE_TightID_TightIso_v2, process.HLT_Photon50_R9Id90_HE10_IsoM_v14, process.HLT_Photon75_R9Id90_HE10_IsoM_v14, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ300_PFJetsMJJ400DEta3_v5, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ400_PFJetsMJJ600DEta3_v5, process.HLT_Photon90_R9Id90_HE10_IsoM_v14, process.HLT_Photon120_R9Id90_HE10_IsoM_v14, process.HLT_Photon165_R9Id90_HE10_IsoM_v15, process.HLT_Photon90_CaloIdL_PFHT700_v16, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v13, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v13, process.HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13, process.HLT_Photon35_TwoProngs35_v1, process.HLT_IsoMu24_TwoProngs35_v1, process.HLT_Dimuon0_Jpsi_L1_NoOS_v7, process.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v7, process.HLT_Dimuon0_Jpsi_v8, process.HLT_Dimuon0_Jpsi_NoVertexing_v8, process.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7, process.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v7, process.HLT_Dimuon0_Jpsi3p5_Muon2_v5, process.HLT_Dimuon0_Upsilon_L1_4p5_v9, process.HLT_Dimuon0_Upsilon_L1_5_v9, process.HLT_Dimuon0_Upsilon_L1_4p5NoOS_v8, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v9, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v7, process.HLT_Dimuon0_Upsilon_NoVertexing_v7, process.HLT_Dimuon0_Upsilon_L1_5M_v8, process.HLT_Dimuon0_LowMass_L1_0er1p5R_v7, process.HLT_Dimuon0_LowMass_L1_0er1p5_v8, process.HLT_Dimuon0_LowMass_v8, process.HLT_Dimuon0_LowMass_L1_4_v8, process.HLT_Dimuon0_LowMass_L1_4R_v7, process.HLT_Dimuon0_LowMass_L1_TM530_v6, process.HLT_Trimuon2_Upsilon5_Muon_NoL1Mass_v6, process.HLT_Dimuon0_Upsilon_Muon_L1_TM0_v6, process.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v6, process.HLT_TripleMu_5_3_3_Mass3p8_DZ_v8, process.HLT_TripleMu_10_5_5_DZ_v10, process.HLT_TripleMu_12_10_5_v10, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v4, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v4, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v4, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v4, process.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10, process.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v10, process.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v10, process.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v6, process.HLT_DoubleMu4_Jpsi_Displaced_v7, process.HLT_DoubleMu4_Jpsi_NoVertexing_v7, process.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v7, process.HLT_DoubleMu43NoFiltersNoVtx_v4, process.HLT_DoubleMu48NoFiltersNoVtx_v4, process.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v5, process.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v5, process.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v1, process.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v1, process.HLT_DoubleMu40NoFiltersNoVtxDisplaced_v1, process.HLT_DoubleMu20_7_Mass0to30_L1_DM4_v7, process.HLT_DoubleMu20_7_Mass0to30_L1_DM4EG_v8, process.HLT_HT425_v9, process.HLT_HT430_DisplacedDijet40_DisplacedTrack_v13, process.HLT_HT500_DisplacedDijet40_DisplacedTrack_v13, process.HLT_HT430_DisplacedDijet60_DisplacedTrack_v13, process.HLT_HT400_DisplacedDijet40_DisplacedTrack_v13, process.HLT_HT650_DisplacedDijet60_Inclusive_v13, process.HLT_HT550_DisplacedDijet60_Inclusive_v13, process.HLT_DiJet110_35_Mjj650_PFMET110_v9, process.HLT_DiJet110_35_Mjj650_PFMET120_v9, process.HLT_DiJet110_35_Mjj650_PFMET130_v9, process.HLT_TripleJet110_35_35_Mjj650_PFMET110_v9, process.HLT_TripleJet110_35_35_Mjj650_PFMET120_v9, process.HLT_TripleJet110_35_35_Mjj650_PFMET130_v9, process.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v13, process.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v13, process.HLT_Ele28_HighEta_SC20_Mass55_v13, process.HLT_DoubleMu20_7_Mass0to30_Photon23_v8, process.HLT_Ele15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, process.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v16, process.HLT_Ele15_IsoVVVL_PFHT450_v16, process.HLT_Ele50_IsoVVVL_PFHT450_v16, process.HLT_Ele15_IsoVVVL_PFHT600_v20, process.HLT_Mu4_TrkIsoVVL_DiPFJet90_40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v15, process.HLT_Mu8_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v16, process.HLT_Mu10_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT350_PFMETNoMu60_v15, process.HLT_Mu15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, process.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v15, process.HLT_Mu15_IsoVVVL_PFHT450_v15, process.HLT_Mu50_IsoVVVL_PFHT450_v15, process.HLT_Mu15_IsoVVVL_PFHT600_v19, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET70_PFMHT70_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu70_PFMHTNoMu70_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v2, process.HLT_Dimuon10_PsiPrime_Barrel_Seagulls_v7, process.HLT_Dimuon20_Jpsi_Barrel_Seagulls_v7, process.HLT_Dimuon12_Upsilon_y1p4_v2, process.HLT_Dimuon14_Phi_Barrel_Seagulls_v7, process.HLT_Dimuon18_PsiPrime_v14, process.HLT_Dimuon25_Jpsi_v14, process.HLT_Dimuon18_PsiPrime_noCorrL1_v6, process.HLT_Dimuon24_Upsilon_noCorrL1_v6, process.HLT_Dimuon24_Phi_noCorrL1_v6, process.HLT_Dimuon25_Jpsi_noCorrL1_v6, process.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v17, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v17, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v17, process.HLT_DoubleIsoMu20_eta2p1_v7, process.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v6, process.HLT_TrkMu16_DoubleTrkMu6NoFiltersNoVtx_v12, process.HLT_TrkMu17_DoubleTrkMu8NoFiltersNoVtx_v13, process.HLT_Mu8_v12, process.HLT_Mu17_v13, process.HLT_Mu19_v4, process.HLT_Mu17_Photon30_IsoCaloId_v6, process.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v16, process.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, process.HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3, process.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, process.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v18, process.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v16, process.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v18, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18, process.HLT_Ele115_CaloIdVT_GsfTrkIdT_v14, process.HLT_Ele135_CaloIdVT_GsfTrkIdT_v7, process.HLT_Ele145_CaloIdVT_GsfTrkIdT_v8, process.HLT_Ele200_CaloIdVT_GsfTrkIdT_v8, process.HLT_Ele250_CaloIdVT_GsfTrkIdT_v13, process.HLT_Ele300_CaloIdVT_GsfTrkIdT_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepCSV_4p5_v3, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v9, process.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepCSV_2p94_v8, process.HLT_PFHT400_SixPFJet32_v8, process.HLT_PFHT450_SixPFJet36_PFBTagDeepCSV_1p59_v7, process.HLT_PFHT450_SixPFJet36_v7, process.HLT_PFHT400_FivePFJet_100_100_60_30_30_v8, process.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepCSV_4p5_v8, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepCSV_4p5_v8, process.HLT_PFHT350_v19, process.HLT_PFHT350MinPFJet15_v9, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_v5, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_v5, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350MinPFJet15_v11, process.HLT_ECALHT800_v10, process.HLT_DiSC30_18_EIso_AND_HE_Mass70_v13, process.HLT_L1FatEvents_v2, process.HLT_Physics_v7, process.HLT_EphemeralPhysics_v1, process.DST_Physics_v7, process.HLT_Random_v3, process.HLT_Random_TOTEM_part0_v1, process.HLT_Random_TOTEM_part1_v1, process.HLT_Random_TOTEM_part2_v1, process.HLT_Random_TOTEM_part3_v1, process.HLT_ZeroBias_v6, process.HLT_ZeroBias_TOTEM_part0_v1, process.HLT_ZeroBias_TOTEM_part1_v1, process.HLT_ZeroBias_TOTEM_part2_v1, process.HLT_ZeroBias_TOTEM_part3_v1, process.HLT_ZeroBias_Alignment_v1, process.HLT_EphemeralZeroBias_v1, process.DST_ZeroBias_v2, process.DST_Run3_PFScoutingPixelTracking_v16, process.HLT_AK4CaloJet30_v11, process.HLT_AK4CaloJet40_v10, process.HLT_AK4CaloJet50_v10, process.HLT_AK4CaloJet80_v10, process.HLT_AK4CaloJet100_v10, process.HLT_AK4CaloJet120_v9, process.HLT_AK4PFJet30_v19, process.HLT_AK4PFJet50_v19, process.HLT_AK4PFJet80_v19, process.HLT_AK4PFJet100_v19, process.HLT_AK4PFJet120_v18, process.HLT_PixelTracks_Multiplicity60ForPPRef_v5, process.HLT_PixelTracks_Multiplicity85ForPPRef_v5, process.HLT_PixelTracks_Multiplicity110ForPPRef_v5, process.HLT_PixelTracks_Multiplicity135ForPPRef_v5, process.HLT_PixelTracks_Multiplicity160ForPPRef_v5, process.HLT_AK4CaloJet40_Eta5p1ForPPRef_v9, process.HLT_AK4CaloJet60_Eta5p1ForPPRef_v9, process.HLT_AK4CaloJet80_Eta5p1ForPPRef_v9, process.HLT_AK4CaloJet100_Eta5p1ForPPRef_v9, process.HLT_AK4CaloJet110_Eta5p1ForPPRef_v9, process.HLT_AK4CaloJet120_Eta5p1ForPPRef_v9, process.HLT_AK4CaloJet150ForPPRef_v9, process.HLT_AK4PFJet40_Eta5p1ForPPRef_v16, process.HLT_AK4PFJet60_Eta5p1ForPPRef_v16, process.HLT_AK4PFJet80_Eta5p1ForPPRef_v16, process.HLT_AK4PFJet100_Eta5p1ForPPRef_v16, process.HLT_AK4PFJet110_Eta5p1ForPPRef_v16, process.HLT_AK4PFJet120_Eta5p1ForPPRef_v16, process.HLT_AK4CaloJet80_Jet35_Eta1p1ForPPRef_v9, process.HLT_AK4CaloJet80_Jet35_Eta0p7ForPPRef_v9, process.HLT_AK4CaloJet100_Jet35_Eta1p1ForPPRef_v9, process.HLT_AK4CaloJet100_Jet35_Eta0p7ForPPRef_v9, process.HLT_AK4CaloJet80_45_45_Eta2p1ForPPRef_v9, process.HLT_SinglePhoton10_Eta3p1ForPPRef_v8, process.HLT_SinglePhoton15_Eta3p1ForPPRef_v9, process.HLT_SinglePhoton20_Eta3p1ForPPRef_v9, process.HLT_SinglePhoton30_Eta3p1ForPPRef_v9, process.HLT_SinglePhoton40_Eta3p1ForPPRef_v8, process.HLT_SinglePhoton50_Eta3p1ForPPRef_v8, process.HLT_SinglePhoton60_Eta3p1ForPPRef_v8, process.HLT_Photon20_HoverELoose_v10, process.HLT_Photon30_HoverELoose_v10, process.HLT_Photon40_HoverELoose_v10, process.HLT_Photon50_HoverELoose_v10, process.HLT_Photon60_HoverELoose_v10, process.HLT_HIL2Mu3Eta2p5_AK4CaloJet40Eta2p1ForPPRef_v11, process.HLT_HIL2Mu3Eta2p5_AK4CaloJet60Eta2p1ForPPRef_v11, process.HLT_HIL2Mu3Eta2p5_AK4CaloJet80Eta2p1ForPPRef_v11, process.HLT_HIL2Mu3Eta2p5_AK4CaloJet100Eta2p1ForPPRef_v11, process.HLT_HIL1DoubleMu0ForPPRef_v4, process.HLT_HIL1DoubleMu10ForPPRef_v4, process.HLT_HIL2DoubleMu0_NHitQForPPRef_v5, process.HLT_HIL3DoubleMu0_OS_m2p5to4p5ForPPRef_v6, process.HLT_HIL3DoubleMu0_OS_m7to14ForPPRef_v6, process.HLT_HIL2Mu3_NHitQ10ForPPRef_v6, process.HLT_HIL3Mu3_NHitQ15ForPPRef_v6, process.HLT_HIL2Mu5_NHitQ10ForPPRef_v6, process.HLT_HIL3Mu5_NHitQ15ForPPRef_v6, process.HLT_HIL2Mu7_NHitQ10ForPPRef_v6, process.HLT_HIL3Mu7_NHitQ15ForPPRef_v6, process.HLT_HIL2Mu15ForPPRef_v6, process.HLT_HIL3Mu15ForPPRef_v6, process.HLT_HIL2Mu20ForPPRef_v6, process.HLT_HIL3Mu20ForPPRef_v6, process.HLT_FullTrack18ForPPRef_v11, process.HLT_FullTrack24ForPPRef_v11, process.HLT_FullTrack34ForPPRef_v11, process.HLT_FullTrack45ForPPRef_v11, process.HLT_FullTrack53ForPPRef_v11, process.HLT_HIL1CastorMediumJetForPPRef_v4, process.HLT_HIL1UnpairedBunchBptxMinusForPPRef_v2, process.HLT_HIL1UnpairedBunchBptxPlusForPPRef_v2, process.HLT_HIL1NotBptxORForPPRef_v2, process.HLT_HIHT80_Beamspot_ppRef5TeV_v3, process.HLT_HIZeroBias_part0_v6, process.HLT_HIZeroBias_part1_v6, process.HLT_HIZeroBias_part2_v6, process.HLT_HIZeroBias_part3_v6, process.HLT_HIZeroBias_part4_v6, process.HLT_HIZeroBias_part5_v6, process.HLT_HIZeroBias_part6_v6, process.HLT_HIZeroBias_part7_v6, process.HLT_HIZeroBias_part8_v6, process.HLT_HIZeroBias_part9_v6, process.HLT_HIZeroBias_part10_v6, process.HLT_HIZeroBias_part11_v6, process.AlCa_HIEcalPi0EBonly_v1, process.AlCa_HIEcalPi0EEonly_v1, process.AlCa_HIEcalEtaEBonly_v1, process.AlCa_HIEcalEtaEEonly_v1, process.HLT_DmesonPPTrackingGlobal_Dpt8ForPPRef_v11, process.HLT_DmesonPPTrackingGlobal_Dpt15ForPPRef_v11, process.HLT_DmesonPPTrackingGlobal_Dpt20ForPPRef_v11, process.HLT_DmesonPPTrackingGlobal_Dpt30ForPPRef_v11, process.HLT_DmesonPPTrackingGlobal_Dpt40ForPPRef_v11, process.HLT_DmesonPPTrackingGlobal_Dpt50ForPPRef_v11, process.HLT_DmesonPPTrackingGlobal_Dpt60ForPPRef_v11, process.HLT_AK4PFBJetBCSV60_Eta2p1ForPPRef_v16, process.HLT_AK4PFBJetBCSV80_Eta2p1ForPPRef_v16, process.HLT_AK4PFDJet60_Eta2p1ForPPRef_v16, process.HLT_AK4PFDJet80_Eta2p1ForPPRef_v16, process.HLT_AK4PFBJetBSSV60_Eta2p1ForPPRef_v16, process.HLT_AK4PFBJetBSSV80_Eta2p1ForPPRef_v16, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v5, process.AlCa_EcalPhiSym_v9, process.HLT_L1UnpairedBunchBptxMinus_v2, process.HLT_L1UnpairedBunchBptxPlus_v2, process.HLT_L1NotBptxOR_v3, process.HLT_L1BptxXOR_v1, process.HLT_L1TOTEM1_MinBias_v4, process.HLT_L1TOTEM2_ZeroBias_v4, process.HLT_L1MinimumBiasHF_OR_v3, process.HLT_L1MinimumBiasHF_OR_part0_v1, process.HLT_L1MinimumBiasHF_OR_part1_v1, process.HLT_L1MinimumBiasHF_OR_part2_v1, process.HLT_L1MinimumBiasHF_OR_part3_v1, process.HLT_L1MinimumBiasHF_OR_part4_v1, process.HLT_L1MinimumBiasHF_OR_part5_v1, process.HLT_L1MinimumBiasHF_OR_part6_v1, process.HLT_L1MinimumBiasHF_OR_part7_v1, process.HLT_L1MinimumBiasHF_OR_part8_v1, process.HLT_L1MinimumBiasHF_OR_part9_v1, process.HLT_L1MinimumBiasHF0OR_v4, process.HLT_L1MinimumBiasHF1OR_v4, process.HLT_L1MinimumBiasHF2OR_v4, process.HLT_L1MinimumBiasHF2ORNoBptxGating_v5, process.HLT_L1MinimumBiasHF1AND_v4, process.HLT_L1MinimumBiasHF2AND_v4, process.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v2, process.HLT_CDC_L2cosmic_10_er1p0_v1, process.HLT_CDC_L2cosmic_5p5_er1p0_v1, process.HLT_HcalNZS_v13, process.HLT_HcalPhiSym_v15, process.HLT_HcalIsolatedbunch_v5, process.HLT_IsoTrackHB_v4, process.HLT_IsoTrackHE_v4, process.HLT_ZeroBias_FirstCollisionAfterAbortGap_v5, process.HLT_ZeroBias_IsolatedBunches_v5, process.HLT_ZeroBias_FirstCollisionInTrain_v4, process.HLT_ZeroBias_LastCollisionInTrain_v3, process.HLT_ZeroBias_FirstBXAfterTrain_v3, process.AlCa_RPCMuonNormalisation_v13, process.AlCa_HIRPCMuonNormalisation_v1, process.AlCa_LumiPixelsCounts_Random_v2, process.AlCa_LumiPixelsCounts_ZeroBias_v2, process.MC_ReducedIterativeTracking_v12, process.MC_PFMET_v17, process.MC_AK4PFJets_v17, process.MC_PFBTagDeepCSV_v10, process.MC_PFHT_v16, process.MC_PFMHT_v16, process.MC_CaloMET_v8, process.MC_CaloMET_JetIdCleaned_v9, process.MC_AK4CaloJets_v9, process.MC_AK4CaloJetsFromPV_v8, process.MC_CaloBTagDeepCSV_v8, process.MC_CaloHT_v8, process.MC_CaloMHT_v8, process.MC_AK8PFJets_v17, process.MC_AK8TrimPFJets_v17, process.MC_AK8PFHT_v16, process.MC_AK8CaloHT_v8, process.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v13, process.MC_DoubleEle5_CaloIdL_MW_v15, process.MC_Ele5_WPTight_Gsf_v8, process.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v15, process.MC_IsoMu_v15, process.MC_IsoTkMu15_v12, process.MC_DoubleMu_TrkIsoVVL_DZ_v11, process.MC_DoubleGlbTrkMu_TrkIsoVVL_DZ_v12, process.MC_DoubleMuNoFiltersNoVtx_v7, process.MC_PFBTagDeepJet_v1, process.MC_Run3_PFScoutingPixelTracking_v16, process.AlCa_EcalPi0EBonly_v13, process.AlCa_EcalPi0EEonly_v13, process.AlCa_EcalEtaEBonly_v13, process.AlCa_EcalEtaEEonly_v13, process.HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12, process.HLT_MediumChargedIsoPFTau200HighPtRelaxedIso_Trk50_eta2p1_v12, process.HLT_MediumChargedIsoPFTau220HighPtRelaxedIso_Trk50_eta2p1_v12, process.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v9, process.HLT_Rsq0p35_v15, process.HLT_Rsq0p40_v15, process.HLT_RsqMR300_Rsq0p09_MR200_v15, process.HLT_RsqMR320_Rsq0p09_MR200_v15, process.HLT_RsqMR300_Rsq0p09_MR200_4jet_v15, process.HLT_RsqMR320_Rsq0p09_MR200_4jet_v15, process.HLT_L1_DoubleJet30_Mass_Min400_Mu10_v1, process.HLT_IsoMu27_MET90_v3, process.HLT_VBF_DoubleLooseChargedIsoPFTau20_Trk1_eta2p1_v3, process.HLT_VBF_DoubleLooseChargedIsoPFTauHPS20_Trk1_eta2p1_v1, process.HLT_VBF_DoubleMediumChargedIsoPFTauHPS20_Trk1_eta2p1_v1, process.HLT_VBF_DoubleTightChargedIsoPFTauHPS20_Trk1_eta2p1_v1, process.HLT_Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50_v5, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v5, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ600DEta3_v5, process.HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9, process.HLT_PFMETNoMu100_PFMHTNoMu100_IDTight_PFHT60_v9, process.HLT_PFMETTypeOne100_PFMHT100_IDTight_PFHT60_v9, process.HLT_Mu18_Mu9_SameSign_v4, process.HLT_Mu18_Mu9_SameSign_DZ_v4, process.HLT_Mu18_Mu9_v4, process.HLT_Mu18_Mu9_DZ_v4, process.HLT_Mu20_Mu10_SameSign_v4, process.HLT_Mu20_Mu10_SameSign_DZ_v4, process.HLT_Mu20_Mu10_v4, process.HLT_Mu20_Mu10_DZ_v4, process.HLT_Mu23_Mu12_SameSign_v4, process.HLT_Mu23_Mu12_SameSign_DZ_v4, process.HLT_Mu23_Mu12_v4, process.HLT_Mu23_Mu12_DZ_v4, process.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v6, process.HLT_DoubleMu2_Jpsi_DoubleTkMu0_Phi_v5, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10, process.HLT_TripleMu_5_3_3_Mass3p8_DCA_v3, process.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_QuadPFJet98_83_71_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet103_88_75_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet105_88_76_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet111_90_80_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet98_83_71_15_v5, process.HLT_QuadPFJet103_88_75_15_v5, process.HLT_QuadPFJet105_88_76_15_v5, process.HLT_QuadPFJet111_90_80_15_v5, process.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p17_v2, process.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p1_v2, process.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_p02_v3, process.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np2_v2, process.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np4_v2, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_v2, process.HLT_Mu12_IP6_ToCSCS_v1, process.HLT_Mu12_IP6_part0_v2, process.HLT_Mu12_IP6_part1_v2, process.HLT_Mu12_IP6_part2_v2, process.HLT_Mu12_IP6_part3_v2, process.HLT_Mu12_IP6_part4_v2, process.HLT_Mu9_IP5_ToCSCS_v1, process.HLT_Mu9_IP5_part0_v2, process.HLT_Mu9_IP5_part1_v2, process.HLT_Mu9_IP5_part2_v2, process.HLT_Mu9_IP5_part3_v2, process.HLT_Mu9_IP5_part4_v2, process.HLT_Mu7_IP4_ToCSCS_v1, process.HLT_Mu7_IP4_part0_v2, process.HLT_Mu7_IP4_part1_v2, process.HLT_Mu7_IP4_part2_v2, process.HLT_Mu7_IP4_part3_v2, process.HLT_Mu7_IP4_part4_v2, process.HLT_Mu9_IP4_ToCSCS_v1, process.HLT_Mu9_IP4_part0_v2, process.HLT_Mu9_IP4_part1_v2, process.HLT_Mu9_IP4_part2_v2, process.HLT_Mu9_IP4_part3_v2, process.HLT_Mu9_IP4_part4_v2, process.HLT_Mu8_IP5_ToCSCS_v1, process.HLT_Mu8_IP5_part0_v2, process.HLT_Mu8_IP5_part1_v2, process.HLT_Mu8_IP5_part2_v2, process.HLT_Mu8_IP5_part3_v2, process.HLT_Mu8_IP5_part4_v2, process.HLT_Mu8_IP6_ToCSCS_v1, process.HLT_Mu8_IP6_part0_v2, process.HLT_Mu8_IP6_part1_v2, process.HLT_Mu8_IP6_part2_v2, process.HLT_Mu8_IP6_part3_v2, process.HLT_Mu8_IP6_part4_v2, process.HLT_Mu9_IP6_ToCSCS_v1, process.HLT_Mu9_IP6_part0_v3, process.HLT_Mu9_IP6_part1_v3, process.HLT_Mu9_IP6_part2_v3, process.HLT_Mu9_IP6_part3_v3, process.HLT_Mu9_IP6_part4_v3, process.HLT_Mu8_IP3_ToCSCS_v1, process.HLT_Mu8_IP3_part0_v3, process.HLT_Mu8_IP3_part1_v3, process.HLT_Mu8_IP3_part2_v3, process.HLT_Mu8_IP3_part3_v3, process.HLT_Mu8_IP3_part4_v3, process.HLT_Mu9_IP0_part0_v2, process.HLT_Mu9_IP3_part0_v2, process.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_TrkMu6NoFiltersNoVtx_v1, process.HLT_TrkMu16NoFiltersNoVtx_v1, process.HLT_DoubleTrkMu_16_6_NoFiltersNoVtx_v1, process.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1, process.HLT_DoubleMediumChargedIsoPFTauHPS40_Trk1_eta2p1_v1, process.HLT_DoubleTightChargedIsoPFTauHPS35_Trk1_eta2p1_v1, process.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, process.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v1, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v1, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v1, process.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v1, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v1, process.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepJet_4p5_v1, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepJet_4p5_v1, process.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepJet_2p94_v1, process.HLT_PFHT450_SixPFJet36_PFBTagDeepJet_1p59_v1, process.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet103_88_75_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet105_88_76_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet111_90_80_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet98_83_71_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v1, process.HLT_QuadPFJet70_50_40_30_v1, process.HLT_QuadPFJet70_50_40_30_PFBTagParticleNet_2BTagSum0p65_v1, process.HLT_QuadPFJet70_50_40_35_PFBTagParticleNet_2BTagSum0p65_v1, process.HLT_QuadPFJet70_50_45_35_PFBTagParticleNet_2BTagSum0p65_v1, process.HLT_AK8PFJet230_SoftDropMass40_v1, process.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, process.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, process.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, process.HLT_AK8PFJet400_SoftDropMass40_v1, process.HLT_AK8PFJet425_SoftDropMass40_v1, process.HLT_AK8PFJet450_SoftDropMass40_v1, process.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, process.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, process.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, process.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1, process.HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1, process.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v1, process.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1, process.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v1, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1, process.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1, process.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v1, process.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v1, process.HLT_L1Mu6HT240_v1, process.HLT_Mu6HT240_DisplacedDijet30_Inclusive0PtrkShortSig5_v1, process.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v1, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v1, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v1, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v1, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v1, process.HLT_HT430_DisplacedDijet30_Inclusive1PtrkShortSig5_v1, process.HLT_HT430_DisplacedDijet35_Inclusive1PtrkShortSig5_v1, process.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v1, process.HLT_CaloMET60_DTCluster50_v1, process.HLT_CaloMET60_DTClusterNoMB1S50_v1, process.HLT_L1MET_DTCluster50_v1, process.HLT_L1MET_DTClusterNoMB1S50_v1, process.HLT_CscCluster_Loose_v1, process.HLT_CscCluster_Medium_v1, process.HLT_CscCluster_Tight_v1, process.HLT_L1CSCShower_DTCluster50_v1, process.HLT_L1CSCShower_DTCluster75_v1, process.HLT_PFMET105_IsoTrk50_v1, process.HLT_PFMET105_PFJet100_looseRecoiling_v1, process.HLT_PFMET110_PFJet100_v1, process.HLT_PFMET110_PFJet100_looseRecoiling_v1, process.HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1, process.HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1, process.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1, process.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1, process.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1, process.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1, process.HLT_DiPhoton10Time1ns_v1, process.HLT_DiPhoton10Time1p2ns_v1, process.HLT_DiPhoton10Time1p4ns_v1, process.HLT_DiPhoton10Time1p6ns_v1, process.HLT_DiPhoton10Time1p8ns_v1, process.HLT_DiPhoton10Time2ns_v1, process.HLT_DiPhoton10sminlt0p1_v1, process.HLT_DiPhoton10sminlt0p12_v1, process.HLT_DiPhoton10sminlt0p14_v1, process.HLT_DiPhoton10sminlt0p16_v1, process.HLT_DiPhoton10_CaloIdL_v1, process.HLT_ExpressMuons_v1, process.HLT_OnlineMonitorGroup_v1, process.HLT_HIOnlineMonitorGroup_v1, process.DQM_EcalReconstruction_v1, process.DQM_HcalReconstruction_v1, process.DQM_PixelReconstruction_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part0_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part1_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part2_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult1_part3_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part0_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part1_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part2_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult2_part3_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part0_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part1_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part2_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_Mult3_part3_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part0_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part1_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part2_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult1_part3_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part0_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part1_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part2_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult2_part3_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part0_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part1_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part2_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_Mult3_part3_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part0_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part1_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part2_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult1_part3_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part0_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part1_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part2_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult2_part3_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part0_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part1_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part2_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_Mult3_part3_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part0_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part1_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part2_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult1_part3_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part0_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part1_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part2_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1, process.HLT_TOTEM_1_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part0_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part1_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part2_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult1_part3_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part0_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part1_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part2_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1, process.HLT_TOTEM_2_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part0_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part1_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part2_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult1_part3_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part0_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part1_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part2_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult2_part3_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part0_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part1_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part2_v1, process.HLT_TOTEM_4_AND_PixelTrackCounting_BPixOnly_Mult3_part3_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part0_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part1_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part2_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay3_part3_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part0_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part1_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part2_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu6NLay4_part3_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part0_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part1_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part2_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay3_part3_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part0_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part1_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part2_v1, process.HLT_TOTEM_1_AND_PixelClusterCounting_BPixNClu7NLay4_part3_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part0_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part1_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part2_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay3_part3_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part0_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part1_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part2_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu6NLay4_part3_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part0_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part1_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part2_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay3_part3_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part0_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part1_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part2_v1, process.HLT_TOTEM_2_AND_PixelClusterCounting_BPixNClu7NLay4_part3_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part0_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part1_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part2_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay3_part3_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part0_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part1_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part2_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu5NLay4_part3_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part0_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part1_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part2_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay3_part3_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part0_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part1_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part2_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu6NLay4_part3_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part0_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part1_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part2_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay3_part3_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part0_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part1_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part2_v1, process.HLT_TOTEM_4_AND_PixelClusterCounting_BPixNClu7NLay4_part3_v1, process.HLT_L1TOTEM_3_v1, process.HLT_L1RomanPot_part0_v1, process.HLT_L1RomanPot_part1_v1, process.HLT_L1RomanPot_part2_v1, process.HLT_L1RomanPot_part3_v1, process.HLT_PPSMaxTracksPerArm1_v1, process.HLT_PPSMaxTracksPerRP4_v1, process.HLT_L1DoubleMu_v1, process.HLT_L1SingleMu_v1, process.HLT_L1DoubleJet_v1, process.HLT_L1DoubleJetANDTotem_v1, process.HLT_L1DoubleJet_gap_v1, process.HLT_L1HFveto_v1, process.HLT_HIPhysics_v1, process.HLT_HIPhysicsForZS_v1, process.HLT_HIRandom_v1, process.AlCa_EcalPhiSymForHI_v1, process.HLT_HIHcalNZS_v1, process.HLT_HIHcalPhiSym_v1, process.AlCa_RPCMuonNormalisationForHI_v1, process.AlCa_EcalPi0EBonlyForHI_v1, process.AlCa_EcalPi0EEonlyForHI_v1, process.AlCa_EcalEtaEBonlyForHI_v1, process.AlCa_EcalEtaEEonlyForHI_v1, process.HLT_HICentralityVeto_v1, process.HLT_HICentralityVeto_Beamspot_v1, process.HLT_HICentrality30100_FirstCollisionAfterAbortGap_v1, process.HLT_HICentralityTag20100_v1, process.HLT_HICentralityTag30100_v1, process.HLT_HICentralityTag50100_v1, process.HLT_HIZeroBias_v1, process.HLT_HIZeroBias_FirstCollisionAfterAbortGap_v1, process.HLT_HIMinimumBias_part0_v1, process.HLT_HIMinimumBias_part1_v1, process.HLT_HIMinimumBias_part2_v1, process.HLT_HIMinimumBias_part3_v1, process.HLT_HIMinimumBias_part4_v1, process.HLT_HIMinimumBias_part5_v1, process.HLT_HIMinimumBias_part6_v1, process.HLT_HIMinimumBias_part7_v1, process.HLT_HIMinimumBias_part8_v1, process.HLT_HIMinimumBias_part9_v1, process.HLT_HIMinimumBias_part10_v1, process.HLT_HIMinimumBias_part11_v1, process.HLT_HIMinimumBias_part12_v1, process.HLT_HIMinimumBias_part13_v1, process.HLT_HIMinimumBias_part14_v1, process.HLT_HIMinimumBias_part15_v1, process.HLT_HIMinimumBias_part16_v1, process.HLT_HIMinimumBias_part17_v1, process.HLT_HIMinimumBias_part18_v1, process.HLT_HIMinimumBias_part19_v1, process.HLT_HIMinimumBiasRF_part0_v1, process.HLT_HIMinimumBiasRF_part1_v1, process.HLT_HIMinimumBiasRF_part2_v1, process.HLT_HIMinimumBiasRF_part3_v1, process.HLT_HIMinimumBiasRF_part4_v1, process.HLT_HIMinimumBiasRF_part5_v1, process.HLT_HIMinimumBiasRF_part6_v1, process.HLT_HIMinimumBiasRF_part7_v1, process.HLT_HIMinimumBiasRF_part8_v1, process.HLT_HIMinimumBiasRF_part9_v1, process.HLT_HIMinimumBiasRF_part10_v1, process.HLT_HIMinimumBiasRF_part11_v1, process.HLT_HIMinimumBiasRF_part12_v1, process.HLT_HIMinimumBiasRF_part13_v1, process.HLT_HIMinimumBiasRF_part14_v1, process.HLT_HIMinimumBiasRF_part15_v1, process.HLT_HIMinimumBiasRF_part16_v1, process.HLT_HIMinimumBiasRF_part17_v1, process.HLT_HIMinimumBiasRF_part18_v1, process.HLT_HIMinimumBiasRF_part19_v1, process.HLT_HIMinimumBiasRF_part20_v1, process.HLT_HIMinimumBiasRF_part21_v1, process.HLT_HIMinimumBiasRF_part22_v1, process.HLT_HIMinimumBiasRF_part23_v1, process.HLT_HIPuAK4CaloJet40Eta5p1_v1, process.HLT_HIPuAK4CaloJet60Eta5p1_v1, process.HLT_HIPuAK4CaloJet80Eta5p1_v1, process.HLT_HIPuAK4CaloJet100Eta5p1_v1, process.HLT_HIPuAK4CaloJet120Eta5p1_v1, process.HLT_HIPuAK4CaloJet40Eta5p1_Centrality_30_100_v1, process.HLT_HIPuAK4CaloJet40Eta5p1_Centrality_50_100_v1, process.HLT_HIPuAK4CaloJet60Eta5p1_Centrality_30_100_v1, process.HLT_HIPuAK4CaloJet60Eta5p1_Centrality_50_100_v1, process.HLT_HIPuAK4CaloJet80Eta5p1_Centrality_30_100_v1, process.HLT_HIPuAK4CaloJet80Eta5p1_Centrality_50_100_v1, process.HLT_HIPuAK4CaloJet100Eta5p1_Centrality_30_100_v1, process.HLT_HIPuAK4CaloJet100Eta5p1_Centrality_50_100_v1, process.HLT_HIPuAK4CaloJet80_35_Eta1p1_v1, process.HLT_HIPuAK4CaloJet100_35_Eta1p1_v1, process.HLT_HIPuAK4CaloJet80_35_Eta0p7_v1, process.HLT_HIPuAK4CaloJet100_35_Eta0p7_v1, process.HLT_HIPuAK4CaloJet80_45_45_Eta2p1_v1, process.HLT_HIPuAK4CaloJet40Fwd_v1, process.HLT_HIPuAK4CaloJet60Fwd_v1, process.HLT_HIPuAK4CaloJet80Fwd_v1, process.HLT_HIPuAK4CaloJet100Fwd_v1, process.HLT_HIPuAK4CaloJet120Fwd_v1, process.HLT_HIIslandPhoton10_Eta2p4_v1, process.HLT_HIIslandPhoton10_Eta1p5_v1, process.HLT_HIIslandPhoton20_Eta2p4_v1, process.HLT_HIIslandPhoton20_Eta1p5_v1, process.HLT_HIIslandPhoton30_Eta2p4_v1, process.HLT_HIIslandPhoton30_Eta1p5_v1, process.HLT_HIIslandPhoton40_Eta2p4_v1, process.HLT_HIIslandPhoton40_Eta1p5_v1, process.HLT_HIIslandPhoton50_Eta2p4_v1, process.HLT_HIIslandPhoton50_Eta1p5_v1, process.HLT_HIIslandPhoton60_Eta2p4_v1, process.HLT_HIIslandPhoton60_Eta1p5_v1, process.HLT_HIGEDPhoton10_v1, process.HLT_HIGEDPhoton20_v1, process.HLT_HIGEDPhoton30_v1, process.HLT_HIGEDPhoton40_v1, process.HLT_HIGEDPhoton50_v1, process.HLT_HIGEDPhoton60_v1, process.HLT_HIGEDPhoton10_EB_v1, process.HLT_HIGEDPhoton20_EB_v1, process.HLT_HIGEDPhoton30_EB_v1, process.HLT_HIGEDPhoton40_EB_v1, process.HLT_HIGEDPhoton50_EB_v1, process.HLT_HIGEDPhoton60_EB_v1, process.HLT_HIGEDPhoton10_HECut_v1, process.HLT_HIGEDPhoton20_HECut_v1, process.HLT_HIGEDPhoton30_HECut_v1, process.HLT_HIGEDPhoton40_HECut_v1, process.HLT_HIGEDPhoton50_HECut_v1, process.HLT_HIGEDPhoton60_HECut_v1, process.HLT_HIGEDPhoton10_EB_HECut_v1, process.HLT_HIGEDPhoton20_EB_HECut_v1, process.HLT_HIGEDPhoton30_EB_HECut_v1, process.HLT_HIGEDPhoton40_EB_HECut_v1, process.HLT_HIGEDPhoton50_EB_HECut_v1, process.HLT_HIGEDPhoton60_EB_HECut_v1, process.HLT_HIEle10Gsf_v1, process.HLT_HIEle15Gsf_v1, process.HLT_HIEle20Gsf_v1, process.HLT_HIEle30Gsf_v1, process.HLT_HIEle40Gsf_v1, process.HLT_HIEle50Gsf_v1, process.HLT_HIEle15Ele10Gsf_v1, process.HLT_HIEle15Ele10GsfMass50_v1, process.HLT_HIDoubleEle10Gsf_v1, process.HLT_HIDoubleEle10GsfMass50_v1, process.HLT_HIDoubleEle15Gsf_v1, process.HLT_HIDoubleEle15GsfMass50_v1, process.HLT_HIL1Mu3Eta2p5_Ele10Gsf_v1, process.HLT_HIL1Mu3Eta2p5_Ele15Gsf_v1, process.HLT_HIL1Mu3Eta2p5_Ele20Gsf_v1, process.HLT_HIL1Mu5Eta2p5_Ele10Gsf_v1, process.HLT_HIL1Mu5Eta2p5_Ele15Gsf_v1, process.HLT_HIL1Mu5Eta2p5_Ele20Gsf_v1, process.HLT_HIL1Mu7Eta2p5_Ele10Gsf_v1, process.HLT_HIL1Mu7Eta2p5_Ele15Gsf_v1, process.HLT_HIL1Mu7Eta2p5_Ele20Gsf_v1, process.HLT_HIEle10Gsf_PuAK4CaloJet40Eta2p1_v1, process.HLT_HIEle10Gsf_PuAK4CaloJet60Eta2p1_v1, process.HLT_HIEle10Gsf_PuAK4CaloJet80Eta2p1_v1, process.HLT_HIEle10Gsf_PuAK4CaloJet100Eta2p1_v1, process.HLT_HIEle15Gsf_PuAK4CaloJet40Eta2p1_v1, process.HLT_HIEle15Gsf_PuAK4CaloJet60Eta2p1_v1, process.HLT_HIEle15Gsf_PuAK4CaloJet80Eta2p1_v1, process.HLT_HIEle15Gsf_PuAK4CaloJet100Eta2p1_v1, process.HLT_HIEle20Gsf_PuAK4CaloJet40Eta2p1_v1, process.HLT_HIEle20Gsf_PuAK4CaloJet60Eta2p1_v1, process.HLT_HIEle20Gsf_PuAK4CaloJet80Eta2p1_v1, process.HLT_HIEle20Gsf_PuAK4CaloJet100Eta2p1_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt15_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt20_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt30_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt40_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt50_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt60_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt15_NoIter10_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt20_NoIter10_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt30_NoIter10_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt40_NoIter10_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt50_NoIter10_v1, process.HLT_HIDmesonPPTrackingGlobal_Dpt60_NoIter10_v1, process.HLT_HIDsPPTrackingGlobal_Dpt20_v1, process.HLT_HIDsPPTrackingGlobal_Dpt30_v1, process.HLT_HIDsPPTrackingGlobal_Dpt40_v1, process.HLT_HIDsPPTrackingGlobal_Dpt50_v1, process.HLT_HIDsPPTrackingGlobal_Dpt60_v1, process.HLT_HIDsPPTrackingGlobal_Dpt20_NoIter10_v1, process.HLT_HIDsPPTrackingGlobal_Dpt30_NoIter10_v1, process.HLT_HIDsPPTrackingGlobal_Dpt40_NoIter10_v1, process.HLT_HIDsPPTrackingGlobal_Dpt50_NoIter10_v1, process.HLT_HIDsPPTrackingGlobal_Dpt60_NoIter10_v1, process.HLT_HILcPPTrackingGlobal_Dpt20_v1, process.HLT_HILcPPTrackingGlobal_Dpt30_v1, process.HLT_HILcPPTrackingGlobal_Dpt40_v1, process.HLT_HILcPPTrackingGlobal_Dpt50_v1, process.HLT_HILcPPTrackingGlobal_Dpt60_v1, process.HLT_HILcPPTrackingGlobal_Dpt20_NoIter10_v1, process.HLT_HILcPPTrackingGlobal_Dpt30_NoIter10_v1, process.HLT_HILcPPTrackingGlobal_Dpt40_NoIter10_v1, process.HLT_HILcPPTrackingGlobal_Dpt50_NoIter10_v1, process.HLT_HILcPPTrackingGlobal_Dpt60_NoIter10_v1, process.HLT_HIFullTracks2018_HighPt18_v1, process.HLT_HIFullTracks2018_HighPt24_v1, process.HLT_HIFullTracks2018_HighPt34_v1, process.HLT_HIFullTracks2018_HighPt45_v1, process.HLT_HIFullTracks2018_HighPt56_v1, process.HLT_HIFullTracks2018_HighPt60_v1, process.HLT_HIFullTracks2018_HighPt18_NoIter10_v1, process.HLT_HIFullTracks2018_HighPt24_NoIter10_v1, process.HLT_HIFullTracks2018_HighPt34_NoIter10_v1, process.HLT_HIFullTracks2018_HighPt45_NoIter10_v1, process.HLT_HIFullTracks2018_HighPt56_NoIter10_v1, process.HLT_HIFullTracks2018_HighPt60_NoIter10_v1, process.HLT_HIL1DoubleMuOpen_v1, process.HLT_HIL1DoubleMuOpen_Centrality_30_100_v1, process.HLT_HIL1DoubleMuOpen_Centrality_40_100_v1, process.HLT_HIL1DoubleMuOpen_Centrality_50_100_v1, process.HLT_HIL1DoubleMuOpen_er1p6_v1, process.HLT_HIL1DoubleMuOpen_OS_er1p6_v1, process.HLT_HIL1DoubleMuOpen_OS_Centrality_30_100_v1, process.HLT_HIL1DoubleMuOpen_OS_Centrality_40_100_v1, process.HLT_HIL1DoubleMu0_v1, process.HLT_HIL1DoubleMu10_v1, process.HLT_HIL2_L1DoubleMu10_v1, process.HLT_HIL3_L1DoubleMu10_v1, process.HLT_HIL2DoubleMuOpen_v1, process.HLT_HIL3DoubleMuOpen_v1, process.HLT_HIL3DoubleMuOpen_M60120_v1, process.HLT_HIL3DoubleMuOpen_JpsiPsi_v1, process.HLT_HIL3DoubleMuOpen_Upsi_v1, process.HLT_HIL3Mu0_L2Mu0_v1, process.HLT_HIL3Mu2p5NHitQ10_L2Mu2_v1, process.HLT_HIL1MuOpen_Centrality_70_100_v1, process.HLT_HIL1MuOpen_Centrality_80_100_v1, process.HLT_HIL2Mu3_NHitQ15_v1, process.HLT_HIL2Mu5_NHitQ15_v1, process.HLT_HIL2Mu7_NHitQ15_v1, process.HLT_HIL2Mu3_NHitQ15_tagging_v1, process.HLT_HIL2Mu5_NHitQ15_tagging_v1, process.HLT_HIL2Mu7_NHitQ15_tagging_v1, process.HLT_HIL3Mu2p5_L1DoubleMu0_v1, process.HLT_HIL3Mu3_L1DoubleMuOpen_OS_v1, process.HLT_HIL3Mu3NHitQ10_L1DoubleMuOpen_v1, process.HLT_HIL3Mu3_L1TripleMuOpen_v1, process.HLT_HIL3Mu12_v1, process.HLT_HIL3Mu15_v1, process.HLT_HIL3Mu20_v1, process.HLT_HIL3Mu3_NHitQ10_v1, process.HLT_HIL3Mu5_NHitQ10_v1, process.HLT_HIL3Mu7_NHitQ10_v1, process.HLT_HIL3Mu3_NHitQ10_tagging_v1, process.HLT_HIL3Mu5_NHitQ10_tagging_v1, process.HLT_HIL3Mu7_NHitQ10_tagging_v1, process.HLT_HIL3Mu0NHitQ10_L2Mu0_MAXdR3p5_M1to5_v1, process.HLT_HIL3Mu2p5NHitQ10_L2Mu2_M7toinf_v1, process.HLT_HIL1_ETT8_ETTAsym50_MinimumBiasHF1_OR_BptxAND_v1, process.HLT_HIL1_ETT10_ETTAsym50_MinimumBiasHF1_OR_BptxAND_v1, process.HLT_HIL1_ETT60_ETTAsym65_MinimumBiasHF2_OR_PixelTracks10_v1, process.HLT_HIL1_ETT65_ETTAsym80_MinimumBiasHF2_OR_PixelTracks10_v1, process.HLT_HIFullTracks_Multiplicity020_HF1AND_v1, process.HLT_HIFullTracks_Multiplicity2040_HF1AND_v1, process.HLT_HIFullTracks_Multiplicity4060_v1, process.HLT_HIFullTracks_Multiplicity6080_v1, process.HLT_HIFullTracks_Multiplicity80100_v1, process.HLT_HIFullTracks_Multiplicity020_v1, process.HLT_HIFullTracks_Multiplicity020_HF1OR_v1, process.HLT_HIFullTracks_Multiplicity020_HF2OR_v1, process.HLT_HIFullTracks_Multiplicity2040_v1, process.HLT_HIFullTracks_Multiplicity2040_HF1OR_v1, process.HLT_HIFullTracks_Multiplicity2040_HF2OR_v1, process.HLT_HIFullTracks_Multiplicity335_HF1OR_v1, process.HLT_HIUPC_Mu8_Mu13_v1, process.HLT_HIUPC_Mu8_Mu13_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMuOpen_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleMuOpen_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMuOpen_NotMBHF2AND_v1, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2OR_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleMuOpen_NotMBHF2OR_v1, process.HLT_HIUPC_SingleMuOpen_NotMBHF2OR_v1, process.HLT_HIUPC_SingleMu0_NotMBHF2OR_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMu0_NotMBHF2AND_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMu0_NotMBHF2AND_v1, process.HLT_HIUPC_DoubleMu0_NotMBHF2OR_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleMu0_NotMBHF2AND_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleMu0_NotMBHF2AND_v1, process.HLT_HIUPC_DoubleMu0_NotMBHF2OR_v1, process.HLT_HIUPC_SingleMu0_NotMBHF2OR_v1, process.HLT_HIUPC_SingleMu3_NotMBHF2OR_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMu3_NotMBHF2OR_v1, process.HLT_HIUPC_SingleMu0_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleMu0_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_SingleMu3_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG2_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_SinglePixelTrack_v1, process.HLT_HIUPC_DoubleEG2_NotMBHF2AND_v1, process.HLT_HIUPC_NotMBHF2OR_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_NotMBHF2AND_SinglePixelTrack_v1, process.HLT_HIUPC_NotMBHF2AND_v1, process.HLT_HIUPC_NotMBHF2OR_BptxAND_SinglePixelTrack_v1, process.HLT_HIUPC_ZeroBias_SinglePixelTrack_v1, process.HLT_HIUPC_DoubleEG2_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG2_NotMBHF2OR_SinglePixelTrack_v1, process.HLT_HIUPC_DoubleEG2_NotMBHF2OR_v1, process.HLT_HIUPC_DoubleEG5_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_SinglePixelTrack_v1, process.HLT_HIUPC_DoubleEG5_NotMBHF2AND_v1, process.HLT_HIUPC_DoubleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG5_NotMBHF2OR_SinglePixelTrack_v1, process.HLT_HIUPC_DoubleEG5_NotMBHF2OR_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_SinglePixelTrack_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2AND_v1, process.HLT_HIUPC_SingleEG5_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_SinglePixelTrack_v1, process.HLT_HIUPC_SingleEG3_NotMBHF2AND_v1, process.HLT_HIUPC_SingleEG3_BptxAND_SinglePixelTrack_MaxPixelTrack_v1, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_SinglePixelTrack_v1, process.HLT_HIUPC_SingleEG3_NotMBHF2OR_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2OR_SinglePixelTrack_v1, process.HLT_HIUPC_SingleEG5_NotMBHF2OR_v1, process.HLT_HIUPC_ETT5_Asym50_NotMBHF2OR_v1, process.HLT_HIUPC_ETT5_Asym50_NotMBHF2OR_SinglePixelTrack_v1, process.HLT_HIUPC_ZeroBias_MaxPixelCluster_v1, process.HLT_HIUPC_SingleEG3_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_SingleEG5_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG2_BptxAND_MaxPixelTrack_v1, process.HLT_HIUPC_DoubleEG5_BptxAND_MaxPixelTrack_v1, process.HLT_HICsAK4PFJet60Eta1p5_v1, process.HLT_HICsAK4PFJet80Eta1p5_v1, process.HLT_HICsAK4PFJet100Eta1p5_v1, process.HLT_HICsAK4PFJet100Eta1p5_Beamspot_v1, process.HLT_HICsAK4PFJet120Eta1p5_v1, process.HLT_HICsAK4PFJet60Eta1p5_Centrality_30_100_v1, process.HLT_HICsAK4PFJet60Eta1p5_Centrality_50_100_v1, process.HLT_HICsAK4PFJet80Eta1p5_Centrality_30_100_v1, process.HLT_HICsAK4PFJet80Eta1p5_Centrality_50_100_v1, process.HLT_HICsAK4PFJet100Eta1p5_Centrality_30_100_v1, process.HLT_HICsAK4PFJet100Eta1p5_Centrality_50_100_v1, process.HLT_HIL3Mu3_EG10HECut_v1, process.HLT_HIL3Mu3_EG15HECut_v1, process.HLT_HIL3Mu3_EG20HECut_v1, process.HLT_HIL3Mu3_EG30HECut_v1, process.HLT_HIL3Mu5_EG10HECut_v1, process.HLT_HIL3Mu5_EG15HECut_v1, process.HLT_HIL3Mu5_EG20HECut_v1, process.HLT_HIL3Mu5_EG30HECut_v1, process.HLT_HIL3Mu7_EG10HECut_v1, process.HLT_HIL3Mu7_EG15HECut_v1, process.HLT_HIL3Mu7_EG20HECut_v1, process.HLT_HIL3Mu7_EG30HECut_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet40Eta2p1_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet60Eta2p1_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet80Eta2p1_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet100Eta2p1_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet40Eta2p1_FilterDr_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet60Eta2p1_FilterDr_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet80Eta2p1_FilterDr_v1, process.HLT_HIL3Mu3Eta2p5_PuAK4CaloJet100Eta2p1_FilterDr_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet40Eta2p1_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet60Eta2p1_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet80Eta2p1_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet100Eta2p1_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet40Eta2p1_FilterDr_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet60Eta2p1_FilterDr_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet80Eta2p1_FilterDr_v1, process.HLT_HIL3Mu5Eta2p5_PuAK4CaloJet100Eta2p1_FilterDr_v1, process.HLT_HICastor_MediumJet_NotMBHF2AND_v1, process.HLT_HICastor_MediumJet_NotMBHF2OR_v1, process.HLT_HICastor_MediumJet_MBHF1OR_BptxAND_v1, process.HLT_HICastor_MediumJet_SingleMu0_MBHF1OR_BptxAND_v1, process.HLT_HICastor_MediumJet_SingleEG5_MBHF1OR_BptxAND_v1, process.HLT_HICastor_MediumJet_BptxAND_v1, process.HLT_HICastor_MediumJet_v1, process.HLT_HICastor_HighJet_v1, process.HLT_HICastor_HighJet_BptxAND_v1, process.HLT_HICastor_HighJet_MBHF1OR_BptxAND_v1, process.HLT_HICastor_HighJet_NotMBHF2OR_v1, process.HLT_HICastor_HighJet_NotMBHF2AND_v1, process.HLT_HICastor_HighJet_MBHF1AND_BptxAND_v1, process.HLT_HICastor_HighJet_MBHF2AND_BptxAND_v1, process.HLT_HICastor_Muon_v1, process.HLT_HICastor_Muon_BptxAND_v1, process.HLT_HIIslandPhoton10_Eta2p4_Cent30_100_v1, process.HLT_HIIslandPhoton20_Eta2p4_Cent30_100_v1, process.HLT_HIIslandPhoton30_Eta2p4_Cent30_100_v1, process.HLT_HIIslandPhoton40_Eta2p4_Cent30_100_v1, process.HLT_HIIslandPhoton10_Eta2p4_Cent50_100_v1, process.HLT_HIIslandPhoton20_Eta2p4_Cent50_100_v1, process.HLT_HIIslandPhoton30_Eta2p4_Cent50_100_v1, process.HLT_HIIslandPhoton40_Eta2p4_Cent50_100_v1, process.HLT_HIGEDPhoton10_Cent30_100_v1, process.HLT_HIGEDPhoton20_Cent30_100_v1, process.HLT_HIGEDPhoton30_Cent30_100_v1, process.HLT_HIGEDPhoton40_Cent30_100_v1, process.HLT_HIGEDPhoton10_Cent50_100_v1, process.HLT_HIGEDPhoton20_Cent50_100_v1, process.HLT_HIGEDPhoton30_Cent50_100_v1, process.HLT_HIGEDPhoton40_Cent50_100_v1, process.HLT_HIPuAK4CaloJet60Eta2p4_DeepCSV0p4_v1, process.HLT_HIPuAK4CaloJet80Eta2p4_DeepCSV0p4_v1, process.HLT_HIPuAK4CaloJet100Eta2p4_DeepCSV0p4_v1, process.HLT_HIPuAK4CaloJet60Eta2p4_CSVv2WP0p75_v1, process.HLT_HIPuAK4CaloJet80Eta2p4_CSVv2WP0p75_v1, process.HLT_HIPuAK4CaloJet100Eta2p4_CSVv2WP0p75_v1, process.HLT_HIL1NotBptxOR_v1, process.HLT_HIL1UnpairedBunchBptxMinus_v1, process.HLT_HIL1UnpairedBunchBptxPlus_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part0_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part1_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part2_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part3_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part4_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part5_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part6_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part7_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part8_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part9_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part10_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part11_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part12_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part13_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part14_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part15_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part16_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part17_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part18_v1, process.HLT_HIMinimumBias_SinglePixelTrack_part19_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part0_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part1_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part2_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part3_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part4_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part5_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part6_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part7_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part8_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part9_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part10_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part11_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part12_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part13_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part14_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part15_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part16_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part17_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part18_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part19_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part20_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part21_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part22_v1, process.HLT_HIMinimumBiasRF_SinglePixelTrack_part23_v1, process.HLT_HIL1_ZDC_AND_OR_MinimumBiasHF1_AND_BptxAND_v1, process.HLT_HIL1_ZDC_AND_OR_MinimumBiasHF2_AND_BptxAND_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part0_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part1_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part2_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part3_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part4_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part5_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part6_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part7_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part8_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part9_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part10_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part11_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part12_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part13_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part14_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part15_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part16_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part17_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part18_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixBypass_part19_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part0_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part1_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part2_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part3_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part4_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part5_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part6_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part7_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part8_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part9_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part10_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part11_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part12_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part13_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part14_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part15_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part16_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part17_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part18_v1, process.HLT_HIMinimumBias_SinglePixelTrack_NpixGated_part19_v1, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.RatesMonitoring, process.DQMHistograms, process.PhysicsCommissioningOutput, process.PhysicsEGammaOutput, process.PhysicsEndOfFillOutput, process.PhysicsHadronsTausOutput, process.PhysicsMuonsOutput, process.PhysicsTracksOutput, process.PhysicsForwardOutput, process.ParkingBPH1Output, process.ParkingBPH2Output, process.ParkingBPH3Output, process.ParkingBPH4Output, process.ParkingBPH5Output, process.DQMOutput, process.DQMEventDisplayOutput, process.DQMCalibrationOutput, process.DQMOnlineBeamspotOutput, process.DQMGPUvsCPUOutput, process.HLTMonitorOutput, process.RPCMONOutput, process.CalibrationOutput, process.EcalCalibrationOutput, process.ALCAPHISYMOutput, process.ALCALumiPixelCountsExpressOutput, process.ALCALumiPixelCountsPromptOutput, process.ALCAP0Output, process.ALCAPPSOutput, process.ExpressOutput, process.ExpressCosmicsOutput, process.ExpressAlignmentOutput, process.NanoDSTOutput, process.ScoutingPFOutput, process.PhysicsScoutingPFMonitorOutput, process.PhysicsHLTPhysics0Output, process.PhysicsHLTPhysics1Output, process.PhysicsHLTPhysics2Output, process.PhysicsHLTPhysics3Output, process.PhysicsZeroBias0Output, process.PhysicsZeroBias1Output, process.PhysicsZeroBias2Output, process.PhysicsZeroBias3Output, process.PhysicsHIZeroBias1Output, process.PhysicsHIZeroBias2Output, process.PhysicsHIZeroBias3Output, process.PhysicsHIZeroBias4Output, process.PhysicsHIZeroBias5Output, process.PhysicsHIZeroBias6Output, process.PhysicsTOTEM1part0Output, process.PhysicsTOTEM1part1Output, process.PhysicsTOTEM1part2Output, process.PhysicsTOTEM1part3Output, process.PhysicsTOTEM2part0Output, process.PhysicsTOTEM2part1Output, process.PhysicsTOTEM2part2Output, process.PhysicsTOTEM2part3Output, process.PhysicsTOTEM3Output, process.PhysicsTOTEM4part0Output, process.PhysicsTOTEM4part1Output, process.PhysicsTOTEM4part2Output, process.PhysicsTOTEM4part3Output, process.PhysicsRandomTOTEM1Output, process.PhysicsRandomTOTEM2Output, process.PhysicsRandomTOTEM3Output, process.PhysicsRandomTOTEM4Output, process.PhysicsZeroBiasTOTEM1Output, process.PhysicsZeroBiasTOTEM2Output, process.PhysicsZeroBiasTOTEM3Output, process.PhysicsZeroBiasTOTEM4Output, process.PhysicsMinimumBias0Output, process.PhysicsMinimumBias1Output, process.PhysicsMinimumBias2Output, process.PhysicsMinimumBias3Output, process.PhysicsMinimumBias4Output, process.PhysicsMinimumBias5Output, process.PhysicsMinimumBias6Output, process.PhysicsMinimumBias7Output, process.PhysicsMinimumBias8Output, process.PhysicsMinimumBias9Output, process.PhysicsHICommissioningOutput, process.PhysicsHIDoubleMuonOutput, process.PhysicsHISingleMuonOutput, process.PhysicsHIHardProbesOutput, process.PhysicsHIMinimumBiasReducedFormat0Output, process.PhysicsHIMinimumBiasReducedFormat1Output, process.PhysicsHIMinimumBiasReducedFormat2Output, process.PhysicsHIMinimumBiasReducedFormat3Output, process.PhysicsHIMinimumBiasReducedFormat4Output, process.PhysicsHIMinimumBiasReducedFormat5Output, process.PhysicsHIMinimumBiasReducedFormat6Output, process.PhysicsHIMinimumBiasReducedFormat7Output, process.PhysicsHIMinimumBiasReducedFormat8Output, process.PhysicsHIMinimumBiasReducedFormat9Output, process.PhysicsHIMinimumBiasReducedFormat10Output, process.PhysicsHIMinimumBiasReducedFormat11Output, process.PhysicsHITrackerNZSOutput, process.PhysicsHIForwardOutput, process.HIHLTMonitorOutput, process.HIDQMOutput, process.HIDQMEventDisplayOutput, process.HIDQMOnlineBeamspotOutput, process.HIExpressOutput, process.HIExpressAlignmentOutput, process.PhysicsHIHardProbesLowerOutput, process.PhysicsHIHardProbesPeripheralOutput, process.PhysicsHIHeavyFlavorOutput, process.PhysicsHIHighMultiplicityOutput, process.PhysicsHILowMultiplicityOutput, process.PhysicsHILowMultiplicityReducedFormatOutput, process.PhysicsHIMinimumBias0Output, process.PhysicsHIMinimumBias1Output, process.PhysicsHIMinimumBias2Output, process.PhysicsHIMinimumBias3Output, process.PhysicsHIMinimumBias4Output, process.PhysicsHIMinimumBias5Output, process.PhysicsHIMinimumBias6Output, process.PhysicsHIMinimumBias7Output, process.PhysicsHIMinimumBias8Output, process.PhysicsHIMinimumBias9Output, process.PhysicsHIMinimumBias10Output, process.PhysicsHIMinimumBias11Output, process.PhysicsHIMinimumBias12Output, process.PhysicsHIMinimumBias13Output, process.PhysicsHIMinimumBias14Output, process.PhysicsHIMinimumBias15Output, process.PhysicsHIMinimumBias16Output, process.PhysicsHIMinimumBias17Output, process.PhysicsHIMinimumBias18Output, process.PhysicsHIMinimumBias19Output, process.Dataset_AlCaLumiPixelCountsExpress, process.Dataset_AlCaLumiPixelCountsPrompt, process.Dataset_AlCaP0, process.Dataset_AlCaPPS, process.Dataset_AlCaPhiSym, process.Dataset_BTagMu, process.Dataset_Commissioning, process.Dataset_Cosmics, process.Dataset_DQMGPUvsCPU, process.Dataset_DQMOnlineBeamspot, process.Dataset_DisplacedJet, process.Dataset_DoubleMuon, process.Dataset_DoubleMuonLowMass, process.Dataset_EGamma, process.Dataset_EcalLaser, process.Dataset_EmptyBX, process.Dataset_EphemeralHLTPhysics0, process.Dataset_EphemeralHLTPhysics1, process.Dataset_EphemeralHLTPhysics2, process.Dataset_EphemeralHLTPhysics3, process.Dataset_EphemeralHLTPhysics4, process.Dataset_EphemeralHLTPhysics5, process.Dataset_EphemeralHLTPhysics6, process.Dataset_EphemeralHLTPhysics7, process.Dataset_EphemeralZeroBias0, process.Dataset_EphemeralZeroBias1, process.Dataset_EphemeralZeroBias2, process.Dataset_EphemeralZeroBias3, process.Dataset_EphemeralZeroBias4, process.Dataset_EphemeralZeroBias5, process.Dataset_EphemeralZeroBias6, process.Dataset_EphemeralZeroBias7, process.Dataset_EventDisplay, process.Dataset_ExpressAlignment, process.Dataset_ExpressCosmics, process.Dataset_ExpressPhysics, process.Dataset_FSQJet1, process.Dataset_FSQJet2, process.Dataset_FullTrack, process.Dataset_HFvetoTOTEM, process.Dataset_HICastor, process.Dataset_HIDQMOnlineBeamspot, process.Dataset_HIDoubleMuon, process.Dataset_HIDoubleMuonPsiPeri, process.Dataset_HIEmptyBX, process.Dataset_HIEventDisplay, process.Dataset_HIExpressAlignment, process.Dataset_HIExpressPhysics, process.Dataset_HIForward, process.Dataset_HIHLTMonitor, process.Dataset_HIHLTPhysics, process.Dataset_HIHardProbes, process.Dataset_HIHardProbesLower, process.Dataset_HIHardProbesPeripheral, process.Dataset_HIHcalNZS, process.Dataset_HIHeavyFlavor, process.Dataset_HIHighMultiplicityETTAsym, process.Dataset_HILowMultiplicity, process.Dataset_HILowMultiplicityReducedFormat, process.Dataset_HIMinimumBias0, process.Dataset_HIMinimumBias1, process.Dataset_HIMinimumBias10, process.Dataset_HIMinimumBias11, process.Dataset_HIMinimumBias12, process.Dataset_HIMinimumBias13, process.Dataset_HIMinimumBias14, process.Dataset_HIMinimumBias15, process.Dataset_HIMinimumBias16, process.Dataset_HIMinimumBias17, process.Dataset_HIMinimumBias18, process.Dataset_HIMinimumBias19, process.Dataset_HIMinimumBias2, process.Dataset_HIMinimumBias3, process.Dataset_HIMinimumBias4, process.Dataset_HIMinimumBias5, process.Dataset_HIMinimumBias6, process.Dataset_HIMinimumBias7, process.Dataset_HIMinimumBias8, process.Dataset_HIMinimumBias9, process.Dataset_HIMinimumBiasReducedFormat0, process.Dataset_HIMinimumBiasReducedFormat1, process.Dataset_HIMinimumBiasReducedFormat10, process.Dataset_HIMinimumBiasReducedFormat11, process.Dataset_HIMinimumBiasReducedFormat2, process.Dataset_HIMinimumBiasReducedFormat3, process.Dataset_HIMinimumBiasReducedFormat4, process.Dataset_HIMinimumBiasReducedFormat5, process.Dataset_HIMinimumBiasReducedFormat6, process.Dataset_HIMinimumBiasReducedFormat7, process.Dataset_HIMinimumBiasReducedFormat8, process.Dataset_HIMinimumBiasReducedFormat9, process.Dataset_HINCaloJets, process.Dataset_HINPFJets, process.Dataset_HIOnlineMonitor, process.Dataset_HISingleMuon, process.Dataset_HITrackerNZS, process.Dataset_HIZeroBias1, process.Dataset_HIZeroBias10, process.Dataset_HIZeroBias11, process.Dataset_HIZeroBias12, process.Dataset_HIZeroBias2, process.Dataset_HIZeroBias3, process.Dataset_HIZeroBias4, process.Dataset_HIZeroBias5, process.Dataset_HIZeroBias6, process.Dataset_HIZeroBias7, process.Dataset_HIZeroBias8, process.Dataset_HIZeroBias9, process.Dataset_HLTMonitor, process.Dataset_HLTPhysics, process.Dataset_HcalNZS, process.Dataset_HeavyFlavor, process.Dataset_HighMultiplicity, process.Dataset_HighPtJet80, process.Dataset_HighPtLowerJets, process.Dataset_HighPtLowerPhotons, process.Dataset_HighPtPhoton30AndZ, process.Dataset_IsolatedBunch, process.Dataset_JetHT, process.Dataset_JetsTOTEM, process.Dataset_L1Accept, process.Dataset_L1MinimumBias, process.Dataset_MET, process.Dataset_MinBiasTOTEM, process.Dataset_MinimumBias, process.Dataset_MinimumBias0, process.Dataset_MinimumBias1, process.Dataset_MinimumBias2, process.Dataset_MinimumBias3, process.Dataset_MinimumBias4, process.Dataset_MinimumBias5, process.Dataset_MinimumBias6, process.Dataset_MinimumBias7, process.Dataset_MinimumBias8, process.Dataset_MinimumBias9, process.Dataset_MonteCarlo, process.Dataset_MuPlusX, process.Dataset_MuonEG, process.Dataset_MuonEGammaTOTEM, process.Dataset_NoBPTX, process.Dataset_OnlineMonitor, process.Dataset_ParkingBPH1, process.Dataset_ParkingBPH2, process.Dataset_ParkingBPH3, process.Dataset_ParkingBPH4, process.Dataset_ParkingBPH5, process.Dataset_ParkingBPHPromptCSCS, process.Dataset_RPCMonitor, process.Dataset_RandomTOTEM1, process.Dataset_RandomTOTEM2, process.Dataset_RandomTOTEM3, process.Dataset_RandomTOTEM4, process.Dataset_ScoutingPFMonitor, process.Dataset_ScoutingPFRun3, process.Dataset_SingleMuHighPt, process.Dataset_SingleMuLowPt, process.Dataset_SingleMuon, process.Dataset_TOTEM1part0, process.Dataset_TOTEM1part1, process.Dataset_TOTEM1part2, process.Dataset_TOTEM1part3, process.Dataset_TOTEM2part0, process.Dataset_TOTEM2part1, process.Dataset_TOTEM2part2, process.Dataset_TOTEM2part3, process.Dataset_TOTEM3, process.Dataset_TOTEM4part0, process.Dataset_TOTEM4part1, process.Dataset_TOTEM4part2, process.Dataset_TOTEM4part3, process.Dataset_Tau, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.Dataset_ZeroBias, process.Dataset_ZeroBiasTOTEM, process.Dataset_ZeroBiasTOTEM1, process.Dataset_ZeroBiasTOTEM2, process.Dataset_ZeroBiasTOTEM3, process.Dataset_ZeroBiasTOTEM4, process.Dataset_ppForward, )) # source module (EDM inputs) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_GRun.py b/HLTrigger/Configuration/test/OnLine_HLT_GRun.py index d4ce2323626c2..750805b045ad7 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_GRun.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_GRun.py @@ -1,6 +1,6 @@ # hltGetConfiguration --full --data /dev/CMSSW_12_4_0/GRun --type GRun --unprescale --process HLTGRun --globaltag auto:run3_hlt_GRun --input file:RelVal_Raw_GRun_DATA.root -# /dev/CMSSW_12_4_0/GRun/V13 (CMSSW_12_4_0_pre4) +# /dev/CMSSW_12_4_0/GRun/V22 (CMSSW_12_4_0_pre4) import FWCore.ParameterSet.Config as cms @@ -12,7 +12,7 @@ process.ProcessAcceleratorCUDA = ProcessAcceleratorCUDA() process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_4_0/GRun/V13') + tableName = cms.string('/dev/CMSSW_12_4_0/GRun/V22') ) process.transferSystem = cms.PSet( @@ -2668,7 +2668,20 @@ 'HLT_CscCluster_Loose_v1', 'HLT_CscCluster_Medium_v1', 'HLT_CscCluster_Tight_v1', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT425_v9', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1', @@ -2707,6 +2720,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2', 'HLT_DoubleL2Mu50_v2', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10', 'HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10', @@ -2716,6 +2730,7 @@ 'HLT_DoubleMu43NoFiltersNoVtx_v4', 'HLT_DoubleMu48NoFiltersNoVtx_v4', 'HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15', @@ -2816,6 +2831,17 @@ 'HLT_Trimuon5_3p5_2_Upsilon_Muon_v5', 'HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v3' ), EGamma = cms.vstring( 'HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4', + 'HLT_DiPhoton10Time1ns_v1', + 'HLT_DiPhoton10Time1p2ns_v1', + 'HLT_DiPhoton10Time1p4ns_v1', + 'HLT_DiPhoton10Time1p6ns_v1', + 'HLT_DiPhoton10Time1p8ns_v1', + 'HLT_DiPhoton10Time2ns_v1', + 'HLT_DiPhoton10_CaloIdL_v1', + 'HLT_DiPhoton10sminlt0p12_v1', + 'HLT_DiPhoton10sminlt0p14_v1', + 'HLT_DiPhoton10sminlt0p16_v1', + 'HLT_DiPhoton10sminlt0p1_v1', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13', 'HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13', 'HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2', @@ -3242,7 +3268,8 @@ 'MC_PFHT_v16', 'MC_PFMET_v17', 'MC_PFMHT_v16', - 'MC_ReducedIterativeTracking_v12' ), + 'MC_ReducedIterativeTracking_v12', + 'MC_Run3_PFScoutingPixelTracking_v16' ), MuonEG = cms.vstring( 'HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v17', 'HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v17', 'HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v17', @@ -3398,6 +3425,17 @@ 'HLT_DiPFJetAve60_v14', 'HLT_DiPFJetAve80_HFJEC_v16', 'HLT_DiPFJetAve80_v13', + 'HLT_DiPhoton10Time1ns_v1', + 'HLT_DiPhoton10Time1p2ns_v1', + 'HLT_DiPhoton10Time1p4ns_v1', + 'HLT_DiPhoton10Time1p6ns_v1', + 'HLT_DiPhoton10Time1p8ns_v1', + 'HLT_DiPhoton10Time2ns_v1', + 'HLT_DiPhoton10_CaloIdL_v1', + 'HLT_DiPhoton10sminlt0p12_v1', + 'HLT_DiPhoton10sminlt0p14_v1', + 'HLT_DiPhoton10sminlt0p16_v1', + 'HLT_DiPhoton10sminlt0p1_v1', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13', 'HLT_Dimuon0_Jpsi3p5_Muon2_v5', 'HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7', @@ -3455,6 +3493,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2', 'HLT_DoubleL2Mu50_v2', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1', 'HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1', @@ -3525,8 +3564,7 @@ 'HLT_Ele250_CaloIdVT_GsfTrkIdT_v13', 'HLT_Ele27_Ele37_CaloIdL_MW_v4', 'HLT_Ele27_WPTight_Gsf_v16', - 'HLT_Ele28_HighEta_SC20_Mass55_v13', - 'HLT_Ele28_WPTight_Gsf_v1', + 'HLT_Ele28_HighEta_SC20_Mass55_v13')+cms.vstring( 'HLT_Ele28_WPTight_Gsf_v1', 'HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v13', 'HLT_Ele300_CaloIdVT_GsfTrkIdT_v13', 'HLT_Ele30_WPTight_Gsf_v1', @@ -3537,10 +3575,24 @@ 'HLT_Ele35_WPTight_Gsf_v9', 'HLT_Ele38_WPTight_Gsf_v9', 'HLT_Ele40_WPTight_Gsf_v9', - 'HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18')+cms.vstring( 'HLT_Ele50_IsoVVVL_PFHT450_v16', + 'HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18', + 'HLT_Ele50_IsoVVVL_PFHT450_v16', 'HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v16', 'HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v18', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT425_v9', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1', @@ -3590,6 +3642,7 @@ 'HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5', 'HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4', 'HLT_L2Mu50_v2', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1', 'HLT_MET105_IsoTrk50_v9', 'HLT_MET120_IsoTrk50_v9', 'HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12', @@ -3765,8 +3818,7 @@ 'HLT_PFJetFwd60_v19', 'HLT_PFJetFwd80_v18', 'HLT_PFMET100_PFMHT100_IDTight_CaloBTagDeepCSV_3p1_v8', - 'HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9', - 'HLT_PFMET105_IsoTrk50_v1', + 'HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9')+cms.vstring( 'HLT_PFMET105_IsoTrk50_v1', 'HLT_PFMET105_PFJet100_looseRecoiling_v1', 'HLT_PFMET110_PFJet100_looseRecoiling_v1', 'HLT_PFMET110_PFJet100_v1', @@ -3791,7 +3843,8 @@ 'HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v19', 'HLT_PFMETTypeOne100_PFMHT100_IDTight_PFHT60_v9', 'HLT_PFMETTypeOne110_PFMHT110_IDTight_v12', - 'HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9')+cms.vstring( 'HLT_PFMETTypeOne120_PFMHT120_IDTight_v12', + 'HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9', + 'HLT_PFMETTypeOne120_PFMHT120_IDTight_v12', 'HLT_PFMETTypeOne130_PFMHT130_IDTight_v12', 'HLT_PFMETTypeOne140_PFMHT140_IDTight_v11', 'HLT_PFMETTypeOne200_BeamHaloCleaned_v9', @@ -4062,11 +4115,12 @@ ) ), DumpStat = cms.untracked.bool( False ), - ReconnectEachRun = cms.untracked.bool( False ), + ReconnectEachRun = cms.untracked.bool( True ), RefreshAlways = cms.untracked.bool( False ), - RefreshEachRun = cms.untracked.bool( False ), + RefreshEachRun = cms.untracked.bool( True ), RefreshOpenIOVs = cms.untracked.bool( False ), - pfnPostfix = cms.untracked.string( "None" ) + pfnPostfix = cms.untracked.string( "" ), + pfnPrefix = cms.untracked.string( "" ) ) process.HcalTimeSlewEP = cms.ESSource( "HcalTimeSlewEP", appendToDataLabel = cms.string( "HBHE" ), @@ -17295,9 +17349,9 @@ propagatorAny = cms.ESInputTag( "","SteppingHelixPropagatorAny" ), propagatorOpposite = cms.ESInputTag( "","hltESPSteppingHelixPropagatorOpposite" ) ) -process.hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9 = cms.EDFilter( "HLTL1TSeed", +process.hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50 = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleMu0er1p5_SQ_OS_dR_Max1p4 OR L1_DoubleMu0er1p4_SQ_OS_dR_Max1p4 OR L1_TripleMu_5SQ_3SQ_0_DoubleMu_5_3_SQ_OS_Mass_Max9 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_DoubleMu4p5_SQ_OS_dR_Max1p2" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleMu0er2p0_SQ_OS_dEta_Max1p6 OR L1_DoubleMu0er2p0_SQ_OS_dEta_Max1p5 OR L1_DoubleMu0er1p5_SQ_OS_dR_Max1p4 OR L1_DoubleMu0er1p4_SQ_OS_dR_Max1p4 OR L1_TripleMu_5SQ_3SQ_0_DoubleMu_5_3_SQ_OS_Mass_Max9 OR L1_TripleMu_5SQ_3SQ_0OQ_DoubleMu_5_3_SQ_OS_Mass_Max9 OR L1_TripleMu_2SQ_1p5SQ_0OQ_Mass_Max12 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_DoubleMu4p5_SQ_OS_dR_Max1p2" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -17314,7 +17368,7 @@ process.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 = cms.EDFilter( "HLTMuonL1TFilter", saveTags = cms.bool( True ), CandTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), - PreviousCandTag = cms.InputTag( "hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9" ), + PreviousCandTag = cms.InputTag( "hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50" ), MaxEta = cms.double( 2.5 ), MinPt = cms.double( 0.0 ), MaxDeltaR = cms.double( 0.3 ), @@ -17369,10 +17423,10 @@ MaxDr = cms.double( 0.6 ), MaxDz = cms.double( 9999.0 ), ChargeOpt = cms.int32( 0 ), - MinPtPair = cms.vdouble( 6.0 ), + MinPtPair = cms.vdouble( 5.0 ), MaxPtPair = cms.vdouble( 1.0E125 ), MinPtMax = cms.vdouble( 0.0 ), - MinPtMin = cms.vdouble( 3.0 ), + MinPtMin = cms.vdouble( 2.5 ), MaxPtMin = cms.vdouble( 1.0E125 ), MinInvMass = cms.vdouble( 0.5 ), MaxInvMass = cms.vdouble( 1.7 ), @@ -17951,7 +18005,7 @@ PreviousCandTag = cms.InputTag( "hltdstau3mumuontrkFltr" ), MaxEta = cms.double( 2.5 ), MinPt = cms.double( 1.2 ), - MinPtTriplet = cms.double( 8.0 ), + MinPtTriplet = cms.double( 7.0 ), MinInvMass = cms.double( 1.6 ), MaxInvMass = cms.double( 2.1 ), ChargeOpt = cms.int32( -1 ) @@ -63359,7 +63413,7 @@ ) process.hltL1sDSTRun3PFScoutingPixelTracking = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), - L1SeedsLogicalExpression = cms.string( "L1_DoubleMu_12_5 OR L1_DoubleMu_15_7 OR L1_HTT200er OR L1_HTT255er OR L1_HTT280er OR L1_HTT320er OR L1_HTT360er OR L1_ETT2000 OR L1_HTT400er OR L1_HTT450er OR L1_SingleJet180 OR L1_SingleJet200 OR L1_DoubleJet30er2p5_Mass_Min300_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min330_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min360_dEta_Max1p5 OR L1_DoubleMu4p5er2p0_SQ_OS_Mass_Min7 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_SingleEG36er2p5 OR L1_SingleLooseIsoEG28er2p1" ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleMu_12_5 OR L1_DoubleMu_15_7 OR L1_HTT200er OR L1_HTT255er OR L1_HTT280er OR L1_HTT320er OR L1_HTT360er OR L1_ETT2000 OR L1_HTT400er OR L1_HTT450er OR L1_SingleJet180 OR L1_SingleJet200 OR L1_DoubleJet30er2p5_Mass_Min300_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min330_dEta_Max1p5 OR L1_DoubleJet30er2p5_Mass_Min360_dEta_Max1p5 OR L1_DoubleMu4p5er2p0_SQ_OS_Mass_Min7 OR L1_DoubleMu4_SQ_OS_dR_Max1p2 OR L1_SingleLooseIsoEG28er2p1 OR L1_DoubleEG_LooseIso18_LooseIso12_er1p5" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), @@ -64554,7 +64608,7 @@ vertexCollection = cms.InputTag( "hltPixelVertices" ), mantissaPrecision = cms.int32( 10 ), vtxMinDist = cms.double( 0.01 ), - ptMin = cms.double( 0.3 ) + ptMin = cms.double( 3.0 ) ) process.hltScoutingPrimaryVertexPacker = cms.EDProducer( "HLTScoutingPrimaryVertexProducer", vertexCollection = cms.InputTag( 'hltPixelVertices','','@currentProcess' ), @@ -64610,7 +64664,7 @@ egammaHoverECut = cms.double( 1.0 ), saveRecHitTiming = cms.bool( False ), mantissaPrecision = cms.int32( 10 ), - rechitMatrixSize = cms.int32( 15 ), + rechitMatrixSize = cms.int32( 10 ), rechitZeroSuppression = cms.bool( True ), ecalRechitEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), ecalRechitEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ) @@ -67509,6 +67563,22 @@ MinJets = cms.int32( 1 ), TriggerType = cms.int32( 86 ) ) +process.hltL1sMCRun3PFScoutingPixelTracking = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1GlobalDecision" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +process.hltPreMCRun3PFScoutingPixelTracking = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltL1sAlCaEcalPi0Eta = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_AlwaysTrue OR L1_IsolatedBunch OR L1_SingleEG8er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG26er2p5 OR L1_SingleEG34er2p5 OR L1_SingleEG36er2p5 OR L1_SingleEG38er2p5 OR L1_SingleEG40er2p5 OR L1_SingleEG42er2p5 OR L1_SingleEG45er2p5 OR L1_SingleEG60 OR L1_SingleIsoEG26er2p5 OR L1_SingleIsoEG28er2p5 OR L1_SingleIsoEG30er2p5 OR L1_SingleIsoEG32er2p5 OR L1_SingleIsoEG34er2p5 OR L1_SingleIsoEG24er2p1 OR L1_SingleIsoEG26er2p1 OR L1_SingleIsoEG28er2p1 OR L1_SingleIsoEG30er2p1 OR L1_SingleIsoEG32er2p1 OR L1_DoubleEG_22_10_er2p5 OR L1_DoubleEG_25_14_er2p5 OR L1_DoubleEG_25_12_er2p5 OR L1_SingleJet35 OR L1_SingleJet60 OR L1_SingleJet90 OR L1_SingleJet120 OR L1_SingleJet140er2p5 OR L1_SingleJet160er2p5 OR L1_SingleJet180 OR L1_SingleJet200 OR L1_DoubleJet40er2p5 OR L1_DoubleJet100er2p5 OR L1_DoubleJet120er2p5 OR L1_QuadJet60er2p5 OR L1_HTT120er OR L1_HTT160er OR L1_HTT200er OR L1_HTT255er OR L1_HTT280er OR L1_HTT320er" ), @@ -72804,7 +72874,7 @@ L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) ) -process.hltL1sDoubleTauJet = cms.EDFilter( "HLTL1TSeed", +process.hltL1sBigORDoubleTauJet = cms.EDFilter( "HLTL1TSeed", saveTags = cms.bool( True ), L1SeedsLogicalExpression = cms.string( "L1_DoubleIsoTau26er2p1_Jet55_RmOvlp_dR0p5" ), L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), @@ -72844,7 +72914,7 @@ L1TauTrigger = cms.InputTag( "hltL1sMu22erIsoTau40er" ) ), cms.PSet( L1CollectionName = cms.string( "DoubleTauJet" ), - L1TauTrigger = cms.InputTag( "hltL1sDoubleTauJet" ) + L1TauTrigger = cms.InputTag( "hltL1sBigORDoubleTauJet" ) ), cms.PSet( L1CollectionName = cms.string( "VBFIsoTau" ), L1TauTrigger = cms.InputTag( "hltL1VBFDiJetIsoTau" ) @@ -72871,7 +72941,7 @@ nExpected = cms.int32( 2 ), L1TauSrc = cms.InputTag( "hltL1sDoubleTauBigOR" ), L2Outcomes = cms.InputTag( 'hltL2TauTagNNProducer','DoubleTau' ), - DiscrWP = cms.double( 0.4327 ), + DiscrWP = cms.double( 0.386 ), l1TauPtThreshold = cms.double( 250.0 ) ) process.hltL1sTauVeryBigOR = cms.EDFilter( "HLTL1TSeed", @@ -73291,10 +73361,9 @@ is_online = cms.bool( True ), VSeWP = cms.vstring( '-1.' ), VSmuWP = cms.vstring( '-1.' ), - VSjetWP = cms.vstring( 'double t1 = 0.5701, t2 = 0.4610, t3 = 0.125, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', - 'double t1 = 0.844, t2 = 0.8457, t3 = 0.125, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', - 'double t1 = 0.5890, t2 = 0.3310, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', - 'double t1 = 0.9619, t2 = 0.9269, t3 = 0.5, x1 = 50, x2 = 300, x3 = 500; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', + VSjetWP = cms.vstring( 'double t1 = 0.62, t2 = 0.3891, t3 = 0.05, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', + 'double t1 = 0.7045, t2 = 0.7029, t3 = 0.05, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', + 'double t1 = 0.5419, t2 = 0.4837, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;', 'double t1 = 0.6072, t2 = 0.125, x1 = 180, x2 = 500; if (pt <= x1) return t1; if (pt >= x2) return t2; return (t2 - t1) / (x2 - x1) * (pt - x1) + t1;' ), basicTauDiscriminators = cms.untracked.InputTag( "hltHpsPFTauBasicDiscriminatorsForDeepTau" ), basicTauDiscriminatorsdR03 = cms.untracked.InputTag( "hltHpsPFTauBasicDiscriminatorsdR03ForDeepTau" ), @@ -73310,7 +73379,7 @@ cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.5701, t2 = 0.4610, t3 = 0.125, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.62, t2 = 0.3891, t3 = 0.05, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -73333,15 +73402,6 @@ MaxEta = cms.double( 2.1 ), MinN = cms.int32( 2 ) ) -process.hltHpsDoublePFTau35MediumDitauWPDeepTauDz02 = cms.EDFilter( "HLTPFTauPairDzMatchFilter", - saveTags = cms.bool( True ), - JetSrc = cms.InputTag( "hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatch" ), - JetMinPt = cms.double( 35.0 ), - JetMaxEta = cms.double( 2.1 ), - JetMinDR = cms.double( 0.5 ), - JetMaxDZ = cms.double( 0.2 ), - TriggerType = cms.int32( 84 ) -) process.hltPreDoubleMediumChargedIsoPFTauHPS40Trk1eta2p1 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -73686,10 +73746,10 @@ discriminators = cms.VPSet( ), discriminatorContainers = cms.VPSet( - cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), + cms.PSet( discriminator = cms.InputTag( 'hltHpsPFTauDeepTauProducer','VSjet' ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.844, t2 = 0.8457, t3 = 0.125, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.7045, t2 = 0.7029, t3 = 0.05, x1 = 30, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -73768,7 +73828,7 @@ cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.5890, t2 = 0.3310, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.5419, t2 = 0.4837, t3 = 0.050, x1 = 27, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -74246,7 +74306,7 @@ nExpected = cms.int32( 1 ), L1TauSrc = cms.InputTag( "hltL1sBigOrMuXXerIsoTauYYer" ), L2Outcomes = cms.InputTag( 'hltL2TauTagNNProducer','MuXXTauYY' ), - DiscrWP = cms.double( 0.4327 ), + DiscrWP = cms.double( 0.386 ), l1TauPtThreshold = cms.double( 250.0 ) ) process.hltHpsSinglePFTau35 = cms.EDFilter( "HLT1PFTau", @@ -74364,7 +74424,7 @@ saveTags = cms.bool( True ), Jets = cms.InputTag( "hltPFJetForBtag" ), JetTags = cms.InputTag( 'hltDeepJetDiscriminatorsJetTags','BvsAll' ), - MinTag = cms.double( 0.24 ), + MinTag = cms.double( 0.28746 ), MaxTag = cms.double( 999999.0 ), MinJets = cms.int32( 2 ), TriggerType = cms.int32( 86 ) @@ -75725,6 +75785,18 @@ TriggerType = cms.int32( 85 ), deltaR = cms.double( 0.8 ) ) +process.hltL1sDoubleTauJet = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_DoubleIsoTau26er2p1_Jet55_RmOvlp_dR0p5" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) process.hltPreDoubleMediumDeepTauIsoPFTauHPS30L2NNeta2p1PFJet60 = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -75732,9 +75804,9 @@ process.hltL2DoubleTauJetTagNNFilter = cms.EDFilter( "L2TauTagFilter", saveTags = cms.bool( True ), nExpected = cms.int32( 2 ), - L1TauSrc = cms.InputTag( "hltL1sDoubleTauJet" ), + L1TauSrc = cms.InputTag( "hltL1sBigORDoubleTauJet" ), L2Outcomes = cms.InputTag( 'hltL2TauTagNNProducer','DoubleTauJet' ), - DiscrWP = cms.double( 0.4327 ), + DiscrWP = cms.double( 0.386 ), l1TauPtThreshold = cms.double( 250.0 ) ) process.hltHpsSelectedPFTausMediumDitauWPDeepTauDoubleTauJet = cms.EDFilter( "PFTauSelector", @@ -75746,7 +75818,7 @@ cms.PSet( discriminator = cms.InputTag( "hltHpsPFTauDeepTauProducer", "VSjet" ), rawValues = cms.vstring( ), selectionCuts = cms.vdouble( ), - workingPoints = cms.vstring( 'double t1 = 0.5701, t2 = 0.4610, t3 = 0.125, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) + workingPoints = cms.vstring( 'double t1 = 0.62, t2 = 0.3891, t3 = 0.05, x1 = 35, x2 = 100, x3 = 300; if (pt <= x1) return t1; if (pt >= x3) return t3; if (pt < x2) return (t2 - t1) / (x2 - x1) * (pt - x1) + t1; return (t3 - t2) / (x3 - x2) * (pt - x2) + t2;' ) ) ) ) @@ -75769,15 +75841,6 @@ MaxEta = cms.double( 2.1 ), MinN = cms.int32( 2 ) ) -process.hltHpsDoublePFTau30MediumDitauWPDeepTauDz02DoubleTauJet = cms.EDFilter( "HLTPFTauPairDzMatchFilter", - saveTags = cms.bool( True ), - JetSrc = cms.InputTag( "hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatchDoubleTauJet" ), - JetMinPt = cms.double( 30.0 ), - JetMaxEta = cms.double( 2.1 ), - JetMinDR = cms.double( 0.5 ), - JetMaxDZ = cms.double( 0.2 ), - TriggerType = cms.int32( 84 ) -) process.hlt1PFJet60L1HLTMatched = cms.EDFilter( "HLT1PFJet", saveTags = cms.bool( True ), inputTag = cms.InputTag( "hltPFJetsCorrectedMatchedToL1" ), @@ -79463,6 +79526,1707 @@ MaxPt = cms.double( -1.0 ), MinN = cms.int32( 1 ) ) +process.hltPreDoubleL3Iter4Mu1610NoVtxDxyMin0p01cm = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltIterL3TrajSeedOIStateFromDisplacedL2Muons = cms.EDProducer( "TSGFromL2Muon", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSteppingHelixPropagatorOpposite', + 'hltESPSteppingHelixPropagatorAlong' ) + ), + MuonTrackingRegionBuilder = cms.PSet( ), + TrackerSeedCleaner = cms.PSet( ), + TkSeedGenerator = cms.PSet( + copyMuonRecHit = cms.bool( False ), + propagatorName = cms.string( "hltESPSteppingHelixPropagatorAlong" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + errorMatrixPset = cms.PSet( + atIP = cms.bool( True ), + action = cms.string( "use" ), + errorMatrixValuesPSet = cms.PSet( + xAxis = cms.vdouble( 0.0, 13.0, 30.0, 70.0, 1000.0 ), + zAxis = cms.vdouble( -3.14159, 3.14159 ), + yAxis = cms.vdouble( 0.0, 1.0, 1.4, 10.0 ), + pf3_V14 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V25 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V13 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V24 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V35 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V12 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V23 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V34 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V45 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V11 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V22 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V33 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V44 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V55 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V15 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ) + ) + ), + ComponentName = cms.string( "TSGForRoadSearch" ), + maxChi2 = cms.double( 40.0 ), + manySeeds = cms.bool( False ), + propagatorCompatibleName = cms.string( "hltESPSteppingHelixPropagatorOpposite" ), + option = cms.uint32( 3 ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + PtCut = cms.double( 1.0 ), + PCut = cms.double( 2.5 ) +) +process.hltIterL3OIStateGlbDisplacedTrackCandidates = cms.EDProducer( "CkfTrackCandidateMaker", + cleanTrajectoryAfterInOut = cms.bool( False ), + doSeedingRegionRebuilding = cms.bool( False ), + onlyPixelHitsForSeedCleaner = cms.bool( False ), + reverseTrajectories = cms.bool( True ), + useHitsSplitting = cms.bool( False ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + src = cms.InputTag( "hltIterL3TrajSeedOIStateFromDisplacedL2Muons" ), + clustersToSkip = cms.InputTag( "" ), + phase2clustersToSkip = cms.InputTag( "" ), + TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetMuonCkfTrajectoryBuilder" ) ), + TransientInitialStateEstimatorParameters = cms.PSet( + propagatorAlongTISE = cms.string( "PropagatorWithMaterial" ), + numberMeasurementsForFit = cms.int32( 3 ), + propagatorOppositeTISE = cms.string( "PropagatorWithMaterialOpposite" ) + ), + numHitsForSeedCleaner = cms.int32( 4 ), + NavigationSchool = cms.string( "SimpleNavigationSchool" ), + RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), + TrajectoryCleaner = cms.string( "muonSeededTrajectoryCleanerBySharedHits" ), + maxNSeeds = cms.uint32( 500000 ), + maxSeedsBeforeCleaning = cms.uint32( 5000 ) +) +process.hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks = cms.EDProducer( "TrackProducer", + useSimpleMF = cms.bool( False ), + SimpleMagneticField = cms.string( "" ), + src = cms.InputTag( "hltIterL3OIStateGlbDisplacedTrackCandidates" ), + clusterRemovalInfo = cms.InputTag( "" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Fitter = cms.string( "hltESPKFFittingSmootherWithOutliersRejectionAndRK" ), + useHitsSplitting = cms.bool( False ), + alias = cms.untracked.string( "" ), + TrajectoryInEvent = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + AlgorithmName = cms.string( "iter10" ), + Propagator = cms.string( "PropagatorWithMaterial" ), + GeometricInnerState = cms.bool( True ), + NavigationSchool = cms.string( "" ), + MeasurementTracker = cms.string( "" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ) +) +process.hltL3GlbDisplacedMuonsIterL3OIState = cms.EDProducer( "L3MuonProducer", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSmartPropagatorAny', + 'SteppingHelixPropagatorAny', + 'hltESPSmartPropagator', + 'hltESPSteppingHelixPropagatorOpposite' ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + TrackLoaderParameters = cms.PSet( + MuonSeededTracksInstance = cms.untracked.string( "L2Seeded" ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + DoSmoothing = cms.bool( True ), + SmoothTkTrack = cms.untracked.bool( False ), + VertexConstraint = cms.bool( False ), + MuonUpdatorAtVertexParameters = cms.PSet( + MaxChi2 = cms.double( 1000000.0 ), + BeamSpotPositionErrors = cms.vdouble( 0.1, 0.1, 5.3 ), + Propagator = cms.string( "hltESPSteppingHelixPropagatorOpposite" ) + ), + PutTkTrackIntoEvent = cms.untracked.bool( False ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + L3TrajBuilderParameters = cms.PSet( + PtCut = cms.double( 1.0 ), + TrackerPropagator = cms.string( "SteppingHelixPropagatorAny" ), + GlobalMuonTrackMatcher = cms.PSet( + Chi2Cut_3 = cms.double( 200.0 ), + DeltaDCut_2 = cms.double( 10.0 ), + Eta_threshold = cms.double( 1.2 ), + Quality_2 = cms.double( 15.0 ), + DeltaDCut_1 = cms.double( 40.0 ), + Quality_3 = cms.double( 7.0 ), + DeltaDCut_3 = cms.double( 15.0 ), + Quality_1 = cms.double( 20.0 ), + Pt_threshold1 = cms.double( 0.0 ), + DeltaRCut_2 = cms.double( 0.2 ), + DeltaRCut_1 = cms.double( 0.1 ), + Pt_threshold2 = cms.double( 9.99999999E8 ), + Chi2Cut_1 = cms.double( 50.0 ), + Chi2Cut_2 = cms.double( 50.0 ), + DeltaRCut_3 = cms.double( 1.0 ), + LocChi2Cut = cms.double( 0.001 ), + Propagator = cms.string( "hltESPSmartPropagator" ), + MinPt = cms.double( 1.0 ), + MinP = cms.double( 2.5 ) + ), + ScaleTECxFactor = cms.double( -1.0 ), + tkTrajUseVertex = cms.bool( False ), + MuonTrackingRegionBuilder = cms.PSet( + Rescale_Dz = cms.double( 4.0 ), + Pt_fixed = cms.bool( False ), + Eta_fixed = cms.bool( True ), + Eta_min = cms.double( 0.1 ), + DeltaZ = cms.double( 24.2 ), + maxRegions = cms.int32( 2 ), + EtaR_UpperLimit_Par1 = cms.double( 0.25 ), + UseVertex = cms.bool( False ), + Z_fixed = cms.bool( False ), + PhiR_UpperLimit_Par1 = cms.double( 0.6 ), + PhiR_UpperLimit_Par2 = cms.double( 0.2 ), + Rescale_phi = cms.double( 3.0 ), + DeltaEta = cms.double( 0.2 ), + precise = cms.bool( True ), + OnDemand = cms.int32( -1 ), + EtaR_UpperLimit_Par2 = cms.double( 0.15 ), + MeasurementTrackerName = cms.InputTag( "hltESPMeasurementTracker" ), + vertexCollection = cms.InputTag( "pixelVertices" ), + Pt_min = cms.double( 3.0 ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Phi_fixed = cms.bool( True ), + DeltaR = cms.double( 0.025 ), + input = cms.InputTag( "hltL2Muons" ), + DeltaPhi = cms.double( 0.15 ), + Phi_min = cms.double( 0.1 ), + Rescale_eta = cms.double( 3.0 ) + ), + TrackTransformer = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + RefitDirection = cms.string( "insideOut" ), + RefitRPCHits = cms.bool( True ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + tkTrajBeamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + RefitRPCHits = cms.bool( True ), + tkTrajVertex = cms.InputTag( "Notused" ), + GlbRefitterParameters = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), + RefitFlag = cms.bool( True ), + SkipStation = cms.int32( -1 ), + Chi2CutRPC = cms.double( 1.0 ), + PropDirForCosmics = cms.bool( False ), + CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + HitThreshold = cms.int32( 1 ), + DYTthrs = cms.vint32( 30, 15 ), + TrackerSkipSystem = cms.int32( -1 ), + RefitDirection = cms.string( "insideOut" ), + Chi2CutCSC = cms.double( 150.0 ), + Chi2CutDT = cms.double( 10.0 ), + RefitRPCHits = cms.bool( True ), + TrackerSkipSection = cms.int32( -1 ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonHitsOption = cms.int32( 1 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ) + ), + PCut = cms.double( 2.5 ), + tkTrajMaxDXYBeamSpot = cms.double( 9999.0 ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + tkTrajMaxChi2 = cms.double( 9999.0 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + ScaleTECyFactor = cms.double( -1.0 ), + tkTrajLabel = cms.InputTag( "hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks" ) + ) +) +process.hltIterL3NoFiltersNoVtxTrajSeedOIHit = cms.EDProducer( "TSGFromL2Muon", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'PropagatorWithMaterial', + 'hltESPSmartPropagatorAnyOpposite' ) + ), + MuonTrackingRegionBuilder = cms.PSet( ), + TrackerSeedCleaner = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + cleanerFromSharedHits = cms.bool( True ), + directionCleaner = cms.bool( True ), + ptCleaner = cms.bool( True ) + ), + TkSeedGenerator = cms.PSet( + iterativeTSG = cms.PSet( + MeasurementTrackerName = cms.string( "hltESPMeasurementTracker" ), + beamSpot = cms.InputTag( "unused" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + SelectState = cms.bool( False ), + ErrorRescaling = cms.double( 3.0 ), + UseVertexState = cms.bool( True ), + SigmaZ = cms.double( 25.0 ), + MaxChi2 = cms.double( 40.0 ), + errorMatrixPset = cms.PSet( + atIP = cms.bool( True ), + action = cms.string( "use" ), + errorMatrixValuesPSet = cms.PSet( + xAxis = cms.vdouble( 0.0, 13.0, 30.0, 70.0, 1000.0 ), + zAxis = cms.vdouble( -3.14159, 3.14159 ), + yAxis = cms.vdouble( 0.0, 1.0, 1.4, 10.0 ), + pf3_V14 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V25 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V13 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V24 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V35 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V12 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V23 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V34 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V45 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ), + pf3_V11 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V22 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V33 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V44 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V55 = cms.PSet( + values = cms.vdouble( 3.0, 3.0, 3.0, 5.0, 4.0, 5.0, 10.0, 7.0, 10.0, 10.0, 10.0, 10.0 ), + action = cms.string( "scale" ) + ), + pf3_V15 = cms.PSet( + values = cms.vdouble( 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 ), + action = cms.string( "scale" ) + ) + ) + ), + Propagator = cms.string( "hltESPSmartPropagatorAnyOpposite" ), + ComponentName = cms.string( "TSGFromPropagation" ), + UpdateState = cms.bool( True ), + ResetMethod = cms.string( "matrix" ) + ), + PSetNames = cms.vstring( 'skipTSG', + 'iterativeTSG' ), + skipTSG = cms.PSet( ), + ComponentName = cms.string( "DualByL2TSG" ), + L3TkCollectionA = cms.InputTag( "hltL3GlbDisplacedMuonsIterL3OIState" ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + PtCut = cms.double( 1.0 ), + PCut = cms.double( 2.5 ) +) +process.hltIterL3OIHitGlbDisplacedTrackCandidates = cms.EDProducer( "CkfTrackCandidateMaker", + cleanTrajectoryAfterInOut = cms.bool( False ), + doSeedingRegionRebuilding = cms.bool( False ), + onlyPixelHitsForSeedCleaner = cms.bool( False ), + reverseTrajectories = cms.bool( True ), + useHitsSplitting = cms.bool( False ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + src = cms.InputTag( "hltIterL3NoFiltersNoVtxTrajSeedOIHit" ), + clustersToSkip = cms.InputTag( "" ), + phase2clustersToSkip = cms.InputTag( "" ), + TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTPSetMuonCkfTrajectoryBuilder" ) ), + TransientInitialStateEstimatorParameters = cms.PSet( + propagatorAlongTISE = cms.string( "PropagatorWithMaterial" ), + numberMeasurementsForFit = cms.int32( 3 ), + propagatorOppositeTISE = cms.string( "PropagatorWithMaterialOpposite" ) + ), + numHitsForSeedCleaner = cms.int32( 4 ), + NavigationSchool = cms.string( "SimpleNavigationSchool" ), + RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), + TrajectoryCleaner = cms.string( "muonSeededTrajectoryCleanerBySharedHits" ), + maxNSeeds = cms.uint32( 500000 ), + maxSeedsBeforeCleaning = cms.uint32( 5000 ) +) +process.hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks = cms.EDProducer( "TrackProducer", + useSimpleMF = cms.bool( False ), + SimpleMagneticField = cms.string( "" ), + src = cms.InputTag( "hltIterL3OIHitGlbDisplacedTrackCandidates" ), + clusterRemovalInfo = cms.InputTag( "" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Fitter = cms.string( "hltESPKFFittingSmootherWithOutliersRejectionAndRK" ), + useHitsSplitting = cms.bool( False ), + alias = cms.untracked.string( "" ), + TrajectoryInEvent = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + AlgorithmName = cms.string( "iter10" ), + Propagator = cms.string( "PropagatorWithMaterial" ), + GeometricInnerState = cms.bool( True ), + NavigationSchool = cms.string( "" ), + MeasurementTracker = cms.string( "" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ) +) +process.hltL3GlbDisplacedMuonsIterL3OIHit = cms.EDProducer( "L3MuonProducer", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSmartPropagatorAny', + 'SteppingHelixPropagatorAny', + 'hltESPSmartPropagator', + 'hltESPSteppingHelixPropagatorOpposite' ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + TrackLoaderParameters = cms.PSet( + MuonSeededTracksInstance = cms.untracked.string( "L2Seeded" ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + DoSmoothing = cms.bool( True ), + SmoothTkTrack = cms.untracked.bool( False ), + VertexConstraint = cms.bool( False ), + MuonUpdatorAtVertexParameters = cms.PSet( + MaxChi2 = cms.double( 1000000.0 ), + BeamSpotPositionErrors = cms.vdouble( 0.1, 0.1, 5.3 ), + Propagator = cms.string( "hltESPSteppingHelixPropagatorOpposite" ) + ), + PutTkTrackIntoEvent = cms.untracked.bool( False ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + L3TrajBuilderParameters = cms.PSet( + PtCut = cms.double( 1.0 ), + TrackerPropagator = cms.string( "SteppingHelixPropagatorAny" ), + GlobalMuonTrackMatcher = cms.PSet( + Chi2Cut_3 = cms.double( 200.0 ), + DeltaDCut_2 = cms.double( 10.0 ), + Eta_threshold = cms.double( 1.2 ), + Quality_2 = cms.double( 15.0 ), + DeltaDCut_1 = cms.double( 40.0 ), + Quality_3 = cms.double( 7.0 ), + DeltaDCut_3 = cms.double( 15.0 ), + Quality_1 = cms.double( 20.0 ), + Pt_threshold1 = cms.double( 0.0 ), + DeltaRCut_2 = cms.double( 0.2 ), + DeltaRCut_1 = cms.double( 0.1 ), + Pt_threshold2 = cms.double( 9.99999999E8 ), + Chi2Cut_1 = cms.double( 50.0 ), + Chi2Cut_2 = cms.double( 50.0 ), + DeltaRCut_3 = cms.double( 1.0 ), + LocChi2Cut = cms.double( 0.001 ), + Propagator = cms.string( "hltESPSmartPropagator" ), + MinPt = cms.double( 1.0 ), + MinP = cms.double( 2.5 ) + ), + ScaleTECxFactor = cms.double( -1.0 ), + tkTrajUseVertex = cms.bool( False ), + MuonTrackingRegionBuilder = cms.PSet( + Rescale_Dz = cms.double( 4.0 ), + Pt_fixed = cms.bool( False ), + Eta_fixed = cms.bool( True ), + Eta_min = cms.double( 0.1 ), + DeltaZ = cms.double( 24.2 ), + maxRegions = cms.int32( 2 ), + EtaR_UpperLimit_Par1 = cms.double( 0.25 ), + UseVertex = cms.bool( False ), + Z_fixed = cms.bool( False ), + PhiR_UpperLimit_Par1 = cms.double( 0.6 ), + PhiR_UpperLimit_Par2 = cms.double( 0.2 ), + Rescale_phi = cms.double( 3.0 ), + DeltaEta = cms.double( 0.2 ), + precise = cms.bool( True ), + OnDemand = cms.int32( -1 ), + EtaR_UpperLimit_Par2 = cms.double( 0.15 ), + MeasurementTrackerName = cms.InputTag( "hltESPMeasurementTracker" ), + vertexCollection = cms.InputTag( "pixelVertices" ), + Pt_min = cms.double( 3.0 ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Phi_fixed = cms.bool( True ), + DeltaR = cms.double( 0.025 ), + input = cms.InputTag( "hltL2Muons" ), + DeltaPhi = cms.double( 0.15 ), + Phi_min = cms.double( 0.1 ), + Rescale_eta = cms.double( 3.0 ) + ), + TrackTransformer = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + RefitDirection = cms.string( "insideOut" ), + RefitRPCHits = cms.bool( True ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + tkTrajBeamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + RefitRPCHits = cms.bool( True ), + tkTrajVertex = cms.InputTag( "Notused" ), + GlbRefitterParameters = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), + RefitFlag = cms.bool( True ), + SkipStation = cms.int32( -1 ), + Chi2CutRPC = cms.double( 1.0 ), + PropDirForCosmics = cms.bool( False ), + CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + HitThreshold = cms.int32( 1 ), + DYTthrs = cms.vint32( 30, 15 ), + TrackerSkipSystem = cms.int32( -1 ), + RefitDirection = cms.string( "insideOut" ), + Chi2CutCSC = cms.double( 150.0 ), + Chi2CutDT = cms.double( 10.0 ), + RefitRPCHits = cms.bool( True ), + TrackerSkipSection = cms.int32( -1 ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonHitsOption = cms.int32( 1 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ) + ), + PCut = cms.double( 2.5 ), + tkTrajMaxDXYBeamSpot = cms.double( 9999.0 ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + tkTrajMaxChi2 = cms.double( 9999.0 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + ScaleTECyFactor = cms.double( -1.0 ), + tkTrajLabel = cms.InputTag( "hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks" ) + ) +) +process.hltIterL3OIL3GlbDisplacedMuonsLinksCombination = cms.EDProducer( "L3TrackLinksCombiner", + labels = cms.VInputTag( 'hltL3GlbDisplacedMuonsIterL3OIState','hltL3GlbDisplacedMuonsIterL3OIHit' ) +) +process.hltIterL3OIL3GlbDisplacedMuons = cms.EDProducer( "L3TrackCombiner", + labels = cms.VInputTag( 'hltL3GlbDisplacedMuonsIterL3OIState','hltL3GlbDisplacedMuonsIterL3OIHit' ) +) +process.hltIterL3OIGlbDisplacedMuonCandidates = cms.EDProducer( "L3MuonCandidateProducer", + InputObjects = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuons" ), + InputLinksObjects = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuonsLinksCombination" ), + MuonPtOption = cms.string( "Global" ) +) +process.hltL2SelectorForL3IOForGlbDisplaced = cms.EDProducer( "HLTMuonL2SelectorForL3IO", + l2Src = cms.InputTag( "hltL2Muons" ), + l3OISrc = cms.InputTag( "hltIterL3OIGlbDisplacedMuonCandidates" ), + InputLinks = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuonsLinksCombination" ), + applyL3Filters = cms.bool( False ), + MinNhits = cms.int32( 1 ), + MaxNormalizedChi2 = cms.double( 20.0 ), + MinNmuonHits = cms.int32( 1 ), + MaxPtDifference = cms.double( 0.3 ) +) +process.hltDisplacedhltIter4PixelLessLayerTripletsForGlbDisplacedMuons = cms.EDProducer( "SeedingLayersEDProducer", + layerList = cms.vstring( 'TIB1+TIB2+MTIB3', + 'TIB1+TIB2+MTID1_pos', + 'TIB1+TIB2+MTID1_neg', + 'TID1_pos+TID2_pos+TID3_pos', + 'TID1_neg+TID2_neg+TID3_neg', + 'TID1_pos+TID2_pos+MTID3_pos', + 'TID1_neg+TID2_neg+MTID3_neg' ), + BPix = cms.PSet( ), + FPix = cms.PSet( ), + TIB = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + skipClusters = cms.InputTag( "" ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ) + ), + TID = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 1 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 2 ) + ), + TOB = cms.PSet( ), + TEC = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 1 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 2 ) + ), + MTIB = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + skipClusters = cms.InputTag( "" ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ) + ), + MTID = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 3 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 3 ) + ), + MTOB = cms.PSet( ), + MTEC = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + minRing = cms.int32( 3 ), + skipClusters = cms.InputTag( "" ), + useRingSlector = cms.bool( True ), + clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + maxRing = cms.int32( 3 ) + ) +) +process.hltDisplacedhltIter4PixelLessClusterCheckForGlbDisplacedMuons = cms.EDProducer( "ClusterCheckerEDProducer", + doClusterCheck = cms.bool( False ), + MaxNumberOfCosmicClusters = cms.uint32( 800000 ), + ClusterCollectionLabel = cms.InputTag( "hltSiStripClusters" ), + MaxNumberOfPixelClusters = cms.uint32( 40000 ), + PixelClusterCollectionLabel = cms.InputTag( "hltSiPixelClusters" ), + cut = cms.string( "" ), + silentClusterCheck = cms.untracked.bool( False ) +) +process.hltDisplacedhltIter4PixelLessSeedsForGlbDisplaced = cms.EDProducer( "TSGFromL2Muon", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'PropagatorWithMaterial' ) + ), + MuonTrackingRegionBuilder = cms.PSet( refToPSet_ = cms.string( "HLTPSetMuonTrackingRegionBuilder8356" ) ), + TrackerSeedCleaner = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + cleanerFromSharedHits = cms.bool( True ), + directionCleaner = cms.bool( True ), + ptCleaner = cms.bool( True ) + ), + TkSeedGenerator = cms.PSet( + iterativeTSG = cms.PSet( + firstTSG = cms.PSet( + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + OrderedHitsFactoryPSet = cms.PSet( + SeedingLayers = cms.InputTag( "hltDisplacedhltIter4PixelLessLayerTripletsForGlbDisplacedMuons" ), + ComponentName = cms.string( "StandardHitTripletGenerator" ), + GeneratorPSet = cms.PSet( + SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ), + maxElement = cms.uint32( 0 ), + useFixedPreFiltering = cms.bool( False ), + extraHitRZtolerance = cms.double( 0.06 ), + phiPreFiltering = cms.double( 0.3 ), + extraHitRPhitolerance = cms.double( 0.06 ), + useBending = cms.bool( True ), + ComponentName = cms.string( "PixelTripletHLTGenerator" ), + useMultScattering = cms.bool( True ) + ) + ), + SeedCreatorPSet = cms.PSet( refToPSet_ = cms.string( "HLTSeedFromConsecutiveHitsCreator" ) ), + ComponentName = cms.string( "TSGFromOrderedHits" ) + ), + PSetNames = cms.vstring( 'firstTSG' ), + ComponentName = cms.string( "CombinedTSG" ) + ), + PSetNames = cms.vstring( 'skipTSG', + 'iterativeTSG' ), + skipTSG = cms.PSet( ), + ComponentName = cms.string( "DualByL2TSG" ), + L3TkCollectionA = cms.InputTag( "hltIterL3OIL3GlbDisplacedMuons" ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2SelectorForL3IOForGlbDisplaced" ), + PtCut = cms.double( 1.0 ), + PCut = cms.double( 2.5 ) +) +process.hltDisplacedhltIter4CkfTrackCandidatesForGlbDisplacedMuons = cms.EDProducer( "CkfTrackCandidateMaker", + cleanTrajectoryAfterInOut = cms.bool( False ), + doSeedingRegionRebuilding = cms.bool( False ), + onlyPixelHitsForSeedCleaner = cms.bool( False ), + reverseTrajectories = cms.bool( False ), + useHitsSplitting = cms.bool( False ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ), + src = cms.InputTag( "hltDisplacedhltIter4PixelLessSeedsForGlbDisplaced" ), + clustersToSkip = cms.InputTag( "" ), + phase2clustersToSkip = cms.InputTag( "" ), + TrajectoryBuilderPSet = cms.PSet( refToPSet_ = cms.string( "HLTIter4PSetTrajectoryBuilderIT" ) ), + TransientInitialStateEstimatorParameters = cms.PSet( + propagatorAlongTISE = cms.string( "PropagatorWithMaterialParabolicMf" ), + numberMeasurementsForFit = cms.int32( 4 ), + propagatorOppositeTISE = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ) + ), + numHitsForSeedCleaner = cms.int32( 4 ), + NavigationSchool = cms.string( "SimpleNavigationSchool" ), + RedundantSeedCleaner = cms.string( "CachingSeedCleanerBySharedInput" ), + TrajectoryCleaner = cms.string( "hltESPTrajectoryCleanerBySharedHits" ), + maxNSeeds = cms.uint32( 100000 ), + maxSeedsBeforeCleaning = cms.uint32( 1000 ) +) +process.hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons = cms.EDProducer( "TrackProducer", + useSimpleMF = cms.bool( True ), + SimpleMagneticField = cms.string( "ParabolicMf" ), + src = cms.InputTag( "hltDisplacedhltIter4CkfTrackCandidatesForGlbDisplacedMuons" ), + clusterRemovalInfo = cms.InputTag( "" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Fitter = cms.string( "hltESPFittingSmootherIT" ), + useHitsSplitting = cms.bool( False ), + alias = cms.untracked.string( "ctfWithMaterialTracks" ), + TrajectoryInEvent = cms.bool( False ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + AlgorithmName = cms.string( "hltIterX" ), + Propagator = cms.string( "hltESPRungeKuttaTrackerPropagator" ), + GeometricInnerState = cms.bool( True ), + NavigationSchool = cms.string( "" ), + MeasurementTracker = cms.string( "" ), + MeasurementTrackerEvent = cms.InputTag( "hltSiStripClusters" ) +) +process.hltIter4IterL3FromL2MuonTrackCutClassifier = cms.EDProducer( "TrackCutClassifier", + src = cms.InputTag( "hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons" ), + beamspot = cms.InputTag( "hltOnlineBeamSpot" ), + vertices = cms.InputTag( "Notused" ), + ignoreVertices = cms.bool( True ), + qualityCuts = cms.vdouble( -0.7, 0.1, 0.7 ), + mva = cms.PSet( + minPixelHits = cms.vint32( 0, 0, 0 ), + maxDzWrtBS = cms.vdouble( 3.40282346639E38, 24.0, 100.0 ), + dr_par = cms.PSet( + d0err = cms.vdouble( 0.003, 0.003, 3.40282346639E38 ), + dr_par2 = cms.vdouble( 0.3, 0.3, 3.40282346639E38 ), + dr_par1 = cms.vdouble( 0.4, 0.4, 3.40282346639E38 ), + dr_exp = cms.vint32( 4, 4, 2147483647 ), + d0err_par = cms.vdouble( 0.001, 0.001, 3.40282346639E38 ) + ), + maxLostLayers = cms.vint32( 1, 1, 1 ), + min3DLayers = cms.vint32( 0, 0, 0 ), + dz_par = cms.PSet( + dz_par1 = cms.vdouble( 0.4, 0.4, 3.40282346639E38 ), + dz_par2 = cms.vdouble( 0.35, 0.35, 3.40282346639E38 ), + dz_exp = cms.vint32( 4, 4, 2147483647 ) + ), + minNVtxTrk = cms.int32( 3 ), + maxDz = cms.vdouble( 0.5, 0.2, 3.40282346639E38 ), + minNdof = cms.vdouble( 1.0E-5, 1.0E-5, 1.0E-5 ), + maxChi2 = cms.vdouble( 3.40282346639E38, 3.40282346639E38, 3.40282346639E38 ), + maxChi2n = cms.vdouble( 1.2, 1.0, 0.7 ), + maxDr = cms.vdouble( 0.5, 0.03, 3.40282346639E38 ), + minLayers = cms.vint32( 3, 3, 4 ) + ) +) +process.hltIter4IterL3FromL2MuonTrackSelectionHighPurity = cms.EDProducer( "TrackCollectionFilterCloner", + originalSource = cms.InputTag( "hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons" ), + originalMVAVals = cms.InputTag( 'hltIter4IterL3FromL2MuonTrackCutClassifier','MVAValues' ), + originalQualVals = cms.InputTag( 'hltIter4IterL3FromL2MuonTrackCutClassifier','QualityMasks' ), + minQuality = cms.string( "highPurity" ), + copyExtras = cms.untracked.bool( True ), + copyTrajectories = cms.untracked.bool( False ) +) +process.hltIterOIhitMergedWithOIGlbDisplacedMuons = cms.EDProducer( "TrackListMerger", + ShareFrac = cms.double( 0.19 ), + FoundHitBonus = cms.double( 5.0 ), + LostHitPenalty = cms.double( 20.0 ), + MinPT = cms.double( 0.05 ), + Epsilon = cms.double( -0.001 ), + MaxNormalizedChisq = cms.double( 1000.0 ), + MinFound = cms.int32( 3 ), + TrackProducers = cms.VInputTag( 'hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks','hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks' ), + hasSelector = cms.vint32( 0, 0 ), + indivShareFrac = cms.vdouble( 1.0, 1.0 ), + selectedTrackQuals = cms.VInputTag( 'hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks','hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks' ), + setsToMerge = cms.VPSet( + cms.PSet( pQual = cms.bool( False ), + tLists = cms.vint32( 0, 1 ) + ) + ), + trackAlgoPriorityOrder = cms.string( "hltESPTrackAlgoPriorityOrder" ), + allowFirstHitShare = cms.bool( True ), + newQuality = cms.string( "confirmed" ), + copyExtras = cms.untracked.bool( True ), + writeOnlyTrkQuals = cms.bool( False ), + copyMVA = cms.bool( False ) +) +process.hltIter4MergedWithOIGlbDisplacedMuons = cms.EDProducer( "TrackListMerger", + ShareFrac = cms.double( 0.19 ), + FoundHitBonus = cms.double( 5.0 ), + LostHitPenalty = cms.double( 20.0 ), + MinPT = cms.double( 0.05 ), + Epsilon = cms.double( -0.001 ), + MaxNormalizedChisq = cms.double( 1000.0 ), + MinFound = cms.int32( 3 ), + TrackProducers = cms.VInputTag( 'hltIterOIhitMergedWithOIGlbDisplacedMuons','hltIter4IterL3FromL2MuonTrackSelectionHighPurity' ), + hasSelector = cms.vint32( 0, 0 ), + indivShareFrac = cms.vdouble( 1.0, 1.0 ), + selectedTrackQuals = cms.VInputTag( 'hltIterOIhitMergedWithOIGlbDisplacedMuons','hltIter4IterL3FromL2MuonTrackSelectionHighPurity' ), + setsToMerge = cms.VPSet( + cms.PSet( pQual = cms.bool( False ), + tLists = cms.vint32( 0, 1 ) + ) + ), + trackAlgoPriorityOrder = cms.string( "hltESPTrackAlgoPriorityOrder" ), + allowFirstHitShare = cms.bool( True ), + newQuality = cms.string( "confirmed" ), + copyExtras = cms.untracked.bool( True ), + writeOnlyTrkQuals = cms.bool( False ), + copyMVA = cms.bool( False ) +) +process.hltIterL3GlbDisplacedMuons = cms.EDProducer( "L3MuonProducer", + ServiceParameters = cms.PSet( + RPCLayers = cms.bool( True ), + UseMuonNavigation = cms.untracked.bool( True ), + Propagators = cms.untracked.vstring( 'hltESPSmartPropagatorAny', + 'SteppingHelixPropagatorAny', + 'hltESPSmartPropagator', + 'hltESPSteppingHelixPropagatorOpposite' ) + ), + MuonCollectionLabel = cms.InputTag( "hltL2Muons" ), + TrackLoaderParameters = cms.PSet( + MuonSeededTracksInstance = cms.untracked.string( "L2Seeded" ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + DoSmoothing = cms.bool( True ), + SmoothTkTrack = cms.untracked.bool( False ), + VertexConstraint = cms.bool( False ), + MuonUpdatorAtVertexParameters = cms.PSet( + MaxChi2 = cms.double( 1000000.0 ), + BeamSpotPositionErrors = cms.vdouble( 0.1, 0.1, 5.3 ), + Propagator = cms.string( "hltESPSteppingHelixPropagatorOpposite" ) + ), + PutTkTrackIntoEvent = cms.untracked.bool( False ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + L3TrajBuilderParameters = cms.PSet( + PtCut = cms.double( 1.0 ), + TrackerPropagator = cms.string( "SteppingHelixPropagatorAny" ), + GlobalMuonTrackMatcher = cms.PSet( + Chi2Cut_3 = cms.double( 200.0 ), + DeltaDCut_2 = cms.double( 10.0 ), + Eta_threshold = cms.double( 1.2 ), + Quality_2 = cms.double( 15.0 ), + DeltaDCut_1 = cms.double( 40.0 ), + Quality_3 = cms.double( 7.0 ), + DeltaDCut_3 = cms.double( 15.0 ), + Quality_1 = cms.double( 20.0 ), + Pt_threshold1 = cms.double( 0.0 ), + DeltaRCut_2 = cms.double( 0.2 ), + DeltaRCut_1 = cms.double( 0.1 ), + Pt_threshold2 = cms.double( 9.99999999E8 ), + Chi2Cut_1 = cms.double( 50.0 ), + Chi2Cut_2 = cms.double( 50.0 ), + DeltaRCut_3 = cms.double( 1.0 ), + LocChi2Cut = cms.double( 0.001 ), + Propagator = cms.string( "hltESPSmartPropagator" ), + MinPt = cms.double( 1.0 ), + MinP = cms.double( 2.5 ) + ), + ScaleTECxFactor = cms.double( -1.0 ), + tkTrajUseVertex = cms.bool( False ), + MuonTrackingRegionBuilder = cms.PSet( + Rescale_Dz = cms.double( 4.0 ), + Pt_fixed = cms.bool( False ), + Eta_fixed = cms.bool( True ), + Eta_min = cms.double( 0.1 ), + DeltaZ = cms.double( 24.2 ), + maxRegions = cms.int32( 2 ), + EtaR_UpperLimit_Par1 = cms.double( 0.25 ), + UseVertex = cms.bool( False ), + Z_fixed = cms.bool( False ), + PhiR_UpperLimit_Par1 = cms.double( 0.6 ), + PhiR_UpperLimit_Par2 = cms.double( 0.2 ), + Rescale_phi = cms.double( 3.0 ), + DeltaEta = cms.double( 0.2 ), + precise = cms.bool( True ), + OnDemand = cms.int32( -1 ), + EtaR_UpperLimit_Par2 = cms.double( 0.15 ), + MeasurementTrackerName = cms.InputTag( "hltESPMeasurementTracker" ), + vertexCollection = cms.InputTag( "pixelVertices" ), + Pt_min = cms.double( 3.0 ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + Phi_fixed = cms.bool( True ), + DeltaR = cms.double( 0.025 ), + input = cms.InputTag( "hltL2Muons" ), + DeltaPhi = cms.double( 0.15 ), + Phi_min = cms.double( 0.1 ), + Rescale_eta = cms.double( 3.0 ) + ), + TrackTransformer = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + RefitDirection = cms.string( "insideOut" ), + RefitRPCHits = cms.bool( True ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + Smoother = cms.string( "hltESPKFTrajectorySmootherForMuonTrackLoader" ) + ), + tkTrajBeamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + RefitRPCHits = cms.bool( True ), + tkTrajVertex = cms.InputTag( "Notused" ), + GlbRefitterParameters = cms.PSet( + Fitter = cms.string( "hltESPL3MuKFTrajectoryFitter" ), + DTRecSegmentLabel = cms.InputTag( "hltDt4DSegments" ), + RefitFlag = cms.bool( True ), + SkipStation = cms.int32( -1 ), + Chi2CutRPC = cms.double( 1.0 ), + PropDirForCosmics = cms.bool( False ), + CSCRecSegmentLabel = cms.InputTag( "hltCscSegments" ), + HitThreshold = cms.int32( 1 ), + DYTthrs = cms.vint32( 30, 15 ), + TrackerSkipSystem = cms.int32( -1 ), + RefitDirection = cms.string( "insideOut" ), + Chi2CutCSC = cms.double( 150.0 ), + Chi2CutDT = cms.double( 10.0 ), + RefitRPCHits = cms.bool( True ), + TrackerSkipSection = cms.int32( -1 ), + Propagator = cms.string( "hltESPSmartPropagatorAny" ), + DoPredictionsOnly = cms.bool( False ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + MuonHitsOption = cms.int32( 1 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ) + ), + PCut = cms.double( 2.5 ), + tkTrajMaxDXYBeamSpot = cms.double( 9999.0 ), + TrackerRecHitBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + tkTrajMaxChi2 = cms.double( 9999.0 ), + MuonRecHitBuilder = cms.string( "hltESPMuonTransientTrackingRecHitBuilder" ), + ScaleTECyFactor = cms.double( -1.0 ), + tkTrajLabel = cms.InputTag( "hltIter4MergedWithOIGlbDisplacedMuons" ) + ) +) +process.hltIterL3GlbDisplacedMuonsTracks = cms.EDProducer( "L3TrackCombiner", + labels = cms.VInputTag( 'hltIterL3GlbDisplacedMuons' ) +) +process.hltIterL3GlbDisplacedMuonsLinksCombination = cms.EDProducer( "L3TrackLinksCombiner", + labels = cms.VInputTag( 'hltIterL3GlbDisplacedMuons' ) +) +process.hltIterL3wIter4GlbDisplacedMuonCandidates = cms.EDProducer( "L3MuonCandidateProducer", + InputObjects = cms.InputTag( "hltIterL3GlbDisplacedMuonsTracks" ), + InputLinksObjects = cms.InputTag( "hltIterL3GlbDisplacedMuonsLinksCombination" ), + MuonPtOption = cms.string( "Global" ) +) +process.hltL3fL1DoubleMuf0L2NVf15f7L3DoubleMuNVf10DisplacedIter4 = cms.EDFilter( "HLTMuonL3SimplePreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltIterL3wIter4GlbDisplacedMuonCandidates" ), + PreviousCandTag = cms.InputTag( "" ), + MinN = cms.int32( 2 ), + MaxEta = cms.double( 2.5 ), + MinNhits = cms.int32( 0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 10.0 ), + NSigmaPt = cms.double( 0.0 ), + MaxNormalizedChi2 = cms.double( 9999.0 ), + MaxDXYBeamSpot = cms.double( 9999.0 ), + MinDXYBeamSpot = cms.double( 0.01 ), + MinNmuonHits = cms.int32( 12 ), + MaxPtDifference = cms.double( 9999.0 ), + MinTrackPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( False ) +) +process.hltL3fL1DoubleMuf0L2NVf15f7L3SingleMuNVf16DisplacedIter4 = cms.EDFilter( "HLTMuonL3SimplePreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltIterL3wIter4GlbDisplacedMuonCandidates" ), + PreviousCandTag = cms.InputTag( "" ), + MinN = cms.int32( 1 ), + MaxEta = cms.double( 2.5 ), + MinNhits = cms.int32( 0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 16.0 ), + NSigmaPt = cms.double( 0.0 ), + MaxNormalizedChi2 = cms.double( 9999.0 ), + MaxDXYBeamSpot = cms.double( 9999.0 ), + MinDXYBeamSpot = cms.double( 0.01 ), + MinNmuonHits = cms.int32( 12 ), + MaxPtDifference = cms.double( 9999.0 ), + MinTrackPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( False ) +) +process.hltPreL3Iter4Mu10NoVtxDxyMin0p01cm = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered7 = cms.EDFilter( "HLTMuonL2FromL1TPreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltL2MuonCandidatesNoVtx" ), + PreviousCandTag = cms.InputTag( "hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0" ), + SeedMapTag = cms.InputTag( "hltL2Muons" ), + MinN = cms.int32( 1 ), + MaxEta = cms.double( 2.5 ), + AbsEtaBins = cms.vdouble( 5.0 ), + MinNstations = cms.vint32( 0 ), + MinNhits = cms.vint32( 0 ), + CutOnChambers = cms.bool( True ), + MinNchambers = cms.vint32( 0 ), + MaxDr = cms.double( 9999.0 ), + MinDr = cms.double( -1.0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 7.0 ), + NSigmaPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( True ) +) +process.hltL3fL1f0L2f0Filtered10GlbDisplacedIter4 = cms.EDFilter( "HLTMuonL3SimplePreFilter", + saveTags = cms.bool( True ), + BeamSpotTag = cms.InputTag( "hltOnlineBeamSpot" ), + CandTag = cms.InputTag( "hltIterL3wIter4GlbDisplacedMuonCandidates" ), + PreviousCandTag = cms.InputTag( "" ), + MinN = cms.int32( 1 ), + MaxEta = cms.double( 2.5 ), + MinNhits = cms.int32( 0 ), + MaxDz = cms.double( 9999.0 ), + MinDxySig = cms.double( -1.0 ), + MinPt = cms.double( 10.0 ), + NSigmaPt = cms.double( 0.0 ), + MaxNormalizedChi2 = cms.double( 9999.0 ), + MaxDXYBeamSpot = cms.double( 9999.0 ), + MinDXYBeamSpot = cms.double( 0.01 ), + MinNmuonHits = cms.int32( 12 ), + MaxPtDifference = cms.double( 9999.0 ), + MinTrackPt = cms.double( 0.0 ), + MatchToPreviousCand = cms.bool( False ) +) +process.hltL1sVoHTT200SingleLLPJet60 = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_HTT120_SingleLLPJet40 OR L1_HTT160_SingleLLPJet50 OR L1_HTT200_SingleLLPJet60" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +process.hltPreHT170L1SingleLLPJetDisplacedDijet40DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltHT170 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 170.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +process.hltPreHT200L1SingleLLPJetDisplacedDijet40DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltHT200 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 200.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +process.hltPreHT200L1SingleLLPJetDisplacedDijet60DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHT270L1SingleLLPJetDisplacedDijet40DisplacedTrack = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltHT270 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 270.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +process.hltPreHT320L1SingleLLPJetDisplacedDijet60Inclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltHT320 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 320.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +process.hltPreHT420L1SingleLLPJetDisplacedDijet60Inclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltHT420 = cms.EDFilter( "HLTHtMhtFilter", + saveTags = cms.bool( True ), + htLabels = cms.VInputTag( 'hltHtMht' ), + mhtLabels = cms.VInputTag( 'hltHtMht' ), + minHt = cms.vdouble( 420.0 ), + minMht = cms.vdouble( 0.0 ), + minMeff = cms.vdouble( 0.0 ), + meffSlope = cms.vdouble( 1.0 ) +) +process.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay1nsTrackless = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay2nsInclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay0p5nsTrackless = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay1nsInclusive = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHT200L1SingleLLPJetDisplacedDijet30Inclusive1PtrkShortSig5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHT200L1SingleLLPJetDisplacedDijet35Inclusive1PtrkShortSig5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltPreHT200L1SingleLLPJetDisplacedDijet40Inclusive1PtrkShortSig5 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig = cms.EDFilter( "HLTL1TSeed", + saveTags = cms.bool( True ), + L1SeedsLogicalExpression = cms.string( "L1_Mu6_DoubleEG12er2p5 OR L1_SingleEG10er2p5 OR L1_SingleEG15er2p5 OR L1_SingleEG34er2p5 OR L1_SingleEG36er2p5 OR L1_SingleEG38er2p5 OR L1_SingleEG40er2p5 OR L1_SingleEG42er2p5 OR L1_SingleEG45er2p5 OR L1_SingleEG60 OR L1_DoubleEG_15_10_er2p5 OR L1_DoubleEG_20_10_er2p5 OR L1_DoubleEG_22_10_er2p5 OR L1_DoubleEG_25_12_er2p5 OR L1_DoubleEG_25_14_er2p5 OR L1_DoubleEG_27_14_er2p5 OR L1_DoubleEG_LooseIso22_12_er2p5 OR L1_DoubleEG_LooseIso25_12_er2p5 OR L1_TripleEG_18_17_8_er2p5 OR L1_TripleEG_18_18_12_er2p5 OR L1_DoubleEG8er2p5_HTT300er OR L1_DoubleEG8er2p5_HTT320er" ), + L1ObjectMapInputTag = cms.InputTag( "hltGtStage2ObjectMap" ), + L1GlobalInputTag = cms.InputTag( "hltGtStage2Digis" ), + L1MuonInputTag = cms.InputTag( 'hltGtStage2Digis','Muon' ), + L1MuonShowerInputTag = cms.InputTag( 'hltGtStage2Digis','MuonShower' ), + L1EGammaInputTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1JetInputTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + L1TauInputTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + L1EtSumInputTag = cms.InputTag( 'hltGtStage2Digis','EtSum' ) +) +process.hltPreDiPhoton10Time1ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig = cms.EDFilter( "HLTEgammaL1TMatchFilterRegional", + saveTags = cms.bool( True ), + candIsolatedTag = cms.InputTag( "hltEgammaCandidates" ), + l1IsolatedTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + candNonIsolatedTag = cms.InputTag( "" ), + l1NonIsolatedTag = cms.InputTag( 'hltGtStage2Digis','EGamma' ), + L1SeedFilterTag = cms.InputTag( "hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig" ), + l1CenJetsTag = cms.InputTag( 'hltGtStage2Digis','Jet' ), + l1TausTag = cms.InputTag( 'hltGtStage2Digis','Tau' ), + ncandcut = cms.int32( 1 ), + doIsolated = cms.bool( False ), + region_eta_size = cms.double( 0.522 ), + region_eta_size_ecap = cms.double( 1.0 ), + region_phi_size = cms.double( 1.044 ), + barrel_end = cms.double( 1.4791 ), + endcap_end = cms.double( 2.65 ) +) +process.hltEG10EtFilter = cms.EDFilter( "HLTEgammaEtFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig" ), + l1EGCand = cms.InputTag( "hltEgammaCandidates" ), + etcutEB = cms.double( 10.0 ), + etcutEE = cms.double( 10.0 ), + ncandcut = cms.int32( 1 ) +) +process.hltEG10HEFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltEG10EtFilter" ), + varTag = cms.InputTag( "hltEgammaHoverE" ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( -1.0 ), + thrRegularEE = cms.vdouble( -1.0 ), + thrOverEEB = cms.vdouble( 0.2 ), + thrOverEEE = cms.vdouble( 0.2 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 1 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidates" ) +) +process.hltEG10CaloIdLClusterShapeFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltEG10HEFilter" ), + varTag = cms.InputTag( 'hltEgammaClusterShape','sigmaIEtaIEta5x5NoiseCleaned' ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( 0.016 ), + thrRegularEE = cms.vdouble( 0.04 ), + thrOverEEB = cms.vdouble( -1.0 ), + thrOverEEE = cms.vdouble( -1.0 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 1 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidates" ) +) +process.hltEG10CaloIdLTime1nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10EtUnseededFilter = cms.EDFilter( "HLTEgammaEtFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEgammaCandidatesWrapperUnseeded" ), + l1EGCand = cms.InputTag( "hltEgammaCandidatesUnseeded" ), + etcutEB = cms.double( 10.0 ), + etcutEE = cms.double( 10.0 ), + ncandcut = cms.int32( 2 ) +) +process.hltDiEG10HEUnseededFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltDiEG10EtUnseededFilter" ), + varTag = cms.InputTag( "hltEgammaHoverEUnseeded" ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( -1.0 ), + thrRegularEE = cms.vdouble( -1.0 ), + thrOverEEB = cms.vdouble( 0.2 ), + thrOverEEE = cms.vdouble( 0.2 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 2 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidatesUnseeded" ) +) +process.hltDiEG10CaloIdLClusterShapeUnseededFilter = cms.EDFilter( "HLTEgammaGenericFilter", + saveTags = cms.bool( True ), + candTag = cms.InputTag( "hltDiEG10HEUnseededFilter" ), + varTag = cms.InputTag( 'hltEgammaClusterShapeUnseeded','sigmaIEtaIEta5x5NoiseCleaned' ), + rhoTag = cms.InputTag( "" ), + energyLowEdges = cms.vdouble( 0.0 ), + lessThan = cms.bool( True ), + useEt = cms.bool( False ), + thrRegularEB = cms.vdouble( 0.016 ), + thrRegularEE = cms.vdouble( 0.04 ), + thrOverEEB = cms.vdouble( -1.0 ), + thrOverEEE = cms.vdouble( -1.0 ), + thrOverE2EB = cms.vdouble( -1.0 ), + thrOverE2EE = cms.vdouble( -1.0 ), + ncandcut = cms.int32( 2 ), + doRhoCorrection = cms.bool( False ), + rhoMax = cms.double( 9.9999999E7 ), + rhoScale = cms.double( 1.0 ), + effectiveAreas = cms.vdouble( 0.0, 0.0 ), + absEtaLowEdges = cms.vdouble( 0.0, 1.479 ), + l1EGCand = cms.InputTag( "hltEgammaCandidatesUnseeded" ) +) +process.hltDiEG10CaloIdLTime1nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10Time1p2ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLTime1p2nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.2 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLTime1p2nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.2 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10Time1p4ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLTime1p4nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.4 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLTime1p4nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.4 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10Time1p6ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLTime1p6nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.6 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLTime1p6nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.6 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10Time1p8ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLTime1p8nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.8 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLTime1p8nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 1.8 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10Time2ns = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLTime2nsFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 2.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLTime2nsUnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 999.0 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( 2.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10sminlt0p1 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLsminlt0p1Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.1 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLsminlt0p1UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.1 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10sminlt0p12 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLsminlt0p12Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.12 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLsminlt0p12UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.12 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10sminlt0p14 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLsminlt0p14Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.14 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLsminlt0p14UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.14 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10sminlt0p16 = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) +process.hltEG10CaloIdLsminlt0p16Filter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltEG10CaloIdLClusterShapeFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 1 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.16 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 999999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltDiEG10CaloIdLsminlt0p16UnseededFilter = cms.EDFilter( "HLTDisplacedEgammaFilter", + saveTags = cms.bool( True ), + inputTag = cms.InputTag( "hltDiEG10CaloIdLClusterShapeUnseededFilter" ), + l1EGCand = cms.InputTag( "" ), + RecHitsEB = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEB' ), + RecHitsEE = cms.InputTag( 'hltEcalRecHit','EcalRecHitsEE' ), + inputTrack = cms.InputTag( "" ), + ncandcut = cms.int32( 2 ), + EBOnly = cms.bool( False ), + sMin_min = cms.double( 0.0 ), + sMin_max = cms.double( 0.16 ), + sMaj_min = cms.double( 0.0 ), + sMaj_max = cms.double( 999.0 ), + seedTimeMin = cms.double( -25.0 ), + seedTimeMax = cms.double( 25.0 ), + useTrackVeto = cms.bool( False ), + maxTrackCut = cms.int32( 999 ), + trackPtCut = cms.double( 99999.0 ), + trackdRCut = cms.double( 999.0 ) +) +process.hltPreDiPhoton10CaloIdL = cms.EDFilter( "HLTPrescaler", + offset = cms.uint32( 0 ), + L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) +) process.hltPreExpressMuons = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), L1GtReadoutRecordTag = cms.InputTag( "hltGtStage2Digis" ) @@ -79827,7 +81591,20 @@ 'HLT_CscCluster_Loose_v1', 'HLT_CscCluster_Medium_v1', 'HLT_CscCluster_Tight_v1', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1', 'HLT_HT425_v9', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1', @@ -79877,6 +81654,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2', 'HLT_DoubleL2Mu50_v2', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1', 'HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10', 'HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10', @@ -79886,6 +81664,7 @@ 'HLT_DoubleMu43NoFiltersNoVtx_v4', 'HLT_DoubleMu48NoFiltersNoVtx_v4', 'HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5', 'HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15', @@ -80008,6 +81787,17 @@ l1tIgnoreMaskAndPrescale = cms.bool( False ), throw = cms.bool( True ), triggerConditions = cms.vstring( 'HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4', + 'HLT_DiPhoton10Time1ns_v1', + 'HLT_DiPhoton10Time1p2ns_v1', + 'HLT_DiPhoton10Time1p4ns_v1', + 'HLT_DiPhoton10Time1p6ns_v1', + 'HLT_DiPhoton10Time1p8ns_v1', + 'HLT_DiPhoton10Time2ns_v1', + 'HLT_DiPhoton10_CaloIdL_v1', + 'HLT_DiPhoton10sminlt0p12_v1', + 'HLT_DiPhoton10sminlt0p14_v1', + 'HLT_DiPhoton10sminlt0p16_v1', + 'HLT_DiPhoton10sminlt0p1_v1', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13', 'HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13', 'HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2', @@ -80707,7 +82497,8 @@ 'MC_PFHT_v16', 'MC_PFMET_v17', 'MC_PFMHT_v16', - 'MC_ReducedIterativeTracking_v12' ) + 'MC_ReducedIterativeTracking_v12', + 'MC_Run3_PFScoutingPixelTracking_v16' ) ) process.hltPreDatasetMonteCarlo = cms.EDFilter( "HLTPrescaler", offset = cms.uint32( 0 ), @@ -80896,6 +82687,17 @@ 'HLT_DiPFJetAve60_v14 / 3', 'HLT_DiPFJetAve80_HFJEC_v16 / 3', 'HLT_DiPFJetAve80_v13 / 3', + 'HLT_DiPhoton10Time1ns_v1 / 3', + 'HLT_DiPhoton10Time1p2ns_v1 / 3', + 'HLT_DiPhoton10Time1p4ns_v1 / 3', + 'HLT_DiPhoton10Time1p6ns_v1 / 3', + 'HLT_DiPhoton10Time1p8ns_v1 / 3', + 'HLT_DiPhoton10Time2ns_v1 / 3', + 'HLT_DiPhoton10_CaloIdL_v1 / 3', + 'HLT_DiPhoton10sminlt0p12_v1 / 3', + 'HLT_DiPhoton10sminlt0p14_v1 / 3', + 'HLT_DiPhoton10sminlt0p16_v1 / 3', + 'HLT_DiPhoton10sminlt0p1_v1 / 3', 'HLT_DiSC30_18_EIso_AND_HE_Mass70_v13 / 3', 'HLT_Dimuon0_Jpsi3p5_Muon2_v5 / 3', 'HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7 / 3', @@ -80953,6 +82755,7 @@ 'HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2 / 3', 'HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2 / 3', 'HLT_DoubleL2Mu50_v2 / 3', + 'HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1 / 3', 'HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1 / 3', 'HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1 / 3', 'HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1 / 3', @@ -81023,8 +82826,7 @@ 'HLT_Ele250_CaloIdVT_GsfTrkIdT_v13 / 3', 'HLT_Ele27_Ele37_CaloIdL_MW_v4 / 3', 'HLT_Ele27_WPTight_Gsf_v16 / 3', - 'HLT_Ele28_HighEta_SC20_Mass55_v13 / 3', - 'HLT_Ele28_WPTight_Gsf_v1 / 3', + 'HLT_Ele28_HighEta_SC20_Mass55_v13 / 3')+cms.vstring( 'HLT_Ele28_WPTight_Gsf_v1 / 3', 'HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v13 / 3', 'HLT_Ele300_CaloIdVT_GsfTrkIdT_v13 / 3', 'HLT_Ele30_WPTight_Gsf_v1 / 3', @@ -81035,10 +82837,24 @@ 'HLT_Ele35_WPTight_Gsf_v9 / 3', 'HLT_Ele38_WPTight_Gsf_v9 / 3', 'HLT_Ele40_WPTight_Gsf_v9 / 3', - 'HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18 / 3')+cms.vstring( 'HLT_Ele50_IsoVVVL_PFHT450_v16 / 3', + 'HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18 / 3', + 'HLT_Ele50_IsoVVVL_PFHT450_v16 / 3', 'HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v16 / 3', 'HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v18 / 3', + 'HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1 / 3', + 'HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1 / 3', + 'HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 / 3', + 'HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 / 3', 'HLT_HT400_DisplacedDijet40_DisplacedTrack_v13 / 3', + 'HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 / 3', 'HLT_HT425_v9 / 3', 'HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1 / 3', 'HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1 / 3', @@ -81088,6 +82904,7 @@ 'HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5 / 3', 'HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4 / 3', 'HLT_L2Mu50_v2 / 3', + 'HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1 / 3', 'HLT_MET105_IsoTrk50_v9 / 3', 'HLT_MET120_IsoTrk50_v9 / 3', 'HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12 / 3', @@ -81263,8 +83080,7 @@ 'HLT_PFJetFwd60_v19 / 3', 'HLT_PFJetFwd80_v18 / 3', 'HLT_PFMET100_PFMHT100_IDTight_CaloBTagDeepCSV_3p1_v8 / 3', - 'HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9 / 3', - 'HLT_PFMET105_IsoTrk50_v1 / 3', + 'HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9 / 3')+cms.vstring( 'HLT_PFMET105_IsoTrk50_v1 / 3', 'HLT_PFMET105_PFJet100_looseRecoiling_v1 / 3', 'HLT_PFMET110_PFJet100_looseRecoiling_v1 / 3', 'HLT_PFMET110_PFJet100_v1 / 3', @@ -81289,7 +83105,8 @@ 'HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v19 / 3', 'HLT_PFMETTypeOne100_PFMHT100_IDTight_PFHT60_v9 / 3', 'HLT_PFMETTypeOne110_PFMHT110_IDTight_v12 / 3', - 'HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9 / 3')+cms.vstring( 'HLT_PFMETTypeOne120_PFMHT120_IDTight_v12 / 3', + 'HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9 / 3', + 'HLT_PFMETTypeOne120_PFMHT120_IDTight_v12 / 3', 'HLT_PFMETTypeOne130_PFMHT130_IDTight_v12 / 3', 'HLT_PFMETTypeOne140_PFMHT140_IDTight_v11 / 3', 'HLT_PFMETTypeOne200_BeamHaloCleaned_v9 / 3', @@ -82864,7 +84681,7 @@ process.HLTDiphoton3018R9Idb50e90ANDIso60CaloId15b35eANDHE12b10eMass55NoPixelVetoSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGOrFilter + process.hltEG30L1SingleAndDoubleEGOrEtFilter + process.hltEgammaR9ID + process.hltEG30R9Id50b80eR9IdFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG30HE12b10eR9Id50b80eHEFilter + process.hltEG30R9Id50b90eHE12b10eR9Id50b80eR9IdFilter + process.hltEgammaClusterShape + process.hltEG30CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeFilter + process.hltEgammaEcalPFClusterIso + process.hltEG30Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltDiEG18EtUnseededFilter + process.hltEgammaR9IDUnseeded + process.hltDiEG18R9Id50b80eR9IdUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG18HE12b10eR9Id50b80eHEUnseededFilter + process.hltEG18R9Id50b90eHE12b10eR9Id50b80eR9IdUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltEG18CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeUnseededFilter + process.hltEgammaEcalPFClusterIsoUnseeded + process.hltEG18Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoUnseededFilter + process.HLTTrackReconstructionForIsoForPhotons + process.hltEgammaHollowTrackIsoUnseeded + process.hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eTrackIsoUnseededFilter + process.hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eMass55CombMassLastFilter ) process.HLTDiphoton3018R9Idb50e90ANDIso60CaloId15b35eANDHE12b10eNoPixelVetoSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGOrFilter + process.hltEG30L1SingleAndDoubleEGOrEtFilter + process.hltEgammaR9ID + process.hltEG30R9Id50b80eR9IdFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG30HE12b10eR9Id50b80eHEFilter + process.hltEG30R9Id50b90eHE12b10eR9Id50b80eR9IdFilter + process.hltEgammaClusterShape + process.hltEG30CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeFilter + process.hltEgammaEcalPFClusterIso + process.hltEG30Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltDiEG18EtUnseededFilter + process.hltEgammaR9IDUnseeded + process.hltDiEG18R9Id50b80eR9IdUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG18HE12b10eR9Id50b80eHEUnseededFilter + process.hltEG18R9Id50b90eHE12b10eR9Id50b80eR9IdUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltEG18CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eClusterShapeUnseededFilter + process.hltEgammaEcalPFClusterIsoUnseeded + process.hltEG18Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eEcalIsoUnseededFilter + process.HLTTrackReconstructionForIsoForPhotons + process.hltEgammaHollowTrackIsoUnseeded + process.hltEG18TrackIso60Iso60CaloId15b35eR9Id50b90eHE12b10eR9Id50b80eTrackIsoUnseededFilter ) process.HLTBeginSequenceParking = cms.Sequence( process.hltTriggerType + process.hltEnableParking + process.HLTL1UnpackerSequence + process.HLTBeamSpot ) -process.HLTL2TauTagNNSequence = cms.Sequence( process.HLTDoLocalPixelSequence + process.HLTRecoPixelTracksSequence + process.HLTRecopixelvertexingSequence + process.HLTDoCaloSequence + cms.ignore(process.hltL1sDoubleTauBigOR) + cms.ignore(process.hltL1sSingleTau) + cms.ignore(process.hltL1sBigOrMuXXerIsoTauYYer) + cms.ignore(process.hltL1sMu22erIsoTau40er) + cms.ignore(process.hltL1sDoubleTauJet) + cms.ignore(process.hltL1VBFDiJetIsoTau) + process.hltL2TauTagNNProducer ) +process.HLTL2TauTagNNSequence = cms.Sequence( process.HLTDoLocalPixelSequence + process.HLTRecoPixelTracksSequence + process.HLTRecopixelvertexingSequence + process.HLTDoCaloSequence + cms.ignore(process.hltL1sDoubleTauBigOR) + cms.ignore(process.hltL1sSingleTau) + cms.ignore(process.hltL1sBigOrMuXXerIsoTauYYer) + cms.ignore(process.hltL1sMu22erIsoTau40er) + cms.ignore(process.hltL1sBigORDoubleTauJet) + cms.ignore(process.hltL1VBFDiJetIsoTau) + process.hltL2TauTagNNProducer ) process.HLTHPSDeepTauIsoPFTauSequence = cms.Sequence( cms.ignore(process.hltL1sTauVeryBigOR) + process.hltHpsL1JetsHLTForDeepTauInput + process.hltHpsPFTauDiscriminationByDecayModeFindingNewDMsL1matched + process.hltHpsPFTauPrimaryVertexProducerForDeepTau + process.hltHpsPFTauSecondaryVertexProducerForDeepTau + process.hltHpsPFTauTransverseImpactParametersForDeepTau + process.hltFixedGridRhoProducerFastjetAllTau + process.hltHpsPFTauBasicDiscriminatorsForDeepTau + process.hltHpsPFTauBasicDiscriminatorsdR03ForDeepTau + process.hltHpsPFTauDeepTauProducer ) process.HLTCaloTausCreatorL1TauSeededRegionalSequence = cms.Sequence( process.HLTDoCaloSequence + cms.ignore(process.hltL1sTauVeryBigOR) + process.hltCaloTowerL1sTauVeryBigORSeededRegional + process.hltAkIsoTauL1sTauVeryBigORSeededRegional ) process.HLTL2TauJetsL1TauSeededSequence = cms.Sequence( process.HLTCaloTausCreatorL1TauSeededRegionalSequence + process.hltL2TauJetsL1TauSeeded ) @@ -82908,6 +84725,22 @@ process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt1PtrkShortSig5 = cms.Sequence( process.hltL3DisplacedDijetFullTracksJetTracksAssociatorAtVertexLowPt + process.hltL3DisplacedDijet100FullTracksTrackIPProducerLowPt + process.hltL3DisplacedDijetFullTracksJetTagProducerFromIPLowPtShortSig5 + process.hltTwoPromptHLTL3DisplacedDijetFullTracksHLTCaloJetTagFilterLowPt1PtrkShortSig5 ) process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt1PtrkShortSig5 = cms.Sequence( process.hltL4DisplacedDijetFullTracksJetPromptTracksAssociatorAtVertexLowPt1PtrkShortSig5 + process.hltL4PromptDisplacedDijetFullTracksTrackIPProducerLowPt1PtrkShortSig5 + process.hltL4PromptDisplacedDijetFullTracksJetTagProducerFromIPLowPt1PtrkShortSig5 + process.hltL4PromptDisplacedDijetFullTracksHLTCaloJetTagFilterLowPt1PtrkShortSig5 ) process.HLTDisplacedTrackRequirementLooseDisplacedJetsLowPt1PtrkShortSig5 = cms.Sequence( process.hltL4DisplacedDijetFullTracksJetTracksAssociatorAtVertexLowPt1PtrkShortSig5 + process.hltL4TaggedDisplacedDijetFullTracksTrackIPProducerLowPt1PtrkPt0p5ShortSig5 + process.hltL4DisplacedDijetFullTracksJetTagProducerLooseFromIPLowPt1PtrkPt0p5ShortSig5 + process.hltL4DisplacedDijetFullTracksHLTCaloJetTagFilterLooseLowPt1PtrkPt0p5ShortSig5 ) +process.HLTIterL3OIGlbDisplacedMuonTkCandidateSequence = cms.Sequence( process.hltIterL3TrajSeedOIStateFromDisplacedL2Muons + process.hltIterL3OIStateGlbDisplacedTrackCandidates + process.hltIterL3OIStateGlbDisplacedMuonCtfWithMaterialTracks + process.hltL3GlbDisplacedMuonsIterL3OIState + process.hltIterL3NoFiltersNoVtxTrajSeedOIHit + process.hltIterL3OIHitGlbDisplacedTrackCandidates + process.hltIterL3OIHitGlbDisplacedMuonCtfWithMaterialTracks + process.hltL3GlbDisplacedMuonsIterL3OIHit ) +process.HLTIterL3GlbDisplacedMuonCandidateSequence = cms.Sequence( process.HLTDoLocalPixelSequence + process.HLTDoLocalStripSequence + process.HLTIterL3OIGlbDisplacedMuonTkCandidateSequence + process.hltIterL3OIL3GlbDisplacedMuonsLinksCombination + process.hltIterL3OIL3GlbDisplacedMuons + process.hltIterL3OIGlbDisplacedMuonCandidates + process.hltL2SelectorForL3IOForGlbDisplaced ) +process.HLTIterativeTrackingIteration4GlbDisplacedMuons = cms.Sequence( process.hltDisplacedhltIter4PixelLessLayerTripletsForGlbDisplacedMuons + process.hltDisplacedhltIter4PixelLessClusterCheckForGlbDisplacedMuons + process.hltDisplacedhltIter4PixelLessSeedsForGlbDisplaced + process.hltDisplacedhltIter4CkfTrackCandidatesForGlbDisplacedMuons + process.hltDisplacedhltIter4CtfWithMaterialTracksForGlbDisplacedMuons + process.hltIter4IterL3FromL2MuonTrackCutClassifier + process.hltIter4IterL3FromL2MuonTrackSelectionHighPurity ) +process.HLTL3GblDisplacedMuonNoCandRecoSequence = cms.Sequence( process.HLTIterL3GlbDisplacedMuonCandidateSequence + process.HLTIterativeTrackingIteration4GlbDisplacedMuons + process.hltIterOIhitMergedWithOIGlbDisplacedMuons + process.hltIter4MergedWithOIGlbDisplacedMuons + process.hltIterL3GlbDisplacedMuons + process.hltIterL3GlbDisplacedMuonsTracks + process.hltIterL3GlbDisplacedMuonsLinksCombination ) +process.HLTL3GblIter4DisplacedMuonRecoSequence = cms.Sequence( process.HLTL3GblDisplacedMuonNoCandRecoSequence + process.hltIterL3wIter4GlbDisplacedMuonCandidates ) +process.HLTDiPho10CaloIdLTime1nsSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLTime1nsFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLTime1nsUnseededFilter ) +process.HLTDiPho10CaloIdLTime1p2nsSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLTime1p2nsFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLTime1p2nsUnseededFilter ) +process.HLTDiPho10CaloIdLTime1p4nsSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLTime1p4nsFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLTime1p4nsUnseededFilter ) +process.HLTDiPho10CaloIdLTime1p6nsSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLTime1p6nsFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLTime1p6nsUnseededFilter ) +process.HLTDiPho10CaloIdLTime1p8nsSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLTime1p8nsFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLTime1p8nsUnseededFilter ) +process.HLTDiPho10CaloIdLTime2nsSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLTime2nsFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLTime2nsUnseededFilter ) +process.HLTDiPho10CaloIdLsminlt0p1Sequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLsminlt0p1Filter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLsminlt0p1UnseededFilter ) +process.HLTDiPho10CaloIdLsminlt0p12Sequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLsminlt0p12Filter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLsminlt0p12UnseededFilter ) +process.HLTDiPho10CaloIdLsminlt0p14Sequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLsminlt0p14Filter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLsminlt0p14UnseededFilter ) +process.HLTDiPho10CaloIdLsminlt0p16Sequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.hltEG10CaloIdLsminlt0p16Filter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter + process.hltDiEG10CaloIdLsminlt0p16UnseededFilter ) +process.HLTDiPho10CaloIdLSequence = cms.Sequence( process.HLTDoFullUnpackingEgammaEcalSequence + process.HLTPFClusteringForEgamma + process.hltEgammaCandidates + process.hltEGL1SingleAndDoubleEGNonIsoForDisplacedTrig + process.hltEG10EtFilter + process.HLTDoLocalHcalSequence + process.HLTFastJetForEgamma + process.hltEgammaHoverE + process.hltEG10HEFilter + process.hltEgammaClusterShape + process.hltEG10CaloIdLClusterShapeFilter + process.HLTPFClusteringForEgammaUnseeded + process.hltEgammaCandidatesUnseeded + process.hltEgammaCandidatesWrapperUnseeded + process.hltDiEG10EtUnseededFilter + process.hltEgammaHoverEUnseeded + process.hltDiEG10HEUnseededFilter + process.hltEgammaClusterShapeUnseeded + process.hltDiEG10CaloIdLClusterShapeUnseededFilter ) process.HLTPPSPixelRecoSequence = cms.Sequence( process.hltCTPPSPixelDigis + process.hltCTPPSPixelClusters + process.hltCTPPSPixelRecHits + process.hltCTPPSPixelLocalTracks ) process.HLTDatasetPathBeginSequence = cms.Sequence( process.hltGtStage2Digis ) @@ -82944,8 +84777,8 @@ process.HLT_DoubleMu4_LowMass_Displaced_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMuForLowMassDisplaced + process.hltPreDoubleMu4LowMassDisplaced + process.hltL1fL1sDoubleMuL1Filtered0ForLowMassDisplaced + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sDoubleMuL1Filtered0ForLowMassDisplaced) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMuL1Filtered0ForLowMassDisplaced) + process.hltDoubleMu4LowMassDisplacedL3Filtered + process.hltDisplacedmumuVtxProducerDoubleMu4LowMassDisplaced + process.hltDisplacedmumuFilterDoubleMu4LowMassDisplaced + process.HLTEndSequence ) process.HLT_Mu0_L1DoubleMu_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMuForLowMassInclusive + process.hltPreMu0L1DoubleMu + process.hltL1fL1sL1DoubleMuL1Filtered0LowMassInclusive + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sL1DoubleMuL1f0L2PreFiltered0ForLowMassInclusive) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sL1DoubleMuL1Filtered0LowMassInclusive) + process.hltL3fL1sDoubleMu0SQL1f0L2PreFilteres0L3Filtered0 + process.HLTEndSequence ) process.HLT_Mu4_L1DoubleMu_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMuForLowMassInclusive + process.hltPreMu4L1DoubleMu + process.hltL1fL1sL1DoubleMuL1Filtered0LowMassInclusive + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sL1DoubleMuL1f0L2PreFiltered0ForLowMassInclusive) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sL1DoubleMuL1Filtered0LowMassInclusive) + process.hltL3fL1sDoubleMu0SQL1f0L2PreFilteres0L3Filtered4 + process.HLTEndSequence ) -process.HLT_DoubleMu3_Trk_Tau3mu_v12 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9 + process.hltPreDoubleMu3TrkTau3mu + process.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + process.hltDoubleMu3TrkTau3muL3Filtered + process.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + process.hltDisplacedmumuFilterDoubleMu3Tau3mu + process.HLTBphTrackingDisplacedTau3muReg + process.hltTau3muTkAllConeTracksIter + process.hltTau3muTkVertexProducer + process.hltTau3muTkVertexFilter + process.HLTEndSequence ) -process.HLT_DoubleMu3_TkMu_DsTau3Mu_v4 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0er1p5SQOSdRMax1p4IorTripleMu530DoubleMu53OSMassMax9 + process.hltPreDoubleMu3TkMuDsTau3Mu + process.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + process.hltDoubleMu3TrkTau3muL3Filtered + process.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + process.hltDisplacedmumuFilterDoubleMu3Tau3mu + process.HLTTrackerMuonSequenceLowPt + process.hltdstau3mumuontrkFltr + process.hltdstau3muDisplaced3muVtxProducer + process.hltdstau3muDisplaced3muFltr + process.HLTEndSequence ) +process.HLT_DoubleMu3_Trk_Tau3mu_v12 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50 + process.hltPreDoubleMu3TrkTau3mu + process.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + process.hltDoubleMu3TrkTau3muL3Filtered + process.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + process.hltDisplacedmumuFilterDoubleMu3Tau3mu + process.HLTBphTrackingDisplacedTau3muReg + process.hltTau3muTkAllConeTracksIter + process.hltTau3muTkVertexProducer + process.hltTau3muTkVertexFilter + process.HLTEndSequence ) +process.HLT_DoubleMu3_TkMu_DsTau3Mu_v4 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0er2p0SQOSdEtaMax1p6orTripleMu21p50 + process.hltPreDoubleMu3TkMuDsTau3Mu + process.hltL1fL1sL1DoubleMuorTripleMuL1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sL1DoubleMuorTripleMuL1f0L2PreFiltered0) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sL1DoubleMuorTripleMuL1Filtered0) + process.hltDoubleMu3TrkTau3muL3Filtered + process.hltDisplacedmumuVtxProducerDoubleMu3Tau3mu + process.hltDisplacedmumuFilterDoubleMu3Tau3mu + process.HLTTrackerMuonSequenceLowPt + process.hltdstau3mumuontrkFltr + process.hltdstau3muDisplaced3muVtxProducer + process.hltdstau3muDisplaced3muFltr + process.HLTEndSequence ) process.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu3SQHTT200 + process.hltPreDoubleMu4Mass3p8DZPFHT350 + process.hltDoubleMuon4L1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltDoubleMuon4L2PreFiltered0) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3DoubleMuon4L1Filtered0) + process.hltL3fL1DiMu3SQHT200L3PreFiltered4 + process.hltDoubleMuon4Mass3p8Filtered + process.hltDoubleMu4Mass3p8DZFilter + process.HLTAK4PFJetsSequence + process.hltPFHTJet30 + process.hltPFHT350Jet30 + process.HLTEndSequence ) process.HLT_DoubleMu4_MuMuTrk_Displaced_v15 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0er1p5OSIorDoubleMu0er1p4OSIorDoubleMu4OSIorDoubleMu4p5OS + process.hltPreDoubleMu4MuMuTrkDisplaced + process.hltL1fL1sDoubleMu0er15OSIorDoubleMu0er14OSIorDoubleMu4OSIorDoubleMu4p5OSL1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sDoubleMu0er15OSIorDoubleMu0er14OSIorDoubleMu4OSIorDoubleMu4p5OSL1Filtered0) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu0er15OSIorDoubleMu0er14OSIorDoubleMu4OSIorDoubleMu4p5OSL1Filtered0) + process.hltDoubleMu4MuMuDisplacedL3Filtered + process.hltDisplacedmumuVtxProducerDoubleMu4MuMu + process.hltDisplacedmumuFilterDoubleMu4MuMu + process.HLTBphTrackingDisplacedMuMuReg + process.hltMuMuTkAllConeTracksIter + process.hltMuMuTkVertexProducer + process.hltMuMuTkVertexFilter + process.HLTEndSequence ) process.HLT_Mu3_PFJet40_v16 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu3IorMu3Jet30er2p5 + process.hltPreMu3PFJet40 + process.hltL1fL1sMu3Jet30L1Filtered0 + process.hltL1sSingleJet35ObjectMap + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2fL1sMu3L1f0L2Filtered0) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sMu3L1Filtered0) + process.hltL3fL1sMu3L1f0L2f0L3Filtered3 + process.HLTAK4PFJetsSequence + process.hltMu3JetCollectionsForLeptonPlusPFJets + process.hltMu3PFJet40MuCleaned + process.HLTEndSequence ) @@ -83460,6 +85293,7 @@ process.MC_DoubleMu_TrkIsoVVL_DZ_v11 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0 + process.hltPreMCDoubleMuTrkIsoVVLDZ + process.hltL1fL1sDoubleMu0HighQL1Filtered0 + process.HLTL2muonrecoSequence + cms.ignore(process.hltL2pfL1sDoubleMu0L1f0L2doubleMu) + process.HLTL3muonrecoSequence + cms.ignore(process.hltL1fForIterL3L1fL1sDoubleMu0HighQL1Filtered0) + process.hltL3pfL1sDoubleMu0L1f0L2pf0L3doubleMu + process.HLTL3muontrkisovvlSequence + process.hltDiMuonRelTrkIsoFiltered0p4 + process.hltDiMuonRelTrkIsoFiltered0p4DzFiltered0p2 + process.HLTEndSequence ) process.MC_DoubleMuNoFiltersNoVtx_v7 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0 + process.hltPreMCDoubleMuNoFiltersNoVtx + process.hltL1fL1sDoubleMu0HighQL1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + cms.ignore(process.hltL2fDimuonL1f0L2NoVtx) + process.HLTL3NoFiltersNoVtxmuonrecoSequence + process.hltL3fDimuonL1f0L2NVL3NoFiltersNoVtx + process.HLTEndSequence ) process.MC_PFBTagDeepJet_v1 = cms.Path( process.HLTBeginSequence + process.hltPreMCPFBTagDeepJet + process.HLTAK4PFJetsSequence + process.HLTBtagDeepJetSequencePF + process.hltBTagPFDeepJet4p06Single + process.HLTEndSequence ) +process.MC_Run3_PFScoutingPixelTracking_v16 = cms.Path( process.HLTBeginSequence + process.hltL1sMCRun3PFScoutingPixelTracking + process.hltPreMCRun3PFScoutingPixelTracking + process.HLTAK4CaloJetsSequence + process.HLTPixelOnlyPFScoutingSequence + process.hltEgammaR9ID + process.HLTL2muonrecoSequenceNoVtx + process.HLTL3muonrecoSequenceNoVtx + process.hltDisplacedmumuVtxNoMatchingProducer + process.HLTMuIsolationSequenceNoVtx + process.hltFEDSelectorL1 + process.HLTPixelOnlyPFScoutingPackingSequence + process.HLTEndSequence ) process.AlCa_EcalPi0EBonly_v13 = cms.Path( process.HLTBeginSequence + process.hltL1sAlCaEcalPi0Eta + process.hltPreAlCaEcalPi0EBonly + process.HLTDoFullUnpackingEgammaEcalSequence + process.hltSimple3x3Clusters + process.hltAlCaPi0RecHitsFilterEBonlyRegional + process.hltAlCaPi0EBUncalibrator + process.hltAlCaPi0EBRechitsToDigis + process.HLTEndSequence ) process.AlCa_EcalPi0EEonly_v13 = cms.Path( process.HLTBeginSequence + process.hltL1sAlCaEcalPi0Eta + process.hltPreAlCaEcalPi0EEonly + process.HLTDoFullUnpackingEgammaEcalSequence + process.hltSimple3x3Clusters + process.hltAlCaPi0RecHitsFilterEEonlyRegional + process.hltAlCaPi0EEUncalibrator + process.hltAlCaPi0EERechitsToDigis + process.HLTEndSequence ) process.AlCa_EcalEtaEBonly_v13 = cms.Path( process.HLTBeginSequence + process.hltL1sAlCaEcalPi0Eta + process.hltPreAlCaEcalEtaEBonly + process.HLTDoFullUnpackingEgammaEcalSequence + process.hltSimple3x3Clusters + process.hltAlCaEtaRecHitsFilterEBonlyRegional + process.hltAlCaEtaEBUncalibrator + process.hltAlCaEtaEBRechitsToDigis + process.HLTEndSequence ) @@ -83573,7 +85407,7 @@ process.HLT_TrkMu6NoFiltersNoVtx_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu3 + process.hltPreTrkMu6NoFiltersNoVtx + process.hltL1fL1sSingleMu3L1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + cms.ignore(process.hltL2fL1sSingleMu3L1f0L2Filtered10OneMuNoVtx) + process.HLTL3muonrecoSequenceNoVtx + process.hltL3fL1sSingleMu3L1f0L2f10OneMuL3Filtered6NoVtx + process.HLTTrackerMuonSequenceNoVtx + process.hltSingleTrkMuFiltered6NoVtx + process.HLTEndSequence ) process.HLT_TrkMu16NoFiltersNoVtx_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleMu7 + process.hltPreTrkMu16NoFiltersNoVtx + process.hltL1fL1sSingleMu7L1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + cms.ignore(process.hltL2fL1sSingleMu7L1f0L2Filtered10OneMuNoVtx) + process.HLTL3muonrecoSequenceNoVtx + process.hltL3fL1sSingleMu7L1f0L2f10OneMuL3Filtered16NoVtx + process.HLTTrackerMuonSequenceNoVtx + process.hltSingleTrkMuFiltered16NoVtx + process.HLTEndSequence ) process.HLT_DoubleTrkMu_16_6_NoFiltersNoVtx_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu0SQ + process.hltPreDoubleTrkMu166NoFiltersNoVtx + process.hltL1fL1sDoubleMu0SQL1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + cms.ignore(process.hltL2pfL1sDoubleMu0SQL1f0L2PreFiltered0NoVtx) + cms.ignore(process.hltL2fL1sDoubleMu0SQL1f0L2Filtered10OneMuNoVtx) + process.HLTL3muonrecoSequenceNoVtx + process.hltL3pfL1sDoubleMu0SQL1f0L2pf0OneMuL3PreFiltered6NoVtx + process.hltL3fL1sDoubleMu0SQL1f0L2f10OneMuL3Filtered16NoVtx + process.HLTTrackerMuonSequenceNoVtx + process.hltDoubleTrkMuFiltered6NoVtx + process.hltSingleTrkMuFiltered16NoVtx + process.HLTEndSequence ) -process.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleTauBigOR + process.hltPreDoubleMediumDeepTauIsoPFTauHPS35L2NNeta2p1 + process.HLTL2TauTagNNSequence + process.hltL2DoubleTauTagNNFilter + process.HLTGlobalPFTauHPSSequence + process.HLTHPSDeepTauIsoPFTauSequence + process.hltHpsSelectedPFTausMediumDitauWPDeepTau + process.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatch + process.hltHpsDoublePFTau35MediumDitauWPDeepTauL1HLTMatched + process.hltHpsDoublePFTau35MediumDitauWPDeepTauDz02 + process.HLTEndSequence ) +process.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleTauBigOR + process.hltPreDoubleMediumDeepTauIsoPFTauHPS35L2NNeta2p1 + process.HLTL2TauTagNNSequence + process.hltL2DoubleTauTagNNFilter + process.HLTGlobalPFTauHPSSequence + process.HLTHPSDeepTauIsoPFTauSequence + process.hltHpsSelectedPFTausMediumDitauWPDeepTau + process.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatch + process.hltHpsDoublePFTau35MediumDitauWPDeepTauL1HLTMatched + process.HLTEndSequence ) process.HLT_DoubleMediumChargedIsoPFTauHPS40_Trk1_eta2p1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleTauBigOR + process.hltPreDoubleMediumChargedIsoPFTauHPS40Trk1eta2p1 + process.HLTL2TauJetsL1TauSeededSequence + process.hltDoubleL2Tau26eta2p2 + process.HLTL2p5IsoTauL1TauSeededGlobalSequence + process.hltDoubleL2GlobIsoTau26eta2p2 + process.HLTGlobalPFTauHPSSequence + process.HLTHPSDoublePFTauPt40Eta2p1Trk1 + process.HLTHPSMediumChargedIsoPFTauSequence + process.hltHpsSelectedPFTausTrackPt1MediumChargedIsolation + process.hltHpsDoublePFTau40TrackPt1MediumChargedIsolation + process.hltHpsL1JetsHLTDoublePFTauTrackPt1MediumChargedIsolationMatch + process.hltHpsDoublePFTau40TrackPt1MediumChargedIsolationL1HLTMatched + process.hltHpsDoublePFTau40TrackPt1MediumChargedIsolationDz02 + process.HLTEndSequence ) process.HLT_DoubleTightChargedIsoPFTauHPS35_Trk1_eta2p1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleTauBigOR + process.hltPreDoubleTightChargedIsoPFTauHPS35Trk1eta2p1 + process.HLTL2TauJetsL1TauSeededSequence + process.hltDoubleL2Tau26eta2p2 + process.HLTL2p5IsoTauL1TauSeededGlobalSequence + process.hltDoubleL2GlobIsoTau26eta2p2 + process.HLTGlobalPFTauHPSSequence + process.HLTHPSDoublePFTauPt35Eta2p1Trk1 + process.HLTHPSTightChargedIsoPFTauSequence + process.hltHpsSelectedPFTausTrackPt1TightChargedIsolation + process.hltHpsDoublePFTau35TrackPt1TightChargedIsolation + process.hltHpsL1JetsHLTDoublePFTauTrackPt1TightChargedIsolationMatch + process.hltHpsDoublePFTau35TrackPt1TightChargedIsolationL1HLTMatched + process.hltHpsDoublePFTau35TrackPt1TightChargedIsolationDz02 + process.HLTEndSequence ) process.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sBigORLooseIsoEGXXerIsoTauYYerdRMin0p3 + process.hltPreEle24eta2p1WPTightGsfLooseDeepTauPFTauHPS30eta2p1CrossL1 + process.HLTEle24erWPTightGsfForTauSequence + process.HLTGlobalPFTauHPSSequence + process.hltOverlapFilterIsoEle24IsoTau30WPTightGsfCaloJet5 + process.HLTHPSLooseETauWPDeepTauPFTau30Sequence + process.hltHpsL1JetsHLTPFTauLooseEtauWPDeepTauMatch + process.hltHpsSelectedPFTau30LooseETauWPDeepTauL1HLTMatched + process.hltHpsOverlapFilterIsoEle24WPTightGsfLooseETauWPDeepTauPFTau30 + process.HLTEndSequence ) @@ -83610,7 +85444,7 @@ process.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJetOrHTTOrMuHTT + process.hltPreAK8PFJet230SoftDropMass40PFAK8ParticleNetTauTau0p30 + process.HLTAK8CaloJetsSequence + process.hltAK8SingleCaloJet200 + process.HLTAK8PFJetsSequence + process.hltAK8PFJetsCorrectedMatchedToCaloJets200 + process.hltSingleAK8PFJet230 + process.hltAK8PFJets230Constituents + process.hltAK8PFSoftDropJets230 + process.hltAK8SinglePFJets230SoftDropMass40 + process.HLTJetFlavourTagParticleNetSequencePFAK8 + process.hltAK8PFJets230SoftDropMass40 + process.hltAK8SinglePFJets230SoftDropMass40ParticleNetTauTau0p30 + process.HLTEndSequence ) process.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJetOrHTTOrMuHTT + process.hltPreAK8PFJet250SoftDropMass40PFAK8ParticleNetTauTau0p30 + process.HLTAK8CaloJetsSequence + process.hltAK8SingleCaloJet200 + process.HLTAK8PFJetsSequence + process.hltAK8PFJetsCorrectedMatchedToCaloJets200 + process.hltSingleAK8PFJet250 + process.hltAK8PFJets250Constituents + process.hltAK8PFSoftDropJets250 + process.hltAK8SinglePFJets250SoftDropMass40 + process.HLTJetFlavourTagParticleNetSequencePFAK8 + process.hltAK8PFJets250SoftDropMass40 + process.hltAK8SinglePFJets250SoftDropMass40ParticleNetTauTau0p30 + process.HLTEndSequence ) process.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleJetOrHTTOrMuHTT + process.hltPreAK8PFJet275SoftDropMass40PFAK8ParticleNetTauTau0p30 + process.HLTAK8CaloJetsSequence + process.hltAK8SingleCaloJet200 + process.HLTAK8PFJetsSequence + process.hltAK8PFJetsCorrectedMatchedToCaloJets200 + process.hltSingleAK8PFJet275 + process.hltAK8PFJets275Constituents + process.hltAK8PFSoftDropJets275 + process.hltAK8SinglePFJets275SoftDropMass40 + process.HLTJetFlavourTagParticleNetSequencePFAK8 + process.hltAK8PFJets275SoftDropMass40 + process.hltAK8SinglePFJets275SoftDropMass40ParticleNetTauTau0p30 + process.HLTEndSequence ) -process.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleTauJet + process.hltPreDoubleMediumDeepTauIsoPFTauHPS30L2NNeta2p1PFJet60 + process.HLTL2TauTagNNSequence + process.hltL2DoubleTauJetTagNNFilter + process.HLTGlobalPFTauHPSSequence + process.HLTHPSDeepTauIsoPFTauSequence + process.hltHpsSelectedPFTausMediumDitauWPDeepTauDoubleTauJet + process.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatchDoubleTauJet + process.hltHpsDoublePFTau30MediumDitauWPDeepTauL1HLTMatchedDoubleTauJet + process.hltHpsDoublePFTau30MediumDitauWPDeepTauDz02DoubleTauJet + process.HLTAK4PFJetsSequence + process.hltPFJetsCorrectedMatchedToL1 + process.hlt1PFJet60L1HLTMatched + process.hltHpsOverlapFilterDeepTauDoublePFTau30PFJet60 + process.HLTEndSequence ) +process.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleTauJet + process.hltPreDoubleMediumDeepTauIsoPFTauHPS30L2NNeta2p1PFJet60 + process.HLTL2TauTagNNSequence + process.hltL2DoubleTauJetTagNNFilter + process.HLTGlobalPFTauHPSSequence + process.HLTHPSDeepTauIsoPFTauSequence + process.hltHpsSelectedPFTausMediumDitauWPDeepTauDoubleTauJet + process.hltHpsL1JetsHLTDoublePFTauMediumDitauWPDeepTauMatchDoubleTauJet + process.hltHpsDoublePFTau30MediumDitauWPDeepTauL1HLTMatchedDoubleTauJet + process.HLTAK4PFJetsSequence + process.hltPFJetsCorrectedMatchedToL1 + process.hlt1PFJet60L1HLTMatched + process.hltHpsOverlapFilterDeepTauDoublePFTau30PFJet60 + process.HLTEndSequence ) process.HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1VBFDiJetIsoTau + process.hltPreDoublePFJets40Mass500MediumDeepTau45L2NNMediumDeepTau20eta2p1 + process.HLTL2TauTagNNSequence + process.hltL2VBFIsoTauNNFilter + process.HLTGlobalPFTauHPSSequence + process.HLTHPSDeepTauIsoPFTauSequenceForVBFIsoTau + process.hltHpsSelectedPFTausMediumDitauWPDeepTauForVBFIsoTau + process.hltHpsDoublePFTau20MediumDitauWPDeepTauNoMatch + process.hltHpsL1VBFJetsAndIsoTauHLTDoublePFTauMediumDitauWPDeepTauMatch + process.hltHpsSinglePFTau45MediumDitauWPDeepTauL1HLTMatched + process.HLTAK4PFJetsSequence + process.hltRealDijetFilter + process.hltVBFIsoTauL1TLooseIDPFJetsMatching + process.hltVBFLooseIDPFDummyFilter + process.hltMatchedVBFIsoTauTwoPFJetsDoubleHpsDeepTauIsoPF25TauOverlapRemoval + process.hltMatchedVBFIsoTauTwoPFJets2CrossCleanedFromDoubleHpsDeepTauIsoPFTauHPS20 + process.HLTEndSequence ) process.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + process.hltPreDoubleL2Mu10NoVtx2ChaVetoL3Mu0DxyMax1cm + process.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + process.hltL2fL1fMuf0DoubleL2MuNoVtx10Q + process.hltL2fDoubleMu10NoVertexL2Filtered + process.HLTL3muonrecoSequenceNoVtx + ~process.hltL3fDimuonL1f0ppL2NV2Chaf10L3NVf0Veto1Prompt + process.HLTEndSequence ) process.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + process.hltPreDoubleL3Mu1610NoVtxDxyMin0p01cm + process.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + process.hltL2fL1DoubleMuf0L2DoubleMuNoVtxFiltered7 + process.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered15 + process.HLTL3NoFiltersNoVtxmuonrecoSequence + process.hltL3fL1DoubleMuf0L2NVf15f7L3DoubleMuNVf10Displaced + process.hltL3fL1DoubleMuf0L2NVf15f7L3SingleMuNVf16Displaced + process.HLTEndSequence ) @@ -83643,6 +85477,32 @@ process.HLT_PFMET105_PFJet100_looseRecoiling_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sETMHF90SingleJet60looseRecoiling + process.hltPrePFMET105PFJet100looseRecoiling + process.HLTRecoMETSequence + process.hltMET75 + process.HLTAK4CaloJetsSequence + process.hltSingleAK4CaloJet70 + process.HLTAK4PFJetsSequence + process.hltPFJetsCorrectedMatchedToCaloJets70 + process.hltSinglePFJet100 + process.hltPFMETProducer + process.hltPFMET105 + process.hltPFJet100PFMET105MinDPhi2 + process.HLTEndSequence ) process.HLT_PFMET110_PFJet100_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sETMHF90SingleJet60looseRecoiling + process.hltPrePFMET110PFJet100 + process.HLTRecoMETSequence + process.hltMET75 + process.HLTAK4CaloJetsSequence + process.hltSingleAK4CaloJet70 + process.HLTAK4PFJetsSequence + process.hltPFJetsCorrectedMatchedToCaloJets70 + process.hltSinglePFJet100 + process.hltPFMETProducer + process.hltPFMET110 + process.HLTEndSequence ) process.HLT_PFMET110_PFJet100_looseRecoiling_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sETMHF90SingleJet60looseRecoiling + process.hltPrePFMET110PFJet100looseRecoiling + process.HLTRecoMETSequence + process.hltMET75 + process.HLTAK4CaloJetsSequence + process.hltSingleAK4CaloJet70 + process.HLTAK4PFJetsSequence + process.hltPFJetsCorrectedMatchedToCaloJets70 + process.hltSinglePFJet100 + process.hltPFMETProducer + process.hltPFMET110 + process.hltPFJet100PFMET110MinDPhi2 + process.HLTEndSequence ) +process.HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + process.hltPreDoubleL3Iter4Mu1610NoVtxDxyMin0p01cm + process.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + process.hltL2fL1DoubleMuf0L2DoubleMuNoVtxFiltered7 + process.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered15 + process.HLTL3GblIter4DisplacedMuonRecoSequence + process.hltL3fL1DoubleMuf0L2NVf15f7L3DoubleMuNVf10DisplacedIter4 + process.hltL3fL1DoubleMuf0L2NVf15f7L3SingleMuNVf16DisplacedIter4 + process.HLTEndSequence ) +process.HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDoubleMu155SQOR157ORTripleMu444ORDoubleMu0upt + process.hltPreL3Iter4Mu10NoVtxDxyMin0p01cm + process.hltL1fL1sDoubleMu155ORTripleMu444ORDoubleMu0uptL1Filtered0 + process.HLTL2muonrecoSequenceNoVtx + process.hltL2fL1DoubleMuf0L2SingleMuNoVtxFiltered7 + process.HLTL3GblIter4DisplacedMuonRecoSequence + process.hltL3fL1f0L2f0Filtered10GlbDisplacedIter4 + process.HLTEndSequence ) +process.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT170L1SingleLLPJetDisplacedDijet40DisplacedTrack + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT170 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + process.hltDisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + process.hltIter02DisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIteration4DisplacedJets + process.HLTDisplacedTrackRequirementDisplacedJetsLowPt + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDisplacedDijet40DisplacedTrack + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + process.hltDisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + process.hltIter02DisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIteration4DisplacedJets + process.HLTDisplacedTrackRequirementDisplacedJetsLowPt + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDisplacedDijet60DisplacedTrack + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt60 + process.hltCentralCaloJetptMidPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsMidPt + process.hltDisplacedHLTCaloJetCollectionProducerMidPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsMidPt + process.hltIter02DisplacedHLTCaloJetCollectionProducerMidPt + process.HLTIterativeTrackingIteration4DisplacedJets + process.HLTDisplacedTrackRequirementDisplacedJetsMidPt + process.HLTEndSequence ) +process.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT270L1SingleLLPJetDisplacedDijet40DisplacedTrack + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT270 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + process.hltDisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + process.hltIter02DisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIteration4DisplacedJets + process.HLTDisplacedTrackRequirementDisplacedJetsLowPt + process.HLTEndSequence ) +process.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT320L1SingleLLPJetDisplacedDijet60Inclusive + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT320 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt60 + process.hltCentralCaloJetptMidPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsMidPt + process.hltDisplacedHLTCaloJetCollectionProducerMidPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsMidPt + process.HLTEndSequence ) +process.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT420L1SingleLLPJetDisplacedDijet60Inclusive + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT420 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt60 + process.hltCentralCaloJetptMidPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsMidPt + process.hltDisplacedHLTCaloJetCollectionProducerMidPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsMidPt + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay1nsTrackless + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltSingleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducerSingle + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPtSingle + process.hltDisplacedHLTCaloJetCollectionProducerLowPtSingle + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPtSingle + process.hltCaloJetTimingProducerSingle + process.hltCaloJetTimingFilterSingle1ns + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDelayedJet40SingleDelay2nsInclusive + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltSingleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducerSingle + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPtSingle + process.hltDisplacedHLTCaloJetCollectionProducerLowPtSingle + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPtSingle + process.hltCaloJetTimingProducerSingle + process.hltCaloJetTimingFilterSingle2ns + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay0p5nsTrackless + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + process.hltDisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + process.hltCaloJetTimingProducer + process.hltCaloJetTimingFilterDouble0p5ns + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDelayedJet40DoubleDelay1nsInclusive + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt + process.hltDisplacedHLTCaloJetCollectionProducerLowPt + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt + process.hltCaloJetTimingProducer + process.hltCaloJetTimingFilterDouble1ns + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDisplacedDijet30Inclusive1PtrkShortSig5 + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt30 + process.hltCentralCaloJetptLowPt30CollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLow30Pt1PtrkShortSig5 + process.hltDisplacedHLTCaloJetCollectionProducerLow30Pt1PtrkShortSig5 + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLow30Pt1PtrkShortSig5 + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDisplacedDijet35Inclusive1PtrkShortSig5 + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt35 + process.hltCentralCaloJetptLowPt35CollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLow35Pt1PtrkShortSig5 + process.hltDisplacedHLTCaloJetCollectionProducerLow35Pt1PtrkShortSig5 + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLow35Pt1PtrkShortSig5 + process.HLTEndSequence ) +process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sVoHTT200SingleLLPJet60 + process.hltPreHT200L1SingleLLPJetDisplacedDijet40Inclusive1PtrkShortSig5 + process.hltPixelTrackerHVOn + process.hltStripTrackerHVOn + process.HLTAK4CaloJetsSequence + process.hltHtMht + process.hltHT200 + process.hltEmFraction0p01To0p99CaloJetSelector + process.hltDoubleCentralCaloJetpt40 + process.hltCentralCaloJetptLowPtCollectionProducer + process.HLTBTagPixelAndStripSetupForInclusiveDisplacedJets + process.HLTIterativeTrackingIteration0ForDisplaced + process.HLT2PromptTrackRequirementIter0DisplacedJetsLowPt1PtrkShortSig5 + process.hltDisplacedHLTCaloJetCollectionProducerLowPt1PtrkShortSig5 + process.HLTIterativeTrackingIter12ForDisplaced + process.HLT2PromptTrackRequirementIter12DisplacedJetsLowPt1PtrkShortSig5 + process.HLTEndSequence ) +process.HLT_DiPhoton10Time1ns_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10Time1ns + process.HLTDiPho10CaloIdLTime1nsSequence + process.HLTEndSequence ) +process.HLT_DiPhoton10Time1p2ns_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10Time1p2ns + process.HLTDiPho10CaloIdLTime1p2nsSequence + process.HLTEndSequence ) +process.HLT_DiPhoton10Time1p4ns_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10Time1p4ns + process.HLTDiPho10CaloIdLTime1p4nsSequence + process.HLTEndSequence ) +process.HLT_DiPhoton10Time1p6ns_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10Time1p6ns + process.HLTDiPho10CaloIdLTime1p6nsSequence + process.HLTEndSequence ) +process.HLT_DiPhoton10Time1p8ns_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10Time1p8ns + process.HLTDiPho10CaloIdLTime1p8nsSequence + process.HLTEndSequence ) +process.HLT_DiPhoton10Time2ns_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10Time2ns + process.HLTDiPho10CaloIdLTime2nsSequence + process.HLTEndSequence ) +process.HLT_DiPhoton10sminlt0p1_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10sminlt0p1 + process.HLTDiPho10CaloIdLsminlt0p1Sequence + process.HLTEndSequence ) +process.HLT_DiPhoton10sminlt0p12_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10sminlt0p12 + process.HLTDiPho10CaloIdLsminlt0p12Sequence + process.HLTEndSequence ) +process.HLT_DiPhoton10sminlt0p14_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10sminlt0p14 + process.HLTDiPho10CaloIdLsminlt0p14Sequence + process.HLTEndSequence ) +process.HLT_DiPhoton10sminlt0p16_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10sminlt0p16 + process.HLTDiPho10CaloIdLsminlt0p16Sequence + process.HLTEndSequence ) +process.HLT_DiPhoton10_CaloIdL_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sSingleAndDoubleEGNonIsoForDisplacedTrig + process.hltPreDiPhoton10CaloIdL + process.HLTDiPho10CaloIdLSequence + process.HLTEndSequence ) process.HLT_ExpressMuons_v1 = cms.Path( process.HLTBeginSequence + process.hltPreExpressMuons + process.hltExpressMuonsFilter + process.HLTEndSequence ) process.HLT_OnlineMonitorGroup_v1 = cms.Path( process.HLTBeginSequence + process.hltPreOnlineMonitorGroup + process.hltOnlineMonitorGroupFilter + process.HLTEndSequence ) process.DQM_EcalReconstruction_v1 = cms.Path( process.HLTBeginSequence + process.hltL1sDQMEcalReconstruction + process.hltPreDQMEcalReconstruction + process.statusOnGPU + process.statusOnGPUFilter + process.HLTDoFullUnpackingEgammaEcalWithoutPreshowerSequence + process.hltEcalConsumerCPU + process.hltEcalConsumerGPU + process.HLTEndSequence ) @@ -83764,7 +85624,7 @@ process.Dataset_ZeroBias = cms.Path( process.HLTDatasetPathBeginSequence + process.hltDatasetZeroBias + process.hltPreDatasetZeroBias ) -process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.HLT_AK8PFJet360_TrimMass30_v18, process.HLT_AK8PFJet380_TrimMass30_v11, process.HLT_AK8PFJet400_TrimMass30_v12, process.HLT_AK8PFJet420_TrimMass30_v11, process.HLT_AK8PFHT750_TrimMass50_v12, process.HLT_AK8PFHT800_TrimMass50_v12, process.HLT_AK8PFHT850_TrimMass50_v11, process.HLT_AK8PFHT900_TrimMass50_v11, process.HLT_CaloJet500_NoJetID_v12, process.HLT_CaloJet550_NoJetID_v7, process.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v4, process.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v4, process.HLT_Trimuon5_3p5_2_Upsilon_Muon_v5, process.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v3, process.HLT_DoubleEle25_CaloIdL_MW_v4, process.HLT_DoubleEle27_CaloIdL_MW_v4, process.HLT_DoubleEle33_CaloIdL_MW_v17, process.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v7, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v20, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v20, process.HLT_Ele27_Ele37_CaloIdL_MW_v4, process.HLT_Mu27_Ele37_CaloIdL_MW_v5, process.HLT_Mu37_Ele27_CaloIdL_MW_v5, process.HLT_Mu37_TkMu27_v5, process.HLT_DoubleMu4_3_Bs_v15, process.HLT_DoubleMu4_3_Jpsi_v15, process.HLT_DoubleMu4_3_LowMass_v1, process.HLT_DoubleMu4_LowMass_Displaced_v1, process.HLT_Mu0_L1DoubleMu_v1, process.HLT_Mu4_L1DoubleMu_v1, process.HLT_DoubleMu3_Trk_Tau3mu_v12, process.HLT_DoubleMu3_TkMu_DsTau3Mu_v4, process.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8, process.HLT_DoubleMu4_MuMuTrk_Displaced_v15, process.HLT_Mu3_PFJet40_v16, process.HLT_Mu7p5_L2Mu2_Jpsi_v10, process.HLT_Mu7p5_L2Mu2_Upsilon_v10, process.HLT_Mu7p5_Track2_Jpsi_v11, process.HLT_Mu7p5_Track3p5_Jpsi_v11, process.HLT_Mu7p5_Track7_Jpsi_v11, process.HLT_Mu7p5_Track2_Upsilon_v11, process.HLT_Mu7p5_Track3p5_Upsilon_v11, process.HLT_Mu7p5_Track7_Upsilon_v11, process.HLT_Mu3_L1SingleMu5orSingleMu7_v1, process.HLT_DoublePhoton33_CaloIdL_v6, process.HLT_DoublePhoton70_v6, process.HLT_DoublePhoton85_v14, process.HLT_Ele20_WPTight_Gsf_v6, process.HLT_Ele15_WPLoose_Gsf_v3, process.HLT_Ele17_WPLoose_Gsf_v3, process.HLT_Ele20_WPLoose_Gsf_v6, process.HLT_Ele20_eta2p1_WPLoose_Gsf_v6, process.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4, process.HLT_Ele27_WPTight_Gsf_v16, process.HLT_Ele28_WPTight_Gsf_v1, process.HLT_Ele30_WPTight_Gsf_v1, process.HLT_Ele32_WPTight_Gsf_v15, process.HLT_Ele35_WPTight_Gsf_v9, process.HLT_Ele35_WPTight_Gsf_L1EGMT_v5, process.HLT_Ele38_WPTight_Gsf_v9, process.HLT_Ele40_WPTight_Gsf_v9, process.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v9, process.HLT_Ele24_eta2p1_WPTight_Gsf_TightChargedIsoPFTauHPS30_eta2p1_CrossL1_v1, process.HLT_HT450_Beamspot_v11, process.HLT_HT300_Beamspot_v11, process.HLT_ZeroBias_Beamspot_v4, process.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_CrossL1_v1, process.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_TightID_CrossL1_v1, process.HLT_IsoMu27_LooseChargedIsoPFTau20_Trk1_eta2p1_SingleL1_v5, process.HLT_IsoMu27_LooseChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, process.HLT_IsoMu27_MediumChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, process.HLT_IsoMu27_TightChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, process.HLT_IsoMu20_v15, process.HLT_IsoMu24_v13, process.HLT_IsoMu24_eta2p1_v15, process.HLT_IsoMu27_v16, process.HLT_IsoMu30_v4, process.HLT_UncorrectedJetE30_NoBPTX_v6, process.HLT_UncorrectedJetE30_NoBPTX3BX_v6, process.HLT_UncorrectedJetE60_NoBPTX3BX_v6, process.HLT_UncorrectedJetE70_NoBPTX3BX_v6, process.HLT_L1SingleMu18_v3, process.HLT_L1SingleMu25_v2, process.HLT_L1SingleMuCosmics_v1, process.HLT_L2Mu10_v7, process.HLT_L2Mu10_NoVertex_NoBPTX3BX_v5, process.HLT_L2Mu10_NoVertex_NoBPTX_v6, process.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4, process.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5, process.HLT_L2Mu50_v2, process.HLT_L2Mu23NoVtx_2Cha_v1, process.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v1, process.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2, process.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2, process.HLT_DoubleL2Mu50_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v2, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v14, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v3, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v3, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v3, process.HLT_Mu25_TkMu0_Onia_v8, process.HLT_Mu30_TkMu0_Psi_v1, process.HLT_Mu30_TkMu0_Upsilon_v1, process.HLT_Mu20_TkMu0_Phi_v8, process.HLT_Mu25_TkMu0_Phi_v8, process.HLT_Mu12_v3, process.HLT_Mu15_v3, process.HLT_Mu20_v12, process.HLT_Mu27_v13, process.HLT_Mu50_v13, process.HLT_Mu55_v3, process.HLT_CascadeMu100_v3, process.HLT_HighPtTkMu100_v2, process.HLT_DiPFJet15_NoCaloMatched_v16, process.HLT_DiPFJet25_NoCaloMatched_v16, process.HLT_DiPFJet15_FBEta3_NoCaloMatched_v17, process.HLT_DiPFJet25_FBEta3_NoCaloMatched_v17, process.HLT_DiPFJetAve40_v14, process.HLT_DiPFJetAve60_v14, process.HLT_DiPFJetAve80_v13, process.HLT_DiPFJetAve140_v13, process.HLT_DiPFJetAve200_v13, process.HLT_DiPFJetAve260_v14, process.HLT_DiPFJetAve320_v14, process.HLT_DiPFJetAve400_v14, process.HLT_DiPFJetAve500_v14, process.HLT_DiPFJetAve15_HFJEC_v17, process.HLT_DiPFJetAve25_HFJEC_v17, process.HLT_DiPFJetAve35_HFJEC_v17, process.HLT_DiPFJetAve60_HFJEC_v15, process.HLT_DiPFJetAve80_HFJEC_v16, process.HLT_DiPFJetAve100_HFJEC_v16, process.HLT_DiPFJetAve160_HFJEC_v16, process.HLT_DiPFJetAve220_HFJEC_v16, process.HLT_DiPFJetAve300_HFJEC_v16, process.HLT_AK8PFJet15_v3, process.HLT_AK8PFJet25_v3, process.HLT_AK8PFJet40_v16, process.HLT_AK8PFJet60_v15, process.HLT_AK8PFJet80_v15, process.HLT_AK8PFJet140_v15, process.HLT_AK8PFJet200_v15, process.HLT_AK8PFJet260_v16, process.HLT_AK8PFJet320_v16, process.HLT_AK8PFJet400_v16, process.HLT_AK8PFJet450_v16, process.HLT_AK8PFJet500_v16, process.HLT_AK8PFJet550_v11, process.HLT_PFJet15_v3, process.HLT_PFJet25_v3, process.HLT_PFJet40_v21, process.HLT_PFJet60_v21, process.HLT_PFJet80_v20, process.HLT_PFJet140_v19, process.HLT_PFJet200_v19, process.HLT_PFJet260_v20, process.HLT_PFJet320_v20, process.HLT_PFJet400_v20, process.HLT_PFJet450_v21, process.HLT_PFJet500_v21, process.HLT_PFJet550_v11, process.HLT_PFJetFwd15_v3, process.HLT_PFJetFwd25_v3, process.HLT_PFJetFwd40_v19, process.HLT_PFJetFwd60_v19, process.HLT_PFJetFwd80_v18, process.HLT_PFJetFwd140_v18, process.HLT_PFJetFwd200_v18, process.HLT_PFJetFwd260_v19, process.HLT_PFJetFwd320_v19, process.HLT_PFJetFwd400_v19, process.HLT_PFJetFwd450_v19, process.HLT_PFJetFwd500_v19, process.HLT_AK8PFJetFwd15_v3, process.HLT_AK8PFJetFwd25_v3, process.HLT_AK8PFJetFwd40_v15, process.HLT_AK8PFJetFwd60_v14, process.HLT_AK8PFJetFwd80_v14, process.HLT_AK8PFJetFwd140_v14, process.HLT_AK8PFJetFwd200_v14, process.HLT_AK8PFJetFwd260_v15, process.HLT_AK8PFJetFwd320_v15, process.HLT_AK8PFJetFwd400_v15, process.HLT_AK8PFJetFwd450_v15, process.HLT_AK8PFJetFwd500_v15, process.HLT_PFHT180_v17, process.HLT_PFHT250_v17, process.HLT_PFHT370_v17, process.HLT_PFHT430_v17, process.HLT_PFHT510_v17, process.HLT_PFHT590_v17, process.HLT_PFHT680_v17, process.HLT_PFHT780_v17, process.HLT_PFHT890_v17, process.HLT_PFHT1050_v18, process.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v12, process.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v12, process.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v12, process.HLT_PFHT700_PFMET95_PFMHT95_IDTight_v12, process.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v12, process.HLT_PFHT800_PFMET85_PFMHT85_IDTight_v12, process.HLT_PFMET110_PFMHT110_IDTight_v20, process.HLT_PFMET120_PFMHT120_IDTight_v20, process.HLT_PFMET130_PFMHT130_IDTight_v20, process.HLT_PFMET140_PFMHT140_IDTight_v20, process.HLT_PFMET100_PFMHT100_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET110_PFMHT110_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET120_PFMHT120_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET130_PFMHT130_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET140_PFMHT140_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v9, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v9, process.HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9, process.HLT_PFMETTypeOne110_PFMHT110_IDTight_v12, process.HLT_PFMETTypeOne120_PFMHT120_IDTight_v12, process.HLT_PFMETTypeOne130_PFMHT130_IDTight_v12, process.HLT_PFMETTypeOne140_PFMHT140_IDTight_v11, process.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, process.HLT_MonoCentralPFJet80_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, process.HLT_MonoCentralPFJet80_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, process.HLT_MonoCentralPFJet80_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, process.HLT_MonoCentralPFJet80_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, process.HLT_L1ETMHadSeeds_v2, process.HLT_CaloMHT90_v4, process.HLT_CaloMET80_NotCleaned_v4, process.HLT_CaloMET90_NotCleaned_v4, process.HLT_CaloMET100_NotCleaned_v4, process.HLT_CaloMET110_NotCleaned_v4, process.HLT_CaloMET250_NotCleaned_v4, process.HLT_CaloMET300_NotCleaned_v4, process.HLT_CaloMET350_NotCleaned_v4, process.HLT_PFMET200_NotCleaned_v9, process.HLT_PFMET250_NotCleaned_v9, process.HLT_PFMET300_NotCleaned_v9, process.HLT_PFMET200_BeamHaloCleaned_v9, process.HLT_PFMETTypeOne200_BeamHaloCleaned_v9, process.HLT_MET105_IsoTrk50_v9, process.HLT_MET120_IsoTrk50_v9, process.HLT_SingleJet30_Mu12_SinglePFJet40_v11, process.HLT_Mu12eta2p3_v1, process.HLT_Mu12eta2p3_PFJet40_v1, process.HLT_Mu12_DoublePFJets40_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets100_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets200_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets350_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets40_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets100_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets200_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets40_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets100_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets200_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets350_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_DoublePFJets40_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets100_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets200_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets350_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_Photon300_NoHE_v12, process.HLT_Mu8_TrkIsoVVL_v12, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v18, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v18, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v19, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v19, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepCSV_1p5_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_CaloBtagDeepCSV_1p5_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v11, process.HLT_Mu17_TrkIsoVVL_v13, process.HLT_Mu19_TrkIsoVVL_v4, process.HLT_BTagMu_AK4DiJet20_Mu5_v13, process.HLT_BTagMu_AK4DiJet40_Mu5_v13, process.HLT_BTagMu_AK4DiJet70_Mu5_v13, process.HLT_BTagMu_AK4DiJet110_Mu5_v13, process.HLT_BTagMu_AK4DiJet170_Mu5_v12, process.HLT_BTagMu_AK4Jet300_Mu5_v12, process.HLT_BTagMu_AK8DiJet170_Mu5_v9, process.HLT_BTagMu_AK8Jet170_DoubleMu5_v2, process.HLT_BTagMu_AK8Jet300_Mu5_v12, process.HLT_Ele15_Ele8_CaloIdL_TrackIdL_IsoVL_v3, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v19, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v15, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v7, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v7, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v15, process.HLT_Mu12_DoublePhoton20_v5, process.HLT_Photon20_v2, process.HLT_Photon33_v5, process.HLT_Photon50_v13, process.HLT_Photon75_v13, process.HLT_Photon90_v13, process.HLT_Photon120_v13, process.HLT_Photon150_v6, process.HLT_Photon175_v14, process.HLT_Photon200_v13, process.HLT_Photon100EB_TightID_TightIso_v2, process.HLT_Photon110EB_TightID_TightIso_v2, process.HLT_Photon120EB_TightID_TightIso_v2, process.HLT_Photon100EBHE10_v2, process.HLT_Photon100EEHE10_v2, process.HLT_Photon100EE_TightID_TightIso_v2, process.HLT_Photon50_R9Id90_HE10_IsoM_v14, process.HLT_Photon75_R9Id90_HE10_IsoM_v14, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ300_PFJetsMJJ400DEta3_v5, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ400_PFJetsMJJ600DEta3_v5, process.HLT_Photon90_R9Id90_HE10_IsoM_v14, process.HLT_Photon120_R9Id90_HE10_IsoM_v14, process.HLT_Photon165_R9Id90_HE10_IsoM_v15, process.HLT_Photon90_CaloIdL_PFHT700_v16, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v13, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v13, process.HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13, process.HLT_Photon35_TwoProngs35_v1, process.HLT_IsoMu24_TwoProngs35_v1, process.HLT_Dimuon0_Jpsi_L1_NoOS_v7, process.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v7, process.HLT_Dimuon0_Jpsi_v8, process.HLT_Dimuon0_Jpsi_NoVertexing_v8, process.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7, process.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v7, process.HLT_Dimuon0_Jpsi3p5_Muon2_v5, process.HLT_Dimuon0_Upsilon_L1_4p5_v9, process.HLT_Dimuon0_Upsilon_L1_5_v9, process.HLT_Dimuon0_Upsilon_L1_4p5NoOS_v8, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v9, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v7, process.HLT_Dimuon0_Upsilon_NoVertexing_v7, process.HLT_Dimuon0_Upsilon_L1_5M_v8, process.HLT_Dimuon0_LowMass_L1_0er1p5R_v7, process.HLT_Dimuon0_LowMass_L1_0er1p5_v8, process.HLT_Dimuon0_LowMass_v8, process.HLT_Dimuon0_LowMass_L1_4_v8, process.HLT_Dimuon0_LowMass_L1_4R_v7, process.HLT_Dimuon0_LowMass_L1_TM530_v6, process.HLT_Dimuon0_Upsilon_Muon_L1_TM0_v6, process.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v6, process.HLT_TripleMu_5_3_3_Mass3p8_DZ_v8, process.HLT_TripleMu_10_5_5_DZ_v10, process.HLT_TripleMu_12_10_5_v10, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v4, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v4, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v4, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v4, process.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10, process.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v10, process.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v10, process.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v6, process.HLT_DoubleMu4_Jpsi_Displaced_v7, process.HLT_DoubleMu4_Jpsi_NoVertexing_v7, process.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v7, process.HLT_DoubleMu43NoFiltersNoVtx_v4, process.HLT_DoubleMu48NoFiltersNoVtx_v4, process.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v5, process.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v5, process.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v1, process.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v1, process.HLT_DoubleMu40NoFiltersNoVtxDisplaced_v1, process.HLT_DoubleMu20_7_Mass0to30_L1_DM4_v7, process.HLT_DoubleMu20_7_Mass0to30_L1_DM4EG_v8, process.HLT_HT425_v9, process.HLT_HT430_DisplacedDijet40_DisplacedTrack_v13, process.HLT_HT500_DisplacedDijet40_DisplacedTrack_v13, process.HLT_HT430_DisplacedDijet60_DisplacedTrack_v13, process.HLT_HT400_DisplacedDijet40_DisplacedTrack_v13, process.HLT_HT650_DisplacedDijet60_Inclusive_v13, process.HLT_HT550_DisplacedDijet60_Inclusive_v13, process.HLT_DiJet110_35_Mjj650_PFMET110_v9, process.HLT_DiJet110_35_Mjj650_PFMET120_v9, process.HLT_DiJet110_35_Mjj650_PFMET130_v9, process.HLT_TripleJet110_35_35_Mjj650_PFMET110_v9, process.HLT_TripleJet110_35_35_Mjj650_PFMET120_v9, process.HLT_TripleJet110_35_35_Mjj650_PFMET130_v9, process.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v13, process.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v13, process.HLT_Ele28_HighEta_SC20_Mass55_v13, process.HLT_DoubleMu20_7_Mass0to30_Photon23_v8, process.HLT_Ele15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, process.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v16, process.HLT_Ele15_IsoVVVL_PFHT450_v16, process.HLT_Ele50_IsoVVVL_PFHT450_v16, process.HLT_Ele15_IsoVVVL_PFHT600_v20, process.HLT_Mu4_TrkIsoVVL_DiPFJet90_40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v15, process.HLT_Mu8_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v16, process.HLT_Mu10_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT350_PFMETNoMu60_v15, process.HLT_Mu15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, process.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v15, process.HLT_Mu15_IsoVVVL_PFHT450_v15, process.HLT_Mu50_IsoVVVL_PFHT450_v15, process.HLT_Mu15_IsoVVVL_PFHT600_v19, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET70_PFMHT70_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu70_PFMHTNoMu70_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v2, process.HLT_Dimuon10_PsiPrime_Barrel_Seagulls_v7, process.HLT_Dimuon20_Jpsi_Barrel_Seagulls_v7, process.HLT_Dimuon12_Upsilon_y1p4_v2, process.HLT_Dimuon14_Phi_Barrel_Seagulls_v7, process.HLT_Dimuon18_PsiPrime_v14, process.HLT_Dimuon25_Jpsi_v14, process.HLT_Dimuon18_PsiPrime_noCorrL1_v6, process.HLT_Dimuon24_Upsilon_noCorrL1_v6, process.HLT_Dimuon24_Phi_noCorrL1_v6, process.HLT_Dimuon25_Jpsi_noCorrL1_v6, process.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v17, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v17, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v17, process.HLT_DoubleIsoMu20_eta2p1_v7, process.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v6, process.HLT_TrkMu16_DoubleTrkMu6NoFiltersNoVtx_v12, process.HLT_TrkMu17_DoubleTrkMu8NoFiltersNoVtx_v13, process.HLT_Mu8_v12, process.HLT_Mu17_v13, process.HLT_Mu19_v4, process.HLT_Mu17_Photon30_IsoCaloId_v6, process.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v16, process.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, process.HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3, process.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, process.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v18, process.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v16, process.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v18, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18, process.HLT_Ele115_CaloIdVT_GsfTrkIdT_v14, process.HLT_Ele135_CaloIdVT_GsfTrkIdT_v7, process.HLT_Ele145_CaloIdVT_GsfTrkIdT_v8, process.HLT_Ele200_CaloIdVT_GsfTrkIdT_v8, process.HLT_Ele250_CaloIdVT_GsfTrkIdT_v13, process.HLT_Ele300_CaloIdVT_GsfTrkIdT_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepCSV_4p5_v3, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v9, process.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepCSV_2p94_v8, process.HLT_PFHT400_SixPFJet32_v8, process.HLT_PFHT450_SixPFJet36_PFBTagDeepCSV_1p59_v7, process.HLT_PFHT450_SixPFJet36_v7, process.HLT_PFHT400_FivePFJet_100_100_60_30_30_v8, process.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepCSV_4p5_v8, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepCSV_4p5_v8, process.HLT_PFHT350_v19, process.HLT_PFHT350MinPFJet15_v9, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_v5, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_v5, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350MinPFJet15_v11, process.HLT_ECALHT800_v10, process.HLT_DiSC30_18_EIso_AND_HE_Mass70_v13, process.HLT_Physics_v7, process.HLT_EphemeralPhysics_v1, process.DST_Physics_v7, process.HLT_Random_v3, process.HLT_ZeroBias_v6, process.HLT_ZeroBias_Alignment_v1, process.HLT_EphemeralZeroBias_v1, process.DST_ZeroBias_v2, process.DST_Run3_PFScoutingPixelTracking_v16, process.HLT_AK4CaloJet30_v11, process.HLT_AK4CaloJet40_v10, process.HLT_AK4CaloJet50_v10, process.HLT_AK4CaloJet80_v10, process.HLT_AK4CaloJet100_v10, process.HLT_AK4CaloJet120_v9, process.HLT_AK4PFJet30_v19, process.HLT_AK4PFJet50_v19, process.HLT_AK4PFJet80_v19, process.HLT_AK4PFJet100_v19, process.HLT_AK4PFJet120_v18, process.HLT_SinglePhoton10_Eta3p1ForPPRef_v8, process.HLT_SinglePhoton20_Eta3p1ForPPRef_v9, process.HLT_SinglePhoton30_Eta3p1ForPPRef_v9, process.HLT_Photon20_HoverELoose_v10, process.HLT_Photon30_HoverELoose_v10, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v5, process.AlCa_EcalPhiSym_v9, process.HLT_L1UnpairedBunchBptxMinus_v2, process.HLT_L1UnpairedBunchBptxPlus_v2, process.HLT_L1NotBptxOR_v3, process.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v2, process.HLT_CDC_L2cosmic_10_er1p0_v1, process.HLT_CDC_L2cosmic_5p5_er1p0_v1, process.HLT_HcalNZS_v13, process.HLT_HcalPhiSym_v15, process.HLT_HcalIsolatedbunch_v5, process.HLT_IsoTrackHB_v4, process.HLT_IsoTrackHE_v4, process.HLT_ZeroBias_FirstCollisionAfterAbortGap_v5, process.HLT_ZeroBias_IsolatedBunches_v5, process.HLT_ZeroBias_FirstCollisionInTrain_v4, process.HLT_ZeroBias_LastCollisionInTrain_v3, process.HLT_ZeroBias_FirstBXAfterTrain_v3, process.AlCa_RPCMuonNormalisation_v13, process.AlCa_LumiPixelsCounts_Random_v2, process.AlCa_LumiPixelsCounts_ZeroBias_v2, process.MC_ReducedIterativeTracking_v12, process.MC_PFMET_v17, process.MC_AK4PFJets_v17, process.MC_PFBTagDeepCSV_v10, process.MC_PFHT_v16, process.MC_PFMHT_v16, process.MC_CaloMET_v8, process.MC_CaloMET_JetIdCleaned_v9, process.MC_AK4CaloJets_v9, process.MC_AK4CaloJetsFromPV_v8, process.MC_CaloBTagDeepCSV_v8, process.MC_CaloHT_v8, process.MC_CaloMHT_v8, process.MC_AK8PFJets_v17, process.MC_AK8TrimPFJets_v17, process.MC_AK8PFHT_v16, process.MC_AK8CaloHT_v8, process.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v13, process.MC_DoubleEle5_CaloIdL_MW_v15, process.MC_Ele5_WPTight_Gsf_v8, process.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v15, process.MC_IsoMu_v15, process.MC_DoubleMu_TrkIsoVVL_DZ_v11, process.MC_DoubleMuNoFiltersNoVtx_v7, process.MC_PFBTagDeepJet_v1, process.AlCa_EcalPi0EBonly_v13, process.AlCa_EcalPi0EEonly_v13, process.AlCa_EcalEtaEBonly_v13, process.AlCa_EcalEtaEEonly_v13, process.HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12, process.HLT_MediumChargedIsoPFTau200HighPtRelaxedIso_Trk50_eta2p1_v12, process.HLT_MediumChargedIsoPFTau220HighPtRelaxedIso_Trk50_eta2p1_v12, process.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v9, process.HLT_Rsq0p35_v15, process.HLT_Rsq0p40_v15, process.HLT_RsqMR300_Rsq0p09_MR200_v15, process.HLT_RsqMR320_Rsq0p09_MR200_v15, process.HLT_RsqMR300_Rsq0p09_MR200_4jet_v15, process.HLT_RsqMR320_Rsq0p09_MR200_4jet_v15, process.HLT_IsoMu27_MET90_v3, process.HLT_VBF_DoubleLooseChargedIsoPFTau20_Trk1_eta2p1_v3, process.HLT_VBF_DoubleLooseChargedIsoPFTauHPS20_Trk1_eta2p1_v1, process.HLT_VBF_DoubleMediumChargedIsoPFTauHPS20_Trk1_eta2p1_v1, process.HLT_VBF_DoubleTightChargedIsoPFTauHPS20_Trk1_eta2p1_v1, process.HLT_Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50_v5, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v5, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ600DEta3_v5, process.HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9, process.HLT_PFMETNoMu100_PFMHTNoMu100_IDTight_PFHT60_v9, process.HLT_PFMETTypeOne100_PFMHT100_IDTight_PFHT60_v9, process.HLT_Mu18_Mu9_SameSign_v4, process.HLT_Mu18_Mu9_SameSign_DZ_v4, process.HLT_Mu18_Mu9_v4, process.HLT_Mu18_Mu9_DZ_v4, process.HLT_Mu20_Mu10_SameSign_v4, process.HLT_Mu20_Mu10_SameSign_DZ_v4, process.HLT_Mu20_Mu10_v4, process.HLT_Mu20_Mu10_DZ_v4, process.HLT_Mu23_Mu12_SameSign_v4, process.HLT_Mu23_Mu12_SameSign_DZ_v4, process.HLT_Mu23_Mu12_v4, process.HLT_Mu23_Mu12_DZ_v4, process.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v6, process.HLT_DoubleMu2_Jpsi_DoubleTkMu0_Phi_v5, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10, process.HLT_TripleMu_5_3_3_Mass3p8_DCA_v3, process.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_QuadPFJet98_83_71_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet103_88_75_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet105_88_76_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet111_90_80_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet98_83_71_15_v5, process.HLT_QuadPFJet103_88_75_15_v5, process.HLT_QuadPFJet105_88_76_15_v5, process.HLT_QuadPFJet111_90_80_15_v5, process.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p17_v2, process.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p1_v2, process.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_p02_v3, process.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np2_v2, process.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np4_v2, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_v2, process.HLT_Mu12_IP6_ToCSCS_v1, process.HLT_Mu12_IP6_part0_v2, process.HLT_Mu12_IP6_part1_v2, process.HLT_Mu12_IP6_part2_v2, process.HLT_Mu12_IP6_part3_v2, process.HLT_Mu12_IP6_part4_v2, process.HLT_Mu9_IP5_ToCSCS_v1, process.HLT_Mu9_IP5_part0_v2, process.HLT_Mu9_IP5_part1_v2, process.HLT_Mu9_IP5_part2_v2, process.HLT_Mu9_IP5_part3_v2, process.HLT_Mu9_IP5_part4_v2, process.HLT_Mu7_IP4_ToCSCS_v1, process.HLT_Mu7_IP4_part0_v2, process.HLT_Mu7_IP4_part1_v2, process.HLT_Mu7_IP4_part2_v2, process.HLT_Mu7_IP4_part3_v2, process.HLT_Mu7_IP4_part4_v2, process.HLT_Mu9_IP4_ToCSCS_v1, process.HLT_Mu9_IP4_part0_v2, process.HLT_Mu9_IP4_part1_v2, process.HLT_Mu9_IP4_part2_v2, process.HLT_Mu9_IP4_part3_v2, process.HLT_Mu9_IP4_part4_v2, process.HLT_Mu8_IP5_ToCSCS_v1, process.HLT_Mu8_IP5_part0_v2, process.HLT_Mu8_IP5_part1_v2, process.HLT_Mu8_IP5_part2_v2, process.HLT_Mu8_IP5_part3_v2, process.HLT_Mu8_IP5_part4_v2, process.HLT_Mu8_IP6_ToCSCS_v1, process.HLT_Mu8_IP6_part0_v2, process.HLT_Mu8_IP6_part1_v2, process.HLT_Mu8_IP6_part2_v2, process.HLT_Mu8_IP6_part3_v2, process.HLT_Mu8_IP6_part4_v2, process.HLT_Mu9_IP6_ToCSCS_v1, process.HLT_Mu9_IP6_part0_v3, process.HLT_Mu9_IP6_part1_v3, process.HLT_Mu9_IP6_part2_v3, process.HLT_Mu9_IP6_part3_v3, process.HLT_Mu9_IP6_part4_v3, process.HLT_Mu8_IP3_ToCSCS_v1, process.HLT_Mu8_IP3_part0_v3, process.HLT_Mu8_IP3_part1_v3, process.HLT_Mu8_IP3_part2_v3, process.HLT_Mu8_IP3_part3_v3, process.HLT_Mu8_IP3_part4_v3, process.HLT_Mu9_IP0_part0_v2, process.HLT_Mu9_IP3_part0_v2, process.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_TrkMu6NoFiltersNoVtx_v1, process.HLT_TrkMu16NoFiltersNoVtx_v1, process.HLT_DoubleTrkMu_16_6_NoFiltersNoVtx_v1, process.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1, process.HLT_DoubleMediumChargedIsoPFTauHPS40_Trk1_eta2p1_v1, process.HLT_DoubleTightChargedIsoPFTauHPS35_Trk1_eta2p1_v1, process.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, process.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v1, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v1, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v1, process.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v1, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v1, process.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepJet_4p5_v1, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepJet_4p5_v1, process.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepJet_2p94_v1, process.HLT_PFHT450_SixPFJet36_PFBTagDeepJet_1p59_v1, process.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet103_88_75_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet105_88_76_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet111_90_80_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet98_83_71_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v1, process.HLT_QuadPFJet70_50_40_30_v1, process.HLT_QuadPFJet70_50_40_30_PFBTagParticleNet_2BTagSum0p65_v1, process.HLT_QuadPFJet70_50_40_35_PFBTagParticleNet_2BTagSum0p65_v1, process.HLT_QuadPFJet70_50_45_35_PFBTagParticleNet_2BTagSum0p65_v1, process.HLT_AK8PFJet230_SoftDropMass40_v1, process.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, process.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, process.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, process.HLT_AK8PFJet400_SoftDropMass40_v1, process.HLT_AK8PFJet425_SoftDropMass40_v1, process.HLT_AK8PFJet450_SoftDropMass40_v1, process.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, process.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, process.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, process.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1, process.HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1, process.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v1, process.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1, process.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v1, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1, process.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1, process.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v1, process.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v1, process.HLT_L1Mu6HT240_v1, process.HLT_Mu6HT240_DisplacedDijet30_Inclusive0PtrkShortSig5_v1, process.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v1, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v1, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v1, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v1, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v1, process.HLT_HT430_DisplacedDijet30_Inclusive1PtrkShortSig5_v1, process.HLT_HT430_DisplacedDijet35_Inclusive1PtrkShortSig5_v1, process.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v1, process.HLT_CaloMET60_DTCluster50_v1, process.HLT_CaloMET60_DTClusterNoMB1S50_v1, process.HLT_L1MET_DTCluster50_v1, process.HLT_L1MET_DTClusterNoMB1S50_v1, process.HLT_CscCluster_Loose_v1, process.HLT_CscCluster_Medium_v1, process.HLT_CscCluster_Tight_v1, process.HLT_L1CSCShower_DTCluster50_v1, process.HLT_L1CSCShower_DTCluster75_v1, process.HLT_PFMET105_IsoTrk50_v1, process.HLT_PFMET105_PFJet100_looseRecoiling_v1, process.HLT_PFMET110_PFJet100_v1, process.HLT_PFMET110_PFJet100_looseRecoiling_v1, process.HLT_ExpressMuons_v1, process.HLT_OnlineMonitorGroup_v1, process.DQM_EcalReconstruction_v1, process.DQM_HcalReconstruction_v1, process.DQM_PixelReconstruction_v1, process.HLT_PPSMaxTracksPerArm1_v1, process.HLT_PPSMaxTracksPerRP4_v1, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.PhysicsCommissioningOutput, process.PhysicsEGammaOutput, process.PhysicsEndOfFillOutput, process.PhysicsHadronsTausOutput, process.PhysicsMuonsOutput, process.ParkingBPH1Output, process.ParkingBPH2Output, process.ParkingBPH3Output, process.ParkingBPH4Output, process.ParkingBPH5Output, process.DQMOutput, process.DQMEventDisplayOutput, process.DQMCalibrationOutput, process.DQMOnlineBeamspotOutput, process.DQMGPUvsCPUOutput, process.HLTMonitorOutput, process.RPCMONOutput, process.CalibrationOutput, process.EcalCalibrationOutput, process.ALCAPHISYMOutput, process.ALCALumiPixelCountsExpressOutput, process.ALCALumiPixelCountsPromptOutput, process.ALCAP0Output, process.ALCAPPSOutput, process.ExpressOutput, process.ExpressAlignmentOutput, process.NanoDSTOutput, process.ScoutingPFOutput, process.PhysicsScoutingPFMonitorOutput, process.PhysicsHLTPhysics0Output, process.PhysicsHLTPhysics1Output, process.PhysicsHLTPhysics2Output, process.PhysicsHLTPhysics3Output, process.PhysicsZeroBias0Output, process.PhysicsZeroBias1Output, process.PhysicsZeroBias2Output, process.PhysicsZeroBias3Output, process.Dataset_AlCaLumiPixelCountsExpress, process.Dataset_AlCaLumiPixelCountsPrompt, process.Dataset_AlCaP0, process.Dataset_AlCaPPS, process.Dataset_AlCaPhiSym, process.Dataset_BTagMu, process.Dataset_Commissioning, process.Dataset_Cosmics, process.Dataset_DQMGPUvsCPU, process.Dataset_DQMOnlineBeamspot, process.Dataset_DisplacedJet, process.Dataset_DoubleMuon, process.Dataset_DoubleMuonLowMass, process.Dataset_EGamma, process.Dataset_EcalLaser, process.Dataset_EmptyBX, process.Dataset_EphemeralHLTPhysics0, process.Dataset_EphemeralHLTPhysics1, process.Dataset_EphemeralHLTPhysics2, process.Dataset_EphemeralHLTPhysics3, process.Dataset_EphemeralHLTPhysics4, process.Dataset_EphemeralHLTPhysics5, process.Dataset_EphemeralHLTPhysics6, process.Dataset_EphemeralHLTPhysics7, process.Dataset_EphemeralZeroBias0, process.Dataset_EphemeralZeroBias1, process.Dataset_EphemeralZeroBias2, process.Dataset_EphemeralZeroBias3, process.Dataset_EphemeralZeroBias4, process.Dataset_EphemeralZeroBias5, process.Dataset_EphemeralZeroBias6, process.Dataset_EphemeralZeroBias7, process.Dataset_EventDisplay, process.Dataset_ExpressAlignment, process.Dataset_ExpressPhysics, process.Dataset_FSQJet1, process.Dataset_FSQJet2, process.Dataset_HINCaloJets, process.Dataset_HINPFJets, process.Dataset_HLTMonitor, process.Dataset_HLTPhysics, process.Dataset_HcalNZS, process.Dataset_HighPtLowerPhotons, process.Dataset_HighPtPhoton30AndZ, process.Dataset_IsolatedBunch, process.Dataset_JetHT, process.Dataset_L1Accept, process.Dataset_MET, process.Dataset_MonteCarlo, process.Dataset_MuonEG, process.Dataset_NoBPTX, process.Dataset_OnlineMonitor, process.Dataset_ParkingBPH1, process.Dataset_ParkingBPH2, process.Dataset_ParkingBPH3, process.Dataset_ParkingBPH4, process.Dataset_ParkingBPH5, process.Dataset_ParkingBPHPromptCSCS, process.Dataset_RPCMonitor, process.Dataset_ScoutingPFMonitor, process.Dataset_ScoutingPFRun3, process.Dataset_SingleMuon, process.Dataset_Tau, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.Dataset_ZeroBias, )) +process.schedule = cms.Schedule( *(process.HLTriggerFirstPath, process.Status_OnCPU, process.Status_OnGPU, process.HLT_AK8PFJet360_TrimMass30_v18, process.HLT_AK8PFJet380_TrimMass30_v11, process.HLT_AK8PFJet400_TrimMass30_v12, process.HLT_AK8PFJet420_TrimMass30_v11, process.HLT_AK8PFHT750_TrimMass50_v12, process.HLT_AK8PFHT800_TrimMass50_v12, process.HLT_AK8PFHT850_TrimMass50_v11, process.HLT_AK8PFHT900_TrimMass50_v11, process.HLT_CaloJet500_NoJetID_v12, process.HLT_CaloJet550_NoJetID_v7, process.HLT_DoubleMu5_Upsilon_DoubleEle3_CaloIdL_TrackIdL_v4, process.HLT_DoubleMu3_DoubleEle7p5_CaloIdL_TrackIdL_Upsilon_v4, process.HLT_Trimuon5_3p5_2_Upsilon_Muon_v5, process.HLT_TrimuonOpen_5_3p5_2_Upsilon_Muon_v3, process.HLT_DoubleEle25_CaloIdL_MW_v4, process.HLT_DoubleEle27_CaloIdL_MW_v4, process.HLT_DoubleEle33_CaloIdL_MW_v17, process.HLT_DoubleEle24_eta2p1_WPTight_Gsf_v7, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_DZ_PFHT350_v20, process.HLT_DoubleEle8_CaloIdM_TrackIdM_Mass8_PFHT350_v20, process.HLT_Ele27_Ele37_CaloIdL_MW_v4, process.HLT_Mu27_Ele37_CaloIdL_MW_v5, process.HLT_Mu37_Ele27_CaloIdL_MW_v5, process.HLT_Mu37_TkMu27_v5, process.HLT_DoubleMu4_3_Bs_v15, process.HLT_DoubleMu4_3_Jpsi_v15, process.HLT_DoubleMu4_3_LowMass_v1, process.HLT_DoubleMu4_LowMass_Displaced_v1, process.HLT_Mu0_L1DoubleMu_v1, process.HLT_Mu4_L1DoubleMu_v1, process.HLT_DoubleMu3_Trk_Tau3mu_v12, process.HLT_DoubleMu3_TkMu_DsTau3Mu_v4, process.HLT_DoubleMu4_Mass3p8_DZ_PFHT350_v8, process.HLT_DoubleMu4_MuMuTrk_Displaced_v15, process.HLT_Mu3_PFJet40_v16, process.HLT_Mu7p5_L2Mu2_Jpsi_v10, process.HLT_Mu7p5_L2Mu2_Upsilon_v10, process.HLT_Mu7p5_Track2_Jpsi_v11, process.HLT_Mu7p5_Track3p5_Jpsi_v11, process.HLT_Mu7p5_Track7_Jpsi_v11, process.HLT_Mu7p5_Track2_Upsilon_v11, process.HLT_Mu7p5_Track3p5_Upsilon_v11, process.HLT_Mu7p5_Track7_Upsilon_v11, process.HLT_Mu3_L1SingleMu5orSingleMu7_v1, process.HLT_DoublePhoton33_CaloIdL_v6, process.HLT_DoublePhoton70_v6, process.HLT_DoublePhoton85_v14, process.HLT_Ele20_WPTight_Gsf_v6, process.HLT_Ele15_WPLoose_Gsf_v3, process.HLT_Ele17_WPLoose_Gsf_v3, process.HLT_Ele20_WPLoose_Gsf_v6, process.HLT_Ele20_eta2p1_WPLoose_Gsf_v6, process.HLT_DiEle27_WPTightCaloOnly_L1DoubleEG_v4, process.HLT_Ele27_WPTight_Gsf_v16, process.HLT_Ele28_WPTight_Gsf_v1, process.HLT_Ele30_WPTight_Gsf_v1, process.HLT_Ele32_WPTight_Gsf_v15, process.HLT_Ele35_WPTight_Gsf_v9, process.HLT_Ele35_WPTight_Gsf_L1EGMT_v5, process.HLT_Ele38_WPTight_Gsf_v9, process.HLT_Ele40_WPTight_Gsf_v9, process.HLT_Ele32_WPTight_Gsf_L1DoubleEG_v9, process.HLT_Ele24_eta2p1_WPTight_Gsf_TightChargedIsoPFTauHPS30_eta2p1_CrossL1_v1, process.HLT_HT450_Beamspot_v11, process.HLT_HT300_Beamspot_v11, process.HLT_ZeroBias_Beamspot_v4, process.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_CrossL1_v1, process.HLT_IsoMu20_eta2p1_TightChargedIsoPFTauHPS27_eta2p1_TightID_CrossL1_v1, process.HLT_IsoMu27_LooseChargedIsoPFTau20_Trk1_eta2p1_SingleL1_v5, process.HLT_IsoMu27_LooseChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, process.HLT_IsoMu27_MediumChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, process.HLT_IsoMu27_TightChargedIsoPFTauHPS20_Trk1_eta2p1_SingleL1_v1, process.HLT_IsoMu20_v15, process.HLT_IsoMu24_v13, process.HLT_IsoMu24_eta2p1_v15, process.HLT_IsoMu27_v16, process.HLT_IsoMu30_v4, process.HLT_UncorrectedJetE30_NoBPTX_v6, process.HLT_UncorrectedJetE30_NoBPTX3BX_v6, process.HLT_UncorrectedJetE60_NoBPTX3BX_v6, process.HLT_UncorrectedJetE70_NoBPTX3BX_v6, process.HLT_L1SingleMu18_v3, process.HLT_L1SingleMu25_v2, process.HLT_L1SingleMuCosmics_v1, process.HLT_L2Mu10_v7, process.HLT_L2Mu10_NoVertex_NoBPTX3BX_v5, process.HLT_L2Mu10_NoVertex_NoBPTX_v6, process.HLT_L2Mu45_NoVertex_3Sta_NoBPTX3BX_v4, process.HLT_L2Mu40_NoVertex_3Sta_NoBPTX3BX_v5, process.HLT_L2Mu50_v2, process.HLT_L2Mu23NoVtx_2Cha_v1, process.HLT_L2Mu23NoVtx_2Cha_CosmicSeed_v1, process.HLT_DoubleL2Mu30NoVtx_2Cha_CosmicSeed_Eta2p4_v2, process.HLT_DoubleL2Mu30NoVtx_2Cha_Eta2p4_v2, process.HLT_DoubleL2Mu50_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_CosmicSeed_Eta2p4_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_v2, process.HLT_DoubleL2Mu23NoVtx_2Cha_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_NoL2Matched_v2, process.HLT_DoubleL2Mu25NoVtx_2Cha_Eta2p4_v2, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v14, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_v3, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v15, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_v3, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass8_v5, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass8_v3, process.HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_Mass3p8_v5, process.HLT_Mu19_TrkIsoVVL_Mu9_TrkIsoVVL_DZ_Mass3p8_v3, process.HLT_Mu25_TkMu0_Onia_v8, process.HLT_Mu30_TkMu0_Psi_v1, process.HLT_Mu30_TkMu0_Upsilon_v1, process.HLT_Mu20_TkMu0_Phi_v8, process.HLT_Mu25_TkMu0_Phi_v8, process.HLT_Mu12_v3, process.HLT_Mu15_v3, process.HLT_Mu20_v12, process.HLT_Mu27_v13, process.HLT_Mu50_v13, process.HLT_Mu55_v3, process.HLT_CascadeMu100_v3, process.HLT_HighPtTkMu100_v2, process.HLT_DiPFJet15_NoCaloMatched_v16, process.HLT_DiPFJet25_NoCaloMatched_v16, process.HLT_DiPFJet15_FBEta3_NoCaloMatched_v17, process.HLT_DiPFJet25_FBEta3_NoCaloMatched_v17, process.HLT_DiPFJetAve40_v14, process.HLT_DiPFJetAve60_v14, process.HLT_DiPFJetAve80_v13, process.HLT_DiPFJetAve140_v13, process.HLT_DiPFJetAve200_v13, process.HLT_DiPFJetAve260_v14, process.HLT_DiPFJetAve320_v14, process.HLT_DiPFJetAve400_v14, process.HLT_DiPFJetAve500_v14, process.HLT_DiPFJetAve15_HFJEC_v17, process.HLT_DiPFJetAve25_HFJEC_v17, process.HLT_DiPFJetAve35_HFJEC_v17, process.HLT_DiPFJetAve60_HFJEC_v15, process.HLT_DiPFJetAve80_HFJEC_v16, process.HLT_DiPFJetAve100_HFJEC_v16, process.HLT_DiPFJetAve160_HFJEC_v16, process.HLT_DiPFJetAve220_HFJEC_v16, process.HLT_DiPFJetAve300_HFJEC_v16, process.HLT_AK8PFJet15_v3, process.HLT_AK8PFJet25_v3, process.HLT_AK8PFJet40_v16, process.HLT_AK8PFJet60_v15, process.HLT_AK8PFJet80_v15, process.HLT_AK8PFJet140_v15, process.HLT_AK8PFJet200_v15, process.HLT_AK8PFJet260_v16, process.HLT_AK8PFJet320_v16, process.HLT_AK8PFJet400_v16, process.HLT_AK8PFJet450_v16, process.HLT_AK8PFJet500_v16, process.HLT_AK8PFJet550_v11, process.HLT_PFJet15_v3, process.HLT_PFJet25_v3, process.HLT_PFJet40_v21, process.HLT_PFJet60_v21, process.HLT_PFJet80_v20, process.HLT_PFJet140_v19, process.HLT_PFJet200_v19, process.HLT_PFJet260_v20, process.HLT_PFJet320_v20, process.HLT_PFJet400_v20, process.HLT_PFJet450_v21, process.HLT_PFJet500_v21, process.HLT_PFJet550_v11, process.HLT_PFJetFwd15_v3, process.HLT_PFJetFwd25_v3, process.HLT_PFJetFwd40_v19, process.HLT_PFJetFwd60_v19, process.HLT_PFJetFwd80_v18, process.HLT_PFJetFwd140_v18, process.HLT_PFJetFwd200_v18, process.HLT_PFJetFwd260_v19, process.HLT_PFJetFwd320_v19, process.HLT_PFJetFwd400_v19, process.HLT_PFJetFwd450_v19, process.HLT_PFJetFwd500_v19, process.HLT_AK8PFJetFwd15_v3, process.HLT_AK8PFJetFwd25_v3, process.HLT_AK8PFJetFwd40_v15, process.HLT_AK8PFJetFwd60_v14, process.HLT_AK8PFJetFwd80_v14, process.HLT_AK8PFJetFwd140_v14, process.HLT_AK8PFJetFwd200_v14, process.HLT_AK8PFJetFwd260_v15, process.HLT_AK8PFJetFwd320_v15, process.HLT_AK8PFJetFwd400_v15, process.HLT_AK8PFJetFwd450_v15, process.HLT_AK8PFJetFwd500_v15, process.HLT_PFHT180_v17, process.HLT_PFHT250_v17, process.HLT_PFHT370_v17, process.HLT_PFHT430_v17, process.HLT_PFHT510_v17, process.HLT_PFHT590_v17, process.HLT_PFHT680_v17, process.HLT_PFHT780_v17, process.HLT_PFHT890_v17, process.HLT_PFHT1050_v18, process.HLT_PFHT500_PFMET100_PFMHT100_IDTight_v12, process.HLT_PFHT500_PFMET110_PFMHT110_IDTight_v12, process.HLT_PFHT700_PFMET85_PFMHT85_IDTight_v12, process.HLT_PFHT700_PFMET95_PFMHT95_IDTight_v12, process.HLT_PFHT800_PFMET75_PFMHT75_IDTight_v12, process.HLT_PFHT800_PFMET85_PFMHT85_IDTight_v12, process.HLT_PFMET110_PFMHT110_IDTight_v20, process.HLT_PFMET120_PFMHT120_IDTight_v20, process.HLT_PFMET130_PFMHT130_IDTight_v20, process.HLT_PFMET140_PFMHT140_IDTight_v20, process.HLT_PFMET100_PFMHT100_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET110_PFMHT110_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET120_PFMHT120_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET130_PFMHT130_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET140_PFMHT140_IDTight_CaloBTagDeepCSV_3p1_v8, process.HLT_PFMET120_PFMHT120_IDTight_PFHT60_v9, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_PFHT60_v9, process.HLT_PFMETTypeOne120_PFMHT120_IDTight_PFHT60_v9, process.HLT_PFMETTypeOne110_PFMHT110_IDTight_v12, process.HLT_PFMETTypeOne120_PFMHT120_IDTight_v12, process.HLT_PFMETTypeOne130_PFMHT130_IDTight_v12, process.HLT_PFMETTypeOne140_PFMHT140_IDTight_v11, process.HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, process.HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, process.HLT_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, process.HLT_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, process.HLT_MonoCentralPFJet80_PFMETNoMu110_PFMHTNoMu110_IDTight_v20, process.HLT_MonoCentralPFJet80_PFMETNoMu120_PFMHTNoMu120_IDTight_v20, process.HLT_MonoCentralPFJet80_PFMETNoMu130_PFMHTNoMu130_IDTight_v19, process.HLT_MonoCentralPFJet80_PFMETNoMu140_PFMHTNoMu140_IDTight_v19, process.HLT_L1ETMHadSeeds_v2, process.HLT_CaloMHT90_v4, process.HLT_CaloMET80_NotCleaned_v4, process.HLT_CaloMET90_NotCleaned_v4, process.HLT_CaloMET100_NotCleaned_v4, process.HLT_CaloMET110_NotCleaned_v4, process.HLT_CaloMET250_NotCleaned_v4, process.HLT_CaloMET300_NotCleaned_v4, process.HLT_CaloMET350_NotCleaned_v4, process.HLT_PFMET200_NotCleaned_v9, process.HLT_PFMET250_NotCleaned_v9, process.HLT_PFMET300_NotCleaned_v9, process.HLT_PFMET200_BeamHaloCleaned_v9, process.HLT_PFMETTypeOne200_BeamHaloCleaned_v9, process.HLT_MET105_IsoTrk50_v9, process.HLT_MET120_IsoTrk50_v9, process.HLT_SingleJet30_Mu12_SinglePFJet40_v11, process.HLT_Mu12eta2p3_v1, process.HLT_Mu12eta2p3_PFJet40_v1, process.HLT_Mu12_DoublePFJets40_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets100_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets200_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets350_PFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets40_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets100_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets200_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets350_PFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepCSV_p71_v1, process.HLT_Mu12_DoublePFJets40_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets100_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets200_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets350_PFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets40MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_Mu12_DoublePFJets54MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_DoublePFJets40_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets100_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets200_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets350_PFBTagDeepJet_p71_v1, process.HLT_DoublePFJets116MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_DoublePFJets128MaxDeta1p6_DoublePFBTagDeepJet_p71_v1, process.HLT_Photon300_NoHE_v12, process.HLT_Mu8_TrkIsoVVL_v12, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_DZ_v18, process.HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v18, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_DZ_v19, process.HLT_Mu8_Ele8_CaloIdM_TrackIdM_Mass8_PFHT350_v19, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v13, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepCSV_1p5_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_CaloDiJet30_CaloBtagDeepCSV_1p5_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v11, process.HLT_Mu17_TrkIsoVVL_v13, process.HLT_Mu19_TrkIsoVVL_v4, process.HLT_BTagMu_AK4DiJet20_Mu5_v13, process.HLT_BTagMu_AK4DiJet40_Mu5_v13, process.HLT_BTagMu_AK4DiJet70_Mu5_v13, process.HLT_BTagMu_AK4DiJet110_Mu5_v13, process.HLT_BTagMu_AK4DiJet170_Mu5_v12, process.HLT_BTagMu_AK4Jet300_Mu5_v12, process.HLT_BTagMu_AK8DiJet170_Mu5_v9, process.HLT_BTagMu_AK8Jet170_DoubleMu5_v2, process.HLT_BTagMu_AK8Jet300_Mu5_v12, process.HLT_Ele15_Ele8_CaloIdL_TrackIdL_IsoVL_v3, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v19, process.HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v19, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v15, process.HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v7, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v7, process.HLT_Mu12_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_v15, process.HLT_Mu12_DoublePhoton20_v5, process.HLT_Photon20_v2, process.HLT_Photon33_v5, process.HLT_Photon50_v13, process.HLT_Photon75_v13, process.HLT_Photon90_v13, process.HLT_Photon120_v13, process.HLT_Photon150_v6, process.HLT_Photon175_v14, process.HLT_Photon200_v13, process.HLT_Photon100EB_TightID_TightIso_v2, process.HLT_Photon110EB_TightID_TightIso_v2, process.HLT_Photon120EB_TightID_TightIso_v2, process.HLT_Photon100EBHE10_v2, process.HLT_Photon100EEHE10_v2, process.HLT_Photon100EE_TightID_TightIso_v2, process.HLT_Photon50_R9Id90_HE10_IsoM_v14, process.HLT_Photon75_R9Id90_HE10_IsoM_v14, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ300_PFJetsMJJ400DEta3_v5, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_CaloMJJ400_PFJetsMJJ600DEta3_v5, process.HLT_Photon90_R9Id90_HE10_IsoM_v14, process.HLT_Photon120_R9Id90_HE10_IsoM_v14, process.HLT_Photon165_R9Id90_HE10_IsoM_v15, process.HLT_Photon90_CaloIdL_PFHT700_v16, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass90_v13, process.HLT_Diphoton30_22_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v13, process.HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_NoPixelVeto_Mass55_v13, process.HLT_Photon35_TwoProngs35_v1, process.HLT_IsoMu24_TwoProngs35_v1, process.HLT_Dimuon0_Jpsi_L1_NoOS_v7, process.HLT_Dimuon0_Jpsi_NoVertexing_NoOS_v7, process.HLT_Dimuon0_Jpsi_v8, process.HLT_Dimuon0_Jpsi_NoVertexing_v8, process.HLT_Dimuon0_Jpsi_L1_4R_0er1p5R_v7, process.HLT_Dimuon0_Jpsi_NoVertexing_L1_4R_0er1p5R_v7, process.HLT_Dimuon0_Jpsi3p5_Muon2_v5, process.HLT_Dimuon0_Upsilon_L1_4p5_v9, process.HLT_Dimuon0_Upsilon_L1_5_v9, process.HLT_Dimuon0_Upsilon_L1_4p5NoOS_v8, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0_v9, process.HLT_Dimuon0_Upsilon_L1_4p5er2p0M_v7, process.HLT_Dimuon0_Upsilon_NoVertexing_v7, process.HLT_Dimuon0_Upsilon_L1_5M_v8, process.HLT_Dimuon0_LowMass_L1_0er1p5R_v7, process.HLT_Dimuon0_LowMass_L1_0er1p5_v8, process.HLT_Dimuon0_LowMass_v8, process.HLT_Dimuon0_LowMass_L1_4_v8, process.HLT_Dimuon0_LowMass_L1_4R_v7, process.HLT_Dimuon0_LowMass_L1_TM530_v6, process.HLT_Dimuon0_Upsilon_Muon_L1_TM0_v6, process.HLT_Dimuon0_Upsilon_Muon_NoL1Mass_v6, process.HLT_TripleMu_5_3_3_Mass3p8_DZ_v8, process.HLT_TripleMu_10_5_5_DZ_v10, process.HLT_TripleMu_12_10_5_v10, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_v4, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_Tau15_Charge1_v4, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_v4, process.HLT_Tau3Mu_Mu7_Mu1_TkMu1_IsoTau15_Charge1_v4, process.HLT_DoubleMu3_DZ_PFMET50_PFMHT60_v10, process.HLT_DoubleMu3_DZ_PFMET70_PFMHT70_v10, process.HLT_DoubleMu3_DZ_PFMET90_PFMHT90_v10, process.HLT_DoubleMu3_Trk_Tau3mu_NoL1Mass_v6, process.HLT_DoubleMu4_Jpsi_Displaced_v7, process.HLT_DoubleMu4_Jpsi_NoVertexing_v7, process.HLT_DoubleMu4_JpsiTrkTrk_Displaced_v7, process.HLT_DoubleMu43NoFiltersNoVtx_v4, process.HLT_DoubleMu48NoFiltersNoVtx_v4, process.HLT_Mu43NoFiltersNoVtx_Photon43_CaloIdL_v5, process.HLT_Mu48NoFiltersNoVtx_Photon48_CaloIdL_v5, process.HLT_Mu38NoFiltersNoVtxDisplaced_Photon38_CaloIdL_v1, process.HLT_Mu43NoFiltersNoVtxDisplaced_Photon43_CaloIdL_v1, process.HLT_DoubleMu40NoFiltersNoVtxDisplaced_v1, process.HLT_DoubleMu20_7_Mass0to30_L1_DM4_v7, process.HLT_DoubleMu20_7_Mass0to30_L1_DM4EG_v8, process.HLT_HT425_v9, process.HLT_HT430_DisplacedDijet40_DisplacedTrack_v13, process.HLT_HT500_DisplacedDijet40_DisplacedTrack_v13, process.HLT_HT430_DisplacedDijet60_DisplacedTrack_v13, process.HLT_HT400_DisplacedDijet40_DisplacedTrack_v13, process.HLT_HT650_DisplacedDijet60_Inclusive_v13, process.HLT_HT550_DisplacedDijet60_Inclusive_v13, process.HLT_DiJet110_35_Mjj650_PFMET110_v9, process.HLT_DiJet110_35_Mjj650_PFMET120_v9, process.HLT_DiJet110_35_Mjj650_PFMET130_v9, process.HLT_TripleJet110_35_35_Mjj650_PFMET110_v9, process.HLT_TripleJet110_35_35_Mjj650_PFMET120_v9, process.HLT_TripleJet110_35_35_Mjj650_PFMET130_v9, process.HLT_Ele30_eta2p1_WPTight_Gsf_CentralPFJet35_EleCleaned_v13, process.HLT_Ele28_eta2p1_WPTight_Gsf_HT150_v13, process.HLT_Ele28_HighEta_SC20_Mass55_v13, process.HLT_DoubleMu20_7_Mass0to30_Photon23_v8, process.HLT_Ele15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, process.HLT_Ele15_IsoVVVL_PFHT450_PFMET50_v16, process.HLT_Ele15_IsoVVVL_PFHT450_v16, process.HLT_Ele50_IsoVVVL_PFHT450_v16, process.HLT_Ele15_IsoVVVL_PFHT600_v20, process.HLT_Mu4_TrkIsoVVL_DiPFJet90_40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v15, process.HLT_Mu8_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT300_PFMETNoMu60_v16, process.HLT_Mu10_TrkIsoVVL_DiPFJet40_DEta3p5_MJJ750_HTT350_PFMETNoMu60_v15, process.HLT_Mu15_IsoVVVL_PFHT450_CaloBTagDeepCSV_4p5_v8, process.HLT_Mu15_IsoVVVL_PFHT450_PFMET50_v15, process.HLT_Mu15_IsoVVVL_PFHT450_v15, process.HLT_Mu50_IsoVVVL_PFHT450_v15, process.HLT_Mu15_IsoVVVL_PFHT600_v19, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET70_PFMHT70_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET80_PFMHT80_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET90_PFMHT90_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMET100_PFMHT100_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu70_PFMHTNoMu70_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu80_PFMHTNoMu80_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu90_PFMHTNoMu90_IDTight_v2, process.HLT_Mu3er1p5_PFJet100er2p5_PFMETNoMu100_PFMHTNoMu100_IDTight_v2, process.HLT_Dimuon10_PsiPrime_Barrel_Seagulls_v7, process.HLT_Dimuon20_Jpsi_Barrel_Seagulls_v7, process.HLT_Dimuon12_Upsilon_y1p4_v2, process.HLT_Dimuon14_Phi_Barrel_Seagulls_v7, process.HLT_Dimuon18_PsiPrime_v14, process.HLT_Dimuon25_Jpsi_v14, process.HLT_Dimuon18_PsiPrime_noCorrL1_v6, process.HLT_Dimuon24_Upsilon_noCorrL1_v6, process.HLT_Dimuon24_Phi_noCorrL1_v6, process.HLT_Dimuon25_Jpsi_noCorrL1_v6, process.HLT_DiMu4_Ele9_CaloIdL_TrackIdL_DZ_Mass3p8_v17, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_DZ_v17, process.HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v17, process.HLT_DoubleIsoMu20_eta2p1_v7, process.HLT_TrkMu12_DoubleTrkMu5NoFiltersNoVtx_v6, process.HLT_TrkMu16_DoubleTrkMu6NoFiltersNoVtx_v12, process.HLT_TrkMu17_DoubleTrkMu8NoFiltersNoVtx_v13, process.HLT_Mu8_v12, process.HLT_Mu17_v13, process.HLT_Mu19_v4, process.HLT_Mu17_Photon30_IsoCaloId_v6, process.HLT_Ele8_CaloIdL_TrackIdL_IsoVL_PFJet30_v16, process.HLT_Ele12_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, process.HLT_Ele15_CaloIdL_TrackIdL_IsoVL_PFJet30_v3, process.HLT_Ele23_CaloIdL_TrackIdL_IsoVL_PFJet30_v18, process.HLT_Ele8_CaloIdM_TrackIdM_PFJet30_v18, process.HLT_Ele17_CaloIdM_TrackIdM_PFJet30_v16, process.HLT_Ele23_CaloIdM_TrackIdM_PFJet30_v18, process.HLT_Ele50_CaloIdVT_GsfTrkIdT_PFJet165_v18, process.HLT_Ele115_CaloIdVT_GsfTrkIdT_v14, process.HLT_Ele135_CaloIdVT_GsfTrkIdT_v7, process.HLT_Ele145_CaloIdVT_GsfTrkIdT_v8, process.HLT_Ele200_CaloIdVT_GsfTrkIdT_v8, process.HLT_Ele250_CaloIdVT_GsfTrkIdT_v13, process.HLT_Ele300_CaloIdVT_GsfTrkIdT_v13, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepCSV_4p5_v3, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_v9, process.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepCSV_2p94_v8, process.HLT_PFHT400_SixPFJet32_v8, process.HLT_PFHT450_SixPFJet36_PFBTagDeepCSV_1p59_v7, process.HLT_PFHT450_SixPFJet36_v7, process.HLT_PFHT400_FivePFJet_100_100_60_30_30_v8, process.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepCSV_4p5_v8, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepCSV_4p5_v8, process.HLT_PFHT350_v19, process.HLT_PFHT350MinPFJet15_v9, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_v5, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_v5, process.HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350MinPFJet15_v11, process.HLT_ECALHT800_v10, process.HLT_DiSC30_18_EIso_AND_HE_Mass70_v13, process.HLT_Physics_v7, process.HLT_EphemeralPhysics_v1, process.DST_Physics_v7, process.HLT_Random_v3, process.HLT_ZeroBias_v6, process.HLT_ZeroBias_Alignment_v1, process.HLT_EphemeralZeroBias_v1, process.DST_ZeroBias_v2, process.DST_Run3_PFScoutingPixelTracking_v16, process.HLT_AK4CaloJet30_v11, process.HLT_AK4CaloJet40_v10, process.HLT_AK4CaloJet50_v10, process.HLT_AK4CaloJet80_v10, process.HLT_AK4CaloJet100_v10, process.HLT_AK4CaloJet120_v9, process.HLT_AK4PFJet30_v19, process.HLT_AK4PFJet50_v19, process.HLT_AK4PFJet80_v19, process.HLT_AK4PFJet100_v19, process.HLT_AK4PFJet120_v18, process.HLT_SinglePhoton10_Eta3p1ForPPRef_v8, process.HLT_SinglePhoton20_Eta3p1ForPPRef_v9, process.HLT_SinglePhoton30_Eta3p1ForPPRef_v9, process.HLT_Photon20_HoverELoose_v10, process.HLT_Photon30_HoverELoose_v10, process.HLT_EcalCalibration_v4, process.HLT_HcalCalibration_v5, process.AlCa_EcalPhiSym_v9, process.HLT_L1UnpairedBunchBptxMinus_v2, process.HLT_L1UnpairedBunchBptxPlus_v2, process.HLT_L1NotBptxOR_v3, process.HLT_L1_CDC_SingleMu_3_er1p2_TOP120_DPHI2p618_3p142_v2, process.HLT_CDC_L2cosmic_10_er1p0_v1, process.HLT_CDC_L2cosmic_5p5_er1p0_v1, process.HLT_HcalNZS_v13, process.HLT_HcalPhiSym_v15, process.HLT_HcalIsolatedbunch_v5, process.HLT_IsoTrackHB_v4, process.HLT_IsoTrackHE_v4, process.HLT_ZeroBias_FirstCollisionAfterAbortGap_v5, process.HLT_ZeroBias_IsolatedBunches_v5, process.HLT_ZeroBias_FirstCollisionInTrain_v4, process.HLT_ZeroBias_LastCollisionInTrain_v3, process.HLT_ZeroBias_FirstBXAfterTrain_v3, process.AlCa_RPCMuonNormalisation_v13, process.AlCa_LumiPixelsCounts_Random_v2, process.AlCa_LumiPixelsCounts_ZeroBias_v2, process.MC_ReducedIterativeTracking_v12, process.MC_PFMET_v17, process.MC_AK4PFJets_v17, process.MC_PFBTagDeepCSV_v10, process.MC_PFHT_v16, process.MC_PFMHT_v16, process.MC_CaloMET_v8, process.MC_CaloMET_JetIdCleaned_v9, process.MC_AK4CaloJets_v9, process.MC_AK4CaloJetsFromPV_v8, process.MC_CaloBTagDeepCSV_v8, process.MC_CaloHT_v8, process.MC_CaloMHT_v8, process.MC_AK8PFJets_v17, process.MC_AK8TrimPFJets_v17, process.MC_AK8PFHT_v16, process.MC_AK8CaloHT_v8, process.MC_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_v13, process.MC_DoubleEle5_CaloIdL_MW_v15, process.MC_Ele5_WPTight_Gsf_v8, process.MC_Ele15_Ele10_CaloIdL_TrackIdL_IsoVL_DZ_v15, process.MC_IsoMu_v15, process.MC_DoubleMu_TrkIsoVVL_DZ_v11, process.MC_DoubleMuNoFiltersNoVtx_v7, process.MC_PFBTagDeepJet_v1, process.MC_Run3_PFScoutingPixelTracking_v16, process.AlCa_EcalPi0EBonly_v13, process.AlCa_EcalPi0EEonly_v13, process.AlCa_EcalEtaEBonly_v13, process.AlCa_EcalEtaEEonly_v13, process.HLT_MediumChargedIsoPFTau180HighPtRelaxedIso_Trk50_eta2p1_v12, process.HLT_MediumChargedIsoPFTau200HighPtRelaxedIso_Trk50_eta2p1_v12, process.HLT_MediumChargedIsoPFTau220HighPtRelaxedIso_Trk50_eta2p1_v12, process.HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v9, process.HLT_Rsq0p35_v15, process.HLT_Rsq0p40_v15, process.HLT_RsqMR300_Rsq0p09_MR200_v15, process.HLT_RsqMR320_Rsq0p09_MR200_v15, process.HLT_RsqMR300_Rsq0p09_MR200_4jet_v15, process.HLT_RsqMR320_Rsq0p09_MR200_4jet_v15, process.HLT_IsoMu27_MET90_v3, process.HLT_VBF_DoubleLooseChargedIsoPFTau20_Trk1_eta2p1_v3, process.HLT_VBF_DoubleLooseChargedIsoPFTauHPS20_Trk1_eta2p1_v1, process.HLT_VBF_DoubleMediumChargedIsoPFTauHPS20_Trk1_eta2p1_v1, process.HLT_VBF_DoubleTightChargedIsoPFTauHPS20_Trk1_eta2p1_v1, process.HLT_Photon50_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_PFMET50_v5, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ300DEta3_v5, process.HLT_Photon75_R9Id90_HE10_IsoM_EBOnly_PFJetsMJJ600DEta3_v5, process.HLT_PFMET100_PFMHT100_IDTight_PFHT60_v9, process.HLT_PFMETNoMu100_PFMHTNoMu100_IDTight_PFHT60_v9, process.HLT_PFMETTypeOne100_PFMHT100_IDTight_PFHT60_v9, process.HLT_Mu18_Mu9_SameSign_v4, process.HLT_Mu18_Mu9_SameSign_DZ_v4, process.HLT_Mu18_Mu9_v4, process.HLT_Mu18_Mu9_DZ_v4, process.HLT_Mu20_Mu10_SameSign_v4, process.HLT_Mu20_Mu10_SameSign_DZ_v4, process.HLT_Mu20_Mu10_v4, process.HLT_Mu20_Mu10_DZ_v4, process.HLT_Mu23_Mu12_SameSign_v4, process.HLT_Mu23_Mu12_SameSign_DZ_v4, process.HLT_Mu23_Mu12_v4, process.HLT_Mu23_Mu12_DZ_v4, process.HLT_DoubleMu2_Jpsi_DoubleTrk1_Phi1p05_v6, process.HLT_DoubleMu2_Jpsi_DoubleTkMu0_Phi_v5, process.HLT_DoubleMu3_DCA_PFMET50_PFMHT60_v10, process.HLT_TripleMu_5_3_3_Mass3p8_DCA_v3, process.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_QuadPFJet98_83_71_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet103_88_75_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet105_88_76_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet111_90_80_15_PFBTagDeepCSV_1p3_VBF2_v8, process.HLT_QuadPFJet98_83_71_15_v5, process.HLT_QuadPFJet103_88_75_15_v5, process.HLT_QuadPFJet105_88_76_15_v5, process.HLT_QuadPFJet111_90_80_15_v5, process.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p17_v2, process.HLT_AK8PFJet330_TrimMass30_PFAK8BTagDeepCSV_p1_v2, process.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_p02_v3, process.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np2_v2, process.HLT_AK8PFJet330_TrimMass30_PFAK8BoostedDoubleB_np4_v2, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_Mass55_v2, process.HLT_Diphoton30_18_R9IdL_AND_HE_AND_IsoCaloId_NoPixelVeto_v2, process.HLT_Mu12_IP6_ToCSCS_v1, process.HLT_Mu12_IP6_part0_v2, process.HLT_Mu12_IP6_part1_v2, process.HLT_Mu12_IP6_part2_v2, process.HLT_Mu12_IP6_part3_v2, process.HLT_Mu12_IP6_part4_v2, process.HLT_Mu9_IP5_ToCSCS_v1, process.HLT_Mu9_IP5_part0_v2, process.HLT_Mu9_IP5_part1_v2, process.HLT_Mu9_IP5_part2_v2, process.HLT_Mu9_IP5_part3_v2, process.HLT_Mu9_IP5_part4_v2, process.HLT_Mu7_IP4_ToCSCS_v1, process.HLT_Mu7_IP4_part0_v2, process.HLT_Mu7_IP4_part1_v2, process.HLT_Mu7_IP4_part2_v2, process.HLT_Mu7_IP4_part3_v2, process.HLT_Mu7_IP4_part4_v2, process.HLT_Mu9_IP4_ToCSCS_v1, process.HLT_Mu9_IP4_part0_v2, process.HLT_Mu9_IP4_part1_v2, process.HLT_Mu9_IP4_part2_v2, process.HLT_Mu9_IP4_part3_v2, process.HLT_Mu9_IP4_part4_v2, process.HLT_Mu8_IP5_ToCSCS_v1, process.HLT_Mu8_IP5_part0_v2, process.HLT_Mu8_IP5_part1_v2, process.HLT_Mu8_IP5_part2_v2, process.HLT_Mu8_IP5_part3_v2, process.HLT_Mu8_IP5_part4_v2, process.HLT_Mu8_IP6_ToCSCS_v1, process.HLT_Mu8_IP6_part0_v2, process.HLT_Mu8_IP6_part1_v2, process.HLT_Mu8_IP6_part2_v2, process.HLT_Mu8_IP6_part3_v2, process.HLT_Mu8_IP6_part4_v2, process.HLT_Mu9_IP6_ToCSCS_v1, process.HLT_Mu9_IP6_part0_v3, process.HLT_Mu9_IP6_part1_v3, process.HLT_Mu9_IP6_part2_v3, process.HLT_Mu9_IP6_part3_v3, process.HLT_Mu9_IP6_part4_v3, process.HLT_Mu8_IP3_ToCSCS_v1, process.HLT_Mu8_IP3_part0_v3, process.HLT_Mu8_IP3_part1_v3, process.HLT_Mu8_IP3_part2_v3, process.HLT_Mu8_IP3_part3_v3, process.HLT_Mu8_IP3_part4_v3, process.HLT_Mu9_IP0_part0_v2, process.HLT_Mu9_IP3_part0_v2, process.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepCSV_1p3_7p7_VBF1_v8, process.HLT_TrkMu6NoFiltersNoVtx_v1, process.HLT_TrkMu16NoFiltersNoVtx_v1, process.HLT_DoubleTrkMu_16_6_NoFiltersNoVtx_v1, process.HLT_DoubleMediumDeepTauIsoPFTauHPS35_L2NN_eta2p1_v1, process.HLT_DoubleMediumChargedIsoPFTauHPS40_Trk1_eta2p1_v1, process.HLT_DoubleTightChargedIsoPFTauHPS35_Trk1_eta2p1_v1, process.HLT_Ele24_eta2p1_WPTight_Gsf_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, process.HLT_IsoMu20_eta2p1_LooseDeepTauPFTauHPS27_eta2p1_CrossL1_v1, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS180_eta2p1_v1, process.HLT_IsoMu24_eta2p1_LooseDeepTauPFTauHPS30_eta2p1_CrossL1_v1, process.HLT_IsoMu24_eta2p1_MediumDeepTauPFTauHPS35_L2NN_eta2p1_CrossL1_v1, process.HLT_LooseDeepTauPFTauHPS180_L2NN_eta2p1_v1, process.HLT_PFHT330PT30_QuadPFJet_75_60_45_40_TriplePFBTagDeepJet_4p5_v1, process.HLT_PFHT400_FivePFJet_100_100_60_30_30_DoublePFBTagDeepJet_4p5_v1, process.HLT_PFHT400_FivePFJet_120_120_60_30_30_DoublePFBTagDeepJet_4p5_v1, process.HLT_PFHT400_SixPFJet32_DoublePFBTagDeepJet_2p94_v1, process.HLT_PFHT450_SixPFJet36_PFBTagDeepJet_1p59_v1, process.HLT_QuadPFJet103_88_75_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet103_88_75_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_QuadPFJet105_88_76_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet105_88_76_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_QuadPFJet111_90_80_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet111_90_80_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_QuadPFJet98_83_71_15_DoublePFBTagDeepJet_1p3_7p7_VBF1_v1, process.HLT_QuadPFJet98_83_71_15_PFBTagDeepJet_1p3_VBF2_v1, process.HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_DZ_PFDiJet30_PFBtagDeepJet_1p5_v1, process.HLT_QuadPFJet70_50_40_30_v1, process.HLT_QuadPFJet70_50_40_30_PFBTagParticleNet_2BTagSum0p65_v1, process.HLT_QuadPFJet70_50_40_35_PFBTagParticleNet_2BTagSum0p65_v1, process.HLT_QuadPFJet70_50_45_35_PFBTagParticleNet_2BTagSum0p65_v1, process.HLT_AK8PFJet230_SoftDropMass40_v1, process.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, process.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, process.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetBB0p35_v1, process.HLT_AK8PFJet400_SoftDropMass40_v1, process.HLT_AK8PFJet425_SoftDropMass40_v1, process.HLT_AK8PFJet450_SoftDropMass40_v1, process.HLT_AK8PFJet230_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, process.HLT_AK8PFJet250_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, process.HLT_AK8PFJet275_SoftDropMass40_PFAK8ParticleNetTauTau0p30_v1, process.HLT_DoubleMediumDeepTauIsoPFTauHPS30_L2NN_eta2p1_PFJet60_v1, process.HLT_DoublePFJets40_Mass500_MediumDeepTau45_L2NN_MediumDeepTau20_eta2p1_v1, process.HLT_DoubleL2Mu10NoVtx_2Cha_VetoL3Mu0DxyMax1cm_v1, process.HLT_DoubleL3Mu16_10NoVtx_DxyMin0p01cm_v1, process.HLT_Mu20NoFiltersNoVtxDisplaced_Photon20_CaloCustomId_v1, process.HLT_DoubleMediumChargedIsoDisplacedPFTauHPS32_Trk1_eta2p1_v1, process.HLT_HT430_DelayedJet40_DoubleDelay0p5nsTrackless_v1, process.HLT_HT430_DelayedJet40_DoubleDelay1nsInclusive_v1, process.HLT_HT430_DelayedJet40_SingleDelay1nsTrackless_v1, process.HLT_HT430_DelayedJet40_SingleDelay2nsInclusive_v1, process.HLT_L1Mu6HT240_v1, process.HLT_Mu6HT240_DisplacedDijet30_Inclusive0PtrkShortSig5_v1, process.HLT_Mu6HT240_DisplacedDijet30_Inclusive1PtrkShortSig5_DisplacedLoose_v1, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive0PtrkShortSig5_v1, process.HLT_Mu6HT240_DisplacedDijet35_Inclusive1PtrkShortSig5_DisplacedLoose_v1, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive0PtrkShortSig5_v1, process.HLT_Mu6HT240_DisplacedDijet40_Inclusive1PtrkShortSig5_DisplacedLoose_v1, process.HLT_HT430_DisplacedDijet30_Inclusive1PtrkShortSig5_v1, process.HLT_HT430_DisplacedDijet35_Inclusive1PtrkShortSig5_v1, process.HLT_HT430_DisplacedDijet40_Inclusive1PtrkShortSig5_v1, process.HLT_CaloMET60_DTCluster50_v1, process.HLT_CaloMET60_DTClusterNoMB1S50_v1, process.HLT_L1MET_DTCluster50_v1, process.HLT_L1MET_DTClusterNoMB1S50_v1, process.HLT_CscCluster_Loose_v1, process.HLT_CscCluster_Medium_v1, process.HLT_CscCluster_Tight_v1, process.HLT_L1CSCShower_DTCluster50_v1, process.HLT_L1CSCShower_DTCluster75_v1, process.HLT_PFMET105_IsoTrk50_v1, process.HLT_PFMET105_PFJet100_looseRecoiling_v1, process.HLT_PFMET110_PFJet100_v1, process.HLT_PFMET110_PFJet100_looseRecoiling_v1, process.HLT_DoubleL3Iter4Mu16_10NoVtx_DxyMin0p01cm_v1, process.HLT_L3Iter4Mu10_NoVtx_DxyMin0p01cm_v1, process.HLT_HT170_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet60_DisplacedTrack_v1, process.HLT_HT270_L1SingleLLPJet_DisplacedDijet40_DisplacedTrack_v1, process.HLT_HT320_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1, process.HLT_HT420_L1SingleLLPJet_DisplacedDijet60_Inclusive_v1, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay1nsTrackless_v1, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_SingleDelay2nsInclusive_v1, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay0p5nsTrackless_v1, process.HLT_HT200_L1SingleLLPJet_DelayedJet40_DoubleDelay1nsInclusive_v1, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet30_Inclusive1PtrkShortSig5_v1, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet35_Inclusive1PtrkShortSig5_v1, process.HLT_HT200_L1SingleLLPJet_DisplacedDijet40_Inclusive1PtrkShortSig5_v1, process.HLT_DiPhoton10Time1ns_v1, process.HLT_DiPhoton10Time1p2ns_v1, process.HLT_DiPhoton10Time1p4ns_v1, process.HLT_DiPhoton10Time1p6ns_v1, process.HLT_DiPhoton10Time1p8ns_v1, process.HLT_DiPhoton10Time2ns_v1, process.HLT_DiPhoton10sminlt0p1_v1, process.HLT_DiPhoton10sminlt0p12_v1, process.HLT_DiPhoton10sminlt0p14_v1, process.HLT_DiPhoton10sminlt0p16_v1, process.HLT_DiPhoton10_CaloIdL_v1, process.HLT_ExpressMuons_v1, process.HLT_OnlineMonitorGroup_v1, process.DQM_EcalReconstruction_v1, process.DQM_HcalReconstruction_v1, process.DQM_PixelReconstruction_v1, process.HLT_PPSMaxTracksPerArm1_v1, process.HLT_PPSMaxTracksPerRP4_v1, process.HLTriggerFinalPath, process.HLTAnalyzerEndpath, process.PhysicsCommissioningOutput, process.PhysicsEGammaOutput, process.PhysicsEndOfFillOutput, process.PhysicsHadronsTausOutput, process.PhysicsMuonsOutput, process.ParkingBPH1Output, process.ParkingBPH2Output, process.ParkingBPH3Output, process.ParkingBPH4Output, process.ParkingBPH5Output, process.DQMOutput, process.DQMEventDisplayOutput, process.DQMCalibrationOutput, process.DQMOnlineBeamspotOutput, process.DQMGPUvsCPUOutput, process.HLTMonitorOutput, process.RPCMONOutput, process.CalibrationOutput, process.EcalCalibrationOutput, process.ALCAPHISYMOutput, process.ALCALumiPixelCountsExpressOutput, process.ALCALumiPixelCountsPromptOutput, process.ALCAP0Output, process.ALCAPPSOutput, process.ExpressOutput, process.ExpressAlignmentOutput, process.NanoDSTOutput, process.ScoutingPFOutput, process.PhysicsScoutingPFMonitorOutput, process.PhysicsHLTPhysics0Output, process.PhysicsHLTPhysics1Output, process.PhysicsHLTPhysics2Output, process.PhysicsHLTPhysics3Output, process.PhysicsZeroBias0Output, process.PhysicsZeroBias1Output, process.PhysicsZeroBias2Output, process.PhysicsZeroBias3Output, process.Dataset_AlCaLumiPixelCountsExpress, process.Dataset_AlCaLumiPixelCountsPrompt, process.Dataset_AlCaP0, process.Dataset_AlCaPPS, process.Dataset_AlCaPhiSym, process.Dataset_BTagMu, process.Dataset_Commissioning, process.Dataset_Cosmics, process.Dataset_DQMGPUvsCPU, process.Dataset_DQMOnlineBeamspot, process.Dataset_DisplacedJet, process.Dataset_DoubleMuon, process.Dataset_DoubleMuonLowMass, process.Dataset_EGamma, process.Dataset_EcalLaser, process.Dataset_EmptyBX, process.Dataset_EphemeralHLTPhysics0, process.Dataset_EphemeralHLTPhysics1, process.Dataset_EphemeralHLTPhysics2, process.Dataset_EphemeralHLTPhysics3, process.Dataset_EphemeralHLTPhysics4, process.Dataset_EphemeralHLTPhysics5, process.Dataset_EphemeralHLTPhysics6, process.Dataset_EphemeralHLTPhysics7, process.Dataset_EphemeralZeroBias0, process.Dataset_EphemeralZeroBias1, process.Dataset_EphemeralZeroBias2, process.Dataset_EphemeralZeroBias3, process.Dataset_EphemeralZeroBias4, process.Dataset_EphemeralZeroBias5, process.Dataset_EphemeralZeroBias6, process.Dataset_EphemeralZeroBias7, process.Dataset_EventDisplay, process.Dataset_ExpressAlignment, process.Dataset_ExpressPhysics, process.Dataset_FSQJet1, process.Dataset_FSQJet2, process.Dataset_HINCaloJets, process.Dataset_HINPFJets, process.Dataset_HLTMonitor, process.Dataset_HLTPhysics, process.Dataset_HcalNZS, process.Dataset_HighPtLowerPhotons, process.Dataset_HighPtPhoton30AndZ, process.Dataset_IsolatedBunch, process.Dataset_JetHT, process.Dataset_L1Accept, process.Dataset_MET, process.Dataset_MonteCarlo, process.Dataset_MuonEG, process.Dataset_NoBPTX, process.Dataset_OnlineMonitor, process.Dataset_ParkingBPH1, process.Dataset_ParkingBPH2, process.Dataset_ParkingBPH3, process.Dataset_ParkingBPH4, process.Dataset_ParkingBPH5, process.Dataset_ParkingBPHPromptCSCS, process.Dataset_RPCMonitor, process.Dataset_ScoutingPFMonitor, process.Dataset_ScoutingPFRun3, process.Dataset_SingleMuon, process.Dataset_Tau, process.Dataset_TestEnablesEcalHcal, process.Dataset_TestEnablesEcalHcalDQM, process.Dataset_ZeroBias, )) # source module (EDM inputs) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_HIon.py b/HLTrigger/Configuration/test/OnLine_HLT_HIon.py index 946326ed26708..0d4cfed025a39 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_HIon.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_HIon.py @@ -1,6 +1,6 @@ # hltGetConfiguration --full --data /dev/CMSSW_12_4_0/HIon --type HIon --unprescale --process HLTHIon --globaltag auto:run3_hlt_HIon --input file:RelVal_Raw_HIon_DATA.root -# /dev/CMSSW_12_4_0/HIon/V13 (CMSSW_12_4_0_pre4) +# /dev/CMSSW_12_4_0/HIon/V22 (CMSSW_12_4_0_pre4) import FWCore.ParameterSet.Config as cms @@ -12,7 +12,7 @@ process.ProcessAcceleratorCUDA = ProcessAcceleratorCUDA() process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_4_0/HIon/V13') + tableName = cms.string('/dev/CMSSW_12_4_0/HIon/V22') ) process.transferSystem = cms.PSet( @@ -3149,11 +3149,12 @@ ) ), DumpStat = cms.untracked.bool( False ), - ReconnectEachRun = cms.untracked.bool( False ), + ReconnectEachRun = cms.untracked.bool( True ), RefreshAlways = cms.untracked.bool( False ), - RefreshEachRun = cms.untracked.bool( False ), + RefreshEachRun = cms.untracked.bool( True ), RefreshOpenIOVs = cms.untracked.bool( False ), - pfnPostfix = cms.untracked.string( "None" ) + pfnPostfix = cms.untracked.string( "" ), + pfnPrefix = cms.untracked.string( "" ) ) process.HcalTimeSlewEP = cms.ESSource( "HcalTimeSlewEP", appendToDataLabel = cms.string( "HBHE" ), diff --git a/HLTrigger/Configuration/test/OnLine_HLT_PIon.py b/HLTrigger/Configuration/test/OnLine_HLT_PIon.py index bffcf360b8063..94308df526f2f 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_PIon.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_PIon.py @@ -1,6 +1,6 @@ # hltGetConfiguration --full --data /dev/CMSSW_12_4_0/PIon --type PIon --unprescale --process HLTPIon --globaltag auto:run3_hlt_PIon --input file:RelVal_Raw_PIon_DATA.root -# /dev/CMSSW_12_4_0/PIon/V13 (CMSSW_12_4_0_pre4) +# /dev/CMSSW_12_4_0/PIon/V22 (CMSSW_12_4_0_pre4) import FWCore.ParameterSet.Config as cms @@ -12,7 +12,7 @@ process.ProcessAcceleratorCUDA = ProcessAcceleratorCUDA() process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_4_0/PIon/V13') + tableName = cms.string('/dev/CMSSW_12_4_0/PIon/V22') ) process.transferSystem = cms.PSet( @@ -2620,11 +2620,12 @@ ) ), DumpStat = cms.untracked.bool( False ), - ReconnectEachRun = cms.untracked.bool( False ), + ReconnectEachRun = cms.untracked.bool( True ), RefreshAlways = cms.untracked.bool( False ), - RefreshEachRun = cms.untracked.bool( False ), + RefreshEachRun = cms.untracked.bool( True ), RefreshOpenIOVs = cms.untracked.bool( False ), - pfnPostfix = cms.untracked.string( "None" ) + pfnPostfix = cms.untracked.string( "" ), + pfnPrefix = cms.untracked.string( "" ) ) process.HcalTimeSlewEP = cms.ESSource( "HcalTimeSlewEP", appendToDataLabel = cms.string( "HBHE" ), diff --git a/HLTrigger/Configuration/test/OnLine_HLT_PRef.py b/HLTrigger/Configuration/test/OnLine_HLT_PRef.py index e7ea809c4563e..1cf59308b867b 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_PRef.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_PRef.py @@ -1,6 +1,6 @@ # hltGetConfiguration --full --data /dev/CMSSW_12_4_0/PRef --type PRef --unprescale --process HLTPRef --globaltag auto:run3_hlt_PRef --input file:RelVal_Raw_PRef_DATA.root -# /dev/CMSSW_12_4_0/PRef/V13 (CMSSW_12_4_0_pre4) +# /dev/CMSSW_12_4_0/PRef/V22 (CMSSW_12_4_0_pre4) import FWCore.ParameterSet.Config as cms @@ -12,7 +12,7 @@ process.ProcessAcceleratorCUDA = ProcessAcceleratorCUDA() process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_12_4_0/PRef/V13') + tableName = cms.string('/dev/CMSSW_12_4_0/PRef/V22') ) process.transferSystem = cms.PSet( @@ -2698,11 +2698,12 @@ ) ), DumpStat = cms.untracked.bool( False ), - ReconnectEachRun = cms.untracked.bool( False ), + ReconnectEachRun = cms.untracked.bool( True ), RefreshAlways = cms.untracked.bool( False ), - RefreshEachRun = cms.untracked.bool( False ), + RefreshEachRun = cms.untracked.bool( True ), RefreshOpenIOVs = cms.untracked.bool( False ), - pfnPostfix = cms.untracked.string( "None" ) + pfnPostfix = cms.untracked.string( "" ), + pfnPrefix = cms.untracked.string( "" ) ) process.HcalTimeSlewEP = cms.ESSource( "HcalTimeSlewEP", appendToDataLabel = cms.string( "HBHE" ), diff --git a/HLTrigger/Configuration/test/hltHarvesting.py b/HLTrigger/Configuration/test/hltHarvesting.py index e870f2f0922cc..831652321b54d 100644 --- a/HLTrigger/Configuration/test/hltHarvesting.py +++ b/HLTrigger/Configuration/test/hltHarvesting.py @@ -16,5 +16,6 @@ process.dqmSaver.convention = "Online" process.dqmSaver.saveByRun = 1 process.dqmSaver.saveAtJobEnd = False +process.dqmSaver.workflow = "/DQM/HLT/Online" process.DQMFileSaverOutput = cms.EndPath( process.HLTHarvestingSequence + process.dqmSaver ) diff --git a/L1Trigger/CSCTriggerPrimitives/test/runCSCL1TDQMClient_cfg.py b/L1Trigger/CSCTriggerPrimitives/test/runCSCL1TDQMClient_cfg.py index f743bf1a51d06..90952ab2c8e5d 100644 --- a/L1Trigger/CSCTriggerPrimitives/test/runCSCL1TDQMClient_cfg.py +++ b/L1Trigger/CSCTriggerPrimitives/test/runCSCL1TDQMClient_cfg.py @@ -53,7 +53,7 @@ if options.mc: process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run2_mc', '') if options.run3: - process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') + process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') else: process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run2_data', '') if options.run3: diff --git a/L1Trigger/CSCTriggerPrimitives/test/runCSCTriggerPrimitiveProducer_cfg.py b/L1Trigger/CSCTriggerPrimitives/test/runCSCTriggerPrimitiveProducer_cfg.py index 09d9e55f102ad..6e8c37ec5c0f3 100644 --- a/L1Trigger/CSCTriggerPrimitives/test/runCSCTriggerPrimitiveProducer_cfg.py +++ b/L1Trigger/CSCTriggerPrimitives/test/runCSCTriggerPrimitiveProducer_cfg.py @@ -98,7 +98,7 @@ if options.mc: process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run2_mc', '') if options.run3: - process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') + process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') else: process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run2_data', '') if options.run3: diff --git a/L1Trigger/L1CaloTrigger/python/L1EGammaCrystalsEmulatorProducer_cfi.py b/L1Trigger/L1CaloTrigger/python/L1EGammaCrystalsEmulatorProducer_cfi.py index 16280501c0d10..db89b3ec76d5e 100644 --- a/L1Trigger/L1CaloTrigger/python/L1EGammaCrystalsEmulatorProducer_cfi.py +++ b/L1Trigger/L1CaloTrigger/python/L1EGammaCrystalsEmulatorProducer_cfi.py @@ -1,8 +1,8 @@ import FWCore.ParameterSet.Config as cms L1EGammaClusterEmuProducer = cms.EDProducer("L1EGCrystalClusterEmulatorProducer", - ecalTPEB = cms.InputTag("simEcalEBTriggerPrimitiveDigis","","HLT"), - hcalTP = cms.InputTag("simHcalTriggerPrimitiveDigis","","HLT"), + ecalTPEB = cms.InputTag("simEcalEBTriggerPrimitiveDigis"), + hcalTP = cms.InputTag("simHcalTriggerPrimitiveDigis"), calib = cms.PSet( etaBins = cms.vdouble( 0.087 , 0.174 , 0.261 , 0.348 , 0.435 , 0.522 , 0.609 , 0.696 , 0.783 , 0.870 , 0.957 , 1.044 , 1.131 , 1.218 , 1.305 , 1.392 , 1.479), @@ -30,6 +30,6 @@ from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2 premix_stage2.toModify(L1EGammaClusterEmuProducer, - ecalTPEB = cms.InputTag("DMEcalEBTriggerPrimitiveDigis","","HLT"), - hcalTP = cms.InputTag("DMHcalTriggerPrimitiveDigis","","HLT"), + ecalTPEB = cms.InputTag("DMEcalEBTriggerPrimitiveDigis"), + hcalTP = cms.InputTag("DMHcalTriggerPrimitiveDigis"), ) diff --git a/L1Trigger/L1CaloTrigger/python/l1EGammaCrystalsProducer_cfi.py b/L1Trigger/L1CaloTrigger/python/l1EGammaCrystalsProducer_cfi.py deleted file mode 100644 index 3e90790d23df4..0000000000000 --- a/L1Trigger/L1CaloTrigger/python/l1EGammaCrystalsProducer_cfi.py +++ /dev/null @@ -1,17 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -l1EGammaCrystalsProducer = cms.EDProducer("L1EGCrystalClusterProducer", - EtminForStore = cms.double(0.), - EcalTpEtMin = cms.untracked.double(0.5), # 500 MeV default per each Ecal TP - EtMinForSeedHit = cms.untracked.double(1.0), # 1 GeV decault for seed hit - debug = cms.untracked.bool(False), - useRecHits = cms.untracked.bool(False), - doBremClustering = cms.untracked.bool(True), # Should always be True when using for E/Gamma - ecalTPEB = cms.InputTag("simEcalEBTriggerPrimitiveDigis","","HLT"), - ecalRecHitEB = cms.InputTag("ecalRecHit","EcalRecHitsEB","RECO"), - hcalRecHit = cms.InputTag("hbhereco"), - hcalTP = cms.InputTag("simHcalTriggerPrimitiveDigis","","HLT"), - useTowerMap = cms.untracked.bool(False) -) - - diff --git a/L1Trigger/L1TMuon/plugins/L1TMuonProducer.cc b/L1Trigger/L1TMuon/plugins/L1TMuonProducer.cc index 62ee1100a83a3..89957239a40d8 100644 --- a/L1Trigger/L1TMuon/plugins/L1TMuonProducer.cc +++ b/L1Trigger/L1TMuon/plugins/L1TMuonProducer.cc @@ -531,8 +531,9 @@ void L1TMuonProducer::convertMuons(const edm::Handle>(); wedges[i].reserve(3); } - if (bx < in->getFirstBX() || bx > in->getLastBX()) + if (bx < in->getFirstBX() || bx > in->getLastBX()) { return; + } int muIdx = 0; int currentLink = 0; for (size_t i = 0; i < in->size(bx); ++i, ++muIdx) { @@ -547,16 +548,19 @@ void L1TMuonProducer::convertMuons(const edm::Handleat(bx, i).hwPhi(), in->at(bx, i).trackFinderType(), in->at(bx, i).processor()); - int tfMuonIdx = 3 * (currentLink - 36) + muIdx; + // If the muon index was set in the data format we should use that. Otherwise we use the value computed from the position in the vector. + int muIdxDF{in->at(bx, i).muIdx()}; + int tfMuonIdx{3 * (currentLink - 36) + ((muIdxDF != -1) ? muIdxDF : muIdx)}; std::shared_ptr outMu = std::make_shared(in->at(bx, i), gPhi, tfMuonIdx); out.emplace_back(outMu); wedges[in->at(bx, i).processor()].push_back(outMu); } } for (int i = 0; i < 12; ++i) { - if (wedges[i].size() > 3) + if (wedges[i].size() > 3) { edm::LogWarning("Input Mismatch") << " too many inputs per processor for barrel. Wedge " << i << ": Size " << wedges[i].size() << std::endl; + } } } diff --git a/L1Trigger/TextToDigi/plugins/RawToText.h b/L1Trigger/TextToDigi/plugins/RawToText.h index 8a06cd64d52b5..95234a6232dbb 100644 --- a/L1Trigger/TextToDigi/plugins/RawToText.h +++ b/L1Trigger/TextToDigi/plugins/RawToText.h @@ -14,14 +14,14 @@ #include #include // user include files -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "DataFormats/FEDRawData/interface/FEDRawData.h" -class RawToText : public edm::EDAnalyzer { +class RawToText : public edm::one::EDAnalyzer<> { public: explicit RawToText(const edm::ParameterSet &); ~RawToText() override; diff --git a/L1Trigger/TextToDigi/plugins/RctDigiToRctText.cc b/L1Trigger/TextToDigi/plugins/RctDigiToRctText.cc index 5e547cd8c4df0..c93663d02196c 100644 --- a/L1Trigger/TextToDigi/plugins/RctDigiToRctText.cc +++ b/L1Trigger/TextToDigi/plugins/RctDigiToRctText.cc @@ -39,7 +39,6 @@ RctDigiToRctText::~RctDigiToRctText() { void RctDigiToRctText::analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) { /// count bunch crossing - static int nevt = -1; nevt++; /// get the RCT data diff --git a/L1Trigger/TextToDigi/plugins/RctDigiToRctText.h b/L1Trigger/TextToDigi/plugins/RctDigiToRctText.h index db89af9403193..f1fd71dbae511 100644 --- a/L1Trigger/TextToDigi/plugins/RctDigiToRctText.h +++ b/L1Trigger/TextToDigi/plugins/RctDigiToRctText.h @@ -14,7 +14,7 @@ #include // user include files -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/Event.h" @@ -27,7 +27,7 @@ const static unsigned NUM_RCT_CRATES = 18; -class RctDigiToRctText : public edm::EDAnalyzer { +class RctDigiToRctText : public edm::one::EDAnalyzer<> { public: explicit RctDigiToRctText(const edm::ParameterSet &); ~RctDigiToRctText() override; @@ -49,6 +49,8 @@ class RctDigiToRctText : public edm::EDAnalyzer { /// handle for debug file std::ofstream fdebug; + + int nevt = -1; }; #endif diff --git a/L1Trigger/TextToDigi/plugins/RctInputTextToDigi.cc b/L1Trigger/TextToDigi/plugins/RctInputTextToDigi.cc index 8b59067beeac9..141b7656683c5 100644 --- a/L1Trigger/TextToDigi/plugins/RctInputTextToDigi.cc +++ b/L1Trigger/TextToDigi/plugins/RctInputTextToDigi.cc @@ -7,9 +7,10 @@ RctInputTextToDigi::RctInputTextToDigi(const edm::ParameterSet &iConfig) : inputFile_(iConfig.getParameter("inputFile")), inputStream_(inputFile_.fullPath().c_str()), + lookupTables_(new L1RCTLookupTables), + paramsToken_(esConsumes()), nEvent_(0), - oldVersion_(false), - lookupTables_(new L1RCTLookupTables) { + oldVersion_(false) { // register your products /* Examples produces(); @@ -52,9 +53,7 @@ void RctInputTextToDigi::produce(edm::Event &iEvent, const edm::EventSetup &iSet // L1Trigger/RegionalCaloTrigger/plugins/L1RCTProducer.cc rev. 1.6 // Refresh configuration information every event // Hopefully doesn't take too much time - ESHandle rctParameters; - iSetup.get().get(rctParameters); - const L1RCTParameters *r = rctParameters.product(); + const L1RCTParameters *r = &iSetup.getData(paramsToken_); lookupTables_->setRCTParameters(r); std::unique_ptr ecalTPs(new EcalTrigPrimDigiCollection()); diff --git a/L1Trigger/TextToDigi/plugins/RctInputTextToDigi.h b/L1Trigger/TextToDigi/plugins/RctInputTextToDigi.h index 04aa86fd045f3..1324211285fc7 100644 --- a/L1Trigger/TextToDigi/plugins/RctInputTextToDigi.h +++ b/L1Trigger/TextToDigi/plugins/RctInputTextToDigi.h @@ -28,7 +28,7 @@ #include // user include files -#include "FWCore/Framework/interface/EDProducer.h" +#include "FWCore/Framework/interface/one/EDProducer.h" #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" @@ -47,7 +47,7 @@ // class declaration // -class RctInputTextToDigi : public edm::EDProducer { +class RctInputTextToDigi : public edm::one::EDProducer<> { public: explicit RctInputTextToDigi(const edm::ParameterSet &); ~RctInputTextToDigi() override; @@ -61,9 +61,10 @@ class RctInputTextToDigi : public edm::EDProducer { edm::FileInPath inputFile_; std::ifstream inputStream_; + L1RCTLookupTables *lookupTables_; + edm::ESGetToken paramsToken_; int nEvent_; bool oldVersion_; - L1RCTLookupTables *lookupTables_; }; #endif diff --git a/L1Trigger/TextToDigi/plugins/TextToRaw.h b/L1Trigger/TextToDigi/plugins/TextToRaw.h index 11e397592f801..05f2d42fa7262 100644 --- a/L1Trigger/TextToDigi/plugins/TextToRaw.h +++ b/L1Trigger/TextToDigi/plugins/TextToRaw.h @@ -27,7 +27,7 @@ #include // user include files -#include "FWCore/Framework/interface/EDProducer.h" +#include "FWCore/Framework/interface/one/EDProducer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -38,7 +38,7 @@ // class decleration // -class TextToRaw : public edm::EDProducer { +class TextToRaw : public edm::one::EDProducer<> { public: explicit TextToRaw(const edm::ParameterSet &); ~TextToRaw() override; @@ -57,7 +57,7 @@ class TextToRaw : public edm::EDProducer { std::ifstream file_; // array to store the data - static const unsigned EVT_MAX_SIZE = 8192; + static constexpr unsigned EVT_MAX_SIZE = 8192; char data_[EVT_MAX_SIZE]; int fileEventOffset_; diff --git a/L1Trigger/TrackFindingTracklet/interface/imath.h b/L1Trigger/TrackFindingTracklet/interface/imath.h index b2329e8e0b561..6938182025482 100644 --- a/L1Trigger/TrackFindingTracklet/interface/imath.h +++ b/L1Trigger/TrackFindingTracklet/interface/imath.h @@ -1014,7 +1014,7 @@ namespace trklet { case mode::pos: return addr << shift_; case mode::neg: - return (Nelements_ - addr) << shift_; + return (addr - Nelements_) << shift_; case mode::both: return (addr << ashift_) >> (ashift_ - shift_); } diff --git a/L1TriggerConfig/DTTrackFinder/interface/DTEtaPatternLutTester.h b/L1TriggerConfig/DTTrackFinder/interface/DTEtaPatternLutTester.h index 0530ebf48f27d..94907227a7095 100644 --- a/L1TriggerConfig/DTTrackFinder/interface/DTEtaPatternLutTester.h +++ b/L1TriggerConfig/DTTrackFinder/interface/DTEtaPatternLutTester.h @@ -13,22 +13,21 @@ #ifndef DTEtaPatternLutTester_h #define DTEtaPatternLutTester_h -#include +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/ESHandle.h" #include "CondFormats/L1TObjects/interface/L1MuDTEtaPatternLut.h" #include "CondFormats/DataRecord/interface/L1MuDTEtaPatternLutRcd.h" -class DTEtaPatternLutTester : public edm::EDAnalyzer { +class DTEtaPatternLutTester : public edm::one::EDAnalyzer<> { public: - DTEtaPatternLutTester(const edm::ParameterSet& ps); - - ~DTEtaPatternLutTester() override; + explicit DTEtaPatternLutTester(const edm::ParameterSet& ps); void analyze(const edm::Event& e, const edm::EventSetup& c) override; private: + edm::ESGetToken token_; }; #endif diff --git a/L1TriggerConfig/DTTrackFinder/interface/DTExtLutTester.h b/L1TriggerConfig/DTTrackFinder/interface/DTExtLutTester.h index 4b9d162a58543..97dc01ded107f 100644 --- a/L1TriggerConfig/DTTrackFinder/interface/DTExtLutTester.h +++ b/L1TriggerConfig/DTTrackFinder/interface/DTExtLutTester.h @@ -13,22 +13,21 @@ #ifndef DTExtLutTester_h #define DTExtLutTester_h -#include +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/ESHandle.h" #include "CondFormats/L1TObjects/interface/L1MuDTExtLut.h" #include "CondFormats/DataRecord/interface/L1MuDTExtLutRcd.h" -class DTExtLutTester : public edm::EDAnalyzer { +class DTExtLutTester : public edm::one::EDAnalyzer<> { public: DTExtLutTester(const edm::ParameterSet& ps); - ~DTExtLutTester() override; - void analyze(const edm::Event& e, const edm::EventSetup& c) override; private: + edm::ESGetToken token_; }; #endif diff --git a/L1TriggerConfig/DTTrackFinder/interface/DTPhiLutTester.h b/L1TriggerConfig/DTTrackFinder/interface/DTPhiLutTester.h index e63494dae777c..3d6e2efcb9892 100644 --- a/L1TriggerConfig/DTTrackFinder/interface/DTPhiLutTester.h +++ b/L1TriggerConfig/DTTrackFinder/interface/DTPhiLutTester.h @@ -13,22 +13,21 @@ #ifndef DTPhiLutTester_h #define DTPhiLutTester_h -#include +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/ESHandle.h" #include "CondFormats/L1TObjects/interface/L1MuDTPhiLut.h" #include "CondFormats/DataRecord/interface/L1MuDTPhiLutRcd.h" -class DTPhiLutTester : public edm::EDAnalyzer { +class DTPhiLutTester : public edm::one::EDAnalyzer<> { public: DTPhiLutTester(const edm::ParameterSet& ps); - ~DTPhiLutTester() override; - void analyze(const edm::Event& e, const edm::EventSetup& c) override; private: + edm::ESGetToken token_; }; #endif diff --git a/L1TriggerConfig/DTTrackFinder/interface/DTPtaLutTester.h b/L1TriggerConfig/DTTrackFinder/interface/DTPtaLutTester.h index 2f802b0207130..9f0fcef5b8d70 100644 --- a/L1TriggerConfig/DTTrackFinder/interface/DTPtaLutTester.h +++ b/L1TriggerConfig/DTTrackFinder/interface/DTPtaLutTester.h @@ -13,22 +13,21 @@ #ifndef DTPtaLutTester_h #define DTPtaLutTester_h -#include +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/ESHandle.h" #include "CondFormats/L1TObjects/interface/L1MuDTPtaLut.h" #include "CondFormats/DataRecord/interface/L1MuDTPtaLutRcd.h" -class DTPtaLutTester : public edm::EDAnalyzer { +class DTPtaLutTester : public edm::one::EDAnalyzer<> { public: DTPtaLutTester(const edm::ParameterSet& ps); - ~DTPtaLutTester() override; - void analyze(const edm::Event& e, const edm::EventSetup& c) override; private: + edm::ESGetToken token_; }; #endif diff --git a/L1TriggerConfig/DTTrackFinder/interface/DTQualPatternLutTester.h b/L1TriggerConfig/DTTrackFinder/interface/DTQualPatternLutTester.h index 0189736ff1c10..e0b178651ec0d 100644 --- a/L1TriggerConfig/DTTrackFinder/interface/DTQualPatternLutTester.h +++ b/L1TriggerConfig/DTTrackFinder/interface/DTQualPatternLutTester.h @@ -13,22 +13,21 @@ #ifndef DTQualPatternLutTester_h #define DTQualPatternLutTester_h -#include +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/ESHandle.h" #include "CondFormats/L1TObjects/interface/L1MuDTQualPatternLut.h" #include "CondFormats/DataRecord/interface/L1MuDTQualPatternLutRcd.h" -class DTQualPatternLutTester : public edm::EDAnalyzer { +class DTQualPatternLutTester : public edm::one::EDAnalyzer<> { public: DTQualPatternLutTester(const edm::ParameterSet& ps); - ~DTQualPatternLutTester() override; - void analyze(const edm::Event& e, const edm::EventSetup& c) override; private: + edm::ESGetToken token_; }; #endif diff --git a/L1TriggerConfig/DTTrackFinder/interface/DTTFMasksTester.h b/L1TriggerConfig/DTTrackFinder/interface/DTTFMasksTester.h index 3f2923c698b73..39c40d4114527 100644 --- a/L1TriggerConfig/DTTrackFinder/interface/DTTFMasksTester.h +++ b/L1TriggerConfig/DTTrackFinder/interface/DTTFMasksTester.h @@ -13,22 +13,21 @@ #ifndef DTTFMasksTester_h #define DTTFMasksTester_h -#include +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/ESHandle.h" #include "CondFormats/L1TObjects/interface/L1MuDTTFMasks.h" #include "CondFormats/DataRecord/interface/L1MuDTTFMasksRcd.h" -class DTTFMasksTester : public edm::EDAnalyzer { +class DTTFMasksTester : public edm::one::EDAnalyzer<> { public: DTTFMasksTester(const edm::ParameterSet& ps); - ~DTTFMasksTester() override; - void analyze(const edm::Event& e, const edm::EventSetup& c) override; private: + edm::ESGetToken token_; }; #endif diff --git a/L1TriggerConfig/DTTrackFinder/interface/DTTFParametersTester.h b/L1TriggerConfig/DTTrackFinder/interface/DTTFParametersTester.h index 4b7963792f8b6..64b960364069e 100644 --- a/L1TriggerConfig/DTTrackFinder/interface/DTTFParametersTester.h +++ b/L1TriggerConfig/DTTrackFinder/interface/DTTFParametersTester.h @@ -13,22 +13,21 @@ #ifndef DTTFParametersTester_h #define DTTFParametersTester_h -#include +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/ESHandle.h" #include "CondFormats/L1TObjects/interface/L1MuDTTFParameters.h" #include "CondFormats/DataRecord/interface/L1MuDTTFParametersRcd.h" -class DTTFParametersTester : public edm::EDAnalyzer { +class DTTFParametersTester : public edm::one::EDAnalyzer<> { public: DTTFParametersTester(const edm::ParameterSet& ps); - ~DTTFParametersTester() override; - void analyze(const edm::Event& e, const edm::EventSetup& c) override; private: + edm::ESGetToken token_; }; #endif diff --git a/L1TriggerConfig/DTTrackFinder/src/DTEtaPatternLutTester.cc b/L1TriggerConfig/DTTrackFinder/src/DTEtaPatternLutTester.cc index 658bc5197fd0b..7565b0efe2da4 100644 --- a/L1TriggerConfig/DTTrackFinder/src/DTEtaPatternLutTester.cc +++ b/L1TriggerConfig/DTTrackFinder/src/DTEtaPatternLutTester.cc @@ -13,12 +13,6 @@ #include "L1TriggerConfig/DTTrackFinder/interface/DTEtaPatternLutTester.h" -DTEtaPatternLutTester::DTEtaPatternLutTester(const edm::ParameterSet& ps) {} +DTEtaPatternLutTester::DTEtaPatternLutTester(const edm::ParameterSet& ps) : token_{esConsumes()} {} -DTEtaPatternLutTester::~DTEtaPatternLutTester() {} - -void DTEtaPatternLutTester::analyze(const edm::Event& e, const edm::EventSetup& c) { - edm::ESHandle etalut; - c.get().get(etalut); - etalut->print(); -} +void DTEtaPatternLutTester::analyze(const edm::Event& e, const edm::EventSetup& c) { c.getData(token_).print(); } diff --git a/L1TriggerConfig/DTTrackFinder/src/DTExtLutTester.cc b/L1TriggerConfig/DTTrackFinder/src/DTExtLutTester.cc index ff77870f96267..05e4f384185aa 100644 --- a/L1TriggerConfig/DTTrackFinder/src/DTExtLutTester.cc +++ b/L1TriggerConfig/DTTrackFinder/src/DTExtLutTester.cc @@ -13,12 +13,6 @@ #include "L1TriggerConfig/DTTrackFinder/interface/DTExtLutTester.h" -DTExtLutTester::DTExtLutTester(const edm::ParameterSet& ps) {} +DTExtLutTester::DTExtLutTester(const edm::ParameterSet& ps) : token_{esConsumes()} {} -DTExtLutTester::~DTExtLutTester() {} - -void DTExtLutTester::analyze(const edm::Event& e, const edm::EventSetup& c) { - edm::ESHandle extlut; - c.get().get(extlut); - extlut->print(); -} +void DTExtLutTester::analyze(const edm::Event& e, const edm::EventSetup& c) { c.getData(token_).print(); } diff --git a/L1TriggerConfig/DTTrackFinder/src/DTPhiLutTester.cc b/L1TriggerConfig/DTTrackFinder/src/DTPhiLutTester.cc index b32df43565dee..d61011962f27a 100644 --- a/L1TriggerConfig/DTTrackFinder/src/DTPhiLutTester.cc +++ b/L1TriggerConfig/DTTrackFinder/src/DTPhiLutTester.cc @@ -13,12 +13,6 @@ #include "L1TriggerConfig/DTTrackFinder/interface/DTPhiLutTester.h" -DTPhiLutTester::DTPhiLutTester(const edm::ParameterSet& ps) {} +DTPhiLutTester::DTPhiLutTester(const edm::ParameterSet& ps) : token_{esConsumes()} {} -DTPhiLutTester::~DTPhiLutTester() {} - -void DTPhiLutTester::analyze(const edm::Event& e, const edm::EventSetup& c) { - edm::ESHandle philut; - c.get().get(philut); - philut->print(); -} +void DTPhiLutTester::analyze(const edm::Event& e, const edm::EventSetup& c) { c.getData(token_).print(); } diff --git a/L1TriggerConfig/DTTrackFinder/src/DTPtaLutTester.cc b/L1TriggerConfig/DTTrackFinder/src/DTPtaLutTester.cc index f02e2ed7ed97c..f6ea788be43d8 100644 --- a/L1TriggerConfig/DTTrackFinder/src/DTPtaLutTester.cc +++ b/L1TriggerConfig/DTTrackFinder/src/DTPtaLutTester.cc @@ -13,12 +13,6 @@ #include "L1TriggerConfig/DTTrackFinder/interface/DTPtaLutTester.h" -DTPtaLutTester::DTPtaLutTester(const edm::ParameterSet& ps) {} +DTPtaLutTester::DTPtaLutTester(const edm::ParameterSet& ps) : token_{esConsumes()} {} -DTPtaLutTester::~DTPtaLutTester() {} - -void DTPtaLutTester::analyze(const edm::Event& e, const edm::EventSetup& c) { - edm::ESHandle ptalut; - c.get().get(ptalut); - ptalut->print(); -} +void DTPtaLutTester::analyze(const edm::Event& e, const edm::EventSetup& c) { c.getData(token_).print(); } diff --git a/L1TriggerConfig/DTTrackFinder/src/DTQualPatternLutTester.cc b/L1TriggerConfig/DTTrackFinder/src/DTQualPatternLutTester.cc index b88ff4232dee2..c659c05433eb4 100644 --- a/L1TriggerConfig/DTTrackFinder/src/DTQualPatternLutTester.cc +++ b/L1TriggerConfig/DTTrackFinder/src/DTQualPatternLutTester.cc @@ -13,12 +13,6 @@ #include "L1TriggerConfig/DTTrackFinder/interface/DTQualPatternLutTester.h" -DTQualPatternLutTester::DTQualPatternLutTester(const edm::ParameterSet& ps) {} +DTQualPatternLutTester::DTQualPatternLutTester(const edm::ParameterSet& ps) : token_{esConsumes()} {} -DTQualPatternLutTester::~DTQualPatternLutTester() {} - -void DTQualPatternLutTester::analyze(const edm::Event& e, const edm::EventSetup& c) { - edm::ESHandle qualut; - c.get().get(qualut); - qualut->print(); -} +void DTQualPatternLutTester::analyze(const edm::Event& e, const edm::EventSetup& c) { c.getData(token_).print(); } diff --git a/L1TriggerConfig/DTTrackFinder/src/DTTFMasksTester.cc b/L1TriggerConfig/DTTrackFinder/src/DTTFMasksTester.cc index dd6b4ae8e5c34..61c684d7821d8 100644 --- a/L1TriggerConfig/DTTrackFinder/src/DTTFMasksTester.cc +++ b/L1TriggerConfig/DTTrackFinder/src/DTTFMasksTester.cc @@ -13,12 +13,6 @@ #include "L1TriggerConfig/DTTrackFinder/interface/DTTFMasksTester.h" -DTTFMasksTester::DTTFMasksTester(const edm::ParameterSet& ps) {} +DTTFMasksTester::DTTFMasksTester(const edm::ParameterSet& ps) : token_{esConsumes()} {} -DTTFMasksTester::~DTTFMasksTester() {} - -void DTTFMasksTester::analyze(const edm::Event& e, const edm::EventSetup& c) { - edm::ESHandle dttfmsk; - c.get().get(dttfmsk); - dttfmsk->print(); -} +void DTTFMasksTester::analyze(const edm::Event& e, const edm::EventSetup& c) { c.getData(token_).print(); } diff --git a/L1TriggerConfig/DTTrackFinder/src/DTTFParametersTester.cc b/L1TriggerConfig/DTTrackFinder/src/DTTFParametersTester.cc index efd3c6de3195f..3fa0f0ea202b7 100644 --- a/L1TriggerConfig/DTTrackFinder/src/DTTFParametersTester.cc +++ b/L1TriggerConfig/DTTrackFinder/src/DTTFParametersTester.cc @@ -13,12 +13,6 @@ #include "L1TriggerConfig/DTTrackFinder/interface/DTTFParametersTester.h" -DTTFParametersTester::DTTFParametersTester(const edm::ParameterSet& ps) {} +DTTFParametersTester::DTTFParametersTester(const edm::ParameterSet& ps) : token_{esConsumes()} {} -DTTFParametersTester::~DTTFParametersTester() {} - -void DTTFParametersTester::analyze(const edm::Event& e, const edm::EventSetup& c) { - edm::ESHandle dttfpar; - c.get().get(dttfpar); - dttfpar->print(); -} +void DTTFParametersTester::analyze(const edm::Event& e, const edm::EventSetup& c) { c.getData(token_).print(); } diff --git a/L1TriggerConfig/L1ScalesProducers/interface/L1CaloInputScaleTester.h b/L1TriggerConfig/L1ScalesProducers/interface/L1CaloInputScaleTester.h index 5beaa7adc2bd7..2480af863949c 100644 --- a/L1TriggerConfig/L1ScalesProducers/interface/L1CaloInputScaleTester.h +++ b/L1TriggerConfig/L1ScalesProducers/interface/L1CaloInputScaleTester.h @@ -16,7 +16,7 @@ // // -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Utilities/interface/ESGetToken.h" @@ -32,7 +32,7 @@ // class declaration // -class L1CaloInputScaleTester : public edm::EDAnalyzer { +class L1CaloInputScaleTester : public edm::one::EDAnalyzer<> { public: explicit L1CaloInputScaleTester(const edm::ParameterSet&); ~L1CaloInputScaleTester() override; diff --git a/L1TriggerConfig/L1ScalesProducers/interface/L1CaloInputScalesGenerator.h b/L1TriggerConfig/L1ScalesProducers/interface/L1CaloInputScalesGenerator.h index fb0c6494ffa86..9ea8e7909cfcd 100644 --- a/L1TriggerConfig/L1ScalesProducers/interface/L1CaloInputScalesGenerator.h +++ b/L1TriggerConfig/L1ScalesProducers/interface/L1CaloInputScalesGenerator.h @@ -16,7 +16,7 @@ // // -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Utilities/interface/ESGetToken.h" @@ -28,7 +28,7 @@ // class declaration // -class L1CaloInputScalesGenerator : public edm::EDAnalyzer { +class L1CaloInputScalesGenerator : public edm::one::EDAnalyzer<> { public: explicit L1CaloInputScalesGenerator(const edm::ParameterSet&); ~L1CaloInputScalesGenerator() override; diff --git a/L1TriggerConfig/L1ScalesProducers/interface/L1MuScalesTester.h b/L1TriggerConfig/L1ScalesProducers/interface/L1MuScalesTester.h index 3a2fb58d5c7c5..a460c88c4eead 100644 --- a/L1TriggerConfig/L1ScalesProducers/interface/L1MuScalesTester.h +++ b/L1TriggerConfig/L1ScalesProducers/interface/L1MuScalesTester.h @@ -5,19 +5,25 @@ // // user include files -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "CondFormats/L1TObjects/interface/L1MuTriggerScales.h" +#include "CondFormats/DataRecord/interface/L1MuTriggerScalesRcd.h" +#include "CondFormats/L1TObjects/interface/L1MuTriggerPtScale.h" +#include "CondFormats/DataRecord/interface/L1MuTriggerPtScaleRcd.h" +#include "CondFormats/L1TObjects/interface/L1MuGMTScales.h" +#include "CondFormats/DataRecord/interface/L1MuGMTScalesRcd.h" + class L1MuScale; // // class decleration // -class L1MuScalesTester : public edm::EDAnalyzer { +class L1MuScalesTester : public edm::one::EDAnalyzer<> { public: explicit L1MuScalesTester(const edm::ParameterSet&); - ~L1MuScalesTester() override; void analyze(const edm::Event&, const edm::EventSetup&) override; @@ -25,4 +31,7 @@ class L1MuScalesTester : public edm::EDAnalyzer { private: // ----------member data --------------------------- + edm::ESGetToken l1muscalesToken_; + edm::ESGetToken l1muptscaleToken_; + edm::ESGetToken l1gmtscalesToken_; }; diff --git a/L1TriggerConfig/L1ScalesProducers/interface/L1ScalesTester.h b/L1TriggerConfig/L1ScalesProducers/interface/L1ScalesTester.h index 5e3348195cf98..637917f397d97 100644 --- a/L1TriggerConfig/L1ScalesProducers/interface/L1ScalesTester.h +++ b/L1TriggerConfig/L1ScalesProducers/interface/L1ScalesTester.h @@ -18,23 +18,34 @@ // // user include files -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "CondFormats/L1TObjects/interface/L1CaloEtScale.h" +#include "CondFormats/DataRecord/interface/L1EmEtScaleRcd.h" +#include "CondFormats/DataRecord/interface/L1JetEtScaleRcd.h" +#include "CondFormats/L1TObjects/interface/L1CaloEcalScale.h" +#include "CondFormats/L1TObjects/interface/L1CaloHcalScale.h" +#include "CondFormats/DataRecord/interface/L1CaloEcalScaleRcd.h" +#include "CondFormats/DataRecord/interface/L1CaloHcalScaleRcd.h" + // // class decleration // -class L1ScalesTester : public edm::EDAnalyzer { +class L1ScalesTester : public edm::one::EDAnalyzer<> { public: explicit L1ScalesTester(const edm::ParameterSet&); - ~L1ScalesTester() override; void analyze(const edm::Event&, const edm::EventSetup&) override; private: // ----------member data --------------------------- + const edm::ESGetToken emScaleToken_; + const edm::ESGetToken ecalScaleToken_; + const edm::ESGetToken hcalScaleToken_; + const edm::ESGetToken jetScaleToken_; }; // diff --git a/L1TriggerConfig/L1ScalesProducers/src/L1CaloHcalScaleConfigOnlineProd.cc b/L1TriggerConfig/L1ScalesProducers/src/L1CaloHcalScaleConfigOnlineProd.cc index 3d00d35733922..c67065685530d 100644 --- a/L1TriggerConfig/L1ScalesProducers/src/L1CaloHcalScaleConfigOnlineProd.cc +++ b/L1TriggerConfig/L1ScalesProducers/src/L1CaloHcalScaleConfigOnlineProd.cc @@ -46,6 +46,7 @@ class L1CaloHcalScaleConfigOnlineProd : public L1ConfigOnlineProdBase newObject(const std::string& objectKey) override; private: + edm::ESGetToken theTrigTowerGeometryToken; const HcalTrigTowerGeometry* theTrigTowerGeometry; CaloTPGTranscoderULUT* caloTPG; typedef std::vector RCTdecompression; @@ -71,6 +72,7 @@ class L1CaloHcalScaleConfigOnlineProd : public L1ConfigOnlineProdBase(iConfig), theTrigTowerGeometry(nullptr) { + theTrigTowerGeometryToken = m_consumesCollector->consumes(); caloTPG = new CaloTPGTranscoderULUT(); } @@ -294,9 +296,7 @@ std::unique_ptr L1CaloHcalScaleConfigOnlineProd::newObject(cons } std::unique_ptr L1CaloHcalScaleConfigOnlineProd::produce(const L1CaloHcalScaleRcd& iRecord) { - edm::ESHandle pG; - iRecord.getRecord().get(pG); - theTrigTowerGeometry = pG.product(); + theTrigTowerGeometry = &iRecord.get(theTrigTowerGeometryToken); return (L1ConfigOnlineProdBase::produce(iRecord)); } diff --git a/L1TriggerConfig/L1ScalesProducers/src/L1MuScalesTester.cc b/L1TriggerConfig/L1ScalesProducers/src/L1MuScalesTester.cc index e2ca97a108618..0bcd39e9ca670 100644 --- a/L1TriggerConfig/L1ScalesProducers/src/L1MuScalesTester.cc +++ b/L1TriggerConfig/L1ScalesProducers/src/L1MuScalesTester.cc @@ -3,67 +3,56 @@ #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/ESHandle.h" -#include "CondFormats/L1TObjects/interface/L1MuTriggerScales.h" -#include "CondFormats/DataRecord/interface/L1MuTriggerScalesRcd.h" -#include "CondFormats/L1TObjects/interface/L1MuTriggerPtScale.h" -#include "CondFormats/DataRecord/interface/L1MuTriggerPtScaleRcd.h" -#include "CondFormats/L1TObjects/interface/L1MuGMTScales.h" -#include "CondFormats/DataRecord/interface/L1MuGMTScalesRcd.h" - #include using std::cout; using std::endl; -L1MuScalesTester::L1MuScalesTester(const edm::ParameterSet& ps) {} - -L1MuScalesTester::~L1MuScalesTester() {} +L1MuScalesTester::L1MuScalesTester(const edm::ParameterSet& ps) + : l1muscalesToken_(esConsumes()), l1muptscaleToken_(esConsumes()), l1gmtscalesToken_(esConsumes()) {} void L1MuScalesTester::analyze(const edm::Event& e, const edm::EventSetup& es) { using namespace edm; const char* detnam[] = {"DT", "RPC barrel", "CSC", "RPC forward"}; - ESHandle l1muscales; - es.get().get(l1muscales); + L1MuTriggerScales const& l1muscales = es.getData(l1muscalesToken_); - ESHandle l1muptscale; - es.get().get(l1muptscale); + L1MuTriggerPtScale const& l1muptscale = es.getData(l1muptscaleToken_); cout << "**** L1 Mu Pt Scale print *****************************************" << endl; - printScale(l1muptscale->getPtScale()); + printScale(l1muptscale.getPtScale()); cout << "**** L1 Mu Phi Scale print *****************************************" << endl; - printScale(l1muscales->getPhiScale()); + printScale(l1muscales.getPhiScale()); cout << "**** L1 Mu GMT eta Scale print *************************************" << endl; - printScale(l1muscales->getGMTEtaScale()); + printScale(l1muscales.getGMTEtaScale()); for (int i = 0; i < 4; i++) { cout << "**** L1 Mu " << detnam[i] << " eta Scale print **************************************" << endl; - printScale(l1muscales->getRegionalEtaScale(i)); + printScale(l1muscales.getRegionalEtaScale(i)); } - ESHandle l1gmtscales; - es.get().get(l1gmtscales); + L1MuGMTScales const& l1gmtscales = es.getData(l1gmtscalesToken_); for (int i = 0; i < 4; i++) { cout << "**** L1 GMT " << detnam[i] << " reduced eta Scale print **************************************" << endl; - printScale(l1gmtscales->getReducedEtaScale(i)); + printScale(l1gmtscales.getReducedEtaScale(i)); } cout << "**** L1 GMT delta eta Scale print *************************************" << endl; - printScale(l1gmtscales->getDeltaEtaScale(0)); + printScale(l1gmtscales.getDeltaEtaScale(0)); cout << "**** L1 GMT delta phi Scale print *************************************" << endl; - printScale(l1gmtscales->getDeltaPhiScale()); + printScale(l1gmtscales.getDeltaPhiScale()); for (int i = 0; i < 4; i++) { cout << "**** L1 GMT " << detnam[i] << " overlap eta Scale print **************************************" << endl; - printScale(l1gmtscales->getOvlEtaScale(i)); + printScale(l1gmtscales.getOvlEtaScale(i)); } // cout << "**** L1 GMT calo eta Scale print *************************************" << endl; - // printScale(l1gmtscales->getCaloEtaScale()); + // printScale(l1gmtscales.getCaloEtaScale()); } void L1MuScalesTester::printScale(const L1MuScale* l1muscale) { cout << l1muscale->print(); } diff --git a/L1TriggerConfig/L1ScalesProducers/src/L1ScalesTester.cc b/L1TriggerConfig/L1ScalesProducers/src/L1ScalesTester.cc index ebbe01578c648..275541bfcb4a5 100644 --- a/L1TriggerConfig/L1ScalesProducers/src/L1ScalesTester.cc +++ b/L1TriggerConfig/L1ScalesProducers/src/L1ScalesTester.cc @@ -3,74 +3,66 @@ #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/ESHandle.h" -#include "CondFormats/L1TObjects/interface/L1CaloEtScale.h" -#include "CondFormats/DataRecord/interface/L1EmEtScaleRcd.h" -#include "CondFormats/DataRecord/interface/L1JetEtScaleRcd.h" -#include "CondFormats/L1TObjects/interface/L1CaloEcalScale.h" -#include "CondFormats/L1TObjects/interface/L1CaloHcalScale.h" -#include "CondFormats/DataRecord/interface/L1CaloEcalScaleRcd.h" -#include "CondFormats/DataRecord/interface/L1CaloHcalScaleRcd.h" - #include using std::cout; using std::endl; -L1ScalesTester::L1ScalesTester(const edm::ParameterSet& ps) { cout << "Constructing a L1ScalesTester" << endl; } - -L1ScalesTester::~L1ScalesTester() {} +L1ScalesTester::L1ScalesTester(const edm::ParameterSet& ps) + : emScaleToken_(esConsumes()), + ecalScaleToken_(esConsumes()), + hcalScaleToken_(esConsumes()), + jetScaleToken_(esConsumes()) { + cout << "Constructing a L1ScalesTester" << endl; +} void L1ScalesTester::analyze(const edm::Event& e, const edm::EventSetup& es) { using namespace edm; - ESHandle emScale; - es.get().get(emScale); + L1CaloEtScale const& emScale = es.getData(emScaleToken_); cout << "L1EmEtScaleRcd :" << endl; - emScale->print(cout); + emScale.print(cout); cout << endl; - ESHandle ecalScale; - es.get().get(ecalScale); + L1CaloEcalScale const& ecalScale = es.getData(ecalScaleToken_); - ESHandle hcalScale; - es.get().get(hcalScale); + L1CaloHcalScale const& hcalScale = es.getData(hcalScaleToken_); cout << " L1ColoEcalScale :" << endl; - ecalScale->print(cout); + ecalScale.print(cout); cout << endl; cout << " L1ColoHcalScale :" << endl; - hcalScale->print(cout); + hcalScale.print(cout); cout << endl; - ESHandle jetScale; - es.get().get(jetScale); + L1CaloEtScale const& jetScale = es.getData(jetScaleToken_); cout << "L1JetEtScaleRcd :" << endl; - jetScale->print(cout); + jetScale.print(cout); cout << endl; // test EM lin-rank conversion cout << "Testing EM linear-to-rank conversion" << endl; for (unsigned short i = 0; i < 32; i++) { - unsigned rank = emScale->rank(i); - cout << "EM linear : " << i << ", Et : " << i * emScale->linearLsb() << " GeV, rank : " << rank << endl; + unsigned rank = emScale.rank(i); + cout << "EM linear : " << i << ", Et : " << i * emScale.linearLsb() << " GeV, rank : " << rank << endl; } cout << endl; // test jet lin-rank conversion cout << "Testing jet linear-to-rank conversion" << endl; for (unsigned short i = 0; i < 32; i++) { - unsigned rank = jetScale->rank(i); - cout << "jet linear : " << i << ", Et : " << i * jetScale->linearLsb() << " GeV, rank : " << rank << endl; + unsigned rank = jetScale.rank(i); + cout << "jet linear : " << i << ", Et : " << i * jetScale.linearLsb() << " GeV, rank : " << rank << endl; } cout << endl; // test EM rank-et conversion cout << "Testing EM rank-to-Et conversion" << endl; for (unsigned i = 0; i < 32; i++) { - double et = emScale->et(i); + double et = emScale.et(i); cout << "EM rank : " << i << " Et : " << et << " GeV" << endl; } cout << endl; @@ -78,7 +70,7 @@ void L1ScalesTester::analyze(const edm::Event& e, const edm::EventSetup& es) { // test jet rank-et conversion cout << "Testing jet rank-to-Et conversion" << endl; for (unsigned i = 0; i < 32; i++) { - double et = jetScale->et(i); + double et = jetScale.et(i); cout << "jet rank : " << i << " Et : " << et << " GeV" << endl; } cout << endl; diff --git a/L1TriggerConfig/Utilities/src/L1KeyListWriter.cc b/L1TriggerConfig/Utilities/src/L1KeyListWriter.cc index ecf1e3b178408..ce7cfc7905ae6 100644 --- a/L1TriggerConfig/Utilities/src/L1KeyListWriter.cc +++ b/L1TriggerConfig/Utilities/src/L1KeyListWriter.cc @@ -1,7 +1,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -15,23 +15,23 @@ #include "FWCore/ServiceRegistry/interface/Service.h" #include "CondCore/DBOutputService/interface/PoolDBOutputService.h" -class L1KeyListWriter : public edm::EDAnalyzer { +class L1KeyListWriter : public edm::one::EDAnalyzer<> { public: void analyze(const edm::Event&, const edm::EventSetup&) override; - explicit L1KeyListWriter(const edm::ParameterSet&) : edm::EDAnalyzer() {} - ~L1KeyListWriter(void) override {} + explicit L1KeyListWriter(const edm::ParameterSet&) : token_{esConsumes()} {} + +private: + edm::ESGetToken token_; }; void L1KeyListWriter::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { - edm::ESHandle handle1; - evSetup.get().get(handle1); - std::shared_ptr ptr1(new L1TriggerKeyListExt(*(handle1.product()))); + L1TriggerKeyListExt const& ptr1 = evSetup.getData(token_); edm::Service poolDb; if (poolDb.isAvailable()) { cond::Time_t firstSinceTime = poolDb->beginOfTime(); - poolDb->writeOneIOV(*ptr1, firstSinceTime, "L1TriggerKeyListExtRcd"); + poolDb->writeOneIOV(ptr1, firstSinceTime, "L1TriggerKeyListExtRcd"); } } diff --git a/L1TriggerConfig/Utilities/src/L1KeyWriter.cc b/L1TriggerConfig/Utilities/src/L1KeyWriter.cc index 64fb85e76e997..c1bd55d4cdcf3 100644 --- a/L1TriggerConfig/Utilities/src/L1KeyWriter.cc +++ b/L1TriggerConfig/Utilities/src/L1KeyWriter.cc @@ -1,7 +1,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -15,23 +15,23 @@ #include "FWCore/ServiceRegistry/interface/Service.h" #include "CondCore/DBOutputService/interface/PoolDBOutputService.h" -class L1KeyWriter : public edm::EDAnalyzer { +class L1KeyWriter : public edm::one::EDAnalyzer<> { public: void analyze(const edm::Event&, const edm::EventSetup&) override; - explicit L1KeyWriter(const edm::ParameterSet&) : edm::EDAnalyzer() {} - ~L1KeyWriter(void) override {} + explicit L1KeyWriter(const edm::ParameterSet&) : token_{esConsumes()} {} + +private: + edm::ESGetToken token_; }; void L1KeyWriter::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { - edm::ESHandle handle1; - evSetup.get().get(handle1); - std::shared_ptr ptr1(new L1TriggerKeyExt(*(handle1.product()))); + L1TriggerKeyExt const& ptr1 = evSetup.getData(token_); edm::Service poolDb; if (poolDb.isAvailable()) { cond::Time_t firstSinceTime = poolDb->beginOfTime(); - poolDb->writeOneIOV(*ptr1, firstSinceTime, "L1TriggerKeyExtRcd"); + poolDb->writeOneIOV(ptr1, firstSinceTime, "L1TriggerKeyExtRcd"); } } diff --git a/L1TriggerConfig/Utilities/src/L1TCaloParamsUpdater.cc b/L1TriggerConfig/Utilities/src/L1TCaloParamsUpdater.cc index 51937f56f0f06..4ab3c0bcfc073 100644 --- a/L1TriggerConfig/Utilities/src/L1TCaloParamsUpdater.cc +++ b/L1TriggerConfig/Utilities/src/L1TCaloParamsUpdater.cc @@ -2,7 +2,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -16,19 +16,18 @@ #include "FWCore/ServiceRegistry/interface/Service.h" #include "CondCore/DBOutputService/interface/PoolDBOutputService.h" -class L1TCaloParamsUpdater : public edm::EDAnalyzer { +class L1TCaloParamsUpdater : public edm::one::EDAnalyzer<> { public: void analyze(const edm::Event&, const edm::EventSetup&) override; - explicit L1TCaloParamsUpdater(const edm::ParameterSet&) : edm::EDAnalyzer() {} - ~L1TCaloParamsUpdater(void) override {} + explicit L1TCaloParamsUpdater(const edm::ParameterSet&) : token_{esConsumes()} {} + +private: + edm::ESGetToken token_; }; void L1TCaloParamsUpdater::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { - edm::ESHandle handle1; - // evSetup.get().get( "l1conddb", handle1 ) ; - evSetup.get().get(handle1); - l1t::CaloParamsHelper m_params_helper(*(handle1.product())); + l1t::CaloParamsHelper m_params_helper(evSetup.getData(token_)); // std::ifstream is("tauL1CalibLUT_V2.txt"); // l1t::LUT lut; diff --git a/L1TriggerConfig/Utilities/src/L1TCaloParamsViewer.cc b/L1TriggerConfig/Utilities/src/L1TCaloParamsViewer.cc index e7b5f2b48887a..14a1e8dc46754 100644 --- a/L1TriggerConfig/Utilities/src/L1TCaloParamsViewer.cc +++ b/L1TriggerConfig/Utilities/src/L1TCaloParamsViewer.cc @@ -1,4 +1,4 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -12,8 +12,10 @@ #include "L1Trigger/L1TCalorimeter/interface/CaloParamsHelper.h" #include -class L1TCaloParamsViewer : public edm::EDAnalyzer { +class L1TCaloParamsViewer : public edm::one::EDAnalyzer<> { private: + edm::ESGetToken stage2ParamsToken_; + edm::ESGetToken paramsToken_; bool printPUSParams; bool printTauCalibLUT; bool printTauCompressLUT; @@ -44,7 +46,7 @@ class L1TCaloParamsViewer : public edm::EDAnalyzer { public: void analyze(const edm::Event&, const edm::EventSetup&) override; - explicit L1TCaloParamsViewer(const edm::ParameterSet& pset) : edm::EDAnalyzer() { + explicit L1TCaloParamsViewer(const edm::ParameterSet& pset) { printPUSParams = pset.getUntrackedParameter("printPUSParams", false); printTauCalibLUT = pset.getUntrackedParameter("printTauCalibLUT", false); printTauCompressLUT = pset.getUntrackedParameter("printTauCompressLUT", false); @@ -67,6 +69,11 @@ class L1TCaloParamsViewer : public edm::EDAnalyzer { printEtSumEcalSumCalibrationLUT = pset.getUntrackedParameter("printEtSumEcalSumCalibrationLUT", false); useStage2Rcd = pset.getUntrackedParameter("useStage2Rcd", false); + + if (useStage2Rcd) + stage2ParamsToken_ = esConsumes(); + else + paramsToken_ = esConsumes(); } ~L1TCaloParamsViewer(void) override {} @@ -108,14 +115,14 @@ std::string L1TCaloParamsViewer::hash(void* buf, size_t len) const { void L1TCaloParamsViewer::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { edm::ESHandle handle1; if (useStage2Rcd) - evSetup.get().get(handle1); + handle1 = evSetup.getHandle(stage2ParamsToken_); else - evSetup.get().get(handle1); + handle1 = evSetup.getHandle(paramsToken_); - std::shared_ptr ptr(new l1t::CaloParams(*(handle1.product()))); + l1t::CaloParams const& ptr = *handle1; - l1t::CaloParamsHelper* ptr1 = nullptr; - ptr1 = (l1t::CaloParamsHelper*)(&(*ptr)); + l1t::CaloParamsHelper const* ptr1 = nullptr; + ptr1 = (l1t::CaloParamsHelper const*)(&(ptr)); edm::LogInfo("") << "L1TCaloParamsViewer:"; diff --git a/L1TriggerConfig/Utilities/src/L1TCaloParamsWriter.cc b/L1TriggerConfig/Utilities/src/L1TCaloParamsWriter.cc index 8c002a99fb846..fcefc1d32f7d1 100644 --- a/L1TriggerConfig/Utilities/src/L1TCaloParamsWriter.cc +++ b/L1TriggerConfig/Utilities/src/L1TCaloParamsWriter.cc @@ -1,7 +1,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -15,15 +15,22 @@ #include "FWCore/ServiceRegistry/interface/Service.h" #include "CondCore/DBOutputService/interface/PoolDBOutputService.h" -class L1TCaloStage2ParamsWriter : public edm::EDAnalyzer { +class L1TCaloStage2ParamsWriter : public edm::one::EDAnalyzer<> { private: + edm::ESGetToken o2oParamsToken_; + edm::ESGetToken paramsToken_; bool isO2Opayload; public: void analyze(const edm::Event&, const edm::EventSetup&) override; - explicit L1TCaloStage2ParamsWriter(const edm::ParameterSet& pset) : edm::EDAnalyzer() { + explicit L1TCaloStage2ParamsWriter(const edm::ParameterSet& pset) { isO2Opayload = pset.getUntrackedParameter("isO2Opayload", false); + if (isO2Opayload) { + o2oParamsToken_ = esConsumes(); + } else { + paramsToken_ = esConsumes(); + } } ~L1TCaloStage2ParamsWriter(void) override {} }; @@ -32,16 +39,14 @@ void L1TCaloStage2ParamsWriter::analyze(const edm::Event& iEvent, const edm::Eve edm::ESHandle handle1; if (isO2Opayload) - evSetup.get().get(handle1); + handle1 = evSetup.getHandle(o2oParamsToken_); else - evSetup.get().get(handle1); - - std::shared_ptr ptr1(new l1t::CaloParams(*(handle1.product()))); + handle1 = evSetup.getHandle(paramsToken_); edm::Service poolDb; if (poolDb.isAvailable()) { cond::Time_t firstSinceTime = poolDb->beginOfTime(); - poolDb->writeOneIOV(*ptr1, firstSinceTime, (isO2Opayload ? "L1TCaloParamsO2ORcd" : "L1TCaloParamsRcd")); + poolDb->writeOneIOV(*handle1, firstSinceTime, (isO2Opayload ? "L1TCaloParamsO2ORcd" : "L1TCaloParamsRcd")); } } diff --git a/L1TriggerConfig/Utilities/src/L1TGlobalPrescalesVetosViewer.cc b/L1TriggerConfig/Utilities/src/L1TGlobalPrescalesVetosViewer.cc index ac24ab65df3b3..eec6e45b873b4 100644 --- a/L1TriggerConfig/Utilities/src/L1TGlobalPrescalesVetosViewer.cc +++ b/L1TriggerConfig/Utilities/src/L1TGlobalPrescalesVetosViewer.cc @@ -1,5 +1,5 @@ #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -10,24 +10,24 @@ #include "CondFormats/DataRecord/interface/L1TGlobalPrescalesVetosRcd.h" #include "CondFormats/L1TObjects/interface/L1TGlobalPrescalesVetos.h" -class L1TGlobalPrescalesVetosViewer : public edm::EDAnalyzer { +class L1TGlobalPrescalesVetosViewer : public edm::one::EDAnalyzer<> { private: int32_t prescale_table_verbosity; int32_t bxmask_map_verbosity; int32_t veto_verbosity; + edm::ESGetToken token_; std::string hash(void* buf, size_t len) const; public: void analyze(const edm::Event&, const edm::EventSetup&) override; - explicit L1TGlobalPrescalesVetosViewer(const edm::ParameterSet& pset) : edm::EDAnalyzer() { + explicit L1TGlobalPrescalesVetosViewer(const edm::ParameterSet& pset) { + token_ = esConsumes(); prescale_table_verbosity = pset.getUntrackedParameter("prescale_table_verbosity", 0); bxmask_map_verbosity = pset.getUntrackedParameter("bxmask_map_verbosity", 0); veto_verbosity = pset.getUntrackedParameter("veto_verbosity", 0); } - - ~L1TGlobalPrescalesVetosViewer(void) override {} }; #include "Utilities/OpenSSL/interface/openssl_init.h" @@ -64,24 +64,22 @@ std::string L1TGlobalPrescalesVetosViewer::hash(void* buf, size_t len) const { } void L1TGlobalPrescalesVetosViewer::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { - edm::ESHandle handle1; - evSetup.get().get(handle1); - std::shared_ptr ptr(new L1TGlobalPrescalesVetos(*(handle1.product()))); + L1TGlobalPrescalesVetos const& ptr = evSetup.getData(token_); edm::LogInfo("") << "L1TGlobalPrescalesVetosViewer:"; cout << endl; - cout << " version_ = " << ptr->version_ << endl; - cout << " bxmask_default_ = " << ptr->bxmask_default_ << endl; + cout << " version_ = " << ptr.version_ << endl; + cout << " bxmask_default_ = " << ptr.bxmask_default_ << endl; size_t len_prescale_table_ = 0; - for (size_t col = 0; col < ptr->prescale_table_.size(); col++) { - size_t nRows = (ptr->prescale_table_)[col].size(); + for (size_t col = 0; col < ptr.prescale_table_.size(); col++) { + size_t nRows = (ptr.prescale_table_)[col].size(); len_prescale_table_ += nRows; if (prescale_table_verbosity > 0) { int column[nRows]; for (size_t row = 0; row < nRows; row++) - column[row] = (ptr->prescale_table_)[col][row]; + column[row] = (ptr.prescale_table_)[col][row]; cout << " prescale_table_[" << col << "][" << nRows << "] = "; if (nRows) cout << hash(column, sizeof(int) * nRows) << endl; @@ -90,10 +88,10 @@ void L1TGlobalPrescalesVetosViewer::analyze(const edm::Event& iEvent, const edm: } } int prescale_table_[len_prescale_table_]; - for (size_t col = 0, pos = 0; col < ptr->prescale_table_.size(); col++) { - size_t nRows = (ptr->prescale_table_)[col].size(); + for (size_t col = 0, pos = 0; col < ptr.prescale_table_.size(); col++) { + size_t nRows = (ptr.prescale_table_)[col].size(); for (size_t row = 0; row < nRows; row++, pos++) - prescale_table_[pos] = (ptr->prescale_table_)[col][row]; + prescale_table_[pos] = (ptr.prescale_table_)[col][row]; } cout << " prescale_table_[[" << len_prescale_table_ << "]] = "; if (len_prescale_table_) @@ -103,20 +101,20 @@ void L1TGlobalPrescalesVetosViewer::analyze(const edm::Event& iEvent, const edm: if (prescale_table_verbosity > 1) { cout << endl << " Detailed view on the prescales * masks: " << endl; - for (size_t col = 0; col < ptr->prescale_table_.size(); col++) + for (size_t col = 0; col < ptr.prescale_table_.size(); col++) cout << setw(8) << " Index " << col; cout << endl; - size_t nRows = (ptr->prescale_table_)[0].size(); + size_t nRows = (ptr.prescale_table_)[0].size(); for (size_t row = 0; row < nRows; row++) { - for (size_t col = 0; col < ptr->prescale_table_.size(); col++) - cout << setw(8) << (ptr->prescale_table_)[col][row]; + for (size_t col = 0; col < ptr.prescale_table_.size(); col++) + cout << setw(8) << (ptr.prescale_table_)[col][row]; cout << endl; } cout << endl; } size_t len_bxmask_map_ = 0; - for (std::map >::const_iterator it = (ptr->bxmask_map_).begin(); it != (ptr->bxmask_map_).end(); + for (std::map >::const_iterator it = (ptr.bxmask_map_).begin(); it != (ptr.bxmask_map_).end(); it++) { len_bxmask_map_ += it->second.size(); if (bxmask_map_verbosity == 1) { @@ -138,7 +136,7 @@ void L1TGlobalPrescalesVetosViewer::analyze(const edm::Event& iEvent, const edm: } int bxmask_map_[len_bxmask_map_]; size_t pos = 0; - for (std::map >::const_iterator it = (ptr->bxmask_map_).begin(); it != (ptr->bxmask_map_).end(); + for (std::map >::const_iterator it = (ptr.bxmask_map_).begin(); it != (ptr.bxmask_map_).end(); it++) { for (size_t i = 0; i < it->second.size(); i++, pos++) bxmask_map_[pos] = it->second[i]; @@ -149,17 +147,17 @@ void L1TGlobalPrescalesVetosViewer::analyze(const edm::Event& iEvent, const edm: else cout << 0 << endl; - int veto_[(ptr->veto_).size()]; + int veto_[(ptr.veto_).size()]; bool veto_allZeros = true; - for (size_t i = 0; i < (ptr->veto_).size(); i++) { - veto_[i] = (ptr->veto_)[i]; + for (size_t i = 0; i < (ptr.veto_).size(); i++) { + veto_[i] = (ptr.veto_)[i]; if (veto_[i]) veto_allZeros = false; } - cout << " veto_[" << (ptr->veto_).size() << "] = "; + cout << " veto_[" << (ptr.veto_).size() << "] = "; if (veto_verbosity == 0) { - if (!(ptr->veto_).empty()) { - cout << hash(veto_, sizeof(int) * (ptr->veto_).size()); + if (!(ptr.veto_).empty()) { + cout << hash(veto_, sizeof(int) * (ptr.veto_).size()); if (veto_allZeros) cout << " (all zeros)" << endl; else @@ -167,24 +165,24 @@ void L1TGlobalPrescalesVetosViewer::analyze(const edm::Event& iEvent, const edm: } else cout << 0 << endl; } else - for (size_t i = 0; i < (ptr->veto_).size(); i++) + for (size_t i = 0; i < (ptr.veto_).size(); i++) cout << veto_[i] << endl; - int exp_ints_[(ptr->exp_ints_).size()]; - for (size_t i = 0; i < (ptr->exp_ints_).size(); i++) - exp_ints_[i] = (ptr->exp_ints_)[i]; - cout << " exp_ints_[" << (ptr->exp_ints_).size() << "] = "; - if (!(ptr->exp_ints_).empty()) - cout << hash(exp_ints_, sizeof(int) * (ptr->exp_ints_).size()) << endl; + int exp_ints_[(ptr.exp_ints_).size()]; + for (size_t i = 0; i < (ptr.exp_ints_).size(); i++) + exp_ints_[i] = (ptr.exp_ints_)[i]; + cout << " exp_ints_[" << (ptr.exp_ints_).size() << "] = "; + if (!(ptr.exp_ints_).empty()) + cout << hash(exp_ints_, sizeof(int) * (ptr.exp_ints_).size()) << endl; else cout << 0 << endl; - int exp_doubles_[(ptr->exp_doubles_).size()]; - for (size_t i = 0; i < (ptr->exp_doubles_).size(); i++) - exp_ints_[i] = (ptr->exp_doubles_)[i]; - cout << " exp_doubles_[" << (ptr->exp_doubles_).size() << "] = "; - if (!(ptr->exp_doubles_).empty()) - cout << hash(exp_doubles_, sizeof(int) * (ptr->exp_doubles_).size()) << endl; + int exp_doubles_[(ptr.exp_doubles_).size()]; + for (size_t i = 0; i < (ptr.exp_doubles_).size(); i++) + exp_ints_[i] = (ptr.exp_doubles_)[i]; + cout << " exp_doubles_[" << (ptr.exp_doubles_).size() << "] = "; + if (!(ptr.exp_doubles_).empty()) + cout << hash(exp_doubles_, sizeof(int) * (ptr.exp_doubles_).size()) << endl; else cout << 0 << endl; } diff --git a/L1TriggerConfig/Utilities/src/L1TGlobalPrescalesVetosWriter.cc b/L1TriggerConfig/Utilities/src/L1TGlobalPrescalesVetosWriter.cc index a441a8a238cdc..844fc01425764 100644 --- a/L1TriggerConfig/Utilities/src/L1TGlobalPrescalesVetosWriter.cc +++ b/L1TriggerConfig/Utilities/src/L1TGlobalPrescalesVetosWriter.cc @@ -1,7 +1,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -15,34 +15,40 @@ #include "FWCore/ServiceRegistry/interface/Service.h" #include "CondCore/DBOutputService/interface/PoolDBOutputService.h" -class L1TGlobalPrescalesVetosWriter : public edm::EDAnalyzer { +class L1TGlobalPrescalesVetosWriter : public edm::one::EDAnalyzer<> { private: + edm::ESGetToken o2oToken_; + edm::ESGetToken token_; bool isO2Opayload; public: void analyze(const edm::Event&, const edm::EventSetup&) override; - explicit L1TGlobalPrescalesVetosWriter(const edm::ParameterSet& pset) : edm::EDAnalyzer() { + explicit L1TGlobalPrescalesVetosWriter(const edm::ParameterSet& pset) { isO2Opayload = pset.getUntrackedParameter("isO2Opayload", false); + if (isO2Opayload) { + o2oToken_ = esConsumes(); + } else { + token_ = esConsumes(); + } } - ~L1TGlobalPrescalesVetosWriter(void) override {} }; void L1TGlobalPrescalesVetosWriter::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { edm::ESHandle handle1; if (isO2Opayload) - evSetup.get().get(handle1); + handle1 = evSetup.getHandle(o2oToken_); else - evSetup.get().get(handle1); + handle1 = evSetup.getHandle(token_); - std::shared_ptr ptr1(new L1TGlobalPrescalesVetos(*(handle1.product()))); + L1TGlobalPrescalesVetos const& ptr1 = *handle1; edm::Service poolDb; if (poolDb.isAvailable()) { cond::Time_t firstSinceTime = poolDb->beginOfTime(); poolDb->writeOneIOV( - *ptr1, firstSinceTime, (isO2Opayload ? "L1TGlobalPrescalesVetosO2ORcd" : "L1TGlobalPrescalesVetosRcd")); + ptr1, firstSinceTime, (isO2Opayload ? "L1TGlobalPrescalesVetosO2ORcd" : "L1TGlobalPrescalesVetosRcd")); } } diff --git a/L1TriggerConfig/Utilities/src/L1TMuonBarrelKalmanParamsViewer.cc b/L1TriggerConfig/Utilities/src/L1TMuonBarrelKalmanParamsViewer.cc index 0b703b3ae57bd..0a0464f163cf0 100644 --- a/L1TriggerConfig/Utilities/src/L1TMuonBarrelKalmanParamsViewer.cc +++ b/L1TriggerConfig/Utilities/src/L1TMuonBarrelKalmanParamsViewer.cc @@ -1,7 +1,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -18,15 +18,15 @@ #include using namespace std; -class L1TMuonBarrelKalmanParamsViewer : public edm::EDAnalyzer { +class L1TMuonBarrelKalmanParamsViewer : public edm::one::EDAnalyzer<> { private: + edm::ESGetToken token_; std::string hash(void *buf, size_t len) const; public: void analyze(const edm::Event &, const edm::EventSetup &) override; - L1TMuonBarrelKalmanParamsViewer(const edm::ParameterSet &){}; - ~L1TMuonBarrelKalmanParamsViewer(void) override {} + L1TMuonBarrelKalmanParamsViewer(const edm::ParameterSet &) : token_{esConsumes()} {}; }; #include "Utilities/OpenSSL/interface/openssl_init.h" @@ -63,13 +63,11 @@ std::string L1TMuonBarrelKalmanParamsViewer::hash(void *buf, size_t len) const { } void L1TMuonBarrelKalmanParamsViewer::analyze(const edm::Event &iEvent, const edm::EventSetup &evSetup) { - edm::ESHandle handle1; - evSetup.get().get(handle1); - std::shared_ptr ptr(new L1TMuonBarrelKalmanParams(*(handle1.product()))); + L1TMuonBarrelKalmanParams const &ptr = evSetup.getData(token_); // Get the nodes and print out - auto pnodes = ptr->pnodes_[ptr->CONFIG]; - cout << "version : " << ptr->version_ << endl; + auto pnodes = ptr.pnodes_[ptr.CONFIG]; + cout << "version : " << ptr.version_ << endl; cout << "fwVersion : " << hex << pnodes.fwVersion_ << dec << endl; cout << "LUTsPath : " << pnodes.kalmanLUTsPath_ << endl; diff --git a/L1TriggerConfig/Utilities/src/L1TMuonBarrelParamsViewer.cc b/L1TriggerConfig/Utilities/src/L1TMuonBarrelParamsViewer.cc index f19c25c52d606..3ac2f21df3b82 100644 --- a/L1TriggerConfig/Utilities/src/L1TMuonBarrelParamsViewer.cc +++ b/L1TriggerConfig/Utilities/src/L1TMuonBarrelParamsViewer.cc @@ -1,7 +1,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -19,16 +19,16 @@ #include using namespace std; -class L1TMuonBarrelParamsViewer : public edm::EDAnalyzer { +class L1TMuonBarrelParamsViewer : public edm::one::EDAnalyzer<> { private: std::string hash(void *buf, size_t len) const; + edm::ESGetToken token_; bool printPtaThreshold; public: void analyze(const edm::Event &, const edm::EventSetup &) override; - explicit L1TMuonBarrelParamsViewer(const edm::ParameterSet &) : edm::EDAnalyzer() { printPtaThreshold = false; } - ~L1TMuonBarrelParamsViewer(void) override {} + explicit L1TMuonBarrelParamsViewer(const edm::ParameterSet &) : token_{esConsumes()} { printPtaThreshold = false; } }; #include "Utilities/OpenSSL/interface/openssl_init.h" @@ -65,11 +65,9 @@ std::string L1TMuonBarrelParamsViewer::hash(void *buf, size_t len) const { } void L1TMuonBarrelParamsViewer::analyze(const edm::Event &iEvent, const edm::EventSetup &evSetup) { - edm::ESHandle handle1; - evSetup.get().get(handle1); - std::shared_ptr ptr(new L1TMuonBarrelParams(*(handle1.product()))); + L1TMuonBarrelParams const &ptr = evSetup.getData(token_); - L1TMuonBarrelParamsHelper *ptr1 = (L1TMuonBarrelParamsHelper *)ptr.get(); + L1TMuonBarrelParamsHelper *ptr1 = (L1TMuonBarrelParamsHelper *)&ptr; cout << "AssLUTPath: " << ptr1->AssLUTPath() << endl; diff --git a/L1TriggerConfig/Utilities/src/L1TMuonBarrelParamsWriter.cc b/L1TriggerConfig/Utilities/src/L1TMuonBarrelParamsWriter.cc index b9d1ed623d179..736ba576459f7 100644 --- a/L1TriggerConfig/Utilities/src/L1TMuonBarrelParamsWriter.cc +++ b/L1TriggerConfig/Utilities/src/L1TMuonBarrelParamsWriter.cc @@ -1,7 +1,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -17,17 +17,25 @@ #include "FWCore/ServiceRegistry/interface/Service.h" #include "CondCore/DBOutputService/interface/PoolDBOutputService.h" -class L1TMuonBarrelParamsWriter : public edm::EDAnalyzer { +class L1TMuonBarrelParamsWriter : public edm::one::EDAnalyzer<> { private: + edm::ESGetToken o2oParamsToken_; + edm::ESGetToken paramsToken_; + edm::ESGetToken kalmanToken_; bool isO2Opayload; public: void analyze(const edm::Event&, const edm::EventSetup&) override; - explicit L1TMuonBarrelParamsWriter(const edm::ParameterSet& pset) : edm::EDAnalyzer() { + explicit L1TMuonBarrelParamsWriter(const edm::ParameterSet& pset) { isO2Opayload = pset.getUntrackedParameter("isO2Opayload", false); + if (isO2Opayload) { + o2oParamsToken_ = esConsumes(); + } else { + paramsToken_ = esConsumes(); + kalmanToken_ = esConsumes(); + } } - ~L1TMuonBarrelParamsWriter(void) override {} }; void L1TMuonBarrelParamsWriter::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { @@ -35,21 +43,19 @@ void L1TMuonBarrelParamsWriter::analyze(const edm::Event& iEvent, const edm::Eve edm::ESHandle handle2; if (isO2Opayload) - evSetup.get().get(handle1); + handle1 = evSetup.getHandle(o2oParamsToken_); else { - evSetup.get().get(handle1); - evSetup.get().get(handle2); + handle1 = evSetup.getHandle(paramsToken_); + handle2 = evSetup.getHandle(kalmanToken_); } - std::shared_ptr ptr1(new L1TMuonBarrelParams(*(handle1.product()))); - std::shared_ptr ptr2(new L1TMuonBarrelKalmanParams(*(handle2.product()))); - edm::Service poolDb; if (poolDb.isAvailable()) { cond::Time_t firstSinceTime = poolDb->beginOfTime(); - poolDb->writeOneIOV(*ptr1, firstSinceTime, (isO2Opayload ? "L1TMuonBarrelParamsO2ORcd" : "L1TMuonBarrelParamsRcd")); + poolDb->writeOneIOV( + *handle1, firstSinceTime, (isO2Opayload ? "L1TMuonBarrelParamsO2ORcd" : "L1TMuonBarrelParamsRcd")); if (not isO2Opayload) - poolDb->writeOneIOV(*ptr2, firstSinceTime, ("L1TMuonBarrelKalmanParamsRcd")); + poolDb->writeOneIOV(*handle2, firstSinceTime, ("L1TMuonBarrelKalmanParamsRcd")); } } diff --git a/L1TriggerConfig/Utilities/src/L1TMuonEndCapForestWriter.cc b/L1TriggerConfig/Utilities/src/L1TMuonEndCapForestWriter.cc index 2ab60c9d7d2b9..f7c6255058f09 100644 --- a/L1TriggerConfig/Utilities/src/L1TMuonEndCapForestWriter.cc +++ b/L1TriggerConfig/Utilities/src/L1TMuonEndCapForestWriter.cc @@ -1,7 +1,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -16,33 +16,28 @@ #include "FWCore/ServiceRegistry/interface/Service.h" #include "CondCore/DBOutputService/interface/PoolDBOutputService.h" -class L1TMuonEndCapForestWriter : public edm::EDAnalyzer { +class L1TMuonEndCapForestWriter : public edm::one::EDAnalyzer<> { private: + edm::ESGetToken token_; bool isO2Opayload; public: void analyze(const edm::Event&, const edm::EventSetup&) override; - explicit L1TMuonEndCapForestWriter(const edm::ParameterSet& pset) : edm::EDAnalyzer() { + explicit L1TMuonEndCapForestWriter(const edm::ParameterSet& pset) { isO2Opayload = pset.getUntrackedParameter("isO2Opayload", false); + token_ = esConsumes(); } ~L1TMuonEndCapForestWriter(void) override {} }; void L1TMuonEndCapForestWriter::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { - edm::ESHandle handle1; - - // if( isO2Opayload ) - // evSetup.get().get( handle1 ) ; - // else - evSetup.get().get(handle1); - - std::shared_ptr ptr1(new L1TMuonEndCapForest(*(handle1.product()))); + L1TMuonEndCapForest const& ptr1 = evSetup.getData(token_); edm::Service poolDb; if (poolDb.isAvailable()) { cond::Time_t firstSinceTime = poolDb->beginOfTime(); - poolDb->writeOneIOV(*ptr1, firstSinceTime, (isO2Opayload ? "L1TMuonEndCapForestO2ORcd" : "L1TMuonEndCapForestRcd")); + poolDb->writeOneIOV(ptr1, firstSinceTime, (isO2Opayload ? "L1TMuonEndCapForestO2ORcd" : "L1TMuonEndCapForestRcd")); } } diff --git a/L1TriggerConfig/Utilities/src/L1TMuonEndCapParamsViewer.cc b/L1TriggerConfig/Utilities/src/L1TMuonEndCapParamsViewer.cc index d295a3ab4c70a..759df9908576d 100644 --- a/L1TriggerConfig/Utilities/src/L1TMuonEndCapParamsViewer.cc +++ b/L1TriggerConfig/Utilities/src/L1TMuonEndCapParamsViewer.cc @@ -1,7 +1,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -20,27 +20,26 @@ #include using namespace std; -class L1TMuonEndCapParamsViewer : public edm::EDAnalyzer { +class L1TMuonEndCapParamsViewer : public edm::one::EDAnalyzer<> { public: void analyze(const edm::Event&, const edm::EventSetup&) override; - explicit L1TMuonEndCapParamsViewer(const edm::ParameterSet&) : edm::EDAnalyzer() {} - ~L1TMuonEndCapParamsViewer(void) override {} + explicit L1TMuonEndCapParamsViewer(const edm::ParameterSet&) : token_{esConsumes()} {} + +private: + edm::ESGetToken token_; }; void L1TMuonEndCapParamsViewer::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { - edm::ESHandle handle1; - evSetup.get().get(handle1); - // evSetup.get().get( handle1 ) ; - std::shared_ptr ptr1(new L1TMuonEndCapParams(*(handle1.product()))); + L1TMuonEndCapParams const& ptr1 = evSetup.getData(token_); cout << "L1TMuonEndCapParams: " << endl; - cout << " PtAssignVersion_ = " << ptr1->PtAssignVersion_ << endl; - cout << " firmwareVersion_ = " << ptr1->firmwareVersion_ << endl; - cout << " PhiMatchWindowSt1_ = " << ptr1->PhiMatchWindowSt1_ << endl; - cout << " PhiMatchWindowSt2_ = " << ptr1->PhiMatchWindowSt2_ << endl; - cout << " PhiMatchWindowSt3_ = " << ptr1->PhiMatchWindowSt3_ << endl; - cout << " PhiMatchWindowSt4_ = " << ptr1->PhiMatchWindowSt4_ << endl; + cout << " PtAssignVersion_ = " << ptr1.PtAssignVersion_ << endl; + cout << " firmwareVersion_ = " << ptr1.firmwareVersion_ << endl; + cout << " PhiMatchWindowSt1_ = " << ptr1.PhiMatchWindowSt1_ << endl; + cout << " PhiMatchWindowSt2_ = " << ptr1.PhiMatchWindowSt2_ << endl; + cout << " PhiMatchWindowSt3_ = " << ptr1.PhiMatchWindowSt3_ << endl; + cout << " PhiMatchWindowSt4_ = " << ptr1.PhiMatchWindowSt4_ << endl; /// edm::ESHandle handle2; /// evSetup.get().get( handle2 ) ; diff --git a/L1TriggerConfig/Utilities/src/L1TMuonEndCapParamsWriter.cc b/L1TriggerConfig/Utilities/src/L1TMuonEndCapParamsWriter.cc index 56d747467f7dd..1fe10b14017d4 100644 --- a/L1TriggerConfig/Utilities/src/L1TMuonEndCapParamsWriter.cc +++ b/L1TriggerConfig/Utilities/src/L1TMuonEndCapParamsWriter.cc @@ -1,7 +1,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -16,33 +16,39 @@ #include "FWCore/ServiceRegistry/interface/Service.h" #include "CondCore/DBOutputService/interface/PoolDBOutputService.h" -class L1TMuonEndCapParamsWriter : public edm::EDAnalyzer { +class L1TMuonEndCapParamsWriter : public edm::one::EDAnalyzer<> { private: + edm::ESGetToken o2oToken_; + edm::ESGetToken token_; bool isO2Opayload; public: void analyze(const edm::Event&, const edm::EventSetup&) override; - explicit L1TMuonEndCapParamsWriter(const edm::ParameterSet& pset) : edm::EDAnalyzer() { + explicit L1TMuonEndCapParamsWriter(const edm::ParameterSet& pset) { isO2Opayload = pset.getUntrackedParameter("isO2Opayload", false); + if (isO2Opayload) { + o2oToken_ = esConsumes(); + } else { + token_ = esConsumes(); + } } - ~L1TMuonEndCapParamsWriter(void) override {} }; void L1TMuonEndCapParamsWriter::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { edm::ESHandle handle1; if (isO2Opayload) - evSetup.get().get(handle1); + handle1 = evSetup.getHandle(o2oToken_); else - evSetup.get().get(handle1); + handle1 = evSetup.getHandle(token_); - std::shared_ptr ptr1(new L1TMuonEndCapParams(*(handle1.product()))); + L1TMuonEndCapParams const& ptr1 = *handle1; edm::Service poolDb; if (poolDb.isAvailable()) { cond::Time_t firstSinceTime = poolDb->beginOfTime(); - poolDb->writeOneIOV(*ptr1, firstSinceTime, (isO2Opayload ? "L1TMuonEndCapParamsO2ORcd" : "L1TMuonEndCapParamsRcd")); + poolDb->writeOneIOV(ptr1, firstSinceTime, (isO2Opayload ? "L1TMuonEndCapParamsO2ORcd" : "L1TMuonEndCapParamsRcd")); } } diff --git a/L1TriggerConfig/Utilities/src/L1TMuonGlobalParamsViewer.cc b/L1TriggerConfig/Utilities/src/L1TMuonGlobalParamsViewer.cc index b58d6ae3156fa..d3d962a9d1a16 100644 --- a/L1TriggerConfig/Utilities/src/L1TMuonGlobalParamsViewer.cc +++ b/L1TriggerConfig/Utilities/src/L1TMuonGlobalParamsViewer.cc @@ -1,7 +1,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -19,20 +19,21 @@ #include using namespace std; -class L1TMuonGlobalParamsViewer : public edm::EDAnalyzer { +class L1TMuonGlobalParamsViewer : public edm::one::EDAnalyzer<> { private: // bool printLayerMap; std::string hash(void* buf, size_t len) const; void printLUT(l1t::LUT* lut, const char* name) const; + edm::ESGetToken token_; + public: void analyze(const edm::Event&, const edm::EventSetup&) override; // string hash(void *buf, size_t len) const ; - explicit L1TMuonGlobalParamsViewer(const edm::ParameterSet& pset) : edm::EDAnalyzer() { + explicit L1TMuonGlobalParamsViewer(const edm::ParameterSet& pset) : token_{esConsumes()} { // printLayerMap = pset.getUntrackedParameter("printLayerMap", false); } - ~L1TMuonGlobalParamsViewer(void) override {} }; #include "Utilities/OpenSSL/interface/openssl_init.h" @@ -82,71 +83,70 @@ void L1TMuonGlobalParamsViewer::printLUT(l1t::LUT* lut, const char* name) const void L1TMuonGlobalParamsViewer::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { // Pull the config from the ES - edm::ESHandle handle1; - evSetup.get().get(handle1); - std::shared_ptr ptr1(new L1TMuonGlobalParams(*(handle1.product()))); + // has to be a copy as call non-const methods + L1TMuonGlobalParams ptr1 = evSetup.getData(token_); // cout<<"Some fields in L1TMuonGlobalParams: "<print(cout); - printLUT(ptr1.get()->absIsoCheckMemLUT(), "absIsoCheckMemLUT"); - printLUT(ptr1.get()->absIsoCheckMemLUT(), "absIsoCheckMemLUT"); - printLUT(ptr1.get()->relIsoCheckMemLUT(), "relIsoCheckMemLUT"); - printLUT(ptr1.get()->idxSelMemPhiLUT(), "idxSelMemPhiLUT"); - printLUT(ptr1.get()->idxSelMemEtaLUT(), "idxSelMemEtaLUT"); + printLUT(ptr1.absIsoCheckMemLUT(), "absIsoCheckMemLUT"); + printLUT(ptr1.absIsoCheckMemLUT(), "absIsoCheckMemLUT"); + printLUT(ptr1.relIsoCheckMemLUT(), "relIsoCheckMemLUT"); + printLUT(ptr1.idxSelMemPhiLUT(), "idxSelMemPhiLUT"); + printLUT(ptr1.idxSelMemEtaLUT(), "idxSelMemEtaLUT"); //l1t::LUT* brlSingleMatchQualLUT(); - printLUT(ptr1.get()->fwdPosSingleMatchQualLUT(), "fwdPosSingleMatchQualLUT"); - printLUT(ptr1.get()->fwdNegSingleMatchQualLUT(), "fwdNegSingleMatchQualLUT"); - printLUT(ptr1.get()->ovlPosSingleMatchQualLUT(), "ovlPosSingleMatchQualLUT"); - printLUT(ptr1.get()->ovlNegSingleMatchQualLUT(), "ovlNegSingleMatchQualLUT"); - printLUT(ptr1.get()->bOPosMatchQualLUT(), "bOPosMatchQualLUT"); - printLUT(ptr1.get()->bONegMatchQualLUT(), "bONegMatchQualLUT"); - printLUT(ptr1.get()->fOPosMatchQualLUT(), "fOPosMatchQualLUT"); - printLUT(ptr1.get()->fONegMatchQualLUT(), "fONegMatchQualLUT"); - printLUT(ptr1.get()->bPhiExtrapolationLUT(), "bPhiExtrapolationLUT"); - printLUT(ptr1.get()->oPhiExtrapolationLUT(), "oPhiExtrapolationLUT"); - printLUT(ptr1.get()->fPhiExtrapolationLUT(), "fPhiExtrapolationLUT"); - printLUT(ptr1.get()->bEtaExtrapolationLUT(), "bEtaExtrapolationLUT"); - printLUT(ptr1.get()->oEtaExtrapolationLUT(), "oEtaExtrapolationLUT"); - printLUT(ptr1.get()->fEtaExtrapolationLUT(), "fEtaExtrapolationLUT"); - printLUT(ptr1.get()->sortRankLUT(), "sortRankLUT"); - - std::cout << "absIsoCheckMemLUTPath: " << ptr1.get()->absIsoCheckMemLUTPath() << std::endl; - std::cout << "relIsoCheckMemLUTPath: " << ptr1.get()->relIsoCheckMemLUTPath() << std::endl; - std::cout << "idxSelMemPhiLUTPath: " << ptr1.get()->idxSelMemPhiLUTPath() << std::endl; - std::cout << "idxSelMemEtaLUTPath: " << ptr1.get()->idxSelMemEtaLUTPath() << std::endl; + printLUT(ptr1.fwdPosSingleMatchQualLUT(), "fwdPosSingleMatchQualLUT"); + printLUT(ptr1.fwdNegSingleMatchQualLUT(), "fwdNegSingleMatchQualLUT"); + printLUT(ptr1.ovlPosSingleMatchQualLUT(), "ovlPosSingleMatchQualLUT"); + printLUT(ptr1.ovlNegSingleMatchQualLUT(), "ovlNegSingleMatchQualLUT"); + printLUT(ptr1.bOPosMatchQualLUT(), "bOPosMatchQualLUT"); + printLUT(ptr1.bONegMatchQualLUT(), "bONegMatchQualLUT"); + printLUT(ptr1.fOPosMatchQualLUT(), "fOPosMatchQualLUT"); + printLUT(ptr1.fONegMatchQualLUT(), "fONegMatchQualLUT"); + printLUT(ptr1.bPhiExtrapolationLUT(), "bPhiExtrapolationLUT"); + printLUT(ptr1.oPhiExtrapolationLUT(), "oPhiExtrapolationLUT"); + printLUT(ptr1.fPhiExtrapolationLUT(), "fPhiExtrapolationLUT"); + printLUT(ptr1.bEtaExtrapolationLUT(), "bEtaExtrapolationLUT"); + printLUT(ptr1.oEtaExtrapolationLUT(), "oEtaExtrapolationLUT"); + printLUT(ptr1.fEtaExtrapolationLUT(), "fEtaExtrapolationLUT"); + printLUT(ptr1.sortRankLUT(), "sortRankLUT"); + + std::cout << "absIsoCheckMemLUTPath: " << ptr1.absIsoCheckMemLUTPath() << std::endl; + std::cout << "relIsoCheckMemLUTPath: " << ptr1.relIsoCheckMemLUTPath() << std::endl; + std::cout << "idxSelMemPhiLUTPath: " << ptr1.idxSelMemPhiLUTPath() << std::endl; + std::cout << "idxSelMemEtaLUTPath: " << ptr1.idxSelMemEtaLUTPath() << std::endl; //std::string brlSingleMatchQualLUTPath() const { return pnodes_[brlSingleMatchQual].sparams_.size() > spIdx::fname ? pnodes_[brlSingleMatchQual].sparams_[spIdx::fname] : ""; } - std::cout << "fwdPosSingleMatchQualLUTPath: " << ptr1.get()->fwdPosSingleMatchQualLUTPath() << std::endl; - std::cout << "fwdNegSingleMatchQualLUTPath: " << ptr1.get()->fwdNegSingleMatchQualLUTPath() << std::endl; - std::cout << "ovlPosSingleMatchQualLUTPath: " << ptr1.get()->ovlPosSingleMatchQualLUTPath() << std::endl; - std::cout << "ovlNegSingleMatchQualLUTPath: " << ptr1.get()->ovlNegSingleMatchQualLUTPath() << std::endl; - std::cout << "bOPosMatchQualLUTPath: " << ptr1.get()->bOPosMatchQualLUTPath() << std::endl; - std::cout << "bONegMatchQualLUTPath: " << ptr1.get()->bONegMatchQualLUTPath() << std::endl; - std::cout << "fOPosMatchQualLUTPath: " << ptr1.get()->fOPosMatchQualLUTPath() << std::endl; - std::cout << "fONegMatchQualLUTPath: " << ptr1.get()->fONegMatchQualLUTPath() << std::endl; - std::cout << "bPhiExtrapolationLUTPath: " << ptr1.get()->bPhiExtrapolationLUTPath() << std::endl; - std::cout << "oPhiExtrapolationLUTPath: " << ptr1.get()->oPhiExtrapolationLUTPath() << std::endl; - std::cout << "fPhiExtrapolationLUTPath: " << ptr1.get()->fPhiExtrapolationLUTPath() << std::endl; - std::cout << "bEtaExtrapolationLUTPath: " << ptr1.get()->bEtaExtrapolationLUTPath() << std::endl; - std::cout << "oEtaExtrapolationLUTPath: " << ptr1.get()->oEtaExtrapolationLUTPath() << std::endl; - std::cout << "fEtaExtrapolationLUTPath: " << ptr1.get()->fEtaExtrapolationLUTPath() << std::endl; - std::cout << "sortRankLUTPath: " << ptr1.get()->sortRankLUTPath() << std::endl; - - std::cout << "fwdPosSingleMatchQualLUTMaxDR: " << ptr1.get()->fwdPosSingleMatchQualLUTMaxDR() << std::endl; - std::cout << "fwdNegSingleMatchQualLUTMaxDR: " << ptr1.get()->fwdNegSingleMatchQualLUTMaxDR() << std::endl; - std::cout << "ovlPosSingleMatchQualLUTMaxDR: " << ptr1.get()->ovlPosSingleMatchQualLUTMaxDR() << std::endl; - std::cout << "ovlNegSingleMatchQualLUTMaxDR: " << ptr1.get()->ovlNegSingleMatchQualLUTMaxDR() << std::endl; - std::cout << "bOPosMatchQualLUTMaxDR: " << ptr1.get()->bOPosMatchQualLUTMaxDR() << std::endl; - std::cout << "bONegMatchQualLUTMaxDR: " << ptr1.get()->bONegMatchQualLUTMaxDR() << std::endl; - std::cout << "bOPosMatchQualLUTMaxDREtaFine: " << ptr1.get()->bOPosMatchQualLUTMaxDREtaFine() << std::endl; - std::cout << "bONegMatchQualLUTMaxDREtaFine: " << ptr1.get()->bONegMatchQualLUTMaxDREtaFine() << std::endl; - std::cout << "fOPosMatchQualLUTMaxDR: " << ptr1.get()->fOPosMatchQualLUTMaxDR() << std::endl; - std::cout << "fONegMatchQualLUTMaxDR: " << ptr1.get()->fONegMatchQualLUTMaxDR() << std::endl; + std::cout << "fwdPosSingleMatchQualLUTPath: " << ptr1.fwdPosSingleMatchQualLUTPath() << std::endl; + std::cout << "fwdNegSingleMatchQualLUTPath: " << ptr1.fwdNegSingleMatchQualLUTPath() << std::endl; + std::cout << "ovlPosSingleMatchQualLUTPath: " << ptr1.ovlPosSingleMatchQualLUTPath() << std::endl; + std::cout << "ovlNegSingleMatchQualLUTPath: " << ptr1.ovlNegSingleMatchQualLUTPath() << std::endl; + std::cout << "bOPosMatchQualLUTPath: " << ptr1.bOPosMatchQualLUTPath() << std::endl; + std::cout << "bONegMatchQualLUTPath: " << ptr1.bONegMatchQualLUTPath() << std::endl; + std::cout << "fOPosMatchQualLUTPath: " << ptr1.fOPosMatchQualLUTPath() << std::endl; + std::cout << "fONegMatchQualLUTPath: " << ptr1.fONegMatchQualLUTPath() << std::endl; + std::cout << "bPhiExtrapolationLUTPath: " << ptr1.bPhiExtrapolationLUTPath() << std::endl; + std::cout << "oPhiExtrapolationLUTPath: " << ptr1.oPhiExtrapolationLUTPath() << std::endl; + std::cout << "fPhiExtrapolationLUTPath: " << ptr1.fPhiExtrapolationLUTPath() << std::endl; + std::cout << "bEtaExtrapolationLUTPath: " << ptr1.bEtaExtrapolationLUTPath() << std::endl; + std::cout << "oEtaExtrapolationLUTPath: " << ptr1.oEtaExtrapolationLUTPath() << std::endl; + std::cout << "fEtaExtrapolationLUTPath: " << ptr1.fEtaExtrapolationLUTPath() << std::endl; + std::cout << "sortRankLUTPath: " << ptr1.sortRankLUTPath() << std::endl; + + std::cout << "fwdPosSingleMatchQualLUTMaxDR: " << ptr1.fwdPosSingleMatchQualLUTMaxDR() << std::endl; + std::cout << "fwdNegSingleMatchQualLUTMaxDR: " << ptr1.fwdNegSingleMatchQualLUTMaxDR() << std::endl; + std::cout << "ovlPosSingleMatchQualLUTMaxDR: " << ptr1.ovlPosSingleMatchQualLUTMaxDR() << std::endl; + std::cout << "ovlNegSingleMatchQualLUTMaxDR: " << ptr1.ovlNegSingleMatchQualLUTMaxDR() << std::endl; + std::cout << "bOPosMatchQualLUTMaxDR: " << ptr1.bOPosMatchQualLUTMaxDR() << std::endl; + std::cout << "bONegMatchQualLUTMaxDR: " << ptr1.bONegMatchQualLUTMaxDR() << std::endl; + std::cout << "bOPosMatchQualLUTMaxDREtaFine: " << ptr1.bOPosMatchQualLUTMaxDREtaFine() << std::endl; + std::cout << "bONegMatchQualLUTMaxDREtaFine: " << ptr1.bONegMatchQualLUTMaxDREtaFine() << std::endl; + std::cout << "fOPosMatchQualLUTMaxDR: " << ptr1.fOPosMatchQualLUTMaxDR() << std::endl; + std::cout << "fONegMatchQualLUTMaxDR: " << ptr1.fONegMatchQualLUTMaxDR() << std::endl; // Sort rank LUT factors for pT and quality - std::cout << "sortRankLUTPtFactor: " << ptr1.get()->sortRankLUTPtFactor() << std::endl; - std::cout << "sortRankLUTQualFactor: " << ptr1.get()->sortRankLUTQualFactor() << std::endl; + std::cout << "sortRankLUTPtFactor: " << ptr1.sortRankLUTPtFactor() << std::endl; + std::cout << "sortRankLUTQualFactor: " << ptr1.sortRankLUTQualFactor() << std::endl; } #include "FWCore/PluginManager/interface/ModuleDef.h" diff --git a/L1TriggerConfig/Utilities/src/L1TMuonGlobalParamsWriter.cc b/L1TriggerConfig/Utilities/src/L1TMuonGlobalParamsWriter.cc index f4f82e0090000..70981cd6caba2 100644 --- a/L1TriggerConfig/Utilities/src/L1TMuonGlobalParamsWriter.cc +++ b/L1TriggerConfig/Utilities/src/L1TMuonGlobalParamsWriter.cc @@ -1,7 +1,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -15,33 +15,39 @@ #include "FWCore/ServiceRegistry/interface/Service.h" #include "CondCore/DBOutputService/interface/PoolDBOutputService.h" -class L1TMuonGlobalParamsWriter : public edm::EDAnalyzer { +class L1TMuonGlobalParamsWriter : public edm::one::EDAnalyzer<> { private: + edm::ESGetToken o2oToken_; + edm::ESGetToken token_; bool isO2Opayload; public: void analyze(const edm::Event&, const edm::EventSetup&) override; - explicit L1TMuonGlobalParamsWriter(const edm::ParameterSet& pset) : edm::EDAnalyzer() { + explicit L1TMuonGlobalParamsWriter(const edm::ParameterSet& pset) { isO2Opayload = pset.getUntrackedParameter("isO2Opayload", false); + if (isO2Opayload) { + o2oToken_ = esConsumes(); + } else { + token_ = esConsumes(); + } } - ~L1TMuonGlobalParamsWriter(void) override {} }; void L1TMuonGlobalParamsWriter::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { edm::ESHandle handle1; if (isO2Opayload) - evSetup.get().get(handle1); + handle1 = evSetup.getHandle(o2oToken_); else - evSetup.get().get(handle1); + handle1 = evSetup.getHandle(token_); - std::shared_ptr ptr1(new L1TMuonGlobalParams(*(handle1.product()))); + L1TMuonGlobalParams const& ptr1 = *handle1; edm::Service poolDb; if (poolDb.isAvailable()) { cond::Time_t firstSinceTime = poolDb->beginOfTime(); - poolDb->writeOneIOV(*ptr1, firstSinceTime, (isO2Opayload ? "L1TMuonGlobalParamsO2ORcd" : "L1TMuonGlobalParamsRcd")); + poolDb->writeOneIOV(ptr1, firstSinceTime, (isO2Opayload ? "L1TMuonGlobalParamsO2ORcd" : "L1TMuonGlobalParamsRcd")); } } diff --git a/L1TriggerConfig/Utilities/src/L1TMuonOverlapParamsViewer.cc b/L1TriggerConfig/Utilities/src/L1TMuonOverlapParamsViewer.cc index cd7cbd1b034ef..e130d57cabc95 100644 --- a/L1TriggerConfig/Utilities/src/L1TMuonOverlapParamsViewer.cc +++ b/L1TriggerConfig/Utilities/src/L1TMuonOverlapParamsViewer.cc @@ -1,7 +1,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -18,18 +18,18 @@ #include using namespace std; -class L1TMuonOverlapParamsViewer : public edm::EDAnalyzer { +class L1TMuonOverlapParamsViewer : public edm::one::EDAnalyzer<> { private: + edm::ESGetToken token_; bool printLayerMap; public: void analyze(const edm::Event &, const edm::EventSetup &) override; string hash(void *buf, size_t len) const; - explicit L1TMuonOverlapParamsViewer(const edm::ParameterSet &pset) : edm::EDAnalyzer() { + explicit L1TMuonOverlapParamsViewer(const edm::ParameterSet &pset) : token_{esConsumes()} { printLayerMap = pset.getUntrackedParameter("printLayerMap", false); } - ~L1TMuonOverlapParamsViewer(void) override {} }; #include "Utilities/OpenSSL/interface/openssl_init.h" @@ -67,35 +67,33 @@ string L1TMuonOverlapParamsViewer::hash(void *buf, size_t len) const { void L1TMuonOverlapParamsViewer::analyze(const edm::Event &iEvent, const edm::EventSetup &evSetup) { // Pull the config from the ES - edm::ESHandle handle1; - evSetup.get().get(handle1); - std::shared_ptr ptr1(new L1TMuonOverlapParams(*(handle1.product()))); + L1TMuonOverlapParams const &ptr1 = evSetup.getData(token_); cout << "Some fields in L1TMuonOverlapParamsParams: " << endl; - cout << " fwVersion() = " << ptr1->fwVersion() << endl; - cout << " nPdfAddrBits() = " << ptr1->nPdfAddrBits() << endl; - cout << " nPdfValBits() = " << ptr1->nPdfValBits() << endl; - cout << " nHitsPerLayer() = " << ptr1->nHitsPerLayer() << endl; - cout << " nPhiBits() = " << ptr1->nPhiBits() << endl; - cout << " nPhiBins() = " << ptr1->nPhiBins() << endl; - cout << " nRefHits() = " << ptr1->nRefHits() << endl; - cout << " nTestRefHits() = " << ptr1->nTestRefHits() << endl; - cout << " nProcessors() = " << ptr1->nProcessors() << endl; - cout << " nLogicRegions() = " << ptr1->nLogicRegions() << endl; - cout << " nInputs() = " << ptr1->nInputs() << endl; - cout << " nLayers() = " << ptr1->nLayers() << endl; - cout << " nRefLayers() = " << ptr1->nRefLayers() << endl; - cout << " nGoldenPatterns() = " << ptr1->nGoldenPatterns() << endl; - - const std::vector *gp = ptr1->generalParams(); + cout << " fwVersion() = " << ptr1.fwVersion() << endl; + cout << " nPdfAddrBits() = " << ptr1.nPdfAddrBits() << endl; + cout << " nPdfValBits() = " << ptr1.nPdfValBits() << endl; + cout << " nHitsPerLayer() = " << ptr1.nHitsPerLayer() << endl; + cout << " nPhiBits() = " << ptr1.nPhiBits() << endl; + cout << " nPhiBins() = " << ptr1.nPhiBins() << endl; + cout << " nRefHits() = " << ptr1.nRefHits() << endl; + cout << " nTestRefHits() = " << ptr1.nTestRefHits() << endl; + cout << " nProcessors() = " << ptr1.nProcessors() << endl; + cout << " nLogicRegions() = " << ptr1.nLogicRegions() << endl; + cout << " nInputs() = " << ptr1.nInputs() << endl; + cout << " nLayers() = " << ptr1.nLayers() << endl; + cout << " nRefLayers() = " << ptr1.nRefLayers() << endl; + cout << " nGoldenPatterns() = " << ptr1.nGoldenPatterns() << endl; + + const std::vector *gp = ptr1.generalParams(); cout << " number of general parameters: = " << gp->size() << endl; cout << " "; for (auto a : *gp) cout << a << ", "; cout << endl; - const std::vector *lm = ptr1->layerMap(); + const std::vector *lm = ptr1.layerMap(); if (!lm->empty()) { cout << " layerMap() = [" << lm->size() << "] "; L1TMuonOverlapParams::LayerMapNode *lm_ = new L1TMuonOverlapParams::LayerMapNode[lm->size()]; @@ -120,7 +118,7 @@ void L1TMuonOverlapParamsViewer::analyze(const edm::Event &iEvent, const edm::Ev cout << " layerMap() = [0] " << endl; } - const std::vector *rlm = ptr1->refLayerMap(); + const std::vector *rlm = ptr1.refLayerMap(); if (!rlm->empty()) { cout << " refLayerMap() = [" << rlm->size() << "] "; L1TMuonOverlapParams::RefLayerMapNode *rlm_ = new L1TMuonOverlapParams::RefLayerMapNode[rlm->size()]; @@ -132,7 +130,7 @@ void L1TMuonOverlapParamsViewer::analyze(const edm::Event &iEvent, const edm::Ev cout << " refLayerMap() = [0] " << endl; } - const std::vector *rhn = ptr1->refHitMap(); + const std::vector *rhn = ptr1.refHitMap(); if (!rhn->empty()) { cout << " refHitMap() = [" << rhn->size() << "] "; L1TMuonOverlapParams::RefHitNode *rhn_ = new L1TMuonOverlapParams::RefHitNode[rhn->size()]; @@ -144,7 +142,7 @@ void L1TMuonOverlapParamsViewer::analyze(const edm::Event &iEvent, const edm::Ev cout << " refHitMap() = [0] " << endl; } - const std::vector *gpsm = ptr1->globalPhiStartMap(); + const std::vector *gpsm = ptr1.globalPhiStartMap(); if (!gpsm->empty()) { cout << " globalPhiStartMap() = [" << gpsm->size() << "] "; int gpsm_[gpsm->size()]; @@ -155,7 +153,7 @@ void L1TMuonOverlapParamsViewer::analyze(const edm::Event &iEvent, const edm::Ev cout << " globalPhiStartMap() = [0] " << endl; } - const std::vector *lim = ptr1->layerInputMap(); + const std::vector *lim = ptr1.layerInputMap(); if (!lim->empty()) { cout << " layerInputMap() = [" << lim->size() << "] "; L1TMuonOverlapParams::LayerInputNode *lim_ = new L1TMuonOverlapParams::LayerInputNode[lim->size()]; @@ -167,7 +165,7 @@ void L1TMuonOverlapParamsViewer::analyze(const edm::Event &iEvent, const edm::Ev cout << " layerInputMap() = [0] " << endl; } - const std::vector *css = ptr1->connectedSectorsStart(); + const std::vector *css = ptr1.connectedSectorsStart(); if (!css->empty()) { cout << " connectedSectorsStart() = [" << css->size() << "] "; int css_[css->size()]; @@ -178,7 +176,7 @@ void L1TMuonOverlapParamsViewer::analyze(const edm::Event &iEvent, const edm::Ev cout << " connectedSectorsStart() = [0] " << endl; } - const std::vector *cse = ptr1->connectedSectorsEnd(); + const std::vector *cse = ptr1.connectedSectorsEnd(); if (!cse->empty()) { cout << " connectedSectorsEnd() = [" << cse->size() << "] "; int cse_[cse->size()]; @@ -189,7 +187,7 @@ void L1TMuonOverlapParamsViewer::analyze(const edm::Event &iEvent, const edm::Ev cout << " connectedSectorsEnd() = [0] " << endl; } - const l1t::LUT *clut = ptr1->chargeLUT(); + const l1t::LUT *clut = ptr1.chargeLUT(); if (clut->maxSize()) { cout << " chargeLUT = [" << clut->maxSize() << "] "; int clut_[clut->maxSize()]; @@ -200,7 +198,7 @@ void L1TMuonOverlapParamsViewer::analyze(const edm::Event &iEvent, const edm::Ev cout << " chargeLUT = [0] " << endl; } - const l1t::LUT *elut = ptr1->etaLUT(); + const l1t::LUT *elut = ptr1.etaLUT(); if (elut->maxSize()) { cout << " etaLUT = [" << elut->maxSize() << "] "; int elut_[elut->maxSize()]; @@ -211,7 +209,7 @@ void L1TMuonOverlapParamsViewer::analyze(const edm::Event &iEvent, const edm::Ev cout << " chargeLUT = [0] " << endl; } - const l1t::LUT *ptlut = ptr1->ptLUT(); + const l1t::LUT *ptlut = ptr1.ptLUT(); if (ptlut->maxSize()) { cout << " ptLUT = [" << ptlut->maxSize() << "] " << flush; int ptlut_[ptlut->maxSize()]; @@ -222,7 +220,7 @@ void L1TMuonOverlapParamsViewer::analyze(const edm::Event &iEvent, const edm::Ev cout << " ptLUT = [0] " << endl; } - const l1t::LUT *plut = ptr1->pdfLUT(); + const l1t::LUT *plut = ptr1.pdfLUT(); if (plut->maxSize()) { cout << " pdfLUT = [" << plut->maxSize() << "] " << flush; int plut_[plut->maxSize()]; @@ -233,7 +231,7 @@ void L1TMuonOverlapParamsViewer::analyze(const edm::Event &iEvent, const edm::Ev cout << " pdfLUT = [0] " << endl; } - const l1t::LUT *mlut = ptr1->meanDistPhiLUT(); + const l1t::LUT *mlut = ptr1.meanDistPhiLUT(); if (mlut->maxSize()) { cout << " meanDistPhiLUT = [" << mlut->maxSize() << "] " << flush; int mlut_[mlut->maxSize()]; diff --git a/L1TriggerConfig/Utilities/src/L1TMuonOverlapParamsWriter.cc b/L1TriggerConfig/Utilities/src/L1TMuonOverlapParamsWriter.cc index 145978ce2e5d3..aa578b8b90c5e 100644 --- a/L1TriggerConfig/Utilities/src/L1TMuonOverlapParamsWriter.cc +++ b/L1TriggerConfig/Utilities/src/L1TMuonOverlapParamsWriter.cc @@ -1,7 +1,7 @@ #include #include -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -15,23 +15,23 @@ #include "FWCore/ServiceRegistry/interface/Service.h" #include "CondCore/DBOutputService/interface/PoolDBOutputService.h" -class L1TMuonOverlapParamsWriter : public edm::EDAnalyzer { +class L1TMuonOverlapParamsWriter : public edm::one::EDAnalyzer<> { public: void analyze(const edm::Event&, const edm::EventSetup&) override; - explicit L1TMuonOverlapParamsWriter(const edm::ParameterSet&) : edm::EDAnalyzer() {} - ~L1TMuonOverlapParamsWriter(void) override {} + explicit L1TMuonOverlapParamsWriter(const edm::ParameterSet&) : token_{esConsumes()} {} + +private: + edm::ESGetToken token_; }; void L1TMuonOverlapParamsWriter::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { - edm::ESHandle handle1; - evSetup.get().get(handle1); - std::shared_ptr ptr1(new L1TMuonOverlapParams(*(handle1.product()))); + L1TMuonOverlapParams const& ptr1 = evSetup.getData(token_); edm::Service poolDb; if (poolDb.isAvailable()) { cond::Time_t firstSinceTime = poolDb->beginOfTime(); - poolDb->writeOneIOV(*ptr1, firstSinceTime, "L1TMuonOverlapPatternParamsRcd"); + poolDb->writeOneIOV(ptr1, firstSinceTime, "L1TMuonOverlapPatternParamsRcd"); } } diff --git a/L1TriggerConfig/Utilities/src/L1TriggerKeyExtViewer.cc b/L1TriggerConfig/Utilities/src/L1TriggerKeyExtViewer.cc index bc3a83493f976..93abd7b552339 100644 --- a/L1TriggerConfig/Utilities/src/L1TriggerKeyExtViewer.cc +++ b/L1TriggerConfig/Utilities/src/L1TriggerKeyExtViewer.cc @@ -1,4 +1,4 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -8,41 +8,38 @@ #include "CondFormats/DataRecord/interface/L1TriggerKeyExtRcd.h" #include "CondFormats/L1TObjects/interface/L1TriggerKeyExt.h" -class L1TriggerKeyExtViewer : public edm::EDAnalyzer { +class L1TriggerKeyExtViewer : public edm::one::EDAnalyzer<> { private: std::string label; + edm::ESGetToken token_; public: void analyze(const edm::Event&, const edm::EventSetup&) override; explicit L1TriggerKeyExtViewer(const edm::ParameterSet& pset) - : edm::EDAnalyzer(), label(pset.getParameter("label")) {} - - ~L1TriggerKeyExtViewer(void) override {} + : label(pset.getParameter("label")), token_{esConsumes()} {} }; #include using namespace std; void L1TriggerKeyExtViewer::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { - edm::ESHandle handle1; - evSetup.get().get(label, handle1); - std::shared_ptr ptr1(new L1TriggerKeyExt(*(handle1.product()))); + L1TriggerKeyExt const& ptr1 = evSetup.getData(token_); - cout << "L1TriggerKeyExt: parent key = " << ptr1->tscKey() << endl; + cout << "L1TriggerKeyExt: parent key = " << ptr1.tscKey() << endl; - cout << " uGT key: " << ptr1->subsystemKey(L1TriggerKeyExt::kuGT) << endl; - cout << " uGMT key: " << ptr1->subsystemKey(L1TriggerKeyExt::kuGMT) << endl; - cout << " CALO key: " << ptr1->subsystemKey(L1TriggerKeyExt::kCALO) << endl; - cout << " BMTF key: " << ptr1->subsystemKey(L1TriggerKeyExt::kBMTF) << endl; - cout << " OMTF key: " << ptr1->subsystemKey(L1TriggerKeyExt::kOMTF) << endl; - cout << " EMTF key: " << ptr1->subsystemKey(L1TriggerKeyExt::kEMTF) << endl; - cout << " TWINMUX key: " << ptr1->subsystemKey(L1TriggerKeyExt::kTWINMUX) << endl; + cout << " uGT key: " << ptr1.subsystemKey(L1TriggerKeyExt::kuGT) << endl; + cout << " uGMT key: " << ptr1.subsystemKey(L1TriggerKeyExt::kuGMT) << endl; + cout << " CALO key: " << ptr1.subsystemKey(L1TriggerKeyExt::kCALO) << endl; + cout << " BMTF key: " << ptr1.subsystemKey(L1TriggerKeyExt::kBMTF) << endl; + cout << " OMTF key: " << ptr1.subsystemKey(L1TriggerKeyExt::kOMTF) << endl; + cout << " EMTF key: " << ptr1.subsystemKey(L1TriggerKeyExt::kEMTF) << endl; + cout << " TWINMUX key: " << ptr1.subsystemKey(L1TriggerKeyExt::kTWINMUX) << endl; cout << "Records: " << endl; - L1TriggerKeyExt::RecordToKey::const_iterator itr = ptr1->recordToKeyMap().begin(); - L1TriggerKeyExt::RecordToKey::const_iterator end = ptr1->recordToKeyMap().end(); + L1TriggerKeyExt::RecordToKey::const_iterator itr = ptr1.recordToKeyMap().begin(); + L1TriggerKeyExt::RecordToKey::const_iterator end = ptr1.recordToKeyMap().end(); for (; itr != end; ++itr) { std::string recordType = itr->first; diff --git a/L1TriggerConfig/Utilities/src/L1TriggerKeyListExtViewer.cc b/L1TriggerConfig/Utilities/src/L1TriggerKeyListExtViewer.cc index 731b1fdcb12af..d0b52d85a01e6 100644 --- a/L1TriggerConfig/Utilities/src/L1TriggerKeyListExtViewer.cc +++ b/L1TriggerConfig/Utilities/src/L1TriggerKeyListExtViewer.cc @@ -1,4 +1,4 @@ -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -8,28 +8,29 @@ #include "CondFormats/DataRecord/interface/L1TriggerKeyListExtRcd.h" #include "CondFormats/L1TObjects/interface/L1TriggerKeyListExt.h" -class L1TriggerKeyListExtReader : public edm::EDAnalyzer { +class L1TriggerKeyListExtReader : public edm::one::EDAnalyzer<> { private: public: void analyze(const edm::Event&, const edm::EventSetup&) override; - explicit L1TriggerKeyListExtReader(const edm::ParameterSet&) : edm::EDAnalyzer() {} + explicit L1TriggerKeyListExtReader(const edm::ParameterSet&) : token_{esConsumes()} {} ~L1TriggerKeyListExtReader(void) override {} + +private: + edm::ESGetToken token_; }; #include using namespace std; void L1TriggerKeyListExtReader::analyze(const edm::Event& iEvent, const edm::EventSetup& evSetup) { - edm::ESHandle handle1; - evSetup.get().get(handle1); - std::shared_ptr ptr1(new L1TriggerKeyListExt(*(handle1.product()))); + L1TriggerKeyListExt const& ptr1 = evSetup.getData(token_); - const L1TriggerKeyListExt::KeyToToken& allKeysTokens = ptr1->tscKeyToTokenMap(); + const L1TriggerKeyListExt::KeyToToken& allKeysTokens = ptr1.tscKeyToTokenMap(); for (auto& keyToken : allKeysTokens) cout << " tscKey = " << keyToken.first << " token: " << hex << keyToken.second << dec << endl; - const L1TriggerKeyListExt::RecordToKeyToToken& records = ptr1->recordTypeToKeyToTokenMap(); + const L1TriggerKeyListExt::RecordToKeyToToken& records = ptr1.recordTypeToKeyToTokenMap(); for (auto& rec : records) { cout << " " << rec.first << ":" << endl; for (auto& keyToken : rec.second) diff --git a/MagneticField/Engine/python/volumeBasedMagneticField_dd4hep_160812_cfi.py b/MagneticField/Engine/python/volumeBasedMagneticField_dd4hep_160812_cfi.py index a5c19e8f322c4..501803e66896c 100644 --- a/MagneticField/Engine/python/volumeBasedMagneticField_dd4hep_160812_cfi.py +++ b/MagneticField/Engine/python/volumeBasedMagneticField_dd4hep_160812_cfi.py @@ -24,7 +24,6 @@ VolumeBasedMagneticFieldESProducer = cms.ESProducer("DD4hep_VolumeBasedMagneticFieldESProducer", VBFConfig_160812, - DDDetector = cms.ESInputTag('', 'magfield'), appendToDataLabel = cms.string(''), ) diff --git a/MagneticField/GeomBuilder/plugins/dd4hep/DD4hep_VolumeBasedMagneticFieldESProducer.cc b/MagneticField/GeomBuilder/plugins/dd4hep/DD4hep_VolumeBasedMagneticFieldESProducer.cc index b54ceb5b23edd..f0f614eeb0bf0 100644 --- a/MagneticField/GeomBuilder/plugins/dd4hep/DD4hep_VolumeBasedMagneticFieldESProducer.cc +++ b/MagneticField/GeomBuilder/plugins/dd4hep/DD4hep_VolumeBasedMagneticFieldESProducer.cc @@ -36,10 +36,13 @@ namespace magneticfield { std::unique_ptr produce(const IdealMagneticFieldRecord& iRecord); + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + private: edm::ParameterSet pset_; const bool debug_; const bool useParametrizedTrackerField_; + const bool useMergeFileIfAvailable_; const MagFieldConfig conf_; const std::string version_; edm::ESGetToken paramFieldToken_; @@ -53,6 +56,7 @@ DD4hep_VolumeBasedMagneticFieldESProducer::DD4hep_VolumeBasedMagneticFieldESProd : pset_{iConfig}, debug_{iConfig.getUntrackedParameter("debugBuilder", false)}, useParametrizedTrackerField_{iConfig.getParameter("useParametrizedTrackerField")}, + useMergeFileIfAvailable_{iConfig.getParameter("useMergeFileIfAvailable")}, conf_{iConfig, debug_}, version_{iConfig.getParameter("version")} { LogTrace("MagGeoBuilder") << "info:Constructing a DD4hep_VolumeBasedMagneticFieldESProducer"; @@ -71,7 +75,7 @@ std::unique_ptr DD4hep_VolumeBasedMagneticFieldESProducer::produc LogTrace("MagGeoBuilder") << "DD4hep_VolumeBasedMagneticFieldESProducer::produce() " << version_; } - MagGeoBuilder builder(conf_.version, conf_.geometryVersion, debug_); + MagGeoBuilder builder(conf_.version, conf_.geometryVersion, debug_, useMergeFileIfAvailable_); // Set scaling factors if (!conf_.keys.empty()) { @@ -106,4 +110,31 @@ std::unique_ptr DD4hep_VolumeBasedMagneticFieldESProducer::produc false); } +void DD4hep_VolumeBasedMagneticFieldESProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.addUntracked("debugBuilder", false); + desc.add("useMergeFileIfAvailable", true); + desc.add("useParametrizedTrackerField"); + desc.addUntracked("label", ""); + desc.add("version"); + desc.add("paramLabel"); + + //from MagFieldConfig + desc.add("geometryVersion"); + { + edm::ParameterSetDescription sub; + sub.add("volumes"); + sub.add("sectors"); + sub.add("master"); + sub.add("path"); + desc.addVPSet("gridFiles", sub); + } + desc.add >("scalingVolumes"); + desc.add >("scalingFactors"); + //default used to be compatible with older configurations + desc.add >("paramData", std::vector()); + + descriptions.addDefault(desc); +} + DEFINE_FWK_EVENTSETUP_MODULE(DD4hep_VolumeBasedMagneticFieldESProducer); diff --git a/MagneticField/GeomBuilder/plugins/dd4hep/DD4hep_VolumeBasedMagneticFieldESProducerFromDB.cc b/MagneticField/GeomBuilder/plugins/dd4hep/DD4hep_VolumeBasedMagneticFieldESProducerFromDB.cc index db3413c2a1cea..4a9e5d0e6bdfa 100644 --- a/MagneticField/GeomBuilder/plugins/dd4hep/DD4hep_VolumeBasedMagneticFieldESProducerFromDB.cc +++ b/MagneticField/GeomBuilder/plugins/dd4hep/DD4hep_VolumeBasedMagneticFieldESProducerFromDB.cc @@ -74,12 +74,14 @@ namespace magneticfield { edm::ESGetToken mayConsumeBlobToken_; const bool debug_; + const bool useMergeFileIfAvailable_; }; } // namespace magneticfield DD4hep_VolumeBasedMagneticFieldESProducerFromDB::DD4hep_VolumeBasedMagneticFieldESProducerFromDB( const edm::ParameterSet& iConfig) - : debug_(iConfig.getUntrackedParameter("debugBuilder")) { + : debug_(iConfig.getUntrackedParameter("debugBuilder")), + useMergeFileIfAvailable_(iConfig.getParameter("useMergeFileIfAvailable")) { std::string const myConfigLabel = "VBMFESChoice"; usesResources({edm::ESSharedResourceNames::kDD4hep}); @@ -162,7 +164,7 @@ std::unique_ptr DD4hep_VolumeBasedMagneticFieldESProducerFromDB:: } // Full VolumeBased map + parametrization - MagGeoBuilder builder(conf->version, conf->geometryVersion, debug_); + MagGeoBuilder builder(conf->version, conf->geometryVersion, debug_, useMergeFileIfAvailable_); // Set scaling factors if (!conf->keys.empty()) { @@ -216,6 +218,7 @@ std::string_view DD4hep_VolumeBasedMagneticFieldESProducerFromDB::closerNominalL void DD4hep_VolumeBasedMagneticFieldESProducerFromDB::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; desc.addUntracked("debugBuilder", false); + desc.add("useMergeFileIfAvailable", true); desc.add("valueOverride", -1)->setComment("Force value of current (in A); take the value from DB if < 0."); desc.addUntracked("label", ""); diff --git a/MagneticField/GeomBuilder/src/DD4hep_MagGeoBuilder.cc b/MagneticField/GeomBuilder/src/DD4hep_MagGeoBuilder.cc index 8aeef2c1ac69d..b737d6b3996ed 100644 --- a/MagneticField/GeomBuilder/src/DD4hep_MagGeoBuilder.cc +++ b/MagneticField/GeomBuilder/src/DD4hep_MagGeoBuilder.cc @@ -6,19 +6,16 @@ #include "DD4hep_MagGeoBuilder.h" #include "bLayer.h" #include "eSector.h" -#include "FakeInterpolator.h" +#include "InterpolatorBuilder.h" #include "MagneticField/Layers/interface/MagBLayer.h" #include "MagneticField/Layers/interface/MagESector.h" -#include "FWCore/ParameterSet/interface/FileInPath.h" - #include "DetectorDescription/DDCMS/interface/DDFilteredView.h" #include "Utilities/BinningTools/interface/ClusterizingHistogram.h" #include "MagneticField/Interpolation/interface/MagProviderInterpol.h" -#include "MagneticField/Interpolation/interface/MFGridFactory.h" #include "MagneticField/Interpolation/interface/MFGrid.h" #include "MagneticField/VolumeGeometry/interface/MagVolume6Faces.h" @@ -45,8 +42,12 @@ using namespace magneticfield; using namespace edm; using namespace angle_units::operators; -MagGeoBuilder::MagGeoBuilder(string tableSet, int geometryVersion, bool debug) - : tableSet_(tableSet), geometryVersion_(geometryVersion), theGridFiles_(nullptr), debug_(debug) { +MagGeoBuilder::MagGeoBuilder(string tableSet, int geometryVersion, bool debug, bool mergeFile) + : tableSet_(tableSet), + geometryVersion_(geometryVersion), + theGridFiles_(nullptr), + debug_(debug), + useMergeFileIfAvailable_(mergeFile) { LogTrace("MagGeoBuilder") << "Constructing a MagGeoBuilder"; } @@ -147,6 +148,7 @@ void MagGeoBuilder::build(const cms::DDDetector* det) { LogError("MagGeoBuilder") << "Filtered view has no node. Cannot build."; return; } + InterpolatorBuilder interpolatorBuilder(tableSet_, useMergeFileIfAvailable_); while (doSubDets) { string name = fv.volume().volume().name(); LogTrace("MagGeoBuilder") << "Name: " << name; @@ -205,7 +207,7 @@ void MagGeoBuilder::build(const cms::DDDetector* det) { // not replicated in phi) // ASSUMPTION: copyno == sector. if (v->copyno == v->masterSector) { - auto i = buildInterpolator(v); + auto i = buildInterpolator(v, interpolatorBuilder); if (i) { bInterpolators[v->magFile] = i; } @@ -215,7 +217,7 @@ void MagGeoBuilder::build(const cms::DDDetector* det) { LogTrace("MagGeoBuilder") << " (Endcaps)"; eVolumes_.push_back(v); if (v->copyno == v->masterSector) { - auto i = buildInterpolator(v); + auto i = buildInterpolator(v, interpolatorBuilder); if (i) { eInterpolators[v->magFile] = i; } @@ -436,15 +438,14 @@ void MagGeoBuilder::buildMagVolumes(const handles& volumes, } } -MagProviderInterpol* MagGeoBuilder::buildInterpolator(const volumeHandle* vol) const { +MagProviderInterpol* MagGeoBuilder::buildInterpolator(const volumeHandle* vol, InterpolatorBuilder& builder) const { MagProviderInterpol* retValue = nullptr; - // Phi of the master sector - double masterSectorPhi = (vol->masterSector - 1) * 1._pi / 6.; - LogTrace("MagGeoBuilder") << "Building interpolator from " << vol->volumeno << " copyno " << vol->copyno << " at " << vol->center() << " phi: " << static_cast(vol->center().phi()) / 1._pi << " pi, file: " << vol->magFile << " master: " << vol->masterSector; if (debug_) { + // Phi of the master sector + double masterSectorPhi = (vol->masterSector - 1) * 1._pi / 6.; double delta = std::abs(vol->center().phi() - masterSectorPhi); if (delta > (1._pi / 9.)) { LogTrace("MagGeoBuilder") << "***WARNING wrong sector? Vol delta from master sector is " << delta / 1._pi @@ -452,47 +453,14 @@ MagProviderInterpol* MagGeoBuilder::buildInterpolator(const volumeHandle* vol) c } } - if (tableSet_ == "fake" || vol->magFile == "fake") { - return new magneticfield::FakeInterpolator(); - } - - string fullPath = edm::FileInPath::findFile("MagneticField/Interpolation/data/" + tableSet_ + "/" + vol->magFile); - if (fullPath.empty()) { - //get the exact error info - try { - edm::FileInPath mydata("MagneticField/Interpolation/data/" + tableSet_ + "/" + vol->magFile); - } catch (edm::Exception& exc) { - cerr << "MagGeoBuilder: exception in reading table; " << exc.what() << endl; - if (!debug_) - throw; - } - return nullptr; - } - try { - if (vol->toExpand()) { - //FIXME: see discussion on mergeCylinders above. - // interpolators[vol->magFile] = - // MFGridFactory::build( fullPath, *(vol->placement()), vol->minPhi(), vol->maxPhi()); - } else { - // If the table is in "local" coordinates, must create a reference - // frame that is appropriately rotated along the CMS Z axis. - - GloballyPositioned rf = *(vol->placement()); - - if (vol->masterSector != 1) { - typedef Basic3DVector Vector; - - GloballyPositioned::RotationType rot(Vector(0, 0, 1), -masterSectorPhi); - Vector vpos(vol->placement()->position()); - - rf = GloballyPositioned(GloballyPositioned::PositionType(rot.multiplyInverse(vpos)), - vol->placement()->rotation() * rot); - } - - retValue = MFGridFactory::build(fullPath, rf); - } - } catch (MagException& exc) { + retValue = builder.build(vol).release(); + } catch (edm::Exception& exc) { + cerr << "MagGeoBuilder: exception in reading table; " << exc.what() << endl; + if (!debug_) + throw; + return nullptr; + } catch (MagException const& exc) { LogTrace("MagGeoBuilder") << exc.what(); if (!debug_) throw; diff --git a/MagneticField/GeomBuilder/src/DD4hep_MagGeoBuilder.h b/MagneticField/GeomBuilder/src/DD4hep_MagGeoBuilder.h index 3ceba58873bc8..9cdc6aea59ef5 100644 --- a/MagneticField/GeomBuilder/src/DD4hep_MagGeoBuilder.h +++ b/MagneticField/GeomBuilder/src/DD4hep_MagGeoBuilder.h @@ -31,10 +31,11 @@ class MagESector; class MagVolume6Faces; namespace magneticfield { + class InterpolatorBuilder; class MagGeoBuilder { public: - MagGeoBuilder(std::string tableSet, int geometryVersion, bool debug = false); + MagGeoBuilder(std::string tableSet, int geometryVersion, bool debug = false, bool useMergeFileIfAvailable = true); ~MagGeoBuilder(); @@ -63,7 +64,7 @@ namespace magneticfield { private: // Build interpolator for the volume with "correct" rotation - MagProviderInterpol* buildInterpolator(const volumeHandle* vol) const; + MagProviderInterpol* buildInterpolator(const volumeHandle* vol, InterpolatorBuilder&) const; // Build all MagVolumes setting the MagProviderInterpol void buildMagVolumes(const handles& volumes, @@ -88,6 +89,7 @@ namespace magneticfield { const TableFileMap* theGridFiles_; // Non-owned pointer assumed to be valid until build() is called const bool debug_; + const bool useMergeFileIfAvailable_; }; } // namespace magneticfield #endif diff --git a/MagneticField/GeomBuilder/src/InterpolatorBuilder.cc b/MagneticField/GeomBuilder/src/InterpolatorBuilder.cc new file mode 100644 index 0000000000000..53ceb3673b04d --- /dev/null +++ b/MagneticField/GeomBuilder/src/InterpolatorBuilder.cc @@ -0,0 +1,116 @@ +// -*- C++ -*- +// +// Package: MagneticField/GeomBuilder +// Class : InterpolatorBuilder +// +// Implementation: +// [Notes on implementation] +// +// Original Author: Christopher Jones +// Created: Tue, 17 May 2022 20:50:21 GMT +// + +// system include files + +// user include files +#include "InterpolatorBuilder.h" +#include "FakeInterpolator.h" + +#include "FWCore/ParameterSet/interface/FileInPath.h" +#include "FWCore/Utilities/interface/Exception.h" +#include "MagneticField/Interpolation/interface/binary_ifstream.h" +#include "MagneticField/Interpolation/interface/MFGridFactory.h" +#include "MagneticField/Interpolation/interface/MFGrid.h" + +#include "DataFormats/Math/interface/angle_units.h" +// +// constants, enums and typedefs +// + +namespace magneticfield { + using namespace angle_units::operators; + + // + // static data member definitions + // + + // + // constructors and destructor + // + InterpolatorBuilder::InterpolatorBuilder(std::string iTableSet, bool useMergeFileIfAvailable) + : tableSet_(std::move(iTableSet)) { + if (not useMergeFileIfAvailable) + return; + auto indexFileName = edm::FileInPath::findFile("MagneticField/Interpolation/data/" + tableSet_ + "/merged.index"); + if (not indexFileName.empty()) { + auto binaryFileName = edm::FileInPath::findFile("MagneticField/Interpolation/data/" + tableSet_ + "/merged.bin"); + if (not binaryFileName.empty()) { + std::ifstream indexFile(indexFileName); + while (indexFile) { + std::string magFile; + unsigned int offset; + indexFile >> magFile >> offset; + offsets_.emplace(std::move(magFile), offset); + } + stream_ = interpolation::binary_ifstream(binaryFileName); + } + } + } + + // + // member functions + // + std::unique_ptr InterpolatorBuilder::build(volumeHandle const* vol) { + if (tableSet_ == "fake" || vol->magFile == "fake") { + return std::make_unique(); + } + + // If the table is in "local" coordinates, must create a reference + // frame that is appropriately rotated along the CMS Z axis. + + GloballyPositioned rf = *(vol->placement()); + + if (vol->masterSector != 1) { + typedef Basic3DVector Vector; + + // Phi of the master sector + double masterSectorPhi = (vol->masterSector - 1) * 1._pi / 6.; + + GloballyPositioned::RotationType rot(Vector(0, 0, 1), -masterSectorPhi); + Vector vpos(vol->placement()->position()); + + rf = GloballyPositioned(GloballyPositioned::PositionType(rot.multiplyInverse(vpos)), + vol->placement()->rotation() * rot); + } + + if (not stream_) { + auto fullPath = edm::FileInPath::findFile("MagneticField/Interpolation/data/" + tableSet_ + "/" + vol->magFile); + if (fullPath.empty()) { + //cause the exception to happen + edm::FileInPath mydata("MagneticField/Interpolation/data/" + tableSet_ + "/" + vol->magFile); + return {}; + } + + magneticfield::interpolation::binary_ifstream strm(fullPath); + return std::unique_ptr(MFGridFactory::build(strm, rf)); + } + + auto find = offsets_.find(vol->magFile); + if (find == offsets_.end()) { + throw cms::Exception("MissingMagFileEntry") << vol->magFile << " was not an entry in the index file"; + } + stream_->seekg(find->second); + if (stream_->fail()) { + throw cms::Exception("SeekMagFileEntry") << " failed seekg within merged binary file"; + } + return std::unique_ptr(MFGridFactory::build(*stream_, rf)); + } + + // + // const member functions + // + + // + // static member functions + // +} // namespace magneticfield diff --git a/MagneticField/GeomBuilder/src/InterpolatorBuilder.h b/MagneticField/GeomBuilder/src/InterpolatorBuilder.h new file mode 100644 index 0000000000000..05f98f0476dc5 --- /dev/null +++ b/MagneticField/GeomBuilder/src/InterpolatorBuilder.h @@ -0,0 +1,55 @@ +#ifndef MagneticField_GeomBuilder_InterpolatorBuilder_h +#define MagneticField_GeomBuilder_InterpolatorBuilder_h +// -*- C++ -*- +// +// Package: MagneticField/GeomBuilder +// Class : InterpolatorBuilder +// +/**\class InterpolatorBuilder InterpolatorBuilder.h "InterpolatorBuilder.h" + + Description: [one line class summary] + + Usage: + + +*/ +// +// Original Author: Christopher Jones +// Created: Tue, 17 May 2022 20:50:20 GMT +// + +// system include files +#include +#include +#include + +// user include files +#include "MagneticField/Interpolation/interface/MagProviderInterpol.h" +#include "MagneticField/Interpolation/interface/binary_ifstream.h" +#include "DD4hep_volumeHandle.h" + +// forward declarations + +namespace magneticfield { + class InterpolatorBuilder { + public: + InterpolatorBuilder(std::string iTableSet, bool useMergeFileIfAvailable = true); + + InterpolatorBuilder(const InterpolatorBuilder&) = delete; // stop default + const InterpolatorBuilder& operator=(const InterpolatorBuilder&) = delete; // stop default + + // ---------- const member functions --------------------- + + // ---------- static member functions -------------------- + + // ---------- member functions --------------------------- + std::unique_ptr build(volumeHandle const*); + + private: + // ---------- member data -------------------------------- + std::string tableSet_; + std::unordered_map offsets_; + std::optional stream_; + }; +} // namespace magneticfield +#endif diff --git a/MagneticField/Interpolation/interface/MFGridFactory.h b/MagneticField/Interpolation/interface/MFGridFactory.h index bf728fd487884..ca78ced89305f 100644 --- a/MagneticField/Interpolation/interface/MFGridFactory.h +++ b/MagneticField/Interpolation/interface/MFGridFactory.h @@ -13,10 +13,17 @@ class MFGrid; template class GloballyPositioned; +namespace magneticfield::interpolation { + class binary_ifstream; +} + class MFGridFactory { public: + using binary_ifstream = magneticfield::interpolation::binary_ifstream; + /// Build interpolator for a binary grid file static MFGrid* build(const std::string& name, const GloballyPositioned& vol); + static MFGrid* build(binary_ifstream& name, const GloballyPositioned& vol); /// Build a 2pi phi-symmetric interpolator for a binary grid file static MFGrid* build(const std::string& name, const GloballyPositioned& vol, double phiMin, double phiMax); diff --git a/MagneticField/Interpolation/interface/binary_ifstream.h b/MagneticField/Interpolation/interface/binary_ifstream.h new file mode 100644 index 0000000000000..e2eff84761f0e --- /dev/null +++ b/MagneticField/Interpolation/interface/binary_ifstream.h @@ -0,0 +1,58 @@ +#ifndef binary_ifstream_H +#define binary_ifstream_H + +#include +#include +#include "FWCore/Utilities/interface/Visibility.h" + +namespace magneticfield::interpolation { + class binary_ifstream { + public: + explicit binary_ifstream(const char* name); + explicit binary_ifstream(const std::string& name); + + binary_ifstream(const binary_ifstream&) = delete; + binary_ifstream(binary_ifstream&&); + binary_ifstream& operator=(const binary_ifstream&) = delete; + binary_ifstream& operator=(binary_ifstream&&); + + ~binary_ifstream(); + + binary_ifstream& operator>>(char& n); + binary_ifstream& operator>>(unsigned char& n); + + binary_ifstream& operator>>(short& n); + binary_ifstream& operator>>(unsigned short& n); + + binary_ifstream& operator>>(int& n); + binary_ifstream& operator>>(unsigned int& n); + + binary_ifstream& operator>>(long& n); + binary_ifstream& operator>>(unsigned long& n); + + binary_ifstream& operator>>(float& n); + binary_ifstream& operator>>(double& n); + + binary_ifstream& operator>>(bool& n); + binary_ifstream& operator>>(std::string& n); + + void close(); + + /// stream state checking + bool good() const; + bool eof() const; + bool fail() const; + bool bad() const; + bool operator!() const; + operator bool() const; + + long tellg(); + binary_ifstream& seekg(long); + + private: + FILE* file_; + + void init(const char* name); + }; +} // namespace magneticfield::interpolation +#endif diff --git a/MagneticField/Interpolation/src/GlobalGridWrapper.h b/MagneticField/Interpolation/src/GlobalGridWrapper.h index 644fb95e1cf61..a07c59291184a 100644 --- a/MagneticField/Interpolation/src/GlobalGridWrapper.h +++ b/MagneticField/Interpolation/src/GlobalGridWrapper.h @@ -14,7 +14,6 @@ #include -class binary_ifstream; class MagneticFieldGrid; class dso_internal GlobalGridWrapper : public MFGrid { diff --git a/MagneticField/Interpolation/src/MFGridFactory.cc b/MagneticField/Interpolation/src/MFGridFactory.cc index 194cdc1b4bba5..d5bc521a290e5 100644 --- a/MagneticField/Interpolation/src/MFGridFactory.cc +++ b/MagneticField/Interpolation/src/MFGridFactory.cc @@ -1,5 +1,5 @@ #include "MagneticField/Interpolation/interface/MFGridFactory.h" -#include "binary_ifstream.h" +#include "MagneticField/Interpolation/interface/binary_ifstream.h" #include "DataFormats/GeometrySurface/interface/GloballyPositioned.h" #include "RectangularCartesianMFGrid.h" @@ -14,7 +14,11 @@ using namespace std; MFGrid* MFGridFactory::build(const string& name, const GloballyPositioned& vol) { - binary_ifstream inFile(name); + magneticfield::interpolation::binary_ifstream inFile(name); + return build(inFile, vol); +} + +MFGrid* MFGridFactory::build(binary_ifstream& inFile, const GloballyPositioned& vol) { int gridType; inFile >> gridType; @@ -44,7 +48,6 @@ MFGrid* MFGridFactory::build(const string& name, const GloballyPositioned result = nullptr; break; } - inFile.close(); return result; } diff --git a/MagneticField/Interpolation/src/MagneticFieldGrid.cc b/MagneticField/Interpolation/src/MagneticFieldGrid.cc index 38bb12338bcf3..9bf0a26ef02ee 100644 --- a/MagneticField/Interpolation/src/MagneticFieldGrid.cc +++ b/MagneticField/Interpolation/src/MagneticFieldGrid.cc @@ -1,11 +1,12 @@ // include header for MagneticFieldGrid (regular + extension for some trapezoids) #include "MagneticFieldGrid.h" +#include "MagneticField/Interpolation/interface/binary_ifstream.h" #include using namespace std; void MagneticFieldGrid::load(const string &name) { - binary_ifstream inFile(name); + magneticfield::interpolation::binary_ifstream inFile(name); inFile >> GridType; // reading the header switch (GridType) { diff --git a/MagneticField/Interpolation/src/MagneticFieldGrid.h b/MagneticField/Interpolation/src/MagneticFieldGrid.h index 2736d76576ce7..4a623ca89c4e0 100644 --- a/MagneticField/Interpolation/src/MagneticFieldGrid.h +++ b/MagneticField/Interpolation/src/MagneticFieldGrid.h @@ -19,7 +19,6 @@ // interpolation package #include "FWCore/Utilities/interface/Visibility.h" #include "VectorFieldInterpolation.h" -#include "binary_ifstream.h" // used libs #include diff --git a/MagneticField/Interpolation/src/RectangularCartesianMFGrid.cc b/MagneticField/Interpolation/src/RectangularCartesianMFGrid.cc index 9045ce08f3634..2ec3f5d0c6d1e 100644 --- a/MagneticField/Interpolation/src/RectangularCartesianMFGrid.cc +++ b/MagneticField/Interpolation/src/RectangularCartesianMFGrid.cc @@ -1,5 +1,5 @@ #include "RectangularCartesianMFGrid.h" -#include "binary_ifstream.h" +#include "MagneticField/Interpolation/interface/binary_ifstream.h" #include "LinearGridInterpolator3D.h" #include diff --git a/MagneticField/Interpolation/src/RectangularCartesianMFGrid.h b/MagneticField/Interpolation/src/RectangularCartesianMFGrid.h index 32f03c18208f5..aefe3045a711c 100644 --- a/MagneticField/Interpolation/src/RectangularCartesianMFGrid.h +++ b/MagneticField/Interpolation/src/RectangularCartesianMFGrid.h @@ -4,10 +4,13 @@ #include "FWCore/Utilities/interface/Visibility.h" #include "MFGrid3D.h" -class binary_ifstream; +namespace magneticfield::interpolation { + class binary_ifstream; +} class dso_internal RectangularCartesianMFGrid : public MFGrid3D { public: + using binary_ifstream = magneticfield::interpolation::binary_ifstream; RectangularCartesianMFGrid(binary_ifstream& istr, const GloballyPositioned& vol); LocalVector uncheckedValueInTesla(const LocalPoint& p) const override; diff --git a/MagneticField/Interpolation/src/RectangularCylindricalMFGrid.cc b/MagneticField/Interpolation/src/RectangularCylindricalMFGrid.cc index 51f2e9d6f2c7e..1b63af24508f5 100644 --- a/MagneticField/Interpolation/src/RectangularCylindricalMFGrid.cc +++ b/MagneticField/Interpolation/src/RectangularCylindricalMFGrid.cc @@ -1,5 +1,5 @@ #include "RectangularCylindricalMFGrid.h" -#include "binary_ifstream.h" +#include "MagneticField/Interpolation/interface/binary_ifstream.h" #include "LinearGridInterpolator3D.h" #include diff --git a/MagneticField/Interpolation/src/RectangularCylindricalMFGrid.h b/MagneticField/Interpolation/src/RectangularCylindricalMFGrid.h index 6aba562ec4166..f7aab443748bf 100644 --- a/MagneticField/Interpolation/src/RectangularCylindricalMFGrid.h +++ b/MagneticField/Interpolation/src/RectangularCylindricalMFGrid.h @@ -4,10 +4,14 @@ #include "FWCore/Utilities/interface/Visibility.h" #include "MFGrid3D.h" -class binary_ifstream; +namespace magneticfield::interpolation { + class binary_ifstream; +} class dso_internal RectangularCylindricalMFGrid : public MFGrid3D { public: + using binary_ifstream = magneticfield::interpolation::binary_ifstream; + RectangularCylindricalMFGrid(binary_ifstream& istr, const GloballyPositioned& vol); LocalVector uncheckedValueInTesla(const LocalPoint& p) const override; diff --git a/MagneticField/Interpolation/src/SpecialCylindricalMFGrid.cc b/MagneticField/Interpolation/src/SpecialCylindricalMFGrid.cc index 7b0d6a322a1e2..5e3d6914628ad 100644 --- a/MagneticField/Interpolation/src/SpecialCylindricalMFGrid.cc +++ b/MagneticField/Interpolation/src/SpecialCylindricalMFGrid.cc @@ -1,5 +1,5 @@ #include "SpecialCylindricalMFGrid.h" -#include "binary_ifstream.h" +#include "MagneticField/Interpolation/interface/binary_ifstream.h" #include "LinearGridInterpolator3D.h" #include diff --git a/MagneticField/Interpolation/src/SpecialCylindricalMFGrid.h b/MagneticField/Interpolation/src/SpecialCylindricalMFGrid.h index 03943ac8c98ce..f040f81587324 100644 --- a/MagneticField/Interpolation/src/SpecialCylindricalMFGrid.h +++ b/MagneticField/Interpolation/src/SpecialCylindricalMFGrid.h @@ -11,10 +11,14 @@ #include "FWCore/Utilities/interface/Visibility.h" #include "MFGrid3D.h" -class binary_ifstream; +namespace magneticfield::interpolation { + class binary_ifstream; +} class dso_internal SpecialCylindricalMFGrid : public MFGrid3D { public: + using binary_ifstream = magneticfield::interpolation::binary_ifstream; + /// Constructor. /// gridType = 5 => 1/sin(phi); i.e. master sector is #4 /// gridType = 6 => 1/cos(phi); i.e. master sector is #1 diff --git a/MagneticField/Interpolation/src/TrapezoidalCartesianMFGrid.cc b/MagneticField/Interpolation/src/TrapezoidalCartesianMFGrid.cc index 4e44156f86b51..8de09167904ed 100644 --- a/MagneticField/Interpolation/src/TrapezoidalCartesianMFGrid.cc +++ b/MagneticField/Interpolation/src/TrapezoidalCartesianMFGrid.cc @@ -4,7 +4,7 @@ */ #include "TrapezoidalCartesianMFGrid.h" -#include "binary_ifstream.h" +#include "MagneticField/Interpolation/interface/binary_ifstream.h" #include "LinearGridInterpolator3D.h" #include "MagneticField/VolumeGeometry/interface/MagExceptions.h" #include diff --git a/MagneticField/Interpolation/src/TrapezoidalCartesianMFGrid.h b/MagneticField/Interpolation/src/TrapezoidalCartesianMFGrid.h index f6391b737e4ed..5bb599cd3e03f 100644 --- a/MagneticField/Interpolation/src/TrapezoidalCartesianMFGrid.h +++ b/MagneticField/Interpolation/src/TrapezoidalCartesianMFGrid.h @@ -14,10 +14,14 @@ #include "Trapezoid2RectangleMappingX.h" #include "FWCore/Utilities/interface/Visibility.h" -class binary_ifstream; +namespace magneticfield::interpolation { + class binary_ifstream; +} class dso_internal TrapezoidalCartesianMFGrid : public MFGrid3D { public: + using binary_ifstream = magneticfield::interpolation::binary_ifstream; + TrapezoidalCartesianMFGrid(binary_ifstream& istr, const GloballyPositioned& vol); LocalVector uncheckedValueInTesla(const LocalPoint& p) const override; diff --git a/MagneticField/Interpolation/src/TrapezoidalCylindricalMFGrid.cc b/MagneticField/Interpolation/src/TrapezoidalCylindricalMFGrid.cc index 9623f7b11b89c..38c2de57b1900 100644 --- a/MagneticField/Interpolation/src/TrapezoidalCylindricalMFGrid.cc +++ b/MagneticField/Interpolation/src/TrapezoidalCylindricalMFGrid.cc @@ -1,5 +1,5 @@ #include "TrapezoidalCylindricalMFGrid.h" -#include "binary_ifstream.h" +#include "MagneticField/Interpolation/interface/binary_ifstream.h" #include "LinearGridInterpolator3D.h" #include "MagneticField/VolumeGeometry/interface/MagExceptions.h" diff --git a/MagneticField/Interpolation/src/TrapezoidalCylindricalMFGrid.h b/MagneticField/Interpolation/src/TrapezoidalCylindricalMFGrid.h index c6eb29306cd9b..9abe95657cf37 100644 --- a/MagneticField/Interpolation/src/TrapezoidalCylindricalMFGrid.h +++ b/MagneticField/Interpolation/src/TrapezoidalCylindricalMFGrid.h @@ -5,10 +5,14 @@ #include "Trapezoid2RectangleMappingX.h" #include "FWCore/Utilities/interface/Visibility.h" -class binary_ifstream; +namespace magneticfield::interpolation { + class binary_ifstream; +} class dso_internal TrapezoidalCylindricalMFGrid : public MFGrid3D { public: + using binary_ifstream = magneticfield::interpolation::binary_ifstream; + TrapezoidalCylindricalMFGrid(binary_ifstream& istr, const GloballyPositioned& vol); LocalVector uncheckedValueInTesla(const LocalPoint& p) const override; diff --git a/MagneticField/Interpolation/src/binary_ifstream.cc b/MagneticField/Interpolation/src/binary_ifstream.cc index d48716c9bb113..57d94f9620915 100644 --- a/MagneticField/Interpolation/src/binary_ifstream.cc +++ b/MagneticField/Interpolation/src/binary_ifstream.cc @@ -1,102 +1,121 @@ -#include "binary_ifstream.h" +#include "MagneticField/Interpolation/interface/binary_ifstream.h" #include #include -struct binary_ifstream_error {}; - -binary_ifstream::binary_ifstream(const char* name) : file_(nullptr) { init(name); } - -binary_ifstream::binary_ifstream(const std::string& name) : file_(nullptr) { init(name.c_str()); } - -void binary_ifstream::init(const char* name) { - file_ = fopen(name, "rb"); - if (file_ == nullptr) { - std::cout << "file " << name << " cannot be opened for reading" << std::endl; - throw binary_ifstream_error(); - } -} - -binary_ifstream::~binary_ifstream() { close(); } -void binary_ifstream::close() { - if (file_ != nullptr) - fclose(file_); - file_ = nullptr; -} - -binary_ifstream& binary_ifstream::operator>>(char& n) { - n = static_cast(fgetc(file_)); - return *this; -} - -binary_ifstream& binary_ifstream::operator>>(unsigned char& n) { - n = static_cast(fgetc(file_)); - return *this; -} - -binary_ifstream& binary_ifstream::operator>>(short& n) { - fread(&n, sizeof(n), 1, file_); - return *this; -} -binary_ifstream& binary_ifstream::operator>>(unsigned short& n) { - fread(&n, sizeof(n), 1, file_); - return *this; -} -binary_ifstream& binary_ifstream::operator>>(int& n) { - fread(&n, sizeof(n), 1, file_); - return *this; -} -binary_ifstream& binary_ifstream::operator>>(unsigned int& n) { - fread(&n, sizeof(n), 1, file_); - return *this; -} - -binary_ifstream& binary_ifstream::operator>>(long& n) { - fread(&n, sizeof(n), 1, file_); - return *this; -} -binary_ifstream& binary_ifstream::operator>>(unsigned long& n) { - fread(&n, sizeof(n), 1, file_); - return *this; -} - -binary_ifstream& binary_ifstream::operator>>(float& n) { - fread(&n, sizeof(n), 1, file_); - return *this; -} -binary_ifstream& binary_ifstream::operator>>(double& n) { - fread(&n, sizeof(n), 1, file_); - return *this; -} - -binary_ifstream& binary_ifstream::operator>>(bool& n) { - n = static_cast(fgetc(file_)); - return *this; -} - -binary_ifstream& binary_ifstream::operator>>(std::string& n) { - unsigned int nchar; - (*this) >> nchar; - char* tmp = new char[nchar + 1]; - unsigned int nread = fread(tmp, 1, nchar, file_); - if (nread != nchar) - std::cout << "binary_ifstream error: read less then expected " << std::endl; - n.assign(tmp, nread); - delete[] tmp; - return *this; -} - -bool binary_ifstream::good() const { return !bad() && !eof(); } - -bool binary_ifstream::eof() const { return feof(file_); } - -bool binary_ifstream::fail() const { return file_ == nullptr || ferror(file_) != 0; } - -// don't know the difference between fail() and bad() (yet) -bool binary_ifstream::bad() const { return fail(); } - -bool binary_ifstream::operator!() const { return fail() || bad() || eof(); } - -//binary_ifstream::operator bool() const {return !fail() && !bad();} - -binary_ifstream::operator bool() const { return good(); } +namespace magneticfield::interpolation { + struct binary_ifstream_error {}; + + binary_ifstream::binary_ifstream(const char* name) : file_(nullptr) { init(name); } + + binary_ifstream::binary_ifstream(const std::string& name) : file_(nullptr) { init(name.c_str()); } + + void binary_ifstream::init(const char* name) { + file_ = fopen(name, "rb"); + if (file_ == nullptr) { + std::cout << "file " << name << " cannot be opened for reading" << std::endl; + throw binary_ifstream_error(); + } + } + + binary_ifstream::binary_ifstream(binary_ifstream&& iOther) : file_(iOther.file_) { iOther.file_ = nullptr; } + + binary_ifstream& binary_ifstream::operator=(binary_ifstream&& iOther) { + binary_ifstream temp{std::move(iOther)}; + std::swap(file_, temp.file_); + return *this; + } + + binary_ifstream::~binary_ifstream() { close(); } + void binary_ifstream::close() { + if (file_ != nullptr) + fclose(file_); + file_ = nullptr; + } + + binary_ifstream& binary_ifstream::operator>>(char& n) { + n = static_cast(fgetc(file_)); + return *this; + } + + binary_ifstream& binary_ifstream::operator>>(unsigned char& n) { + n = static_cast(fgetc(file_)); + return *this; + } + + binary_ifstream& binary_ifstream::operator>>(short& n) { + fread(&n, sizeof(n), 1, file_); + return *this; + } + binary_ifstream& binary_ifstream::operator>>(unsigned short& n) { + fread(&n, sizeof(n), 1, file_); + return *this; + } + binary_ifstream& binary_ifstream::operator>>(int& n) { + fread(&n, sizeof(n), 1, file_); + return *this; + } + binary_ifstream& binary_ifstream::operator>>(unsigned int& n) { + fread(&n, sizeof(n), 1, file_); + return *this; + } + + binary_ifstream& binary_ifstream::operator>>(long& n) { + fread(&n, sizeof(n), 1, file_); + return *this; + } + binary_ifstream& binary_ifstream::operator>>(unsigned long& n) { + fread(&n, sizeof(n), 1, file_); + return *this; + } + + binary_ifstream& binary_ifstream::operator>>(float& n) { + fread(&n, sizeof(n), 1, file_); + return *this; + } + binary_ifstream& binary_ifstream::operator>>(double& n) { + fread(&n, sizeof(n), 1, file_); + return *this; + } + + binary_ifstream& binary_ifstream::operator>>(bool& n) { + n = static_cast(fgetc(file_)); + return *this; + } + + binary_ifstream& binary_ifstream::operator>>(std::string& n) { + unsigned int nchar; + (*this) >> nchar; + char* tmp = new char[nchar + 1]; + unsigned int nread = fread(tmp, 1, nchar, file_); + if (nread != nchar) + std::cout << "binary_ifstream error: read less then expected " << std::endl; + n.assign(tmp, nread); + delete[] tmp; + return *this; + } + + bool binary_ifstream::good() const { return !bad() && !eof(); } + + bool binary_ifstream::eof() const { return feof(file_); } + + bool binary_ifstream::fail() const { return file_ == nullptr || ferror(file_) != 0; } + + // don't know the difference between fail() and bad() (yet) + bool binary_ifstream::bad() const { return fail(); } + + bool binary_ifstream::operator!() const { return fail() || bad() || eof(); } + + //binary_ifstream::operator bool() const {return !fail() && !bad();} + + binary_ifstream::operator bool() const { return good(); } + + long binary_ifstream::tellg() { return ftell(file_); } + + binary_ifstream& binary_ifstream::seekg(long to) { + //if there is a problem, calling fail() will return true; + fseek(file_, to, SEEK_SET); + return *this; + } + +} // namespace magneticfield::interpolation diff --git a/MagneticField/Interpolation/src/binary_ifstream.h b/MagneticField/Interpolation/src/binary_ifstream.h deleted file mode 100644 index 83bbe9de3a25f..0000000000000 --- a/MagneticField/Interpolation/src/binary_ifstream.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef binary_ifstream_H -#define binary_ifstream_H - -#include -#include -#include "FWCore/Utilities/interface/Visibility.h" - -class binary_ifstream { -public: - explicit binary_ifstream(const char* name); - explicit binary_ifstream(const std::string& name); - - ~binary_ifstream(); - - binary_ifstream& operator>>(char& n); - binary_ifstream& operator>>(unsigned char& n); - - binary_ifstream& operator>>(short& n); - binary_ifstream& operator>>(unsigned short& n); - - binary_ifstream& operator>>(int& n); - binary_ifstream& operator>>(unsigned int& n); - - binary_ifstream& operator>>(long& n); - binary_ifstream& operator>>(unsigned long& n); - - binary_ifstream& operator>>(float& n); - binary_ifstream& operator>>(double& n); - - binary_ifstream& operator>>(bool& n); - binary_ifstream& operator>>(std::string& n); - - void close(); - - /// stream state checking - bool good() const; - bool eof() const; - bool fail() const; - bool bad() const; - bool operator!() const; - operator bool() const; - -private: - FILE* file_; - - void init(const char* name); -}; - -#endif diff --git a/MagneticField/Interpolation/src/bstream_iterator.h b/MagneticField/Interpolation/src/bstream_iterator.h index 049a5600d032b..0b03e9a58205d 100644 --- a/MagneticField/Interpolation/src/bstream_iterator.h +++ b/MagneticField/Interpolation/src/bstream_iterator.h @@ -1,80 +1,68 @@ #ifndef bstream_iterator_H #define bstream_iterator_H -#include "binary_ifstream.h" +#include "MagneticField/Interpolation/interface/binary_ifstream.h" #include "binary_ofstream.h" #include #include "FWCore/Utilities/interface/Visibility.h" template -class bistream_iterator : - public std::iterator -{ +class bistream_iterator : public std::iterator { public: + bistream_iterator() : stream_(0) {} - bistream_iterator() : stream_(0) {} + bistream_iterator(binary_ifstream& s) : stream_(&s) { read(); } - bistream_iterator( binary_ifstream& s) : stream_(&s) { - read(); - } - - const T& operator*() const {return value_;} + const T& operator*() const { return value_; } - const T* operator->() const {return &value_;} + const T* operator->() const { return &value_; } - bistream_iterator& operator++() {read(); return *this;} + bistream_iterator& operator++() { + read(); + return *this; + } - bistream_iterator& operator++(int) { - bistream_iterator tmp; - read(); - return tmp; - } + bistream_iterator& operator++(int) { + bistream_iterator tmp; + read(); + return tmp; + } - bool operator==(const bistream_iterator& rhs) { - return stream_ == rhs.stream_; - } + bool operator==(const bistream_iterator& rhs) { return stream_ == rhs.stream_; } - bool operator!=(const bistream_iterator& rhs) { - return !operator==(rhs); - } + bool operator!=(const bistream_iterator& rhs) { return !operator==(rhs); } private: - - binary_ifstream* stream_; - T value_; - - void read() { - if (stream_ != 0) { - // if (!(*stream_ >> value_)) stream_ = 0; - if (!(*stream_ >> value_)) { - stream_ = 0; - // std::cout << "istream_iterator: stream turned bad, set stream_ to zero" << std::endl; - } - } + binary_ifstream* stream_; + T value_; + + void read() { + if (stream_ != 0) { + // if (!(*stream_ >> value_)) stream_ = 0; + if (!(*stream_ >> value_)) { + stream_ = 0; + // std::cout << "istream_iterator: stream turned bad, set stream_ to zero" << std::endl; + } } - + } }; -template -class dso_internal bostream_iterator : - public std::iterator { +template +class dso_internal bostream_iterator : public std::iterator { public: + bostream_iterator(binary_ofstream& s) : stream_(&s) {} - bostream_iterator( binary_ofstream& s) : stream_(&s) {} - - bostream_iterator& operator=( const T& t) { - *stream_ << t; - return *this; - } + bostream_iterator& operator=(const T& t) { + *stream_ << t; + return *this; + } - bostream_iterator& operator*() {return *this;} - bostream_iterator& operator++() {return *this;} - bostream_iterator& operator++(int) {return *this;} + bostream_iterator& operator*() { return *this; } + bostream_iterator& operator++() { return *this; } + bostream_iterator& operator++(int) { return *this; } private: - - binary_ofstream* stream_; - + binary_ofstream* stream_; }; #endif diff --git a/MagneticField/Interpolation/test/BinaryTablesGeneration/GridFileReader.cpp b/MagneticField/Interpolation/test/BinaryTablesGeneration/GridFileReader.cpp index 679fba0ad8bba..86690a3bf8a44 100644 --- a/MagneticField/Interpolation/test/BinaryTablesGeneration/GridFileReader.cpp +++ b/MagneticField/Interpolation/test/BinaryTablesGeneration/GridFileReader.cpp @@ -1,7 +1,7 @@ // Small Program to read Grid Files // by droll (29/02/04) // essential files -#include "MagneticField/Interpolation/src/binary_ifstream.h" +#include "MagneticField/Interpolation/interface/binary_ifstream.h" // used libs #include @@ -10,6 +10,7 @@ #include #include #include +#include #include "DataFormats/Math/interface/approx_exp.h" inline int bits(int a) { unsigned int aa = abs(a); @@ -24,8 +25,8 @@ inline int bits(int a) { using namespace std; using namespace approx_math; int main(int argc, char **argv) { - if (argc > 3) { - cout << "SYNOPSIS:" << endl << " GridFileReader input.bin [fullDump=true|false]" << endl; + if (argc < 3 or argc > 4) { + cout << "SYNOPSIS:" << endl << " GridFileReader input.bin [fullDump=true|false] [file.index]" << endl; cout << "Example:" << endl << " GridFileReader grid.217.bin false" << endl; return 1; } @@ -33,12 +34,45 @@ int main(int argc, char **argv) { bool fullDump = argv[2]; - binary_ifstream inFile(filename); + string indexFile; + if (argc == 4) { + indexFile = argv[3]; + } + + std::optional tempFile; + if (indexFile.empty()) { + tempFile = magneticfield::interpolation::binary_ifstream(filename); + } else { + auto pos = indexFile.find('.'); + tempFile = magneticfield::interpolation::binary_ifstream(indexFile.substr(0, pos) + ".bin"); + } + auto inFile = std::move(*tempFile); if (!inFile) { cout << "file open failed!" << endl; return EXIT_FAILURE; } + if (not indexFile.empty()) { + std::ifstream index(indexFile); + + bool found = true; + while (index) { + std::string magFile; + unsigned int offset; + index >> magFile >> offset; + + if (magFile == filename) { + inFile.seekg(offset); + break; + } + } + if (not found) { + cout << "failed to find entry " << filename << " in index file " << indexFile << endl; + return EXIT_FAILURE; + } + cout << "Using index file: " << indexFile << endl; + } + cout << "Data File: " << filename << endl; // reading iterator (number of entries) diff --git a/MagneticField/Interpolation/test/BinaryTablesGeneration/mergeFieldTable.cc b/MagneticField/Interpolation/test/BinaryTablesGeneration/mergeFieldTable.cc new file mode 100644 index 0000000000000..a3ce8ce77bd37 --- /dev/null +++ b/MagneticField/Interpolation/test/BinaryTablesGeneration/mergeFieldTable.cc @@ -0,0 +1,54 @@ +#include + +#include +#include + +int main(int argc, char** argv) { + if (argc != 3) { + return 0; + } + + std::string directoryName = argv[1]; + + std::string baseName = argv[2]; + + const std::filesystem::path readDirectory{directoryName}; + + if (not is_directory(readDirectory)) { + std::cerr << "Error: " << readDirectory << " is not a directory"; + return 1; + } + + std::ofstream mergedFile(baseName + ".bin", std::ios::binary); + std::ofstream indexFile(baseName + ".index"); + + unsigned long int offset = 0; + for (auto const& dir_entry : std::filesystem::recursive_directory_iterator{readDirectory}) { + if (dir_entry.is_regular_file()) { + std::string fileName = relative(dir_entry.path(), readDirectory); + //std::cout <<" "< buffer; + while (toRead.read(buffer.data(), buffer.size())) { + mergedFile.write(buffer.data(), buffer.size()); + } + if (toRead.bad()) { + std::cerr << " problem copying file " << dir_entry.path(); + return 1; + } + if (not toRead.eof()) { + std::cerr << " failed to read end of file " << dir_entry.path(); + return 1; + } + int lastRead = toRead.gcount(); + if (lastRead != 1024) { + mergedFile.write(buffer.data(), lastRead); + } + } + } + return 0; +} diff --git a/MagneticField/Interpolation/test/BinaryTablesGeneration/mergeFileTable.md b/MagneticField/Interpolation/test/BinaryTablesGeneration/mergeFileTable.md new file mode 100644 index 0000000000000..18bfe7119dd73 --- /dev/null +++ b/MagneticField/Interpolation/test/BinaryTablesGeneration/mergeFileTable.md @@ -0,0 +1,18 @@ +# mergeFileTable Usage + +## Usage + +``` + mergeFileTable +``` + +The two arguments to the program are +1. `` the path of the directory holding the `s*` subdirectories that define the table set. +2. `` the base name of the the `.bin` and `.index` files to be generated. In general, this should always be `merged` in order to properly be read in cmsRun. + +## Action + +The program reads all the `*.bin` files in all the subdirectories and concatenates them into one `.bin` file. It also generates a `.index` file which contains the offsets in the newly generated `.bin` file for each `*.bin` file that was concatenated. + +The use of the merged file during cmsRun processing rather than reading the individual files provides a factor of 5 speedup in the initialization of the magnetic field. + diff --git a/MagneticField/Interpolation/test/BuildFile.xml b/MagneticField/Interpolation/test/BuildFile.xml index 8a66eb2fb7942..755698ddd1f19 100644 --- a/MagneticField/Interpolation/test/BuildFile.xml +++ b/MagneticField/Interpolation/test/BuildFile.xml @@ -19,4 +19,9 @@ + + + + + diff --git a/PhysicsTools/JetMCAlgos/plugins/TauGenJetProducer.cc b/PhysicsTools/JetMCAlgos/plugins/TauGenJetProducer.cc index a46506bb2d50d..450839b2650da 100644 --- a/PhysicsTools/JetMCAlgos/plugins/TauGenJetProducer.cc +++ b/PhysicsTools/JetMCAlgos/plugins/TauGenJetProducer.cc @@ -84,7 +84,8 @@ void TauGenJetProducer::produce(edm::StreamID, Event& iEvent, const EventSetup& if (charge != (*iTau)->charge()) edm::LogError("TauGenJetProducer") << " charge of Tau: " << (*iTau) << " not equal to charge of sum of charge of all descendents.\n" - << " Tau's charge: " << (*iTau)->charge() << " sum: " << charge << "\n"; + << " Tau's charge: " << (*iTau)->charge() << " sum: " << charge + << " # descendents: " << constituents.size() << "\n"; jet.setCharge(charge); pOutVisTaus->push_back(jet); diff --git a/PhysicsTools/NanoAOD/python/electrons_cff.py b/PhysicsTools/NanoAOD/python/electrons_cff.py index 490cabb25c88c..4e62a070d9bcf 100644 --- a/PhysicsTools/NanoAOD/python/electrons_cff.py +++ b/PhysicsTools/NanoAOD/python/electrons_cff.py @@ -46,6 +46,9 @@ 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_noIso_V1_cff', 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_iso_V2_cff', 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Fall17_noIso_V2_cff', + 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer16UL_ID_ISO_cff', + 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer17UL_ID_ISO_cff', + 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer18UL_ID_ISO_cff', ), WorkingPoints = cms.vstring( "egmGsfElectronIDs:cutBasedElectronID-Fall17-94X-V2-veto", @@ -141,7 +144,7 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): ######################################ptRatioForEle##################################### ###import from hysicsTools/NanoAOD/pythonElectronJetVarProducer_cfi.py ptRatioRelForEle = cms.EDProducer("ElectronJetVarProducer", - srcJet = cms.InputTag("updatedJets"), + srcJet = cms.InputTag("updatedJetsPuppi"), srcLep = cms.InputTag("slimmedElectrons"), srcVtx = cms.InputTag("offlineSlimmedPrimaryVertices"), ) @@ -194,8 +197,9 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): userFloats = cms.PSet( mvaFall17V1Iso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Fall17IsoV1Values"), mvaFall17V1noIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Fall17NoIsoV1Values"), - mvaFall17V2Iso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Fall17IsoV2Values"), - mvaFall17V2noIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Fall17NoIsoV2Values"), + mvaIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Fall17IsoV2Values"), + mvaNoIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Fall17NoIsoV2Values"), + mvaHZZIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Summer18ULIdIsoValues"), miniIsoChg = cms.InputTag("isoForEle:miniIsoChg"), miniIsoAll = cms.InputTag("isoForEle:miniIsoAll"), PFIsoChg = cms.InputTag("isoForEle:PFIsoChg"), @@ -222,12 +226,12 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): mvaFall17V1noIso_WP80 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V1-wp80"), mvaFall17V1noIso_WPL = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V1-wpLoose"), - mvaFall17V2Iso_WP90 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-iso-V2-wp90"), - mvaFall17V2Iso_WP80 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-iso-V2-wp80"), - mvaFall17V2Iso_WPL = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-iso-V2-wpLoose"), - mvaFall17V2noIso_WP90 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V2-wp90"), - mvaFall17V2noIso_WP80 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V2-wp80"), - mvaFall17V2noIso_WPL = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V2-wpLoose"), + mvaIso_WP90 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-iso-V2-wp90"), + mvaIso_WP80 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-iso-V2-wp80"), + mvaIso_WPL = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-iso-V2-wpLoose"), + mvaNoIso_WP90 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V2-wp90"), + mvaNoIso_WP80 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V2-wp80"), + mvaNoIso_WPL = cms.InputTag("egmGsfElectronIDs:mvaEleID-Fall17-noIso-V2-wpLoose"), cutbasedID_Fall17_V1_veto = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Fall17-94X-V1-veto"), cutbasedID_Fall17_V1_loose = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Fall17-94X-V1-loose"), @@ -305,6 +309,15 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): VIDNestedWPBitmapSpring15 = cms.InputTag("bitmapVIDForEleSpring15"), VIDNestedWPBitmapSum16 = cms.InputTag("bitmapVIDForEleSum16"), ) +(~run2_nanoAOD_preUL & run2_egamma_2016).toModify(slimmedElectronsWithUserData.userFloats, + mvaHZZIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Summer16ULIdIsoValues"), +) +(~run2_nanoAOD_preUL & run2_egamma_2017).toModify(slimmedElectronsWithUserData.userFloats, + mvaHZZIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Summer17ULIdIsoValues") , +) +(~run2_nanoAOD_preUL & run2_egamma_2018).toModify(slimmedElectronsWithUserData.userFloats, + mvaHZZIso = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Summer18ULIdIsoValues"), +) #################################################END slimmedElectrons with user data##################### #################################################finalElectrons##################### finalElectrons = cms.EDFilter("PATElectronRefSelector", @@ -331,7 +344,7 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): LepGood_dxy = cms.string("log(abs(dB('PV2D')))"), LepGood_sip3d = cms.string("abs(dB('PV3D')/edB('PV3D'))"), LepGood_dz = cms.string("log(abs(dB('PVDZ')))"), - LepGood_mvaFall17V2noIso = cms.string("userFloat('mvaFall17V2noIso')"), + LepGood_mvaFall17V2noIso = cms.string("userFloat('mvaNoIso')"), ) ) run2_egamma_2016.toModify(electronMVATTH, @@ -362,14 +375,15 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): eInvMinusPInv = Var("(1-eSuperClusterOverP())/ecalEnergy()",float,doc="1/E_SC - 1/p_trk",precision=10), scEtOverPt = Var("(superCluster().energy()/(pt*cosh(superCluster().eta())))-1",float,doc="(supercluster transverse energy)/pt-1",precision=8), - mvaFall17V2Iso = Var("userFloat('mvaFall17V2Iso')",float,doc="MVA Iso ID V2 score"), - mvaFall17V2Iso_WP80 = Var("userInt('mvaFall17V2Iso_WP80')",bool,doc="MVA Iso ID V2 WP80"), - mvaFall17V2Iso_WP90 = Var("userInt('mvaFall17V2Iso_WP90')",bool,doc="MVA Iso ID V2 WP90"), - mvaFall17V2Iso_WPL = Var("userInt('mvaFall17V2Iso_WPL')",bool,doc="MVA Iso ID V2 loose WP"), - mvaFall17V2noIso = Var("userFloat('mvaFall17V2noIso')",float,doc="MVA noIso ID V2 score"), - mvaFall17V2noIso_WP80 = Var("userInt('mvaFall17V2noIso_WP80')",bool,doc="MVA noIso ID V2 WP80"), - mvaFall17V2noIso_WP90 = Var("userInt('mvaFall17V2noIso_WP90')",bool,doc="MVA noIso ID V2 WP90"), - mvaFall17V2noIso_WPL = Var("userInt('mvaFall17V2noIso_WPL')",bool,doc="MVA noIso ID V2 loose WP"), + mvaIso = Var("userFloat('mvaIso')",float,doc="MVA Iso ID V2 score"), + mvaIso_WP80 = Var("userInt('mvaIso_WP80')",bool,doc="MVA Iso ID V2 WP80"), + mvaIso_WP90 = Var("userInt('mvaIso_WP90')",bool,doc="MVA Iso ID V2 WP90"), + mvaIso_WPL = Var("userInt('mvaIso_WPL')",bool,doc="MVA Iso ID V2 loose WP"), + mvaNoIso = Var("userFloat('mvaNoIso')",float,doc="MVA noIso ID V2 score"), + mvaNoIso_WP80 = Var("userInt('mvaNoIso_WP80')",bool,doc="MVA noIso ID V2 WP80"), + mvaNoIso_WP90 = Var("userInt('mvaNoIso_WP90')",bool,doc="MVA noIso ID V2 WP90"), + mvaNoIso_WPL = Var("userInt('mvaNoIso_WPL')",bool,doc="MVA noIso ID V2 loose WP"), + mvaHZZIso = Var("userFloat('mvaHZZIso')", float,doc="HZZ MVA Iso ID score"), cutBased = Var("userInt('cutbasedID_Fall17_V2_veto')+userInt('cutbasedID_Fall17_V2_loose')+userInt('cutbasedID_Fall17_V2_medium')+userInt('cutbasedID_Fall17_V2_tight')",int,doc="cut-based ID Fall17 V2 (0:fail, 1:veto, 2:loose, 3:medium, 4:tight)"), vidNestedWPBitmap = Var("userInt('VIDNestedWPBitmap')",int,doc=_bitmapVIDForEle_docstring), @@ -536,22 +550,24 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): (run3_nanoAOD_devel).toModify(slimmedElectronsWithUserData.userFloats, mvaFall17V1Iso = None, mvaFall17V1noIso = None, - mvaFall17V2Iso = None, - mvaFall17V2noIso = None, + mvaIso = None, + mvaNoIso = None, + mvaHZZIso = None, ) (run3_nanoAOD_devel).toModify(electronTable.variables, - mvaFall17V2Iso = None, - mvaFall17V2Iso_WP80 = None, - mvaFall17V2Iso_WP90 = None, - mvaFall17V2Iso_WPL = None, - mvaFall17V2noIso = None, - mvaFall17V2noIso_WP80 = None, - mvaFall17V2noIso_WP90 = None, - mvaFall17V2noIso_WPL = None, + mvaIso = None, + mvaIso_WP80 = None, + mvaIso_WP90 = None, + mvaIso_WPL = None, + mvaNoIso = None, + mvaNoIso_WP80 = None, + mvaNoIso_WP90 = None, + mvaNoIso_WPL = None, vidNestedWPBitmapHEEP = None, vidNestedWPBitmap = None, cutBased = None, cutBased_HEEP = None, + mvaHZZIso = None, ) (run3_nanoAOD_devel).toReplaceWith(electronTablesTask, electronTablesTask.copyAndExclude([electronMVATTH])) @@ -559,6 +575,9 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): ) ##### end TEMPORARY Run3 +# Revert back to AK4 CHS jets for Run 2 +run2_nanoAOD_ANY.toModify(ptRatioRelForEle,srcJet="updatedJets") + #for NANO from reminAOD, no need to run slimmedElectronsUpdated, other modules of electron sequence will run on slimmedElectrons for modifier in run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: diff --git a/PhysicsTools/NanoAOD/python/jetMC_cff.py b/PhysicsTools/NanoAOD/python/jetMC_cff.py index 6b0ef0203261a..fd9959003b287 100644 --- a/PhysicsTools/NanoAOD/python/jetMC_cff.py +++ b/PhysicsTools/NanoAOD/python/jetMC_cff.py @@ -2,8 +2,8 @@ from PhysicsTools.NanoAOD.nano_eras_cff import * from PhysicsTools.NanoAOD.common_cff import * -from PhysicsTools.NanoAOD.jets_cff import fatJetTable as _fatJetTable -from PhysicsTools.NanoAOD.jets_cff import subJetTable as _subJetTable +from PhysicsTools.NanoAOD.jetsAK8_cff import fatJetTable as _fatJetTable +from PhysicsTools.NanoAOD.jetsAK8_cff import subJetTable as _subJetTable jetMCTable = cms.EDProducer("SimpleCandidateFlatTableProducer", src = cms.InputTag("linkedObjects","jets"), @@ -135,7 +135,6 @@ ### Era dependent customization run2_miniAOD_80XLegacy.toModify( genJetFlavourTable, jetFlavourInfos = cms.InputTag("genJetFlavourAssociation"),) - _jetMCTaskak8 = jetMCTaskak8.copyAndExclude([genSubJetAK8Table]) _jetMC_pre94XTask = jetMCTaskak4.copy() diff --git a/PhysicsTools/NanoAOD/python/jetsAK4_CHS_cff.py b/PhysicsTools/NanoAOD/python/jetsAK4_CHS_cff.py new file mode 100644 index 0000000000000..43c8cbd7304f3 --- /dev/null +++ b/PhysicsTools/NanoAOD/python/jetsAK4_CHS_cff.py @@ -0,0 +1,446 @@ +import FWCore.ParameterSet.Config as cms + +from PhysicsTools.NanoAOD.nano_eras_cff import * +from PhysicsTools.NanoAOD.common_cff import * + +##################### User floats producers, selectors ########################## + +from PhysicsTools.PatAlgos.recoLayer0.jetCorrFactors_cfi import * +# Note: Safe to always add 'L2L3Residual' as MC contains dummy L2L3Residual corrections (always set to 1) +# (cf. https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBookJetEnergyCorrections#CMSSW_7_6_4_and_above ) +jetCorrFactorsNano = patJetCorrFactors.clone(src='slimmedJets', + levels = cms.vstring('L1FastJet', + 'L2Relative', + 'L3Absolute', + 'L2L3Residual'), + primaryVertices = cms.InputTag("offlineSlimmedPrimaryVertices"), +) + +from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cfi import * +updatedJets = updatedPatJets.clone( + addBTagInfo=False, + jetSource='slimmedJets', + jetCorrFactorsSource=cms.VInputTag(cms.InputTag("jetCorrFactorsNano") ), +) + +# +# JetID +# +looseJetId = cms.EDProducer("PatJetIDValueMapProducer", + filterParams=cms.PSet( + version = cms.string('WINTER16'), + quality = cms.string('LOOSE'), + ), + src = cms.InputTag("updatedJets") +) +tightJetId = cms.EDProducer("PatJetIDValueMapProducer", + filterParams=cms.PSet( + version = cms.string('RUN2ULCHS'), + quality = cms.string('TIGHT'), + ), + src = cms.InputTag("updatedJets") +) +tightJetIdLepVeto = cms.EDProducer("PatJetIDValueMapProducer", + filterParams=cms.PSet( + version = cms.string('RUN2ULCHS'), + quality = cms.string('TIGHTLEPVETO'), + ), + src = cms.InputTag("updatedJets") +) +run2_jme_2016.toModify( tightJetId.filterParams, version = "RUN2UL16CHS" ) +run2_jme_2016.toModify( tightJetIdLepVeto.filterParams, version = "RUN2UL16CHS" ) +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: + modifier.toModify( tightJetId.filterParams, version = "WINTER16" ) + modifier.toModify( tightJetIdLepVeto.filterParams, version = "WINTER16" ) +for modifier in run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2: + modifier.toModify( tightJetId.filterParams, version = "WINTER17" ) + modifier.toModify( tightJetIdLepVeto.filterParams, version = "WINTER17" ) +run2_nanoAOD_102Xv1.toModify( tightJetId.filterParams, version = "SUMMER18" ) +run2_nanoAOD_102Xv1.toModify( tightJetIdLepVeto.filterParams, version = "SUMMER18" ) + +bJetVars = cms.EDProducer("JetRegressionVarProducer", + pvsrc = cms.InputTag("offlineSlimmedPrimaryVertices"), + src = cms.InputTag("updatedJets"), + svsrc = cms.InputTag("slimmedSecondaryVertices"), + gpsrc = cms.InputTag("prunedGenParticles"), + #musrc = cms.InputTag("slimmedMuons"), + #elesrc = cms.InputTag("slimmedElectrons") +) + +jercVars = cms.EDProducer("BetaStarPackedCandidateVarProducer", + srcJet = cms.InputTag("updatedJets"), + srcPF = cms.InputTag("packedPFCandidates"), + maxDR = cms.double(0.4) +) + +updatedJetsWithUserData = cms.EDProducer("PATJetUserDataEmbedder", + src = cms.InputTag("updatedJets"), + userFloats = cms.PSet( + leadTrackPt = cms.InputTag("bJetVars:leadTrackPt"), + leptonPtRel = cms.InputTag("bJetVars:leptonPtRel"), + leptonPtRatio = cms.InputTag("bJetVars:leptonPtRatio"), + leptonPtRelInv = cms.InputTag("bJetVars:leptonPtRelInv"), + leptonPtRelv0 = cms.InputTag("bJetVars:leptonPtRelv0"), + leptonPtRatiov0 = cms.InputTag("bJetVars:leptonPtRatiov0"), + leptonPtRelInvv0 = cms.InputTag("bJetVars:leptonPtRelInvv0"), + leptonDeltaR = cms.InputTag("bJetVars:leptonDeltaR"), + leptonPt = cms.InputTag("bJetVars:leptonPt"), + vtxPt = cms.InputTag("bJetVars:vtxPt"), + vtxMass = cms.InputTag("bJetVars:vtxMass"), + vtx3dL = cms.InputTag("bJetVars:vtx3dL"), + vtx3deL = cms.InputTag("bJetVars:vtx3deL"), + ptD = cms.InputTag("bJetVars:ptD"), + genPtwNu = cms.InputTag("bJetVars:genPtwNu"), + qgl = cms.InputTag('qgtagger:qgLikelihood'), + puIdNanoDisc = cms.InputTag('pileupJetIdNano:fullDiscriminant'), + chFPV0EF = cms.InputTag("jercVars:chargedFromPV0EnergyFraction"), + ), + userInts = cms.PSet( + tightId = cms.InputTag("tightJetId"), + tightIdLepVeto = cms.InputTag("tightJetIdLepVeto"), + vtxNtrk = cms.InputTag("bJetVars:vtxNtrk"), + leptonPdgId = cms.InputTag("bJetVars:leptonPdgId"), + puIdNanoId = cms.InputTag('pileupJetIdNano:fullId'), + ), +) +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: + modifier.toModify(updatedJetsWithUserData.userInts, + looseId = cms.InputTag("looseJetId"), + ) + + +finalJets = cms.EDFilter("PATJetRefSelector", + src = cms.InputTag("updatedJetsWithUserData"), + cut = cms.string("pt > 15") +) + + +##################### Tables for final output and docs ########################## + + +jetTable = cms.EDProducer("SimpleCandidateFlatTableProducer", + src = cms.InputTag("linkedObjects","jets"), + cut = cms.string(""), #we should not filter on cross linked collections + name = cms.string("Jet"), + doc = cms.string("slimmedJets, i.e. ak4 PFJets CHS with JECs applied, after basic selection (" + finalJets.cut.value()+")"), + singleton = cms.bool(False), # the number of entries is variable + extension = cms.bool(False), # this is the main table for the jets + externalVariables = cms.PSet( + bRegCorr = ExtVar(cms.InputTag("bjetNN:corr"),float, doc="pt correction for b-jet energy regression",precision=10), + bRegRes = ExtVar(cms.InputTag("bjetNN:res"),float, doc="res on pt corrected with b-jet regression",precision=6), + cRegCorr = ExtVar(cms.InputTag("cjetNN:corr"),float, doc="pt correction for c-jet energy regression",precision=10), + cRegRes = ExtVar(cms.InputTag("cjetNN:res"),float, doc="res on pt corrected with c-jet regression",precision=6), + ), + variables = cms.PSet(P4Vars, + area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10), + nMuons = Var("?hasOverlaps('muons')?overlaps('muons').size():0", int, doc="number of muons in the jet"), + muonIdx1 = Var("?overlaps('muons').size()>0?overlaps('muons')[0].key():-1", int, doc="index of first matching muon"), + muonIdx2 = Var("?overlaps('muons').size()>1?overlaps('muons')[1].key():-1", int, doc="index of second matching muon"), + electronIdx1 = Var("?overlaps('electrons').size()>0?overlaps('electrons')[0].key():-1", int, doc="index of first matching electron"), + electronIdx2 = Var("?overlaps('electrons').size()>1?overlaps('electrons')[1].key():-1", int, doc="index of second matching electron"), + nElectrons = Var("?hasOverlaps('electrons')?overlaps('electrons').size():0", int, doc="number of electrons in the jet"), + btagDeepB = Var("?(bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb'))>=0?bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb'):-1",float,doc="DeepCSV b+bb tag discriminator",precision=10), + btagDeepFlavB = Var("bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb')",float,doc="DeepJet b+bb+lepb tag discriminator",precision=10), + btagCSVV2 = Var("bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",float,doc=" pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)",precision=10), + btagDeepCvL = Var("?bDiscriminator('pfDeepCSVJetTags:probc')>=0?bDiscriminator('pfDeepCSVJetTags:probc')/(bDiscriminator('pfDeepCSVJetTags:probc')+bDiscriminator('pfDeepCSVJetTags:probudsg')):-1", float,doc="DeepCSV c vs udsg discriminator",precision=10), + btagDeepCvB = Var("?bDiscriminator('pfDeepCSVJetTags:probc')>=0?bDiscriminator('pfDeepCSVJetTags:probc')/(bDiscriminator('pfDeepCSVJetTags:probc')+bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb')):-1",float,doc="DeepCSV c vs b+bb discriminator",precision=10), + btagDeepFlavCvL = Var("?(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probuds')+bDiscriminator('pfDeepFlavourJetTags:probg'))>0?bDiscriminator('pfDeepFlavourJetTags:probc')/(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probuds')+bDiscriminator('pfDeepFlavourJetTags:probg')):-1",float,doc="DeepJet c vs uds+g discriminator",precision=10), + btagDeepFlavCvB = Var("?(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb'))>0?bDiscriminator('pfDeepFlavourJetTags:probc')/(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb')):-1",float,doc="DeepJet c vs b+bb+lepb discriminator",precision=10), + btagDeepFlavQG = Var("?(bDiscriminator('pfDeepFlavourJetTags:probg')+bDiscriminator('pfDeepFlavourJetTags:probuds'))>0?bDiscriminator('pfDeepFlavourJetTags:probg')/(bDiscriminator('pfDeepFlavourJetTags:probg')+bDiscriminator('pfDeepFlavourJetTags:probuds')):-1",float,doc="DeepJet g vs uds discriminator",precision=10), + puIdDisc = Var("userFloat('puIdNanoDisc')", float,doc="Pileup ID discriminant with 106X (2018) training",precision=10), + puId = Var("userInt('puIdNanoId')", int,doc="Pileup ID flags with 106X (2018) training"), + jetId = Var("userInt('tightId')*2+4*userInt('tightIdLepVeto')",int,doc="Jet ID flags bit1 is loose (always false in 2017 since it does not exist), bit2 is tight, bit3 is tightLepVeto"), + qgl = Var("?userFloat('qgl')>0?userFloat('qgl'):-1",float,doc="Quark vs Gluon likelihood discriminator",precision=10), + hfsigmaEtaEta = Var("userFloat('hfJetShowerShape:sigmaEtaEta')",float,doc="sigmaEtaEta for HF jets (noise discriminating variable)",precision=10), + hfsigmaPhiPhi = Var("userFloat('hfJetShowerShape:sigmaPhiPhi')",float,doc="sigmaPhiPhi for HF jets (noise discriminating variable)",precision=10), + hfcentralEtaStripSize = Var("userInt('hfJetShowerShape:centralEtaStripSize')", int, doc="eta size of the central tower strip in HF (noise discriminating variable) "), + hfadjacentEtaStripsSize = Var("userInt('hfJetShowerShape:adjacentEtaStripsSize')", int, doc="eta size of the strips next to the central tower strip in HF (noise discriminating variable) "), + nConstituents = Var("numberOfDaughters()","uint8",doc="Number of particles in the jet"), + rawFactor = Var("1.-jecFactor('Uncorrected')",float,doc="1 - Factor to get back to raw pT",precision=6), + chHEF = Var("chargedHadronEnergyFraction()", float, doc="charged Hadron Energy Fraction", precision= 6), + neHEF = Var("neutralHadronEnergyFraction()", float, doc="neutral Hadron Energy Fraction", precision= 6), + chEmEF = Var("chargedEmEnergyFraction()", float, doc="charged Electromagnetic Energy Fraction", precision= 6), + neEmEF = Var("neutralEmEnergyFraction()", float, doc="neutral Electromagnetic Energy Fraction", precision= 6), + muEF = Var("muonEnergyFraction()", float, doc="muon Energy Fraction", precision= 6), + chFPV0EF = Var("userFloat('chFPV0EF')", float, doc="charged fromPV==0 Energy Fraction (energy excluded from CHS jets). Previously called betastar.", precision= 6), + ) +) + +#jets are not as precise as muons +jetTable.variables.pt.precision=10 + +### Era dependent customization +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016, run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2, run2_nanoAOD_102Xv1, run2_nanoAOD_106Xv1: + # Deprecated after 106X + modifier.toModify(jetTable.variables, + btagCMVA = Var("bDiscriminator('pfCombinedMVAV2BJetTags')",float,doc="CMVA V2 btag discriminator",precision=10), + btagDeepC = Var("bDiscriminator('pfDeepCSVJetTags:probc')",float,doc="DeepCSV charm btag discriminator",precision=10), + btagDeepFlavC = Var("bDiscriminator('pfDeepFlavourJetTags:probc')",float,doc="DeepFlavour charm tag discriminator",precision=10), + ) +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: + modifier.toModify( jetTable.variables, jetId = Var("userInt('tightIdLepVeto')*4+userInt('tightId')*2+userInt('looseId')",int,doc="Jet ID flags bit1 is loose, bit2 is tight, bit3 is tightLepVeto")) + +run2_nanoAOD_102Xv1.toModify( jetTable.variables.puIdDisc, doc="Pileup ID discriminant with 102X (2018) training") +run2_nanoAOD_102Xv1.toModify( jetTable.variables, puId = Var("userInt('pileupJetId:fullId')",int,doc="Pileup ID flags for pre-UL trainings")) +(run2_jme_2016 & ~tracker_apv_vfp30_2016 ).toModify( jetTable.variables.puIdDisc, doc="Pileup ID discriminant with 106X (2016) training") +(run2_jme_2016 & ~tracker_apv_vfp30_2016 ).toModify( jetTable.variables.puId, doc="Pileup ID flags with 106X (2016) training") +(run2_jme_2016 & tracker_apv_vfp30_2016 ).toModify( jetTable.variables.puIdDisc, doc="Pileup ID discriminant with 106X (2016APV) training") +(run2_jme_2016 & tracker_apv_vfp30_2016 ).toModify( jetTable.variables.puId, doc="Pileup ID flags with 106X (2016APV) training") +run2_jme_2017.toModify( jetTable.variables.puIdDisc, doc="Pileup ID discriminant with 106X (2017) training") +run2_jme_2017.toModify( jetTable.variables.puId, doc="Pileup ID flags with 106X (2017) training") +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: + modifier.toModify( jetTable.variables, puIdDisc = Var("userFloat('pileupJetId:fullDiscriminant')",float,doc="Pileup ID discriminant with 80X (2016) training",precision=10)) + modifier.toModify( jetTable.variables, puId = Var("userInt('pileupJetId:fullId')",int,doc="Pileup ID flags for pre-UL trainings")) +for modifier in run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2: + modifier.toModify( jetTable.variables.puIdDisc, doc="Pileup ID discriminant with 94X (2017) training") + modifier.toModify( jetTable.variables, puId = Var("userInt('pileupJetId:fullId')",int,doc="Pileup ID flags for 2016/2017/2018 EOY trainings")) + +bjetNN = cms.EDProducer("BJetEnergyRegressionMVA", + backend = cms.string("ONNX"), + batch_eval = cms.bool(True), + src = cms.InputTag("linkedObjects","jets"), + pvsrc = cms.InputTag("offlineSlimmedPrimaryVertices"), + svsrc = cms.InputTag("slimmedSecondaryVertices"), + rhosrc = cms.InputTag("fixedGridRhoFastjetAll"), + + weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/breg_training_2018.onnx"), + name = cms.string("JetRegNN"), + isClassifier = cms.bool(False), + variablesOrder = cms.vstring(["Jet_pt","Jet_eta","rho","Jet_mt","Jet_leadTrackPt","Jet_leptonPtRel","Jet_leptonDeltaR","Jet_neHEF", + "Jet_neEmEF","Jet_vtxPt","Jet_vtxMass","Jet_vtx3dL","Jet_vtxNtrk","Jet_vtx3deL", + "Jet_numDaughters_pt03","Jet_energyRing_dR0_em_Jet_rawEnergy","Jet_energyRing_dR1_em_Jet_rawEnergy", + "Jet_energyRing_dR2_em_Jet_rawEnergy","Jet_energyRing_dR3_em_Jet_rawEnergy","Jet_energyRing_dR4_em_Jet_rawEnergy", + "Jet_energyRing_dR0_neut_Jet_rawEnergy","Jet_energyRing_dR1_neut_Jet_rawEnergy","Jet_energyRing_dR2_neut_Jet_rawEnergy", + "Jet_energyRing_dR3_neut_Jet_rawEnergy","Jet_energyRing_dR4_neut_Jet_rawEnergy","Jet_energyRing_dR0_ch_Jet_rawEnergy", + "Jet_energyRing_dR1_ch_Jet_rawEnergy","Jet_energyRing_dR2_ch_Jet_rawEnergy","Jet_energyRing_dR3_ch_Jet_rawEnergy", + "Jet_energyRing_dR4_ch_Jet_rawEnergy","Jet_energyRing_dR0_mu_Jet_rawEnergy","Jet_energyRing_dR1_mu_Jet_rawEnergy", + "Jet_energyRing_dR2_mu_Jet_rawEnergy","Jet_energyRing_dR3_mu_Jet_rawEnergy","Jet_energyRing_dR4_mu_Jet_rawEnergy", + "Jet_chHEF","Jet_chEmEF","Jet_leptonPtRelInv","isEle","isMu","isOther","Jet_mass","Jet_ptd"]), + variables = cms.PSet( + Jet_pt = cms.string("pt*jecFactor('Uncorrected')"), + Jet_mt = cms.string("mt*jecFactor('Uncorrected')"), + Jet_eta = cms.string("eta"), + Jet_mass = cms.string("mass*jecFactor('Uncorrected')"), + Jet_ptd = cms.string("userFloat('ptD')"), + Jet_leadTrackPt = cms.string("userFloat('leadTrackPt')"), + Jet_vtxNtrk = cms.string("userInt('vtxNtrk')"), + Jet_vtxMass = cms.string("userFloat('vtxMass')"), + Jet_vtx3dL = cms.string("userFloat('vtx3dL')"), + Jet_vtx3deL = cms.string("userFloat('vtx3deL')"), + Jet_vtxPt = cms.string("userFloat('vtxPt')"), + #Jet_leptonPt = cms.string("userFloat('leptonPt')"), + Jet_leptonPtRel = cms.string("userFloat('leptonPtRelv0')"), + Jet_leptonPtRelInv = cms.string("userFloat('leptonPtRelInvv0')*jecFactor('Uncorrected')"), + Jet_leptonDeltaR = cms.string("userFloat('leptonDeltaR')"), + #Jet_leptonPdgId = cms.string("userInt('leptonPdgId')"), + Jet_neHEF = cms.string("neutralHadronEnergyFraction()"), + Jet_neEmEF = cms.string("neutralEmEnergyFraction()"), + Jet_chHEF = cms.string("chargedHadronEnergyFraction()"), + Jet_chEmEF = cms.string("chargedEmEnergyFraction()"), + isMu = cms.string("?abs(userInt('leptonPdgId'))==13?1:0"), + isEle = cms.string("?abs(userInt('leptonPdgId'))==11?1:0"), + isOther = cms.string("?userInt('leptonPdgId')==0?1:0"), + ), + inputTensorName = cms.string("ffwd_inp:0"), + outputTensorName = cms.string("ffwd_out/BiasAdd:0"), + outputNames = cms.vstring(["corr","res"]), + outputFormulas = cms.vstring(["at(0)*0.27912887930870056+1.0545977354049683","0.5*(at(2)-at(1))*0.27912887930870056"]), +) + +cjetNN = cms.EDProducer("BJetEnergyRegressionMVA", + backend = cms.string("ONNX"), + batch_eval = cms.bool(True), + + src = cms.InputTag("linkedObjects","jets"), + pvsrc = cms.InputTag("offlineSlimmedPrimaryVertices"), + svsrc = cms.InputTag("slimmedSecondaryVertices"), + rhosrc = cms.InputTag("fixedGridRhoFastjetAll"), + + weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/creg_training_2018.onnx"), + name = cms.string("JetRegNN"), + isClassifier = cms.bool(False), + variablesOrder = cms.vstring(["Jet_pt","Jet_eta","rho","Jet_mt","Jet_leadTrackPt","Jet_leptonPtRel","Jet_leptonDeltaR", + "Jet_neHEF","Jet_neEmEF","Jet_vtxPt","Jet_vtxMass","Jet_vtx3dL","Jet_vtxNtrk","Jet_vtx3deL", + "Jet_numDaughters_pt03","Jet_chEmEF","Jet_chHEF", "Jet_ptd","Jet_mass", + "Jet_energyRing_dR0_em_Jet_rawEnergy","Jet_energyRing_dR1_em_Jet_rawEnergy", + "Jet_energyRing_dR2_em_Jet_rawEnergy","Jet_energyRing_dR3_em_Jet_rawEnergy","Jet_energyRing_dR4_em_Jet_rawEnergy", + "Jet_energyRing_dR0_neut_Jet_rawEnergy","Jet_energyRing_dR1_neut_Jet_rawEnergy","Jet_energyRing_dR2_neut_Jet_rawEnergy", + "Jet_energyRing_dR3_neut_Jet_rawEnergy","Jet_energyRing_dR4_neut_Jet_rawEnergy","Jet_energyRing_dR0_ch_Jet_rawEnergy", + "Jet_energyRing_dR1_ch_Jet_rawEnergy","Jet_energyRing_dR2_ch_Jet_rawEnergy","Jet_energyRing_dR3_ch_Jet_rawEnergy", + "Jet_energyRing_dR4_ch_Jet_rawEnergy","Jet_energyRing_dR0_mu_Jet_rawEnergy","Jet_energyRing_dR1_mu_Jet_rawEnergy", + "Jet_energyRing_dR2_mu_Jet_rawEnergy","Jet_energyRing_dR3_mu_Jet_rawEnergy","Jet_energyRing_dR4_mu_Jet_rawEnergy"]), + variables = cms.PSet( + Jet_pt = cms.string("pt*jecFactor('Uncorrected')"), + Jet_mt = cms.string("mt*jecFactor('Uncorrected')"), + Jet_eta = cms.string("eta"), + Jet_mass = cms.string("mass*jecFactor('Uncorrected')"), + Jet_ptd = cms.string("userFloat('ptD')"), + Jet_leadTrackPt = cms.string("userFloat('leadTrackPt')"), + Jet_vtxNtrk = cms.string("userInt('vtxNtrk')"), + Jet_vtxMass = cms.string("userFloat('vtxMass')"), + Jet_vtx3dL = cms.string("userFloat('vtx3dL')"), + Jet_vtx3deL = cms.string("userFloat('vtx3deL')"), + Jet_vtxPt = cms.string("userFloat('vtxPt')"), + #Jet_leptonPt = cms.string("userFloat('leptonPt')"), + Jet_leptonPtRel = cms.string("userFloat('leptonPtRelv0')"), + Jet_leptonPtRelInv = cms.string("userFloat('leptonPtRelInvv0')*jecFactor('Uncorrected')"), + Jet_leptonDeltaR = cms.string("userFloat('leptonDeltaR')"), + #Jet_leptonPdgId = cms.string("userInt('leptonPdgId')"), + Jet_neHEF = cms.string("neutralHadronEnergyFraction()"), + Jet_neEmEF = cms.string("neutralEmEnergyFraction()"), + Jet_chHEF = cms.string("chargedHadronEnergyFraction()"), + Jet_chEmEF = cms.string("chargedEmEnergyFraction()"), + isMu = cms.string("?abs(userInt('leptonPdgId'))==13?1:0"), + isEle = cms.string("?abs(userInt('leptonPdgId'))==11?1:0"), + isOther = cms.string("?userInt('leptonPdgId')==0?1:0"), + ), + inputTensorName = cms.string("ffwd_inp:0"), + outputTensorName = cms.string("ffwd_out/BiasAdd:0"), + outputNames = cms.vstring(["corr","res"]), + outputFormulas = cms.vstring(["at(0)*0.24325256049633026+0.993854820728302","0.5*(at(2)-at(1))*0.24325256049633026"]), +) + + +run2_jme_2016.toModify( bjetNN, weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/breg_training_2016.onnx") ) +run2_jme_2016.toModify( bjetNN,outputFormulas = cms.vstring(["at(0)*0.31976690888404846+1.047176718711853","0.5*(at(2)-at(1))*0.31976690888404846"])) + +run2_jme_2017.toModify( bjetNN, weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/breg_training_2017.onnx") ) +run2_jme_2017.toModify( bjetNN,outputFormulas = cms.vstring(["at(0)*0.28225210309028625+1.055067777633667","0.5*(at(2)-at(1))*0.28225210309028625"])) + +run2_jme_2016.toModify( cjetNN, weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/creg_training_2016.onnx") ) +run2_jme_2016.toModify( cjetNN,outputFormulas = cms.vstring(["at(0)*0.28862622380256653+0.9908722639083862","0.5*(at(2)-at(1))*0.28862622380256653"])) + +run2_jme_2017.toModify( cjetNN, weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/creg_training_2017.onnx") ) +run2_jme_2017.toModify( cjetNN,outputFormulas = cms.vstring(["at(0)*0.24718524515628815+0.9927206635475159","0.5*(at(2)-at(1))*0.24718524515628815"])) + + +# +# Quark-Gluon Likelihood (QGL) +# +from RecoJets.JetProducers.QGTagger_cfi import QGTagger +qgtagger=QGTagger.clone(srcJets="updatedJets",srcVertexCollection="offlineSlimmedPrimaryVertices") + +# +# PileUp ID +# +from RecoJets.JetProducers.PileupJetID_cfi import pileupJetId, _chsalgos_94x, _chsalgos_102x, _chsalgos_106X_UL16, _chsalgos_106X_UL16APV, _chsalgos_106X_UL17, _chsalgos_106X_UL18 +pileupJetIdNano=pileupJetId.clone(jets="updatedJets",algos = cms.VPSet(_chsalgos_106X_UL18),inputIsCorrected=True,applyJec=False,vertexes="offlineSlimmedPrimaryVertices") +run2_jme_2017.toModify(pileupJetIdNano, algos = _chsalgos_106X_UL17) +(run2_jme_2016 & ~tracker_apv_vfp30_2016 ).toModify(pileupJetIdNano, algos = _chsalgos_106X_UL16) +(run2_jme_2016 & tracker_apv_vfp30_2016 ).toModify(pileupJetIdNano, algos = _chsalgos_106X_UL16APV) +run2_nanoAOD_102Xv1.toModify(pileupJetIdNano, algos = _chsalgos_102x) +for modifier in run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2: + modifier.toModify(pileupJetIdNano, algos = _chsalgos_94x) + +############################################################## +## DeepInfoAK4CHS:Start +## - To be used in nanoAOD_customizeCommon() in nano_cff.py +############################################################### +from PhysicsTools.PatAlgos.tools.jetTools import updateJetCollection +def nanoAOD_addDeepInfoAK4CHS(process,addDeepBTag,addDeepFlavour): + _btagDiscriminators=[] + if addDeepBTag: + print("Updating process to run DeepCSV btag") + _btagDiscriminators += ['pfDeepCSVJetTags:probb','pfDeepCSVJetTags:probbb','pfDeepCSVJetTags:probc'] + if addDeepFlavour: + print("Updating process to run DeepFlavour btag") + _btagDiscriminators += ['pfDeepFlavourJetTags:probb','pfDeepFlavourJetTags:probbb','pfDeepFlavourJetTags:problepb','pfDeepFlavourJetTags:probc'] + if len(_btagDiscriminators)==0: return process + print("Will recalculate the following discriminators: "+", ".join(_btagDiscriminators)) + updateJetCollection( + process, + jetSource = cms.InputTag('slimmedJets'), + jetCorrections = ('AK4PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute','L2L3Residual']), 'None'), + btagDiscriminators = _btagDiscriminators, + postfix = 'WithDeepInfo', + ) + process.load("Configuration.StandardSequences.MagneticField_cff") + process.jetCorrFactorsNano.src="selectedUpdatedPatJetsWithDeepInfo" + process.updatedJets.jetSource="selectedUpdatedPatJetsWithDeepInfo" + return process + +nanoAOD_addDeepInfoAK4CHS_switch = cms.PSet( + nanoAOD_addDeepBTag_switch = cms.untracked.bool(False), + nanoAOD_addDeepFlavourTag_switch = cms.untracked.bool(False), +) +run2_miniAOD_80XLegacy.toModify(nanoAOD_addDeepInfoAK4CHS_switch, nanoAOD_addDeepBTag_switch = cms.untracked.bool(True)) +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016, run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2: + modifier.toModify(nanoAOD_addDeepInfoAK4CHS_switch, nanoAOD_addDeepFlavourTag_switch = cms.untracked.bool(True)) +################################################ +## DeepInfoAK4CHS:End +################################################# + +################################################################################ +# JETS FOR MET type1 +################################################################################ +basicJetsForMetForT1METNano = cms.EDProducer("PATJetCleanerForType1MET", + src = updatedJetsWithUserData.src, + jetCorrEtaMax = cms.double(9.9), + jetCorrLabel = cms.InputTag("L3Absolute"), + jetCorrLabelRes = cms.InputTag("L2L3Residual"), + offsetCorrLabel = cms.InputTag("L1FastJet"), + skipEM = cms.bool(False), + skipEMfractionThreshold = cms.double(0.9), + skipMuonSelection = cms.string('isGlobalMuon | isStandAloneMuon'), + skipMuons = cms.bool(True), + type1JetPtThreshold = cms.double(0.0), + calcMuonSubtrRawPtAsValueMap = cms.bool(True) +) + +updatedJetsWithUserData.userFloats.muonSubtrRawPt = cms.InputTag("basicJetsForMetForT1METNano:MuonSubtrRawPt") + +corrT1METJetTable = cms.EDProducer("SimpleCandidateFlatTableProducer", + src = finalJets.src, + cut = cms.string("pt<15 && abs(eta)<9.9"), + name = cms.string("CorrT1METJet"), + doc = cms.string("Additional low-pt ak4 CHS jets for Type-1 MET re-correction"), + singleton = cms.bool(False), # the number of entries is variable + extension = cms.bool(False), # this is the main table for the jets + variables = cms.PSet( + rawPt = Var("pt()*jecFactor('Uncorrected')",float,precision=10), + eta = Var("eta", float,precision=12), + phi = Var("phi", float, precision=12), + area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10), + ) +) + +corrT1METJetTable.variables.muonSubtrFactor = Var("1-userFloat('muonSubtrRawPt')/(pt()*jecFactor('Uncorrected'))",float,doc="1-(muon-subtracted raw pt)/(raw pt)",precision=6) +jetTable.variables.muonSubtrFactor = Var("1-userFloat('muonSubtrRawPt')/(pt()*jecFactor('Uncorrected'))",float,doc="1-(muon-subtracted raw pt)/(raw pt)",precision=6) + +jetForMETTask = cms.Task(basicJetsForMetForT1METNano,corrT1METJetTable) + +#before cross linking +jetUserDataTask = cms.Task(bJetVars,qgtagger,jercVars,tightJetId,tightJetIdLepVeto,pileupJetIdNano) + +# +# HF shower shape recomputation +# Only run if needed (i.e. if default MINIAOD info is missing or outdated because of new JECs...) +# +from RecoJets.JetProducers.hfJetShowerShape_cfi import hfJetShowerShape +hfJetShowerShapeforNanoAOD = hfJetShowerShape.clone(jets="updatedJets",vertices="offlineSlimmedPrimaryVertices") +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016, run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2, run2_nanoAOD_102Xv1, run2_nanoAOD_106Xv1: + modifier.toModify(updatedJetsWithUserData.userFloats, + hfsigmaEtaEta = cms.InputTag('hfJetShowerShapeforNanoAOD:sigmaEtaEta'), + hfsigmaPhiPhi = cms.InputTag('hfJetShowerShapeforNanoAOD:sigmaPhiPhi'), + ) + modifier.toModify(updatedJetsWithUserData.userInts, + hfcentralEtaStripSize = cms.InputTag('hfJetShowerShapeforNanoAOD:centralEtaStripSize'), + hfadjacentEtaStripsSize = cms.InputTag('hfJetShowerShapeforNanoAOD:adjacentEtaStripsSize'), + ) + modifier.toModify(jetTable.variables, hfsigmaEtaEta = Var("userFloat('hfsigmaEtaEta')",float,doc="sigmaEtaEta for HF jets (noise discriminating variable)",precision=10)) + modifier.toModify(jetTable.variables, hfsigmaPhiPhi = Var("userFloat('hfsigmaPhiPhi')",float,doc="sigmaPhiPhi for HF jets (noise discriminating variable)",precision=10)) + modifier.toModify(jetTable.variables, hfcentralEtaStripSize = Var("userInt('hfcentralEtaStripSize')", int, doc="eta size of the central tower strip in HF (noise discriminating variable)")) + modifier.toModify(jetTable.variables, hfadjacentEtaStripsSize = Var("userInt('hfadjacentEtaStripsSize')", int, doc="eta size of the strips next to the central tower strip in HF (noise discriminating variable)")) + modifier.toModify(jetUserDataTask, jetUserDataTask.add(hfJetShowerShapeforNanoAOD)) + +_jetUserDataTask2016 = jetUserDataTask.copy() +_jetUserDataTask2016.add(looseJetId) + +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: + modifier.toReplaceWith(jetUserDataTask,_jetUserDataTask2016) + +#before cross linking +jetTask = cms.Task(jetCorrFactorsNano,updatedJets,jetUserDataTask,updatedJetsWithUserData,finalJets) + +#after cross linkining +jetTablesTask = cms.Task(bjetNN,cjetNN,jetTable) diff --git a/PhysicsTools/NanoAOD/python/jetsAK4_Puppi_cff.py b/PhysicsTools/NanoAOD/python/jetsAK4_Puppi_cff.py new file mode 100644 index 0000000000000..852611a726f08 --- /dev/null +++ b/PhysicsTools/NanoAOD/python/jetsAK4_Puppi_cff.py @@ -0,0 +1,155 @@ +import FWCore.ParameterSet.Config as cms + +from PhysicsTools.NanoAOD.nano_eras_cff import * +from PhysicsTools.NanoAOD.common_cff import * + +##################### User floats producers, selectors ########################## + +from PhysicsTools.PatAlgos.recoLayer0.jetCorrFactors_cfi import * +# Note: Safe to always add 'L2L3Residual' as MC contains dummy L2L3Residual corrections (always set to 1) +# (cf. https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBookJetEnergyCorrections#CMSSW_7_6_4_and_above ) +jetPuppiCorrFactorsNano = patJetCorrFactors.clone(src='slimmedJetsPuppi', + levels = cms.vstring('L1FastJet', + 'L2Relative', + 'L3Absolute', + 'L2L3Residual'), + payload = cms.string('AK4PFPuppi'), + primaryVertices = cms.InputTag("offlineSlimmedPrimaryVertices"), +) + +from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cfi import * + +updatedJetsPuppi = updatedPatJets.clone( + addBTagInfo=False, + jetSource='slimmedJetsPuppi', + jetCorrFactorsSource=cms.VInputTag(cms.InputTag("jetPuppiCorrFactorsNano") ), +) + +tightJetPuppiId = cms.EDProducer("PatJetIDValueMapProducer", + filterParams=cms.PSet( + version = cms.string('RUN2ULPUPPI'), + quality = cms.string('TIGHT'), + ), + src = cms.InputTag("updatedJetsPuppi") +) +tightJetPuppiIdLepVeto = cms.EDProducer("PatJetIDValueMapProducer", + filterParams=cms.PSet( + version = cms.string('RUN2ULPUPPI'), + quality = cms.string('TIGHTLEPVETO'), + ), + src = cms.InputTag("updatedJetsPuppi") +) + +#HF shower shape recomputation +from RecoJets.JetProducers.hfJetShowerShape_cfi import hfJetShowerShape +hfJetPuppiShowerShapeforNanoAOD = hfJetShowerShape.clone(jets="updatedJetsPuppi",vertices="offlineSlimmedPrimaryVertices") + +updatedJetsPuppiWithUserData = cms.EDProducer("PATJetUserDataEmbedder", + src = cms.InputTag("updatedJetsPuppi"), + userFloats = cms.PSet( + hfsigmaEtaEta = cms.InputTag('hfJetPuppiShowerShapeforNanoAOD:sigmaEtaEta'), + hfsigmaPhiPhi = cms.InputTag('hfJetPuppiShowerShapeforNanoAOD:sigmaPhiPhi'), + ), + userInts = cms.PSet( + tightId = cms.InputTag("tightJetPuppiId"), + tightIdLepVeto = cms.InputTag("tightJetPuppiIdLepVeto"), + hfcentralEtaStripSize = cms.InputTag('hfJetPuppiShowerShapeforNanoAOD:centralEtaStripSize'), + hfadjacentEtaStripsSize = cms.InputTag('hfJetPuppiShowerShapeforNanoAOD:adjacentEtaStripsSize'), + ), +) + +finalJetsPuppi = cms.EDFilter("PATJetRefSelector", + src = cms.InputTag("updatedJetsPuppiWithUserData"), + cut = cms.string("pt > 15") +) + +##################### Tables for final output and docs ########################## +jetPuppiTable = cms.EDProducer("SimpleCandidateFlatTableProducer", + src = cms.InputTag("linkedObjects","jets"), + cut = cms.string(""), #we should not filter on cross linked collections + name = cms.string("Jet"), + doc = cms.string("slimmedJetsPuppi, i.e. ak4 PFJets Puppi with JECs applied, after basic selection (" + finalJetsPuppi.cut.value()+")"), + singleton = cms.bool(False), # the number of entries is variable + extension = cms.bool(False), # this is the main table for the jets + externalVariables = cms.PSet(), + variables = cms.PSet(P4Vars, + area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10), + nMuons = Var("?hasOverlaps('muons')?overlaps('muons').size():0", int, doc="number of muons in the jet"), + muonIdx1 = Var("?overlaps('muons').size()>0?overlaps('muons')[0].key():-1", int, doc="index of first matching muon"), + muonIdx2 = Var("?overlaps('muons').size()>1?overlaps('muons')[1].key():-1", int, doc="index of second matching muon"), + electronIdx1 = Var("?overlaps('electrons').size()>0?overlaps('electrons')[0].key():-1", int, doc="index of first matching electron"), + electronIdx2 = Var("?overlaps('electrons').size()>1?overlaps('electrons')[1].key():-1", int, doc="index of second matching electron"), + nElectrons = Var("?hasOverlaps('electrons')?overlaps('electrons').size():0", int, doc="number of electrons in the jet"), + btagDeepB = Var("?(bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb'))>=0?bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb'):-1",float,doc="DeepCSV b+bb tag discriminator",precision=10), + btagDeepFlavB = Var("bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb')",float,doc="DeepJet b+bb+lepb tag discriminator",precision=10), + btagCSVV2 = Var("bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",float,doc=" pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)",precision=10), + btagDeepCvL = Var("?bDiscriminator('pfDeepCSVJetTags:probc')>=0?bDiscriminator('pfDeepCSVJetTags:probc')/(bDiscriminator('pfDeepCSVJetTags:probc')+bDiscriminator('pfDeepCSVJetTags:probudsg')):-1", float,doc="DeepCSV c vs udsg discriminator",precision=10), + btagDeepCvB = Var("?bDiscriminator('pfDeepCSVJetTags:probc')>=0?bDiscriminator('pfDeepCSVJetTags:probc')/(bDiscriminator('pfDeepCSVJetTags:probc')+bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb')):-1",float,doc="DeepCSV c vs b+bb discriminator",precision=10), + btagDeepFlavCvL = Var("?(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probuds')+bDiscriminator('pfDeepFlavourJetTags:probg'))>0?bDiscriminator('pfDeepFlavourJetTags:probc')/(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probuds')+bDiscriminator('pfDeepFlavourJetTags:probg')):-1",float,doc="DeepJet c vs uds+g discriminator",precision=10), + btagDeepFlavCvB = Var("?(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb'))>0?bDiscriminator('pfDeepFlavourJetTags:probc')/(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb')):-1",float,doc="DeepJet c vs b+bb+lepb discriminator",precision=10), + btagDeepFlavQG = Var("?(bDiscriminator('pfDeepFlavourJetTags:probg')+bDiscriminator('pfDeepFlavourJetTags:probuds'))>0?bDiscriminator('pfDeepFlavourJetTags:probg')/(bDiscriminator('pfDeepFlavourJetTags:probg')+bDiscriminator('pfDeepFlavourJetTags:probuds')):-1",float,doc="DeepJet g vs uds discriminator",precision=10), + jetId = Var("userInt('tightId')*2+4*userInt('tightIdLepVeto')",int,doc="Jet ID flag: bit2 is tight, bit3 is tightLepVeto"), + hfsigmaEtaEta = Var("userFloat('hfsigmaEtaEta')",float,doc="sigmaEtaEta for HF jets (noise discriminating variable)",precision=10), + hfsigmaPhiPhi = Var("userFloat('hfsigmaPhiPhi')",float,doc="sigmaPhiPhi for HF jets (noise discriminating variable)",precision=10), + hfcentralEtaStripSize = Var("userInt('hfcentralEtaStripSize')", int, doc="eta size of the central tower strip in HF (noise discriminating variable)"), + hfadjacentEtaStripsSize = Var("userInt('hfadjacentEtaStripsSize')", int, doc="eta size of the strips next to the central tower strip in HF (noise discriminating variable)"), + nConstituents = Var("numberOfDaughters()","uint8",doc="Number of particles in the jet"), + rawFactor = Var("1.-jecFactor('Uncorrected')",float,doc="1 - Factor to get back to raw pT",precision=6), + chHEF = Var("chargedHadronEnergyFraction()", float, doc="charged Hadron Energy Fraction", precision= 6), + neHEF = Var("neutralHadronEnergyFraction()", float, doc="neutral Hadron Energy Fraction", precision= 6), + chEmEF = Var("chargedEmEnergyFraction()", float, doc="charged Electromagnetic Energy Fraction", precision= 6), + neEmEF = Var("neutralEmEnergyFraction()", float, doc="neutral Electromagnetic Energy Fraction", precision= 6), + muEF = Var("muonEnergyFraction()", float, doc="muon Energy Fraction", precision= 6), + ) +) + +#jets are not as precise as muons +jetPuppiTable.variables.pt.precision=10 + +################################################################################ +# JETS FOR MET type1 +################################################################################ +basicJetsPuppiForMetForT1METNano = cms.EDProducer("PATJetCleanerForType1MET", + src = updatedJetsPuppiWithUserData.src, + jetCorrEtaMax = cms.double(9.9), + jetCorrLabel = cms.InputTag("L3Absolute"), + jetCorrLabelRes = cms.InputTag("L2L3Residual"), + offsetCorrLabel = cms.InputTag("L1FastJet"), + skipEM = cms.bool(False), + skipEMfractionThreshold = cms.double(0.9), + skipMuonSelection = cms.string('isGlobalMuon | isStandAloneMuon'), + skipMuons = cms.bool(True), + type1JetPtThreshold = cms.double(0.0), + calcMuonSubtrRawPtAsValueMap = cms.bool(True) +) + +updatedJetsPuppiWithUserData.userFloats.muonSubtrRawPt = cms.InputTag("basicJetsPuppiForMetForT1METNano:MuonSubtrRawPt") + +corrT1METJetPuppiTable = cms.EDProducer("SimpleCandidateFlatTableProducer", + src = finalJetsPuppi.src, + cut = cms.string("pt<15 && abs(eta)<9.9"), + name = cms.string("CorrT1METJet"), + doc = cms.string("Additional low-pt ak4 Puppi jets for Type-1 MET re-correction"), + singleton = cms.bool(False), # the number of entries is variable + extension = cms.bool(False), # this is the main table for the jets + variables = cms.PSet( + rawPt = Var("pt()*jecFactor('Uncorrected')",float,precision=10), + eta = Var("eta", float,precision=12), + phi = Var("phi", float, precision=12), + area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10), + ) +) + +corrT1METJetPuppiTable.variables.muonSubtrFactor = Var("1-userFloat('muonSubtrRawPt')/(pt()*jecFactor('Uncorrected'))",float,doc="1-(muon-subtracted raw pt)/(raw pt)",precision=6) +jetPuppiTable.variables.muonSubtrFactor = Var("1-userFloat('muonSubtrRawPt')/(pt()*jecFactor('Uncorrected'))",float,doc="1-(muon-subtracted raw pt)/(raw pt)",precision=6) + +jetPuppiForMETTask = cms.Task(basicJetsPuppiForMetForT1METNano,corrT1METJetPuppiTable) + +#before cross linking +jetPuppiUserDataTask = cms.Task(tightJetPuppiId, tightJetPuppiIdLepVeto, hfJetPuppiShowerShapeforNanoAOD) + +#before cross linking +jetPuppiTask = cms.Task(jetPuppiCorrFactorsNano,updatedJetsPuppi,jetPuppiUserDataTask,updatedJetsPuppiWithUserData,finalJetsPuppi) + +#after cross linkining +jetPuppiTablesTask = cms.Task(jetPuppiTable) diff --git a/PhysicsTools/NanoAOD/python/jetsAK8_cff.py b/PhysicsTools/NanoAOD/python/jetsAK8_cff.py new file mode 100644 index 0000000000000..e82c8d8a553d2 --- /dev/null +++ b/PhysicsTools/NanoAOD/python/jetsAK8_cff.py @@ -0,0 +1,317 @@ +import FWCore.ParameterSet.Config as cms + +from PhysicsTools.NanoAOD.nano_eras_cff import * +from PhysicsTools.NanoAOD.common_cff import * + +from PhysicsTools.PatAlgos.recoLayer0.jetCorrFactors_cfi import * +# Note: Safe to always add 'L2L3Residual' as MC contains dummy L2L3Residual corrections (always set to 1) +# (cf. https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBookJetEnergyCorrections#CMSSW_7_6_4_and_above ) +jetCorrFactorsAK8 = patJetCorrFactors.clone(src='slimmedJetsAK8', + levels = cms.vstring('L1FastJet', + 'L2Relative', + 'L3Absolute', + 'L2L3Residual'), + payload = cms.string('AK8PFPuppi'), + primaryVertices = cms.InputTag("offlineSlimmedPrimaryVertices"), +) +run2_miniAOD_80XLegacy.toModify(jetCorrFactorsAK8, payload = cms.string('AK8PFchs')) # ak8PFJetsCHS in 2016 80X miniAOD + +from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cfi import * +updatedJetsAK8 = updatedPatJets.clone( + addBTagInfo=False, + jetSource='slimmedJetsAK8', + jetCorrFactorsSource=cms.VInputTag(cms.InputTag("jetCorrFactorsAK8") ), +) + +# +# JetID +# +looseJetIdAK8 = cms.EDProducer("PatJetIDValueMapProducer", + filterParams=cms.PSet( + version = cms.string('WINTER16'), + quality = cms.string('LOOSE'), + ), + src = cms.InputTag("updatedJetsAK8") +) +tightJetIdAK8 = cms.EDProducer("PatJetIDValueMapProducer", + filterParams=cms.PSet( + version = cms.string('RUN2ULPUPPI'), + quality = cms.string('TIGHT'), + ), + src = cms.InputTag("updatedJetsAK8") +) +tightJetIdLepVetoAK8 = cms.EDProducer("PatJetIDValueMapProducer", + filterParams=cms.PSet( + version = cms.string('RUN2ULPUPPI'), + quality = cms.string('TIGHTLEPVETO'), + ), + src = cms.InputTag("updatedJetsAK8") +) + +run2_jme_2016.toModify( tightJetIdAK8.filterParams, version = "RUN2UL16PUPPI" ) +run2_jme_2016.toModify( tightJetIdLepVetoAK8.filterParams, version = "RUN2UL16PUPPI" ) +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: + modifier.toModify( tightJetIdAK8.filterParams, version = "WINTER16" ) + modifier.toModify( tightJetIdLepVetoAK8.filterParams, version = "WINTER16" ) +for modifier in run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2: + modifier.toModify( tightJetIdAK8.filterParams, version = "WINTER17PUPPI" ) + modifier.toModify( tightJetIdLepVetoAK8.filterParams, version = "WINTER17PUPPI" ) +run2_nanoAOD_102Xv1.toModify( tightJetIdAK8.filterParams, version = "SUMMER18PUPPI" ) +run2_nanoAOD_102Xv1.toModify( tightJetIdLepVetoAK8.filterParams, version = "SUMMER18PUPPI" ) + +updatedJetsAK8WithUserData = cms.EDProducer("PATJetUserDataEmbedder", + src = cms.InputTag("updatedJetsAK8"), + userFloats = cms.PSet(), + userInts = cms.PSet( + tightId = cms.InputTag("tightJetIdAK8"), + tightIdLepVeto = cms.InputTag("tightJetIdLepVetoAK8"), + ), +) +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: + modifier.toModify(updatedJetsAK8WithUserData.userInts, + looseId = cms.InputTag("looseJetIdAK8"), + ) + + +finalJetsAK8 = cms.EDFilter("PATJetRefSelector", + src = cms.InputTag("updatedJetsAK8WithUserData"), + cut = cms.string("pt > 170") +) + + +lepInAK8JetVars = cms.EDProducer("LepInJetProducer", + src = cms.InputTag("updatedJetsAK8WithUserData"), + srcEle = cms.InputTag("finalElectrons"), + srcMu = cms.InputTag("finalMuons") +) + +fatJetTable = cms.EDProducer("SimpleCandidateFlatTableProducer", + src = cms.InputTag("finalJetsAK8"), + cut = cms.string(" pt > 170"), #probably already applied in miniaod + name = cms.string("FatJet"), + doc = cms.string("slimmedJetsAK8, i.e. ak8 fat jets for boosted analysis"), + singleton = cms.bool(False), # the number of entries is variable + extension = cms.bool(False), # this is the main table for the jets + variables = cms.PSet(P4Vars, + jetId = Var("userInt('tightId')*2+4*userInt('tightIdLepVeto')",int,doc="Jet ID flags bit1 is loose (always false in 2017 since it does not exist), bit2 is tight, bit3 is tightLepVeto"), + area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10), + rawFactor = Var("1.-jecFactor('Uncorrected')",float,doc="1 - Factor to get back to raw pT",precision=6), + tau1 = Var("userFloat('NjettinessAK8Puppi:tau1')",float, doc="Nsubjettiness (1 axis)",precision=10), + tau2 = Var("userFloat('NjettinessAK8Puppi:tau2')",float, doc="Nsubjettiness (2 axis)",precision=10), + tau3 = Var("userFloat('NjettinessAK8Puppi:tau3')",float, doc="Nsubjettiness (3 axis)",precision=10), + tau4 = Var("userFloat('NjettinessAK8Puppi:tau4')",float, doc="Nsubjettiness (4 axis)",precision=10), + n2b1 = Var("?hasUserFloat('nb1AK8PuppiSoftDrop:ecfN2')?userFloat('nb1AK8PuppiSoftDrop:ecfN2'):-99999.", float, doc="N2 with beta=1 (for jets with raw pT>250 GeV)", precision=10), + n3b1 = Var("?hasUserFloat('nb1AK8PuppiSoftDrop:ecfN3')?userFloat('nb1AK8PuppiSoftDrop:ecfN3'):-99999.", float, doc="N3 with beta=1 (for jets with raw pT>250 GeV)", precision=10), + msoftdrop = Var("groomedMass('SoftDropPuppi')",float, doc="Corrected soft drop mass with PUPPI",precision=10), + btagDeepB = Var("?(bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb'))>=0?bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb'):-1",float,doc="DeepCSV b+bb tag discriminator",precision=10), + btagCSVV2 = Var("bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",float,doc=" pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)",precision=10), + btagHbb = Var("bDiscriminator('pfBoostedDoubleSecondaryVertexAK8BJetTags')",float,doc="Higgs to BB tagger discriminator",precision=10), + btagDDBvLV2 = Var("bDiscriminator('pfMassIndependentDeepDoubleBvLV2JetTags:probHbb')",float,doc="DeepDoubleX V2(mass-decorrelated) discriminator for H(Z)->bb vs QCD",precision=10), + btagDDCvLV2 = Var("bDiscriminator('pfMassIndependentDeepDoubleCvLV2JetTags:probHcc')",float,doc="DeepDoubleX V2 (mass-decorrelated) discriminator for H(Z)->cc vs QCD",precision=10), + btagDDCvBV2 = Var("bDiscriminator('pfMassIndependentDeepDoubleCvBV2JetTags:probHcc')",float,doc="DeepDoubleX V2 (mass-decorrelated) discriminator for H(Z)->cc vs H(Z)->bb",precision=10), + deepTag_TvsQCD = Var("bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:TvsQCD')",float,doc="DeepBoostedJet tagger top vs QCD discriminator",precision=10), + deepTag_WvsQCD = Var("bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:WvsQCD')",float,doc="DeepBoostedJet tagger W vs QCD discriminator",precision=10), + deepTag_ZvsQCD = Var("bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:ZvsQCD')",float,doc="DeepBoostedJet tagger Z vs QCD discriminator",precision=10), + deepTag_H = Var("bDiscriminator('pfDeepBoostedJetTags:probHbb')+bDiscriminator('pfDeepBoostedJetTags:probHcc')+bDiscriminator('pfDeepBoostedJetTags:probHqqqq')",float,doc="DeepBoostedJet tagger H(bb,cc,4q) sum",precision=10), + deepTag_QCD = Var("bDiscriminator('pfDeepBoostedJetTags:probQCDbb')+bDiscriminator('pfDeepBoostedJetTags:probQCDcc')+bDiscriminator('pfDeepBoostedJetTags:probQCDb')+bDiscriminator('pfDeepBoostedJetTags:probQCDc')+bDiscriminator('pfDeepBoostedJetTags:probQCDothers')",float,doc="DeepBoostedJet tagger QCD(bb,cc,b,c,others) sum",precision=10), + deepTag_QCDothers = Var("bDiscriminator('pfDeepBoostedJetTags:probQCDothers')",float,doc="DeepBoostedJet tagger QCDothers value",precision=10), + deepTagMD_TvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:TvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger top vs QCD discriminator",precision=10), + deepTagMD_WvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:WvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger W vs QCD discriminator",precision=10), + deepTagMD_ZvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z vs QCD discriminator",precision=10), + deepTagMD_ZHbbvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZHbbvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z/H->bb vs QCD discriminator",precision=10), + deepTagMD_ZbbvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZbbvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z->bb vs QCD discriminator",precision=10), + deepTagMD_HbbvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:HbbvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger H->bb vs QCD discriminator",precision=10), + deepTagMD_ZHccvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZHccvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z/H->cc vs QCD discriminator",precision=10), + deepTagMD_H4qvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:H4qvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger H->4q vs QCD discriminator",precision=10), + deepTagMD_bbvsLight = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:bbvsLight')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z/H/gluon->bb vs light flavour discriminator",precision=10), + deepTagMD_ccvsLight = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ccvsLight')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z/H/gluon->cc vs light flavour discriminator",precision=10), + particleNet_TvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:TvsQCD')",float,doc="ParticleNet tagger top vs QCD discriminator",precision=10), + particleNet_WvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:WvsQCD')",float,doc="ParticleNet tagger W vs QCD discriminator",precision=10), + particleNet_ZvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:ZvsQCD')",float,doc="ParticleNet tagger Z vs QCD discriminator",precision=10), + particleNet_HbbvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:HbbvsQCD')",float,doc="ParticleNet tagger H(->bb) vs QCD discriminator",precision=10), + particleNet_HccvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:HccvsQCD')",float,doc="ParticleNet tagger H(->cc) vs QCD discriminator",precision=10), + particleNet_H4qvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:H4qvsQCD')",float,doc="ParticleNet tagger H(->VV->qqqq) vs QCD discriminator",precision=10), + particleNet_QCD = Var("bDiscriminator('pfParticleNetJetTags:probQCDbb')+bDiscriminator('pfParticleNetJetTags:probQCDcc')+bDiscriminator('pfParticleNetJetTags:probQCDb')+bDiscriminator('pfParticleNetJetTags:probQCDc')+bDiscriminator('pfParticleNetJetTags:probQCDothers')",float,doc="ParticleNet tagger QCD(bb,cc,b,c,others) sum",precision=10), + particleNet_mass = Var("bDiscriminator('pfParticleNetMassRegressionJetTags:mass')",float,doc="ParticleNet mass regression",precision=10), + particleNetMD_Xbb = Var("bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probXbb')",float,doc="Mass-decorrelated ParticleNet tagger raw X->bb score. For X->bb vs QCD tagging, use Xbb/(Xbb+QCD)",precision=10), + particleNetMD_Xcc = Var("bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probXcc')",float,doc="Mass-decorrelated ParticleNet tagger raw X->cc score. For X->cc vs QCD tagging, use Xcc/(Xcc+QCD)",precision=10), + particleNetMD_Xqq = Var("bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probXqq')",float,doc="Mass-decorrelated ParticleNet tagger raw X->qq (uds) score. For X->qq vs QCD tagging, use Xqq/(Xqq+QCD). For W vs QCD tagging, use (Xcc+Xqq)/(Xcc+Xqq+QCD)",precision=10), + particleNetMD_QCD = Var("bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDbb')+bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDcc')+bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDb')+bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDc')+bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDothers')",float,doc="Mass-decorrelated ParticleNet tagger raw QCD score",precision=10), + subJetIdx1 = Var("?nSubjetCollections()>0 && subjets('SoftDropPuppi').size()>0?subjets('SoftDropPuppi')[0].key():-1", int, + doc="index of first subjet"), + subJetIdx2 = Var("?nSubjetCollections()>0 && subjets('SoftDropPuppi').size()>1?subjets('SoftDropPuppi')[1].key():-1", int, + doc="index of second subjet"), + nConstituents = Var("numberOfDaughters()","uint8",doc="Number of particles in the jet"), + ), + externalVariables = cms.PSet( + lsf3 = ExtVar(cms.InputTag("lepInAK8JetVars:lsf3"),float, doc="Lepton Subjet Fraction (3 subjets)",precision=10), + muonIdx3SJ = ExtVar(cms.InputTag("lepInAK8JetVars:muIdx3SJ"),int, doc="index of muon matched to jet"), + electronIdx3SJ = ExtVar(cms.InputTag("lepInAK8JetVars:eleIdx3SJ"),int,doc="index of electron matched to jet"), + ) +) + +### Era dependent customization +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016, run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2, run2_nanoAOD_102Xv1, run2_nanoAOD_106Xv1: + modifier.toModify( fatJetTable.variables.n2b1, expr = cms.string("userFloat('ak8PFJetsPuppiSoftDropValueMap:nb1AK8PuppiSoftDropN2')"),) + modifier.toModify( fatJetTable.variables.n3b1, expr = cms.string("userFloat('ak8PFJetsPuppiSoftDropValueMap:nb1AK8PuppiSoftDropN3')"),) + # Deprecated after 106X + modifier.toModify( fatJetTable.variables, + btagCMVA = Var("bDiscriminator('pfCombinedMVAV2BJetTags')",float,doc="CMVA V2 btag discriminator",precision=10), + btagDDBvL_noMD = Var("bDiscriminator('pfDeepDoubleBvLJetTags:probHbb')",float,doc="DeepDoubleX discriminator (no mass-decorrelation) for H(Z)->bb vs QCD",precision=10), + btagDDCvL_noMD = Var("bDiscriminator('pfDeepDoubleCvLJetTags:probHcc')",float,doc="DeepDoubleX discriminator (no mass-decorrelation) for H(Z)->cc vs QCD",precision=10), + btagDDCvB_noMD = Var("bDiscriminator('pfDeepDoubleCvBJetTags:probHcc')",float,doc="DeepDoubleX discriminator (no mass-decorrelation) for H(Z)->cc vs H(Z)->bb",precision=10), + btagDDBvL = Var("bDiscriminator('pfMassIndependentDeepDoubleBvLJetTags:probHbb')",float,doc="DeepDoubleX (mass-decorrelated) discriminator for H(Z)->bb vs QCD",precision=10), + btagDDCvL = Var("bDiscriminator('pfMassIndependentDeepDoubleCvLJetTags:probHcc')",float,doc="DeepDoubleX (mass-decorrelated) discriminator for H(Z)->cc vs QCD",precision=10), + btagDDCvB = Var("bDiscriminator('pfMassIndependentDeepDoubleCvBJetTags:probHcc')",float,doc="DeepDoubleX (mass-decorrelated) discriminator for H(Z)->cc vs H(Z)->bb",precision=10), + ) +run2_miniAOD_80XLegacy.toModify( fatJetTable.variables, msoftdrop_chs = Var("userFloat('ak8PFJetsCHSSoftDropMass')",float, doc="Legacy uncorrected soft drop mass with CHS",precision=10)) +run2_miniAOD_80XLegacy.toModify( fatJetTable.variables.tau1, expr = cms.string("userFloat(\'ak8PFJetsPuppiValueMap:NjettinessAK8PuppiTau1\')"),) +run2_miniAOD_80XLegacy.toModify( fatJetTable.variables.tau2, expr = cms.string("userFloat(\'ak8PFJetsPuppiValueMap:NjettinessAK8PuppiTau2\')"),) +run2_miniAOD_80XLegacy.toModify( fatJetTable.variables.tau3, expr = cms.string("userFloat(\'ak8PFJetsPuppiValueMap:NjettinessAK8PuppiTau3\')"),) +run2_miniAOD_80XLegacy.toModify( fatJetTable.variables, tau4 = None) +run2_miniAOD_80XLegacy.toModify( fatJetTable.variables, n2b1 = None) +run2_miniAOD_80XLegacy.toModify( fatJetTable.variables, n3b1 = None) +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: + modifier.toModify( fatJetTable.variables, jetId = Var("userInt('tightId')*2+userInt('looseId')",int,doc="Jet ID flags bit1 is loose, bit2 is tight")) + +############################################################## +## DeepInfoAK8:Start +## - To be used in nanoAOD_customizeCommon() in nano_cff.py +############################################################### +from PhysicsTools.PatAlgos.tools.jetTools import updateJetCollection +def nanoAOD_addDeepInfoAK8(process, addDeepBTag, addDeepBoostedJet, addDeepDoubleX, addDeepDoubleXV2, addParticleNet, addParticleNetMass, jecPayload): + _btagDiscriminators=[] + if addDeepBTag: + print("Updating process to run DeepCSV btag to AK8 jets") + _btagDiscriminators += ['pfDeepCSVJetTags:probb','pfDeepCSVJetTags:probbb'] + if addDeepBoostedJet: + print("Updating process to run DeepBoostedJet on datasets before 103X") + from RecoBTag.ONNXRuntime.pfDeepBoostedJet_cff import _pfDeepBoostedJetTagsAll as pfDeepBoostedJetTagsAll + _btagDiscriminators += pfDeepBoostedJetTagsAll + if addParticleNet: + print("Updating process to run ParticleNet before it's included in MiniAOD") + from RecoBTag.ONNXRuntime.pfParticleNet_cff import _pfParticleNetJetTagsAll as pfParticleNetJetTagsAll + _btagDiscriminators += pfParticleNetJetTagsAll + if addParticleNetMass: + from RecoBTag.ONNXRuntime.pfParticleNet_cff import _pfParticleNetMassRegressionOutputs + _btagDiscriminators += _pfParticleNetMassRegressionOutputs + if addDeepDoubleX: + print("Updating process to run DeepDoubleX on datasets before 104X") + _btagDiscriminators += ['pfDeepDoubleBvLJetTags:probHbb', \ + 'pfDeepDoubleCvLJetTags:probHcc', \ + 'pfDeepDoubleCvBJetTags:probHcc', \ + 'pfMassIndependentDeepDoubleBvLJetTags:probHbb', 'pfMassIndependentDeepDoubleCvLJetTags:probHcc', 'pfMassIndependentDeepDoubleCvBJetTags:probHcc'] + if addDeepDoubleXV2: + print("Updating process to run DeepDoubleXv2 on datasets before 11X") + _btagDiscriminators += [ + 'pfMassIndependentDeepDoubleBvLV2JetTags:probHbb', + 'pfMassIndependentDeepDoubleCvLV2JetTags:probHcc', + 'pfMassIndependentDeepDoubleCvBV2JetTags:probHcc' + ] + if len(_btagDiscriminators)==0: return process + print("Will recalculate the following discriminators on AK8 jets: "+", ".join(_btagDiscriminators)) + updateJetCollection( + process, + jetSource = cms.InputTag('slimmedJetsAK8'), + pvSource = cms.InputTag('offlineSlimmedPrimaryVertices'), + svSource = cms.InputTag('slimmedSecondaryVertices'), + rParam = 0.8, + jetCorrections = (jecPayload.value(), cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute', 'L2L3Residual']), 'None'), + btagDiscriminators = _btagDiscriminators, + postfix='AK8WithDeepInfo', + printWarning = False + ) + process.jetCorrFactorsAK8.src="selectedUpdatedPatJetsAK8WithDeepInfo" + process.updatedJetsAK8.jetSource="selectedUpdatedPatJetsAK8WithDeepInfo" + return process + +nanoAOD_addDeepInfoAK8_switch = cms.PSet( + nanoAOD_addDeepBTag_switch = cms.untracked.bool(False), + nanoAOD_addDeepBoostedJet_switch = cms.untracked.bool(False), + nanoAOD_addDeepDoubleX_switch = cms.untracked.bool(False), + nanoAOD_addDeepDoubleXV2_switch = cms.untracked.bool(False), + nanoAOD_addParticleNet_switch = cms.untracked.bool(False), + nanoAOD_addParticleNetMass_switch = cms.untracked.bool(False), + jecPayload = cms.untracked.string('AK8PFPuppi') +) +# deepAK8 should not run on 80X, that contains ak8PFJetsCHS jets +run2_miniAOD_80XLegacy.toModify(nanoAOD_addDeepInfoAK8_switch, + nanoAOD_addDeepBTag_switch = True, + jecPayload = 'AK8PFchs' +) +# for 94X and 102X samples: needs to run DeepAK8, DeepDoubleX and ParticleNet +(run2_nanoAOD_94X2016 | run2_nanoAOD_94XMiniAODv1 | run2_nanoAOD_94XMiniAODv2 | run2_nanoAOD_102Xv1).toModify( + nanoAOD_addDeepInfoAK8_switch, + nanoAOD_addDeepBoostedJet_switch = True, + nanoAOD_addDeepDoubleX_switch = True, + nanoAOD_addDeepDoubleXV2_switch = True, + nanoAOD_addParticleNet_switch = True, + nanoAOD_addParticleNetMass_switch = True, +) +# for 106Xv1: only needs to run ParticleNet and DDXV2; DeepAK8, DeepDoubleX are already in MiniAOD +run2_nanoAOD_106Xv1.toModify( + nanoAOD_addDeepInfoAK8_switch, + nanoAOD_addDeepDoubleXV2_switch = True, + nanoAOD_addParticleNet_switch = True, + nanoAOD_addParticleNetMass_switch = True, +) +# for 106Xv2: only needs to run ParticleNet Mass regression; The rest are already in MiniAOD +run2_nanoAOD_106Xv2.toModify( + nanoAOD_addDeepInfoAK8_switch, + nanoAOD_addParticleNetMass_switch = True, +) +################################################ +## DeepInfoAK8:End +################################################# + +subJetTable = cms.EDProducer("SimpleCandidateFlatTableProducer", + src = cms.InputTag("slimmedJetsAK8PFPuppiSoftDropPacked","SubJets"), + cut = cms.string(""), #probably already applied in miniaod + name = cms.string("SubJet"), + doc = cms.string("slimmedJetsAK8, i.e. ak8 fat jets for boosted analysis"), + singleton = cms.bool(False), # the number of entries is variable + extension = cms.bool(False), # this is the main table for the jets + variables = cms.PSet(P4Vars, + btagDeepB = Var("bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb')",float,doc="DeepCSV b+bb tag discriminator",precision=10), + btagCSVV2 = Var("bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",float,doc=" pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)",precision=10), + rawFactor = Var("1.-jecFactor('Uncorrected')",float,doc="1 - Factor to get back to raw pT",precision=6), + tau1 = Var("userFloat('NjettinessAK8Subjets:tau1')",float, doc="Nsubjettiness (1 axis)",precision=10), + tau2 = Var("userFloat('NjettinessAK8Subjets:tau2')",float, doc="Nsubjettiness (2 axis)",precision=10), + tau3 = Var("userFloat('NjettinessAK8Subjets:tau3')",float, doc="Nsubjettiness (3 axis)",precision=10), + tau4 = Var("userFloat('NjettinessAK8Subjets:tau4')",float, doc="Nsubjettiness (4 axis)",precision=10), + n2b1 = Var("userFloat('nb1AK8PuppiSoftDropSubjets:ecfN2')", float, doc="N2 with beta=1", precision=10), + n3b1 = Var("userFloat('nb1AK8PuppiSoftDropSubjets:ecfN3')", float, doc="N3 with beta=1", precision=10), + ) +) + +# Deprecation/backcomp +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016, run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2, run2_nanoAOD_102Xv1, run2_nanoAOD_106Xv1: + # post 106X + modifier.toModify(subJetTable.variables, + btagCMVA = Var("bDiscriminator('pfCombinedMVAV2BJetTags')",float,doc="CMVA V2 btag discriminator",precision=10), + ) + +#jets are not as precise as muons +fatJetTable.variables.pt.precision=10 +subJetTable.variables.pt.precision=10 + +run2_miniAOD_80XLegacy.toModify( subJetTable.variables, tau1 = None) +run2_miniAOD_80XLegacy.toModify( subJetTable.variables, tau2 = None) +run2_miniAOD_80XLegacy.toModify( subJetTable.variables, tau3 = None) +run2_miniAOD_80XLegacy.toModify( subJetTable.variables, tau4 = None) +run2_miniAOD_80XLegacy.toModify( subJetTable.variables, n2b1 = None) +run2_miniAOD_80XLegacy.toModify( subJetTable.variables, n3b1 = None) +run2_miniAOD_80XLegacy.toModify( subJetTable.variables, btagCMVA = None, btagDeepB = None) + +jetAK8UserDataTask = cms.Task(tightJetIdAK8,tightJetIdLepVetoAK8) +_jetAK8UserDataTask2016 = jetAK8UserDataTask.copy() +_jetAK8UserDataTask2016.add(looseJetIdAK8) +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: + modifier.toReplaceWith(jetAK8UserDataTask,_jetAK8UserDataTask2016) + +jetAK8Task = cms.Task(jetCorrFactorsAK8,updatedJetsAK8,jetAK8UserDataTask,updatedJetsAK8WithUserData,finalJetsAK8) + +#after lepton collections have been run +jetAK8LepTask = cms.Task(lepInAK8JetVars) + +jetAK8TablesTask = cms.Task(fatJetTable,subJetTable) diff --git a/PhysicsTools/NanoAOD/python/jets_cff.py b/PhysicsTools/NanoAOD/python/jets_cff.py deleted file mode 100644 index 91c4c93b25292..0000000000000 --- a/PhysicsTools/NanoAOD/python/jets_cff.py +++ /dev/null @@ -1,615 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from PhysicsTools.NanoAOD.nano_eras_cff import * -from PhysicsTools.NanoAOD.common_cff import * - -##################### User floats producers, selectors ########################## - -from PhysicsTools.PatAlgos.recoLayer0.jetCorrFactors_cfi import * -# Note: Safe to always add 'L2L3Residual' as MC contains dummy L2L3Residual corrections (always set to 1) -# (cf. https://twiki.cern.ch/twiki/bin/view/CMSPublic/WorkBookJetEnergyCorrections#CMSSW_7_6_4_and_above ) -jetCorrFactorsNano = patJetCorrFactors.clone(src='slimmedJets', - levels = cms.vstring('L1FastJet', - 'L2Relative', - 'L3Absolute', - 'L2L3Residual'), - primaryVertices = cms.InputTag("offlineSlimmedPrimaryVertices"), -) -jetCorrFactorsAK8 = patJetCorrFactors.clone(src='slimmedJetsAK8', - levels = cms.vstring('L1FastJet', - 'L2Relative', - 'L3Absolute', - 'L2L3Residual'), - payload = cms.string('AK8PFPuppi'), - primaryVertices = cms.InputTag("offlineSlimmedPrimaryVertices"), -) -run2_miniAOD_80XLegacy.toModify(jetCorrFactorsAK8, payload = cms.string('AK8PFchs')) # ak8PFJetsCHS in 2016 80X miniAOD - -from PhysicsTools.PatAlgos.producersLayer1.jetUpdater_cfi import * - -updatedJets = updatedPatJets.clone( - addBTagInfo=False, - jetSource='slimmedJets', - jetCorrFactorsSource=cms.VInputTag(cms.InputTag("jetCorrFactorsNano") ), -) - -updatedJetsAK8 = updatedPatJets.clone( - addBTagInfo=False, - jetSource='slimmedJetsAK8', - jetCorrFactorsSource=cms.VInputTag(cms.InputTag("jetCorrFactorsAK8") ), -) - - -looseJetId = cms.EDProducer("PatJetIDValueMapProducer", - filterParams=cms.PSet( - version = cms.string('WINTER16'), - quality = cms.string('LOOSE'), - ), - src = cms.InputTag("updatedJets") -) -tightJetId = cms.EDProducer("PatJetIDValueMapProducer", - filterParams=cms.PSet( - version = cms.string('RUN2ULCHS'), - quality = cms.string('TIGHT'), - ), - src = cms.InputTag("updatedJets") -) -tightJetIdLepVeto = cms.EDProducer("PatJetIDValueMapProducer", - filterParams=cms.PSet( - version = cms.string('RUN2ULCHS'), - quality = cms.string('TIGHTLEPVETO'), - ), - src = cms.InputTag("updatedJets") -) -run2_jme_2016.toModify( tightJetId.filterParams, version = "RUN2UL16CHS" ) -run2_jme_2016.toModify( tightJetIdLepVeto.filterParams, version = "RUN2UL16CHS" ) -for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: - modifier.toModify( tightJetId.filterParams, version = "WINTER16" ) - modifier.toModify( tightJetIdLepVeto.filterParams, version = "WINTER16" ) -for modifier in run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2: - modifier.toModify( tightJetId.filterParams, version = "WINTER17" ) - modifier.toModify( tightJetIdLepVeto.filterParams, version = "WINTER17" ) -run2_nanoAOD_102Xv1.toModify( tightJetId.filterParams, version = "SUMMER18" ) -run2_nanoAOD_102Xv1.toModify( tightJetIdLepVeto.filterParams, version = "SUMMER18" ) - - -looseJetIdAK8 = cms.EDProducer("PatJetIDValueMapProducer", - filterParams=cms.PSet( - version = cms.string('WINTER16'), - quality = cms.string('LOOSE'), - ), - src = cms.InputTag("updatedJetsAK8") -) -tightJetIdAK8 = cms.EDProducer("PatJetIDValueMapProducer", - filterParams=cms.PSet( - version = cms.string('RUN2ULPUPPI'), - quality = cms.string('TIGHT'), - ), - src = cms.InputTag("updatedJetsAK8") -) -tightJetIdLepVetoAK8 = cms.EDProducer("PatJetIDValueMapProducer", - filterParams=cms.PSet( - version = cms.string('RUN2ULPUPPI'), - quality = cms.string('TIGHTLEPVETO'), - ), - src = cms.InputTag("updatedJetsAK8") -) -run2_jme_2016.toModify( tightJetIdAK8.filterParams, version = "RUN2UL16PUPPI" ) -run2_jme_2016.toModify( tightJetIdLepVetoAK8.filterParams, version = "RUN2UL16PUPPI" ) -for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: - modifier.toModify( tightJetIdAK8.filterParams, version = "WINTER16" ) - modifier.toModify( tightJetIdLepVetoAK8.filterParams, version = "WINTER16" ) -for modifier in run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2: - modifier.toModify( tightJetIdAK8.filterParams, version = "WINTER17PUPPI" ) - modifier.toModify( tightJetIdLepVetoAK8.filterParams, version = "WINTER17PUPPI" ) -run2_nanoAOD_102Xv1.toModify( tightJetIdAK8.filterParams, version = "SUMMER18PUPPI" ) -run2_nanoAOD_102Xv1.toModify( tightJetIdLepVetoAK8.filterParams, version = "SUMMER18PUPPI" ) - - -bJetVars = cms.EDProducer("JetRegressionVarProducer", - pvsrc = cms.InputTag("offlineSlimmedPrimaryVertices"), - src = cms.InputTag("updatedJets"), - svsrc = cms.InputTag("slimmedSecondaryVertices"), - gpsrc = cms.InputTag("prunedGenParticles"), - #musrc = cms.InputTag("slimmedMuons"), - #elesrc = cms.InputTag("slimmedElectrons") -) - -jercVars = cms.EDProducer("BetaStarPackedCandidateVarProducer", - srcJet = cms.InputTag("updatedJets"), - srcPF = cms.InputTag("packedPFCandidates"), - maxDR = cms.double(0.4) -) - -updatedJetsWithUserData = cms.EDProducer("PATJetUserDataEmbedder", - src = cms.InputTag("updatedJets"), - userFloats = cms.PSet( - leadTrackPt = cms.InputTag("bJetVars:leadTrackPt"), - leptonPtRel = cms.InputTag("bJetVars:leptonPtRel"), - leptonPtRatio = cms.InputTag("bJetVars:leptonPtRatio"), - leptonPtRelInv = cms.InputTag("bJetVars:leptonPtRelInv"), - leptonPtRelv0 = cms.InputTag("bJetVars:leptonPtRelv0"), - leptonPtRatiov0 = cms.InputTag("bJetVars:leptonPtRatiov0"), - leptonPtRelInvv0 = cms.InputTag("bJetVars:leptonPtRelInvv0"), - leptonDeltaR = cms.InputTag("bJetVars:leptonDeltaR"), - leptonPt = cms.InputTag("bJetVars:leptonPt"), - vtxPt = cms.InputTag("bJetVars:vtxPt"), - vtxMass = cms.InputTag("bJetVars:vtxMass"), - vtx3dL = cms.InputTag("bJetVars:vtx3dL"), - vtx3deL = cms.InputTag("bJetVars:vtx3deL"), - ptD = cms.InputTag("bJetVars:ptD"), - genPtwNu = cms.InputTag("bJetVars:genPtwNu"), - qgl = cms.InputTag('qgtagger:qgLikelihood'), - puIdNanoDisc = cms.InputTag('pileupJetIdNano:fullDiscriminant'), - chFPV0EF = cms.InputTag("jercVars:chargedFromPV0EnergyFraction"), - ), - userInts = cms.PSet( - tightId = cms.InputTag("tightJetId"), - tightIdLepVeto = cms.InputTag("tightJetIdLepVeto"), - vtxNtrk = cms.InputTag("bJetVars:vtxNtrk"), - leptonPdgId = cms.InputTag("bJetVars:leptonPdgId"), - puIdNanoId = cms.InputTag('pileupJetIdNano:fullId'), - ), -) -for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: - modifier.toModify(updatedJetsWithUserData.userInts, - looseId = cms.InputTag("looseJetId"), - ) - -updatedJetsAK8WithUserData = cms.EDProducer("PATJetUserDataEmbedder", - src = cms.InputTag("updatedJetsAK8"), - userInts = cms.PSet( - tightId = cms.InputTag("tightJetIdAK8"), - tightIdLepVeto = cms.InputTag("tightJetIdLepVetoAK8"), - ), -) -for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: - modifier.toModify(updatedJetsAK8WithUserData.userInts, - looseId = cms.InputTag("looseJetIdAK8"), - ) - - -finalJets = cms.EDFilter("PATJetRefSelector", - src = cms.InputTag("updatedJetsWithUserData"), - cut = cms.string("pt > 15") -) - -finalJetsAK8 = cms.EDFilter("PATJetRefSelector", - src = cms.InputTag("updatedJetsAK8WithUserData"), - cut = cms.string("pt > 170") -) - -lepInJetVars = cms.EDProducer("LepInJetProducer", - src = cms.InputTag("updatedJetsAK8WithUserData"), - srcEle = cms.InputTag("finalElectrons"), - srcMu = cms.InputTag("finalMuons") -) - - -##################### Tables for final output and docs ########################## - - -jetTable = cms.EDProducer("SimpleCandidateFlatTableProducer", - src = cms.InputTag("linkedObjects","jets"), - cut = cms.string(""), #we should not filter on cross linked collections - name = cms.string("Jet"), - doc = cms.string("slimmedJets, i.e. ak4 PFJets CHS with JECs applied, after basic selection (" + finalJets.cut.value()+")"), - singleton = cms.bool(False), # the number of entries is variable - extension = cms.bool(False), # this is the main table for the jets - externalVariables = cms.PSet( - bRegCorr = ExtVar(cms.InputTag("bjetNN:corr"),float, doc="pt correction for b-jet energy regression",precision=10), - bRegRes = ExtVar(cms.InputTag("bjetNN:res"),float, doc="res on pt corrected with b-jet regression",precision=6), - cRegCorr = ExtVar(cms.InputTag("cjetNN:corr"),float, doc="pt correction for c-jet energy regression",precision=10), - cRegRes = ExtVar(cms.InputTag("cjetNN:res"),float, doc="res on pt corrected with c-jet regression",precision=6), - ), - variables = cms.PSet(P4Vars, - area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10), - nMuons = Var("?hasOverlaps('muons')?overlaps('muons').size():0", int, doc="number of muons in the jet"), - muonIdx1 = Var("?overlaps('muons').size()>0?overlaps('muons')[0].key():-1", int, doc="index of first matching muon"), - muonIdx2 = Var("?overlaps('muons').size()>1?overlaps('muons')[1].key():-1", int, doc="index of second matching muon"), - electronIdx1 = Var("?overlaps('electrons').size()>0?overlaps('electrons')[0].key():-1", int, doc="index of first matching electron"), - electronIdx2 = Var("?overlaps('electrons').size()>1?overlaps('electrons')[1].key():-1", int, doc="index of second matching electron"), - nElectrons = Var("?hasOverlaps('electrons')?overlaps('electrons').size():0", int, doc="number of electrons in the jet"), - btagDeepB = Var("?(bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb'))>=0?bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb'):-1",float,doc="DeepCSV b+bb tag discriminator",precision=10), - btagDeepFlavB = Var("bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb')",float,doc="DeepJet b+bb+lepb tag discriminator",precision=10), - btagCSVV2 = Var("bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",float,doc=" pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)",precision=10), - btagDeepCvL = Var("?bDiscriminator('pfDeepCSVJetTags:probc')>=0?bDiscriminator('pfDeepCSVJetTags:probc')/(bDiscriminator('pfDeepCSVJetTags:probc')+bDiscriminator('pfDeepCSVJetTags:probudsg')):-1", float,doc="DeepCSV c vs udsg discriminator",precision=10), - btagDeepCvB = Var("?bDiscriminator('pfDeepCSVJetTags:probc')>=0?bDiscriminator('pfDeepCSVJetTags:probc')/(bDiscriminator('pfDeepCSVJetTags:probc')+bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb')):-1",float,doc="DeepCSV c vs b+bb discriminator",precision=10), - btagDeepFlavCvL = Var("?(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probuds')+bDiscriminator('pfDeepFlavourJetTags:probg'))>0?bDiscriminator('pfDeepFlavourJetTags:probc')/(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probuds')+bDiscriminator('pfDeepFlavourJetTags:probg')):-1",float,doc="DeepJet c vs uds+g discriminator",precision=10), - btagDeepFlavCvB = Var("?(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb'))>0?bDiscriminator('pfDeepFlavourJetTags:probc')/(bDiscriminator('pfDeepFlavourJetTags:probc')+bDiscriminator('pfDeepFlavourJetTags:probb')+bDiscriminator('pfDeepFlavourJetTags:probbb')+bDiscriminator('pfDeepFlavourJetTags:problepb')):-1",float,doc="DeepJet c vs b+bb+lepb discriminator",precision=10), - btagDeepFlavQG = Var("?(bDiscriminator('pfDeepFlavourJetTags:probg')+bDiscriminator('pfDeepFlavourJetTags:probuds'))>0?bDiscriminator('pfDeepFlavourJetTags:probg')/(bDiscriminator('pfDeepFlavourJetTags:probg')+bDiscriminator('pfDeepFlavourJetTags:probuds')):-1",float,doc="DeepJet g vs uds discriminator",precision=10), - puIdDisc = Var("userFloat('puIdNanoDisc')", float,doc="Pileup ID discriminant with 106X (2018) training",precision=10), - puId = Var("userInt('puIdNanoId')", int,doc="Pileup ID flags with 106X (2018) training"), - jetId = Var("userInt('tightId')*2+4*userInt('tightIdLepVeto')",int,doc="Jet ID flags bit1 is loose (always false in 2017 since it does not exist), bit2 is tight, bit3 is tightLepVeto"), - qgl = Var("?userFloat('qgl')>0?userFloat('qgl'):-1",float,doc="Quark vs Gluon likelihood discriminator",precision=10), - hfsigmaEtaEta = Var("userFloat('hfJetShowerShape:sigmaEtaEta')",float,doc="sigmaEtaEta for HF jets (noise discriminating variable)",precision=10), - hfsigmaPhiPhi = Var("userFloat('hfJetShowerShape:sigmaPhiPhi')",float,doc="sigmaPhiPhi for HF jets (noise discriminating variable)",precision=10), - hfcentralEtaStripSize = Var("userInt('hfJetShowerShape:centralEtaStripSize')", int, doc="eta size of the central tower strip in HF (noise discriminating variable) "), - hfadjacentEtaStripsSize = Var("userInt('hfJetShowerShape:adjacentEtaStripsSize')", int, doc="eta size of the strips next to the central tower strip in HF (noise discriminating variable) "), - nConstituents = Var("numberOfDaughters()","uint8",doc="Number of particles in the jet"), - rawFactor = Var("1.-jecFactor('Uncorrected')",float,doc="1 - Factor to get back to raw pT",precision=6), - chHEF = Var("chargedHadronEnergyFraction()", float, doc="charged Hadron Energy Fraction", precision= 6), - neHEF = Var("neutralHadronEnergyFraction()", float, doc="neutral Hadron Energy Fraction", precision= 6), - chEmEF = Var("chargedEmEnergyFraction()", float, doc="charged Electromagnetic Energy Fraction", precision= 6), - neEmEF = Var("neutralEmEnergyFraction()", float, doc="neutral Electromagnetic Energy Fraction", precision= 6), - muEF = Var("muonEnergyFraction()", float, doc="muon Energy Fraction", precision= 6), - chFPV0EF = Var("userFloat('chFPV0EF')", float, doc="charged fromPV==0 Energy Fraction (energy excluded from CHS jets). Previously called betastar.", precision= 6), - ) -) - -#jets are not as precise as muons -jetTable.variables.pt.precision=10 - -### Era dependent customization -for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016, run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2, run2_nanoAOD_102Xv1, run2_nanoAOD_106Xv1: - # Deprecated after 106X - modifier.toModify(jetTable.variables, - btagCMVA = Var("bDiscriminator('pfCombinedMVAV2BJetTags')",float,doc="CMVA V2 btag discriminator",precision=10), - btagDeepC = Var("bDiscriminator('pfDeepCSVJetTags:probc')",float,doc="DeepCSV charm btag discriminator",precision=10), - btagDeepFlavC = Var("bDiscriminator('pfDeepFlavourJetTags:probc')",float,doc="DeepFlavour charm tag discriminator",precision=10), - ) -for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: - modifier.toModify( jetTable.variables, jetId = Var("userInt('tightIdLepVeto')*4+userInt('tightId')*2+userInt('looseId')",int,doc="Jet ID flags bit1 is loose, bit2 is tight, bit3 is tightLepVeto")) - -run2_nanoAOD_102Xv1.toModify( jetTable.variables.puIdDisc, doc="Pileup ID discriminant with 102X (2018) training") -run2_nanoAOD_102Xv1.toModify( jetTable.variables, puId = Var("userInt('pileupJetId:fullId')",int,doc="Pileup ID flags for pre-UL trainings")) -(run2_jme_2016 & ~tracker_apv_vfp30_2016 ).toModify( jetTable.variables.puIdDisc, doc="Pileup ID discriminant with 106X (2016) training") -(run2_jme_2016 & ~tracker_apv_vfp30_2016 ).toModify( jetTable.variables.puId, doc="Pileup ID flags with 106X (2016) training") -(run2_jme_2016 & tracker_apv_vfp30_2016 ).toModify( jetTable.variables.puIdDisc, doc="Pileup ID discriminant with 106X (2016APV) training") -(run2_jme_2016 & tracker_apv_vfp30_2016 ).toModify( jetTable.variables.puId, doc="Pileup ID flags with 106X (2016APV) training") -run2_jme_2017.toModify( jetTable.variables.puIdDisc, doc="Pileup ID discriminant with 106X (2017) training") -run2_jme_2017.toModify( jetTable.variables.puId, doc="Pileup ID flags with 106X (2017) training") -for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: - modifier.toModify( jetTable.variables, puIdDisc = Var("userFloat('pileupJetId:fullDiscriminant')",float,doc="Pileup ID discriminant with 80X (2016) training",precision=10)) - modifier.toModify( jetTable.variables, puId = Var("userInt('pileupJetId:fullId')",int,doc="Pileup ID flags for pre-UL trainings")) -for modifier in run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2: - modifier.toModify( jetTable.variables.puIdDisc, doc="Pileup ID discriminant with 94X (2017) training") - modifier.toModify( jetTable.variables, puId = Var("userInt('pileupJetId:fullId')",int,doc="Pileup ID flags for 2016/2017/2018 EOY trainings")) - -bjetNN= cms.EDProducer("BJetEnergyRegressionMVA", - backend = cms.string("ONNX"), - batch_eval = cms.bool(True), - src = cms.InputTag("linkedObjects","jets"), - pvsrc = cms.InputTag("offlineSlimmedPrimaryVertices"), - svsrc = cms.InputTag("slimmedSecondaryVertices"), - rhosrc = cms.InputTag("fixedGridRhoFastjetAll"), - - weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/breg_training_2018.onnx"), - name = cms.string("JetRegNN"), - isClassifier = cms.bool(False), - variablesOrder = cms.vstring(["Jet_pt","Jet_eta","rho","Jet_mt","Jet_leadTrackPt","Jet_leptonPtRel","Jet_leptonDeltaR","Jet_neHEF", - "Jet_neEmEF","Jet_vtxPt","Jet_vtxMass","Jet_vtx3dL","Jet_vtxNtrk","Jet_vtx3deL", - "Jet_numDaughters_pt03","Jet_energyRing_dR0_em_Jet_rawEnergy","Jet_energyRing_dR1_em_Jet_rawEnergy", - "Jet_energyRing_dR2_em_Jet_rawEnergy","Jet_energyRing_dR3_em_Jet_rawEnergy","Jet_energyRing_dR4_em_Jet_rawEnergy", - "Jet_energyRing_dR0_neut_Jet_rawEnergy","Jet_energyRing_dR1_neut_Jet_rawEnergy","Jet_energyRing_dR2_neut_Jet_rawEnergy", - "Jet_energyRing_dR3_neut_Jet_rawEnergy","Jet_energyRing_dR4_neut_Jet_rawEnergy","Jet_energyRing_dR0_ch_Jet_rawEnergy", - "Jet_energyRing_dR1_ch_Jet_rawEnergy","Jet_energyRing_dR2_ch_Jet_rawEnergy","Jet_energyRing_dR3_ch_Jet_rawEnergy", - "Jet_energyRing_dR4_ch_Jet_rawEnergy","Jet_energyRing_dR0_mu_Jet_rawEnergy","Jet_energyRing_dR1_mu_Jet_rawEnergy", - "Jet_energyRing_dR2_mu_Jet_rawEnergy","Jet_energyRing_dR3_mu_Jet_rawEnergy","Jet_energyRing_dR4_mu_Jet_rawEnergy", - "Jet_chHEF","Jet_chEmEF","Jet_leptonPtRelInv","isEle","isMu","isOther","Jet_mass","Jet_ptd"]), - variables = cms.PSet( - Jet_pt = cms.string("pt*jecFactor('Uncorrected')"), - Jet_mt = cms.string("mt*jecFactor('Uncorrected')"), - Jet_eta = cms.string("eta"), - Jet_mass = cms.string("mass*jecFactor('Uncorrected')"), - Jet_ptd = cms.string("userFloat('ptD')"), - Jet_leadTrackPt = cms.string("userFloat('leadTrackPt')"), - Jet_vtxNtrk = cms.string("userInt('vtxNtrk')"), - Jet_vtxMass = cms.string("userFloat('vtxMass')"), - Jet_vtx3dL = cms.string("userFloat('vtx3dL')"), - Jet_vtx3deL = cms.string("userFloat('vtx3deL')"), - Jet_vtxPt = cms.string("userFloat('vtxPt')"), - #Jet_leptonPt = cms.string("userFloat('leptonPt')"), - Jet_leptonPtRel = cms.string("userFloat('leptonPtRelv0')"), - Jet_leptonPtRelInv = cms.string("userFloat('leptonPtRelInvv0')*jecFactor('Uncorrected')"), - Jet_leptonDeltaR = cms.string("userFloat('leptonDeltaR')"), - #Jet_leptonPdgId = cms.string("userInt('leptonPdgId')"), - Jet_neHEF = cms.string("neutralHadronEnergyFraction()"), - Jet_neEmEF = cms.string("neutralEmEnergyFraction()"), - Jet_chHEF = cms.string("chargedHadronEnergyFraction()"), - Jet_chEmEF = cms.string("chargedEmEnergyFraction()"), - isMu = cms.string("?abs(userInt('leptonPdgId'))==13?1:0"), - isEle = cms.string("?abs(userInt('leptonPdgId'))==11?1:0"), - isOther = cms.string("?userInt('leptonPdgId')==0?1:0"), - ), - inputTensorName = cms.string("ffwd_inp:0"), - outputTensorName = cms.string("ffwd_out/BiasAdd:0"), - outputNames = cms.vstring(["corr","res"]), - outputFormulas = cms.vstring(["at(0)*0.27912887930870056+1.0545977354049683","0.5*(at(2)-at(1))*0.27912887930870056"]), -) - -cjetNN= cms.EDProducer("BJetEnergyRegressionMVA", - backend = cms.string("ONNX"), - batch_eval = cms.bool(True), - - src = cms.InputTag("linkedObjects","jets"), - pvsrc = cms.InputTag("offlineSlimmedPrimaryVertices"), - svsrc = cms.InputTag("slimmedSecondaryVertices"), - rhosrc = cms.InputTag("fixedGridRhoFastjetAll"), - - weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/creg_training_2018.onnx"), - name = cms.string("JetRegNN"), - isClassifier = cms.bool(False), - variablesOrder = cms.vstring(["Jet_pt","Jet_eta","rho","Jet_mt","Jet_leadTrackPt","Jet_leptonPtRel","Jet_leptonDeltaR", - "Jet_neHEF","Jet_neEmEF","Jet_vtxPt","Jet_vtxMass","Jet_vtx3dL","Jet_vtxNtrk","Jet_vtx3deL", - "Jet_numDaughters_pt03","Jet_chEmEF","Jet_chHEF", "Jet_ptd","Jet_mass", - "Jet_energyRing_dR0_em_Jet_rawEnergy","Jet_energyRing_dR1_em_Jet_rawEnergy", - "Jet_energyRing_dR2_em_Jet_rawEnergy","Jet_energyRing_dR3_em_Jet_rawEnergy","Jet_energyRing_dR4_em_Jet_rawEnergy", - "Jet_energyRing_dR0_neut_Jet_rawEnergy","Jet_energyRing_dR1_neut_Jet_rawEnergy","Jet_energyRing_dR2_neut_Jet_rawEnergy", - "Jet_energyRing_dR3_neut_Jet_rawEnergy","Jet_energyRing_dR4_neut_Jet_rawEnergy","Jet_energyRing_dR0_ch_Jet_rawEnergy", - "Jet_energyRing_dR1_ch_Jet_rawEnergy","Jet_energyRing_dR2_ch_Jet_rawEnergy","Jet_energyRing_dR3_ch_Jet_rawEnergy", - "Jet_energyRing_dR4_ch_Jet_rawEnergy","Jet_energyRing_dR0_mu_Jet_rawEnergy","Jet_energyRing_dR1_mu_Jet_rawEnergy", - "Jet_energyRing_dR2_mu_Jet_rawEnergy","Jet_energyRing_dR3_mu_Jet_rawEnergy","Jet_energyRing_dR4_mu_Jet_rawEnergy"]), - variables = cms.PSet( - Jet_pt = cms.string("pt*jecFactor('Uncorrected')"), - Jet_mt = cms.string("mt*jecFactor('Uncorrected')"), - Jet_eta = cms.string("eta"), - Jet_mass = cms.string("mass*jecFactor('Uncorrected')"), - Jet_ptd = cms.string("userFloat('ptD')"), - Jet_leadTrackPt = cms.string("userFloat('leadTrackPt')"), - Jet_vtxNtrk = cms.string("userInt('vtxNtrk')"), - Jet_vtxMass = cms.string("userFloat('vtxMass')"), - Jet_vtx3dL = cms.string("userFloat('vtx3dL')"), - Jet_vtx3deL = cms.string("userFloat('vtx3deL')"), - Jet_vtxPt = cms.string("userFloat('vtxPt')"), - #Jet_leptonPt = cms.string("userFloat('leptonPt')"), - Jet_leptonPtRel = cms.string("userFloat('leptonPtRelv0')"), - Jet_leptonPtRelInv = cms.string("userFloat('leptonPtRelInvv0')*jecFactor('Uncorrected')"), - Jet_leptonDeltaR = cms.string("userFloat('leptonDeltaR')"), - #Jet_leptonPdgId = cms.string("userInt('leptonPdgId')"), - Jet_neHEF = cms.string("neutralHadronEnergyFraction()"), - Jet_neEmEF = cms.string("neutralEmEnergyFraction()"), - Jet_chHEF = cms.string("chargedHadronEnergyFraction()"), - Jet_chEmEF = cms.string("chargedEmEnergyFraction()"), - isMu = cms.string("?abs(userInt('leptonPdgId'))==13?1:0"), - isEle = cms.string("?abs(userInt('leptonPdgId'))==11?1:0"), - isOther = cms.string("?userInt('leptonPdgId')==0?1:0"), - ), - inputTensorName = cms.string("ffwd_inp:0"), - outputTensorName = cms.string("ffwd_out/BiasAdd:0"), - outputNames = cms.vstring(["corr","res"]), - outputFormulas = cms.vstring(["at(0)*0.24325256049633026+0.993854820728302","0.5*(at(2)-at(1))*0.24325256049633026"]), -) - - -## BOOSTED STUFF ################# -fatJetTable = cms.EDProducer("SimpleCandidateFlatTableProducer", - src = cms.InputTag("finalJetsAK8"), - cut = cms.string(" pt > 170"), #probably already applied in miniaod - name = cms.string("FatJet"), - doc = cms.string("slimmedJetsAK8, i.e. ak8 fat jets for boosted analysis"), - singleton = cms.bool(False), # the number of entries is variable - extension = cms.bool(False), # this is the main table for the jets - variables = cms.PSet(P4Vars, - jetId = Var("userInt('tightId')*2+4*userInt('tightIdLepVeto')",int,doc="Jet ID flags bit1 is loose (always false in 2017 since it does not exist), bit2 is tight, bit3 is tightLepVeto"), - area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10), - rawFactor = Var("1.-jecFactor('Uncorrected')",float,doc="1 - Factor to get back to raw pT",precision=6), - tau1 = Var("userFloat('NjettinessAK8Puppi:tau1')",float, doc="Nsubjettiness (1 axis)",precision=10), - tau2 = Var("userFloat('NjettinessAK8Puppi:tau2')",float, doc="Nsubjettiness (2 axis)",precision=10), - tau3 = Var("userFloat('NjettinessAK8Puppi:tau3')",float, doc="Nsubjettiness (3 axis)",precision=10), - tau4 = Var("userFloat('NjettinessAK8Puppi:tau4')",float, doc="Nsubjettiness (4 axis)",precision=10), - n2b1 = Var("?hasUserFloat('nb1AK8PuppiSoftDrop:ecfN2')?userFloat('nb1AK8PuppiSoftDrop:ecfN2'):-99999.", float, doc="N2 with beta=1 (for jets with raw pT>250 GeV)", precision=10), - n3b1 = Var("?hasUserFloat('nb1AK8PuppiSoftDrop:ecfN3')?userFloat('nb1AK8PuppiSoftDrop:ecfN3'):-99999.", float, doc="N3 with beta=1 (for jets with raw pT>250 GeV)", precision=10), - msoftdrop = Var("groomedMass('SoftDropPuppi')",float, doc="Corrected soft drop mass with PUPPI",precision=10), - btagDeepB = Var("?(bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb'))>=0?bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb'):-1",float,doc="DeepCSV b+bb tag discriminator",precision=10), - btagCSVV2 = Var("bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",float,doc=" pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)",precision=10), - btagHbb = Var("bDiscriminator('pfBoostedDoubleSecondaryVertexAK8BJetTags')",float,doc="Higgs to BB tagger discriminator",precision=10), - btagDDBvLV2 = Var("bDiscriminator('pfMassIndependentDeepDoubleBvLV2JetTags:probHbb')",float,doc="DeepDoubleX V2(mass-decorrelated) discriminator for H(Z)->bb vs QCD",precision=10), - btagDDCvLV2 = Var("bDiscriminator('pfMassIndependentDeepDoubleCvLV2JetTags:probHcc')",float,doc="DeepDoubleX V2 (mass-decorrelated) discriminator for H(Z)->cc vs QCD",precision=10), - btagDDCvBV2 = Var("bDiscriminator('pfMassIndependentDeepDoubleCvBV2JetTags:probHcc')",float,doc="DeepDoubleX V2 (mass-decorrelated) discriminator for H(Z)->cc vs H(Z)->bb",precision=10), - deepTag_TvsQCD = Var("bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:TvsQCD')",float,doc="DeepBoostedJet tagger top vs QCD discriminator",precision=10), - deepTag_WvsQCD = Var("bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:WvsQCD')",float,doc="DeepBoostedJet tagger W vs QCD discriminator",precision=10), - deepTag_ZvsQCD = Var("bDiscriminator('pfDeepBoostedDiscriminatorsJetTags:ZvsQCD')",float,doc="DeepBoostedJet tagger Z vs QCD discriminator",precision=10), - deepTag_H = Var("bDiscriminator('pfDeepBoostedJetTags:probHbb')+bDiscriminator('pfDeepBoostedJetTags:probHcc')+bDiscriminator('pfDeepBoostedJetTags:probHqqqq')",float,doc="DeepBoostedJet tagger H(bb,cc,4q) sum",precision=10), - deepTag_QCD = Var("bDiscriminator('pfDeepBoostedJetTags:probQCDbb')+bDiscriminator('pfDeepBoostedJetTags:probQCDcc')+bDiscriminator('pfDeepBoostedJetTags:probQCDb')+bDiscriminator('pfDeepBoostedJetTags:probQCDc')+bDiscriminator('pfDeepBoostedJetTags:probQCDothers')",float,doc="DeepBoostedJet tagger QCD(bb,cc,b,c,others) sum",precision=10), - deepTag_QCDothers = Var("bDiscriminator('pfDeepBoostedJetTags:probQCDothers')",float,doc="DeepBoostedJet tagger QCDothers value",precision=10), - deepTagMD_TvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:TvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger top vs QCD discriminator",precision=10), - deepTagMD_WvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:WvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger W vs QCD discriminator",precision=10), - deepTagMD_ZvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z vs QCD discriminator",precision=10), - deepTagMD_ZHbbvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZHbbvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z/H->bb vs QCD discriminator",precision=10), - deepTagMD_ZbbvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZbbvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z->bb vs QCD discriminator",precision=10), - deepTagMD_HbbvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:HbbvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger H->bb vs QCD discriminator",precision=10), - deepTagMD_ZHccvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ZHccvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z/H->cc vs QCD discriminator",precision=10), - deepTagMD_H4qvsQCD = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:H4qvsQCD')",float,doc="Mass-decorrelated DeepBoostedJet tagger H->4q vs QCD discriminator",precision=10), - deepTagMD_bbvsLight = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:bbvsLight')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z/H/gluon->bb vs light flavour discriminator",precision=10), - deepTagMD_ccvsLight = Var("bDiscriminator('pfMassDecorrelatedDeepBoostedDiscriminatorsJetTags:ccvsLight')",float,doc="Mass-decorrelated DeepBoostedJet tagger Z/H/gluon->cc vs light flavour discriminator",precision=10), - particleNet_TvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:TvsQCD')",float,doc="ParticleNet tagger top vs QCD discriminator",precision=10), - particleNet_WvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:WvsQCD')",float,doc="ParticleNet tagger W vs QCD discriminator",precision=10), - particleNet_ZvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:ZvsQCD')",float,doc="ParticleNet tagger Z vs QCD discriminator",precision=10), - particleNet_HbbvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:HbbvsQCD')",float,doc="ParticleNet tagger H(->bb) vs QCD discriminator",precision=10), - particleNet_HccvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:HccvsQCD')",float,doc="ParticleNet tagger H(->cc) vs QCD discriminator",precision=10), - particleNet_H4qvsQCD = Var("bDiscriminator('pfParticleNetDiscriminatorsJetTags:H4qvsQCD')",float,doc="ParticleNet tagger H(->VV->qqqq) vs QCD discriminator",precision=10), - particleNet_QCD = Var("bDiscriminator('pfParticleNetJetTags:probQCDbb')+bDiscriminator('pfParticleNetJetTags:probQCDcc')+bDiscriminator('pfParticleNetJetTags:probQCDb')+bDiscriminator('pfParticleNetJetTags:probQCDc')+bDiscriminator('pfParticleNetJetTags:probQCDothers')",float,doc="ParticleNet tagger QCD(bb,cc,b,c,others) sum",precision=10), - particleNet_mass = Var("bDiscriminator('pfParticleNetMassRegressionJetTags:mass')",float,doc="ParticleNet mass regression",precision=10), - particleNetMD_Xbb = Var("bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probXbb')",float,doc="Mass-decorrelated ParticleNet tagger raw X->bb score. For X->bb vs QCD tagging, use Xbb/(Xbb+QCD)",precision=10), - particleNetMD_Xcc = Var("bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probXcc')",float,doc="Mass-decorrelated ParticleNet tagger raw X->cc score. For X->cc vs QCD tagging, use Xcc/(Xcc+QCD)",precision=10), - particleNetMD_Xqq = Var("bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probXqq')",float,doc="Mass-decorrelated ParticleNet tagger raw X->qq (uds) score. For X->qq vs QCD tagging, use Xqq/(Xqq+QCD). For W vs QCD tagging, use (Xcc+Xqq)/(Xcc+Xqq+QCD)",precision=10), - particleNetMD_QCD = Var("bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDbb')+bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDcc')+bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDb')+bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDc')+bDiscriminator('pfMassDecorrelatedParticleNetJetTags:probQCDothers')",float,doc="Mass-decorrelated ParticleNet tagger raw QCD score",precision=10), - subJetIdx1 = Var("?nSubjetCollections()>0 && subjets('SoftDropPuppi').size()>0?subjets('SoftDropPuppi')[0].key():-1", int, - doc="index of first subjet"), - subJetIdx2 = Var("?nSubjetCollections()>0 && subjets('SoftDropPuppi').size()>1?subjets('SoftDropPuppi')[1].key():-1", int, - doc="index of second subjet"), - -# btagDeepC = Var("bDiscriminator('pfDeepCSVJetTags:probc')",float,doc="CMVA V2 btag discriminator",precision=10), -#puIdDisc = Var("userFloat('pileupJetId:fullDiscriminant')",float,doc="Pileup ID discriminant",precision=10), - nConstituents = Var("numberOfDaughters()","uint8",doc="Number of particles in the jet"), - ), - externalVariables = cms.PSet( - lsf3 = ExtVar(cms.InputTag("lepInJetVars:lsf3"),float, doc="Lepton Subjet Fraction (3 subjets)",precision=10), - muonIdx3SJ = ExtVar(cms.InputTag("lepInJetVars:muIdx3SJ"),int, doc="index of muon matched to jet"), - electronIdx3SJ = ExtVar(cms.InputTag("lepInJetVars:eleIdx3SJ"),int,doc="index of electron matched to jet"), - ) -) -### Era dependent customization -for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016, run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2, run2_nanoAOD_102Xv1, run2_nanoAOD_106Xv1: - modifier.toModify( fatJetTable.variables.n2b1, expr = cms.string("userFloat('ak8PFJetsPuppiSoftDropValueMap:nb1AK8PuppiSoftDropN2')"),) - modifier.toModify( fatJetTable.variables.n3b1, expr = cms.string("userFloat('ak8PFJetsPuppiSoftDropValueMap:nb1AK8PuppiSoftDropN3')"),) - # Deprecated after 106X - modifier.toModify( fatJetTable.variables, - btagCMVA = Var("bDiscriminator('pfCombinedMVAV2BJetTags')",float,doc="CMVA V2 btag discriminator",precision=10), - btagDDBvL_noMD = Var("bDiscriminator('pfDeepDoubleBvLJetTags:probHbb')",float,doc="DeepDoubleX discriminator (no mass-decorrelation) for H(Z)->bb vs QCD",precision=10), - btagDDCvL_noMD = Var("bDiscriminator('pfDeepDoubleCvLJetTags:probHcc')",float,doc="DeepDoubleX discriminator (no mass-decorrelation) for H(Z)->cc vs QCD",precision=10), - btagDDCvB_noMD = Var("bDiscriminator('pfDeepDoubleCvBJetTags:probHcc')",float,doc="DeepDoubleX discriminator (no mass-decorrelation) for H(Z)->cc vs H(Z)->bb",precision=10), - btagDDBvL = Var("bDiscriminator('pfMassIndependentDeepDoubleBvLJetTags:probHbb')",float,doc="DeepDoubleX (mass-decorrelated) discriminator for H(Z)->bb vs QCD",precision=10), - btagDDCvL = Var("bDiscriminator('pfMassIndependentDeepDoubleCvLJetTags:probHcc')",float,doc="DeepDoubleX (mass-decorrelated) discriminator for H(Z)->cc vs QCD",precision=10), - btagDDCvB = Var("bDiscriminator('pfMassIndependentDeepDoubleCvBJetTags:probHcc')",float,doc="DeepDoubleX (mass-decorrelated) discriminator for H(Z)->cc vs H(Z)->bb",precision=10), - ) -run2_miniAOD_80XLegacy.toModify( fatJetTable.variables, msoftdrop_chs = Var("userFloat('ak8PFJetsCHSSoftDropMass')",float, doc="Legacy uncorrected soft drop mass with CHS",precision=10)) -run2_miniAOD_80XLegacy.toModify( fatJetTable.variables.tau1, expr = cms.string("userFloat(\'ak8PFJetsPuppiValueMap:NjettinessAK8PuppiTau1\')"),) -run2_miniAOD_80XLegacy.toModify( fatJetTable.variables.tau2, expr = cms.string("userFloat(\'ak8PFJetsPuppiValueMap:NjettinessAK8PuppiTau2\')"),) -run2_miniAOD_80XLegacy.toModify( fatJetTable.variables.tau3, expr = cms.string("userFloat(\'ak8PFJetsPuppiValueMap:NjettinessAK8PuppiTau3\')"),) -run2_miniAOD_80XLegacy.toModify( fatJetTable.variables, tau4 = None) -run2_miniAOD_80XLegacy.toModify( fatJetTable.variables, n2b1 = None) -run2_miniAOD_80XLegacy.toModify( fatJetTable.variables, n3b1 = None) -for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: - modifier.toModify( fatJetTable.variables, jetId = Var("userInt('tightId')*2+userInt('looseId')",int,doc="Jet ID flags bit1 is loose, bit2 is tight")) - -run2_jme_2016.toModify( bjetNN, weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/breg_training_2016.onnx") ) -run2_jme_2016.toModify( bjetNN,outputFormulas = cms.vstring(["at(0)*0.31976690888404846+1.047176718711853","0.5*(at(2)-at(1))*0.31976690888404846"])) - -run2_jme_2017.toModify( bjetNN, weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/breg_training_2017.onnx") ) -run2_jme_2017.toModify( bjetNN,outputFormulas = cms.vstring(["at(0)*0.28225210309028625+1.055067777633667","0.5*(at(2)-at(1))*0.28225210309028625"])) - -run2_jme_2016.toModify( cjetNN, weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/creg_training_2016.onnx") ) -run2_jme_2016.toModify( cjetNN,outputFormulas = cms.vstring(["at(0)*0.28862622380256653+0.9908722639083862","0.5*(at(2)-at(1))*0.28862622380256653"])) - -run2_jme_2017.toModify( cjetNN, weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/creg_training_2017.onnx") ) -run2_jme_2017.toModify( cjetNN,outputFormulas = cms.vstring(["at(0)*0.24718524515628815+0.9927206635475159","0.5*(at(2)-at(1))*0.24718524515628815"])) - - - -subJetTable = cms.EDProducer("SimpleCandidateFlatTableProducer", - src = cms.InputTag("slimmedJetsAK8PFPuppiSoftDropPacked","SubJets"), - cut = cms.string(""), #probably already applied in miniaod - name = cms.string("SubJet"), - doc = cms.string("slimmedJetsAK8, i.e. ak8 fat jets for boosted analysis"), - singleton = cms.bool(False), # the number of entries is variable - extension = cms.bool(False), # this is the main table for the jets - variables = cms.PSet(P4Vars, - btagDeepB = Var("bDiscriminator('pfDeepCSVJetTags:probb')+bDiscriminator('pfDeepCSVJetTags:probbb')",float,doc="DeepCSV b+bb tag discriminator",precision=10), - btagCSVV2 = Var("bDiscriminator('pfCombinedInclusiveSecondaryVertexV2BJetTags')",float,doc=" pfCombinedInclusiveSecondaryVertexV2 b-tag discriminator (aka CSVV2)",precision=10), - rawFactor = Var("1.-jecFactor('Uncorrected')",float,doc="1 - Factor to get back to raw pT",precision=6), - tau1 = Var("userFloat('NjettinessAK8Subjets:tau1')",float, doc="Nsubjettiness (1 axis)",precision=10), - tau2 = Var("userFloat('NjettinessAK8Subjets:tau2')",float, doc="Nsubjettiness (2 axis)",precision=10), - tau3 = Var("userFloat('NjettinessAK8Subjets:tau3')",float, doc="Nsubjettiness (3 axis)",precision=10), - tau4 = Var("userFloat('NjettinessAK8Subjets:tau4')",float, doc="Nsubjettiness (4 axis)",precision=10), - n2b1 = Var("userFloat('nb1AK8PuppiSoftDropSubjets:ecfN2')", float, doc="N2 with beta=1", precision=10), - n3b1 = Var("userFloat('nb1AK8PuppiSoftDropSubjets:ecfN3')", float, doc="N3 with beta=1", precision=10), - ) -) - -# Deprecation/backcomp -for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016, run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2, run2_nanoAOD_102Xv1, run2_nanoAOD_106Xv1: - # post 106X - modifier.toModify(subJetTable.variables, - btagCMVA = Var("bDiscriminator('pfCombinedMVAV2BJetTags')",float,doc="CMVA V2 btag discriminator",precision=10), - ) - -#jets are not as precise as muons -fatJetTable.variables.pt.precision=10 -subJetTable.variables.pt.precision=10 - -run2_miniAOD_80XLegacy.toModify( subJetTable.variables, tau1 = None) -run2_miniAOD_80XLegacy.toModify( subJetTable.variables, tau2 = None) -run2_miniAOD_80XLegacy.toModify( subJetTable.variables, tau3 = None) -run2_miniAOD_80XLegacy.toModify( subJetTable.variables, tau4 = None) -run2_miniAOD_80XLegacy.toModify( subJetTable.variables, n2b1 = None) -run2_miniAOD_80XLegacy.toModify( subJetTable.variables, n3b1 = None) -run2_miniAOD_80XLegacy.toModify( subJetTable.variables, btagCMVA = None, btagDeepB = None) - - -################################################################################ -# JETS FOR MET type1 -################################################################################ - -basicJetsForMetForT1METNano = cms.EDProducer("PATJetCleanerForType1MET", - src = updatedJetsWithUserData.src, - jetCorrEtaMax = cms.double(9.9), - jetCorrLabel = cms.InputTag("L3Absolute"), - jetCorrLabelRes = cms.InputTag("L2L3Residual"), - offsetCorrLabel = cms.InputTag("L1FastJet"), - skipEM = cms.bool(False), - skipEMfractionThreshold = cms.double(0.9), - skipMuonSelection = cms.string('isGlobalMuon | isStandAloneMuon'), - skipMuons = cms.bool(True), - type1JetPtThreshold = cms.double(0.0), - calcMuonSubtrRawPtAsValueMap = cms.bool(True) - ) - -updatedJetsWithUserData.userFloats.muonSubtrRawPt = cms.InputTag("basicJetsForMetForT1METNano:MuonSubtrRawPt") - - -corrT1METJetTable = cms.EDProducer("SimpleCandidateFlatTableProducer", - src = finalJets.src, - cut = cms.string("pt<15 && abs(eta)<9.9"), - name = cms.string("CorrT1METJet"), - doc = cms.string("Additional low-pt jets for Type-1 MET re-correction"), - singleton = cms.bool(False), # the number of entries is variable - extension = cms.bool(False), # this is the main table for the jets - variables = cms.PSet( - rawPt = Var("pt()*jecFactor('Uncorrected')",float,precision=10), - eta = Var("eta", float,precision=12), - phi = Var("phi", float, precision=12), - area = Var("jetArea()", float, doc="jet catchment area, for JECs",precision=10), - ) -) - -corrT1METJetTable.variables.muonSubtrFactor = Var("1-userFloat('muonSubtrRawPt')/(pt()*jecFactor('Uncorrected'))",float,doc="1-(muon-subtracted raw pt)/(raw pt)",precision=6) -jetTable.variables.muonSubtrFactor = Var("1-userFloat('muonSubtrRawPt')/(pt()*jecFactor('Uncorrected'))",float,doc="1-(muon-subtracted raw pt)/(raw pt)",precision=6) - -jetForMETTask = cms.Task(basicJetsForMetForT1METNano,corrT1METJetTable) - - -from RecoJets.JetProducers.QGTagger_cfi import QGTagger -qgtagger=QGTagger.clone(srcJets="updatedJets",srcVertexCollection="offlineSlimmedPrimaryVertices") - - -from RecoJets.JetProducers.PileupJetID_cfi import pileupJetId, _chsalgos_94x, _chsalgos_102x, _chsalgos_106X_UL16, _chsalgos_106X_UL16APV, _chsalgos_106X_UL17, _chsalgos_106X_UL18 -pileupJetIdNano=pileupJetId.clone(jets="updatedJets",algos = cms.VPSet(_chsalgos_106X_UL18),inputIsCorrected=True,applyJec=False,vertexes="offlineSlimmedPrimaryVertices") -run2_jme_2017.toModify(pileupJetIdNano, algos = _chsalgos_106X_UL17) -(run2_jme_2016 & ~tracker_apv_vfp30_2016 ).toModify(pileupJetIdNano, algos = _chsalgos_106X_UL16) -(run2_jme_2016 & tracker_apv_vfp30_2016 ).toModify(pileupJetIdNano, algos = _chsalgos_106X_UL16APV) -run2_nanoAOD_102Xv1.toModify(pileupJetIdNano, algos = _chsalgos_102x) -for modifier in run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2: - modifier.toModify(pileupJetIdNano, algos = _chsalgos_94x) - -#before cross linking -jetUserDataTask = cms.Task(bJetVars, qgtagger, jercVars, tightJetId, tightJetIdLepVeto, pileupJetIdNano) -jetAK8UserDataTask = cms.Task(tightJetIdAK8,tightJetIdLepVetoAK8) - -_jetUserDataTask2016 = jetUserDataTask.copy() -_jetUserDataTask2016.add(looseJetId) -_jetAK8UserDataTask2016 = jetAK8UserDataTask.copy() -_jetAK8UserDataTask2016.add(looseJetIdAK8) - -for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: - modifier.toReplaceWith(jetUserDataTask,_jetUserDataTask2016) - modifier.toReplaceWith(jetAK8UserDataTask,_jetAK8UserDataTask2016) - -#HF shower shape recomputation -#Only run if needed (i.e. if default MINIAOD info is missing or outdated because of new JECs...) -from RecoJets.JetProducers.hfJetShowerShape_cfi import hfJetShowerShape -hfJetShowerShapeforNanoAOD = hfJetShowerShape.clone(jets="updatedJets",vertices="offlineSlimmedPrimaryVertices") -for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016, run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2, run2_nanoAOD_102Xv1, run2_nanoAOD_106Xv1: - modifier.toModify(updatedJetsWithUserData.userFloats, - hfsigmaEtaEta = cms.InputTag('hfJetShowerShapeforNanoAOD:sigmaEtaEta'), - hfsigmaPhiPhi = cms.InputTag('hfJetShowerShapeforNanoAOD:sigmaPhiPhi'), - ) - modifier.toModify(updatedJetsWithUserData.userInts, - hfcentralEtaStripSize = cms.InputTag('hfJetShowerShapeforNanoAOD:centralEtaStripSize'), - hfadjacentEtaStripsSize = cms.InputTag('hfJetShowerShapeforNanoAOD:adjacentEtaStripsSize'), - ) - modifier.toModify( jetTable.variables, hfsigmaEtaEta = Var("userFloat('hfsigmaEtaEta')",float,doc="sigmaEtaEta for HF jets (noise discriminating variable)",precision=10)) - modifier.toModify( jetTable.variables, hfsigmaPhiPhi = Var("userFloat('hfsigmaPhiPhi')",float,doc="sigmaPhiPhi for HF jets (noise discriminating variable)",precision=10)) - modifier.toModify( jetTable.variables, hfcentralEtaStripSize = Var("userInt('hfcentralEtaStripSize')", int, doc="eta size of the central tower strip in HF (noise discriminating variable) ")) - modifier.toModify( jetTable.variables, hfadjacentEtaStripsSize = Var("userInt('hfadjacentEtaStripsSize')", int, doc="eta size of the strips next to the central tower strip in HF (noise discriminating variable) ")) - modifier.toModify(jetUserDataTask, jetUserDataTask.add(hfJetShowerShapeforNanoAOD)) - -#before cross linking -jetTask = cms.Task(jetCorrFactorsNano,updatedJets,jetUserDataTask,updatedJetsWithUserData,jetCorrFactorsAK8,updatedJetsAK8,jetAK8UserDataTask,updatedJetsAK8WithUserData,finalJets,finalJetsAK8) - -#after lepton collections have been run -jetLepTask = cms.Task(lepInJetVars) - -#after cross linkining -jetTablesTask = cms.Task(bjetNN,cjetNN,jetTable,fatJetTable,subJetTable) diff --git a/PhysicsTools/NanoAOD/python/muons_cff.py b/PhysicsTools/NanoAOD/python/muons_cff.py index 97ebc6228fc03..f0dc8a0669ab6 100644 --- a/PhysicsTools/NanoAOD/python/muons_cff.py +++ b/PhysicsTools/NanoAOD/python/muons_cff.py @@ -26,7 +26,7 @@ run2_nanoAOD_94X2016.toModify(isoForMu, EAFile_MiniIso = "PhysicsTools/NanoAOD/data/effAreaMuons_cone03_pfNeuHadronsAndPhotons_80X.txt") ptRatioRelForMu = cms.EDProducer("MuonJetVarProducer", - srcJet = cms.InputTag("updatedJets"), + srcJet = cms.InputTag("updatedJetsPuppi"), srcLep = cms.InputTag("slimmedMuonsUpdated"), srcVtx = cms.InputTag("offlineSlimmedPrimaryVertices"), ) @@ -154,6 +154,9 @@ run2_nanoAOD_102Xv1.toModify(muonTable.variables, puppiIsoId = None) +# Revert back to AK4 CHS jets for Run 2 +run2_nanoAOD_ANY.toModify(ptRatioRelForMu,srcJet="updatedJets") + muonsMCMatchForTable = cms.EDProducer("MCMatcher", # cut on deltaR, deltaPt/Pt; pick best by deltaR src = muonTable.src, # final reco collection diff --git a/PhysicsTools/NanoAOD/python/nano_cff.py b/PhysicsTools/NanoAOD/python/nano_cff.py index 95a40287e74b8..11af5a2319c81 100644 --- a/PhysicsTools/NanoAOD/python/nano_cff.py +++ b/PhysicsTools/NanoAOD/python/nano_cff.py @@ -2,7 +2,9 @@ import FWCore.ParameterSet.Config as cms from PhysicsTools.NanoAOD.common_cff import * from PhysicsTools.NanoAOD.nano_eras_cff import * -from PhysicsTools.NanoAOD.jets_cff import * +from PhysicsTools.NanoAOD.jetsAK4_CHS_cff import * +from PhysicsTools.NanoAOD.jetsAK4_Puppi_cff import * +from PhysicsTools.NanoAOD.jetsAK8_cff import * from PhysicsTools.NanoAOD.jetMC_cff import * from PhysicsTools.NanoAOD.muons_cff import * from PhysicsTools.NanoAOD.taus_cff import * @@ -34,7 +36,7 @@ ) linkedObjects = cms.EDProducer("PATObjectCrossLinker", - jets=cms.InputTag("finalJets"), + jets=cms.InputTag("finalJetsPuppi"), muons=cms.InputTag("finalMuons"), electrons=cms.InputTag("finalElectrons"), lowPtElectrons=cms.InputTag("finalLowPtElectrons"), @@ -42,6 +44,9 @@ photons=cms.InputTag("finalPhotons"), ) +# Switch to AK4 CHS jets for Run-2 +run2_nanoAOD_ANY.toModify(linkedObjects, jets="finalJets") + simpleCleanerTable = cms.EDProducer("NanoAODSimpleCrossCleaner", name=cms.string("cleanmask"), doc=cms.string("simple cleaning mask with priority to leptons"), @@ -64,20 +69,30 @@ lhcInfoTable = cms.EDProducer("LHCInfoProducer", - precision = cms.int32(10), + precision = cms.int32(10), ) nanoTableTaskCommon = cms.Task( - cms.Task(nanoMetadata), jetTask, jetForMETTask, extraFlagsProducersTask, muonTask, tauTask, boostedTauTask, - electronTask , lowPtElectronTask, photonTask, - vertexTask, isoTrackTask, jetLepTask, # must be after all the leptons - softActivityTask, - cms.Task(linkedObjects), - jetTablesTask, muonTablesTask, fsrTablesTask, tauTablesTask, boostedTauTablesTask, - electronTablesTask, lowPtElectronTablesTask, photonTablesTask, - globalTablesTask, vertexTablesTask, metTablesTask, simpleCleanerTable, extraFlagsTableTask, - isoTrackTablesTask,softActivityTablesTask - ) + cms.Task(nanoMetadata), + jetPuppiTask, jetPuppiForMETTask, jetAK8Task, + extraFlagsProducersTask, muonTask, tauTask, boostedTauTask, + electronTask , lowPtElectronTask, photonTask, + vertexTask, isoTrackTask, jetAK8LepTask, # must be after all the leptons + softActivityTask, + cms.Task(linkedObjects), + jetPuppiTablesTask, jetAK8TablesTask, + muonTablesTask, fsrTablesTask, tauTablesTask, boostedTauTablesTask, + electronTablesTask, lowPtElectronTablesTask, photonTablesTask, + globalTablesTask, vertexTablesTask, metTablesTask, simpleCleanerTable, extraFlagsTableTask, + isoTrackTablesTask,softActivityTablesTask +) + +# Replace AK4 Puppi with AK4 CHS for Run-2 +_nanoTableTaskCommonRun2 = nanoTableTaskCommon.copy() +_nanoTableTaskCommonRun2.replace(jetPuppiTask, jetTask) +_nanoTableTaskCommonRun2.replace(jetPuppiForMETTask, jetForMETTask) +_nanoTableTaskCommonRun2.replace(jetPuppiTablesTask, jetTablesTask) +run2_nanoAOD_ANY.toReplaceWith(nanoTableTaskCommon, _nanoTableTaskCommonRun2) nanoSequenceCommon = cms.Sequence(nanoTableTaskCommon) @@ -86,10 +101,12 @@ nanoSequence = cms.Sequence(nanoSequenceCommon + nanoSequenceOnlyData + nanoSequenceOnlyFullSim) -nanoTableTaskFS = cms.Task(genParticleTask, particleLevelTask, jetMCTask, muonMCTask, electronMCTask, lowPtElectronMCTask, photonMCTask, - tauMCTask, boostedTauMCTask, - metMCTable, ttbarCatMCProducersTask, globalTablesMCTask, cms.Task(btagWeightTable), ttbarCategoryTableTask, - genWeightsTableTask, genVertexTablesTask, genParticleTablesTask, genProtonTablesTask, particleLevelTablesTask) +nanoTableTaskFS = cms.Task( + genParticleTask, particleLevelTask, jetMCTask, muonMCTask, electronMCTask, lowPtElectronMCTask, photonMCTask, + tauMCTask, boostedTauMCTask, + metMCTable, ttbarCatMCProducersTask, globalTablesMCTask, cms.Task(btagWeightTable), ttbarCategoryTableTask, + genWeightsTableTask, genVertexTablesTask, genParticleTablesTask, genProtonTablesTask, particleLevelTablesTask +) nanoSequenceFS = cms.Sequence(nanoSequenceCommon + cms.Sequence(nanoTableTaskFS)) @@ -135,31 +152,6 @@ def nanoAOD_addBoostedTauIds(process, idsToRun=[]): return process - -from PhysicsTools.PatAlgos.tools.jetTools import updateJetCollection -def nanoAOD_addDeepInfo(process,addDeepBTag,addDeepFlavour): - _btagDiscriminators=[] - if addDeepBTag: - print("Updating process to run DeepCSV btag") - _btagDiscriminators += ['pfDeepCSVJetTags:probb','pfDeepCSVJetTags:probbb','pfDeepCSVJetTags:probc'] - if addDeepFlavour: - print("Updating process to run DeepFlavour btag") - _btagDiscriminators += ['pfDeepFlavourJetTags:probb','pfDeepFlavourJetTags:probbb','pfDeepFlavourJetTags:problepb','pfDeepFlavourJetTags:probc'] - if len(_btagDiscriminators)==0: return process - print("Will recalculate the following discriminators: "+", ".join(_btagDiscriminators)) - updateJetCollection( - process, - jetSource = cms.InputTag('slimmedJets'), - jetCorrections = ('AK4PFchs', cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute','L2L3Residual']), 'None'), - btagDiscriminators = _btagDiscriminators, - postfix = 'WithDeepInfo', - ) - process.load("Configuration.StandardSequences.MagneticField_cff") - process.jetCorrFactorsNano.src="selectedUpdatedPatJetsWithDeepInfo" - process.updatedJets.jetSource="selectedUpdatedPatJetsWithDeepInfo" - return process - - from PhysicsTools.PatUtils.tools.runMETCorrectionsAndUncertainties import runMetCorAndUncFromMiniAOD def nanoAOD_recalibrateMETs(process,isData): # add DeepMETs @@ -200,18 +192,18 @@ def nanoAOD_recalibrateMETs(process,isData): addToProcessAndTask('ak4PuppiJets', ak4PFJets.clone (src = 'puppi', doAreaFastjet = True, jetPtMin = 10.), process, task) from PhysicsTools.PatAlgos.tools.jetTools import addJetCollection addJetCollection(process, - labelName = 'Puppi', - jetSource = cms.InputTag('ak4PuppiJets'), - algo = 'AK', rParam=0.4, - genJetCollection=cms.InputTag('slimmedGenJets'), - jetCorrections = ('AK4PFPuppi', ['L1FastJet', 'L2Relative', 'L3Absolute','L2L3Residual'], 'None'), - pfCandidates = cms.InputTag('packedPFCandidates'), - pvSource = cms.InputTag('offlineSlimmedPrimaryVertices'), - svSource = cms.InputTag('slimmedSecondaryVertices'), - muSource =cms.InputTag( 'slimmedMuons'), - elSource = cms.InputTag('slimmedElectrons'), - genParticles= cms.InputTag('prunedGenParticles'), - getJetMCFlavour= False + labelName = 'Puppi', + jetSource = cms.InputTag('ak4PuppiJets'), + algo = 'AK', rParam=0.4, + genJetCollection=cms.InputTag('slimmedGenJets'), + jetCorrections = ('AK4PFPuppi', ['L1FastJet', 'L2Relative', 'L3Absolute','L2L3Residual'], 'None'), + pfCandidates = cms.InputTag('packedPFCandidates'), + pvSource = cms.InputTag('offlineSlimmedPrimaryVertices'), + svSource = cms.InputTag('slimmedSecondaryVertices'), + muSource =cms.InputTag( 'slimmedMuons'), + elSource = cms.InputTag('slimmedElectrons'), + genParticles= cms.InputTag('prunedGenParticles'), + getJetMCFlavour= False ) process.patJetsPuppi.addGenPartonMatch = cms.bool(False) @@ -250,52 +242,6 @@ def nanoAOD_activateVID(process): modifier.toModify(process.egmPhotonIDs, physicsObjectSrc = "slimmedPhotonsTo106X") return process -def nanoAOD_addDeepInfoAK8(process, addDeepBTag, addDeepBoostedJet, addDeepDoubleX, addDeepDoubleXV2, addParticleNet, addParticleNetMass, jecPayload): - _btagDiscriminators=[] - if addDeepBTag: - print("Updating process to run DeepCSV btag to AK8 jets") - _btagDiscriminators += ['pfDeepCSVJetTags:probb','pfDeepCSVJetTags:probbb'] - if addDeepBoostedJet: - print("Updating process to run DeepBoostedJet on datasets before 103X") - from RecoBTag.ONNXRuntime.pfDeepBoostedJet_cff import _pfDeepBoostedJetTagsAll as pfDeepBoostedJetTagsAll - _btagDiscriminators += pfDeepBoostedJetTagsAll - if addParticleNet: - print("Updating process to run ParticleNet before it's included in MiniAOD") - from RecoBTag.ONNXRuntime.pfParticleNet_cff import _pfParticleNetJetTagsAll as pfParticleNetJetTagsAll - _btagDiscriminators += pfParticleNetJetTagsAll - if addParticleNetMass: - from RecoBTag.ONNXRuntime.pfParticleNet_cff import _pfParticleNetMassRegressionOutputs - _btagDiscriminators += _pfParticleNetMassRegressionOutputs - if addDeepDoubleX: - print("Updating process to run DeepDoubleX on datasets before 104X") - _btagDiscriminators += ['pfDeepDoubleBvLJetTags:probHbb', \ - 'pfDeepDoubleCvLJetTags:probHcc', \ - 'pfDeepDoubleCvBJetTags:probHcc', \ - 'pfMassIndependentDeepDoubleBvLJetTags:probHbb', 'pfMassIndependentDeepDoubleCvLJetTags:probHcc', 'pfMassIndependentDeepDoubleCvBJetTags:probHcc'] - if addDeepDoubleXV2: - print("Updating process to run DeepDoubleXv2 on datasets before 11X") - _btagDiscriminators += [ - 'pfMassIndependentDeepDoubleBvLV2JetTags:probHbb', - 'pfMassIndependentDeepDoubleCvLV2JetTags:probHcc', - 'pfMassIndependentDeepDoubleCvBV2JetTags:probHcc' - ] - if len(_btagDiscriminators)==0: return process - print("Will recalculate the following discriminators on AK8 jets: "+", ".join(_btagDiscriminators)) - updateJetCollection( - process, - jetSource = cms.InputTag('slimmedJetsAK8'), - pvSource = cms.InputTag('offlineSlimmedPrimaryVertices'), - svSource = cms.InputTag('slimmedSecondaryVertices'), - rParam = 0.8, - jetCorrections = (jecPayload.value(), cms.vstring(['L1FastJet', 'L2Relative', 'L3Absolute', 'L2L3Residual']), 'None'), - btagDiscriminators = _btagDiscriminators, - postfix='AK8WithDeepInfo', - printWarning = False - ) - process.jetCorrFactorsAK8.src="selectedUpdatedPatJetsAK8WithDeepInfo" - process.updatedJetsAK8.jetSource="selectedUpdatedPatJetsAK8WithDeepInfo" - return process - from PhysicsTools.PatUtils.tools.runMETCorrectionsAndUncertainties import runMetCorAndUncFromMiniAOD def nanoAOD_runMETfixEE2017(process,isData): runMetCorAndUncFromMiniAOD(process,isData=isData, @@ -308,59 +254,24 @@ def nanoAOD_runMETfixEE2017(process,isData): def nanoAOD_customizeCommon(process): process = nanoAOD_activateVID(process) - nanoAOD_addDeepInfo_switch = cms.PSet( - nanoAOD_addDeepBTag_switch = cms.untracked.bool(False), - nanoAOD_addDeepFlavourTag_switch = cms.untracked.bool(False), - ) - run2_miniAOD_80XLegacy.toModify(nanoAOD_addDeepInfo_switch, nanoAOD_addDeepBTag_switch = cms.untracked.bool(True)) - for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016, run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2: - modifier.toModify(nanoAOD_addDeepInfo_switch, nanoAOD_addDeepFlavourTag_switch = cms.untracked.bool(True)) - process = nanoAOD_addDeepInfo(process, - addDeepBTag=nanoAOD_addDeepInfo_switch.nanoAOD_addDeepBTag_switch, - addDeepFlavour=nanoAOD_addDeepInfo_switch.nanoAOD_addDeepFlavourTag_switch) - nanoAOD_addDeepInfoAK8_switch = cms.PSet( - nanoAOD_addDeepBTag_switch = cms.untracked.bool(False), - nanoAOD_addDeepBoostedJet_switch = cms.untracked.bool(False), - nanoAOD_addDeepDoubleX_switch = cms.untracked.bool(False), - nanoAOD_addDeepDoubleXV2_switch = cms.untracked.bool(False), - nanoAOD_addParticleNet_switch = cms.untracked.bool(False), - nanoAOD_addParticleNetMass_switch = cms.untracked.bool(False), - jecPayload = cms.untracked.string('AK8PFPuppi') - ) - # deepAK8 should not run on 80X, that contains ak8PFJetsCHS jets - run2_miniAOD_80XLegacy.toModify(nanoAOD_addDeepInfoAK8_switch, - nanoAOD_addDeepBTag_switch = True, - jecPayload = 'AK8PFchs') - # for 94X and 102X samples: needs to run DeepAK8, DeepDoubleX and ParticleNet - (run2_nanoAOD_94X2016 | run2_nanoAOD_94XMiniAODv1 | run2_nanoAOD_94XMiniAODv2 | run2_nanoAOD_102Xv1).toModify( - nanoAOD_addDeepInfoAK8_switch, - nanoAOD_addDeepBoostedJet_switch = True, - nanoAOD_addDeepDoubleX_switch = True, - nanoAOD_addDeepDoubleXV2_switch = True, - nanoAOD_addParticleNet_switch = True, - nanoAOD_addParticleNetMass_switch = True, - ) - # for 106Xv1: only needs to run ParticleNet and DDXV2; DeepAK8, DeepDoubleX are already in MiniAOD - run2_nanoAOD_106Xv1.toModify( - nanoAOD_addDeepInfoAK8_switch, - nanoAOD_addDeepDoubleXV2_switch = True, - nanoAOD_addParticleNet_switch = True, - nanoAOD_addParticleNetMass_switch = True, - ) - run2_nanoAOD_106Xv2.toModify( - nanoAOD_addDeepInfoAK8_switch, - nanoAOD_addParticleNetMass_switch = True, + # This function is defined in jetsAK4_CHS_cff.py + process = nanoAOD_addDeepInfoAK4CHS(process, + addDeepBTag=nanoAOD_addDeepInfoAK4CHS_switch.nanoAOD_addDeepBTag_switch, + addDeepFlavour=nanoAOD_addDeepInfoAK4CHS_switch.nanoAOD_addDeepFlavourTag_switch ) + # This function is defined in jetsAK8_cff.py process = nanoAOD_addDeepInfoAK8(process, - addDeepBTag=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addDeepBTag_switch, - addDeepBoostedJet=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addDeepBoostedJet_switch, - addDeepDoubleX=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addDeepDoubleX_switch, - addDeepDoubleXV2=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addDeepDoubleXV2_switch, - addParticleNet=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addParticleNet_switch, - addParticleNetMass=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addParticleNetMass_switch, - jecPayload=nanoAOD_addDeepInfoAK8_switch.jecPayload) + addDeepBTag=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addDeepBTag_switch, + addDeepBoostedJet=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addDeepBoostedJet_switch, + addDeepDoubleX=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addDeepDoubleX_switch, + addDeepDoubleXV2=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addDeepDoubleXV2_switch, + addParticleNet=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addParticleNet_switch, + addParticleNetMass=nanoAOD_addDeepInfoAK8_switch.nanoAOD_addParticleNetMass_switch, + jecPayload=nanoAOD_addDeepInfoAK8_switch.jecPayload + ) + nanoAOD_tau_switch = cms.PSet( idsToAdd = cms.vstring() ) @@ -376,7 +287,6 @@ def nanoAOD_customizeCommon(process): def nanoAOD_customizeData(process): process = nanoAOD_customizeCommon(process) - for modifier in run2_miniAOD_80XLegacy,run2_nanoAOD_94X2016,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: modifier.toModify(process, lambda p: nanoAOD_recalibrateMETs(p,isData=True)) for modifier in run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2: diff --git a/PhysicsTools/NanoAOD/python/nano_eras_cff.py b/PhysicsTools/NanoAOD/python/nano_eras_cff.py index 522d55ff1db1b..3c0e9479104f9 100644 --- a/PhysicsTools/NanoAOD/python/nano_eras_cff.py +++ b/PhysicsTools/NanoAOD/python/nano_eras_cff.py @@ -21,3 +21,10 @@ from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 from Configuration.Eras.Modifier_run3_nanoAOD_devel_cff import run3_nanoAOD_devel + +run2_nanoAOD_ANY = ( + run2_miniAOD_80XLegacy | run2_nanoAOD_92X | run2_nanoAOD_94X2016 | run2_nanoAOD_94XMiniAODv1 | run2_nanoAOD_94XMiniAODv2 | run2_nanoAOD_102Xv1 | run2_nanoAOD_106Xv1 | run2_nanoAOD_106Xv2 +) +run2_nanoAOD_preUL = ( + run2_miniAOD_80XLegacy | run2_nanoAOD_92X | run2_nanoAOD_94X2016 | run2_nanoAOD_94XMiniAODv1 | run2_nanoAOD_94XMiniAODv2 | run2_nanoAOD_102Xv1 +) diff --git a/PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py b/PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py index e29c2f0e1824e..8285ff7efce38 100644 --- a/PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py +++ b/PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py @@ -301,6 +301,9 @@ def _add_deepFlavour(process): 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_Summer16_80X_V1_cff', 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Spring16_GeneralPurpose_V1_cff', 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Spring16_HZZ_V1_cff', + 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer16UL_ID_ISO_cff', + 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer17UL_ID_ISO_cff', + 'RecoEgamma.ElectronIdentification.Identification.mvaElectronID_Summer18UL_ID_ISO_cff', ] switchOnVIDElectronIdProducer(process,DataFormat.MiniAOD, task) process.egmGsfElectronIDs.physicsObjectSrc = cms.InputTag("reducedEgamma","reducedGedGsfElectrons") diff --git a/RecoEgamma/Examples/plugins/plugins.cc b/RecoEgamma/EgammaIsolationAlgos/plugins/plugins.cc similarity index 100% rename from RecoEgamma/Examples/plugins/plugins.cc rename to RecoEgamma/EgammaIsolationAlgos/plugins/plugins.cc diff --git a/RecoEgamma/Examples/plugins/BuildFile.xml b/RecoEgamma/Examples/plugins/BuildFile.xml deleted file mode 100644 index a40ff64d3e0c7..0000000000000 --- a/RecoEgamma/Examples/plugins/BuildFile.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/RecoEgamma/Examples/plugins/DQMAnalyzer.cc b/RecoEgamma/Examples/plugins/DQMAnalyzer.cc deleted file mode 100644 index 0419e7cf0a677..0000000000000 --- a/RecoEgamma/Examples/plugins/DQMAnalyzer.cc +++ /dev/null @@ -1,1263 +0,0 @@ -// -*- C++ -*- -// -// Package: RecoEgamma/Examples -// Class: GsfElectronDataAnalyzer -// -/**\class GsfElectronDataAnalyzer RecoEgamma/Examples/src/GsfElectronDataAnalyzer.cc - - Description: GsfElectrons analyzer using reco data - -*/ -// -// Original Author: Ursula Berthon, Claude Charlot -// Created: Mon Mar 27 13:22:06 CEST 2006 -// -// - -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Common/interface/TriggerResults.h" -#include "DataFormats/EcalDetId/interface/EcalSubdetector.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" -#include "DataFormats/EgammaReco/interface/SuperClusterFwd.h" -#include "DataFormats/GsfTrackReco/interface/GsfTrack.h" -#include "FWCore/Common/interface/TriggerNames.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" - -#include "CLHEP/Units/GlobalPhysicalConstants.h" - -#include "TFile.h" -#include "TH1F.h" -#include "TH2F.h" -#include "TTree.h" - -#include -#include - -class DQMAnalyzer : public edm::one::EDAnalyzer<> { -public: - explicit DQMAnalyzer(const edm::ParameterSet &conf); - - ~DQMAnalyzer() override; - - void beginJob() override; - void endJob() override; - void analyze(const edm::Event &e, const edm::EventSetup &c) override; - -private: - //========================================= - // parameters - //========================================= - - std::string outputFile_; - edm::InputTag electronCollection_; - edm::InputTag matchingObjectCollection_; - edm::InputTag beamSpot_; - std::string matchingCondition_; - bool readAOD_; - - // matching - double maxPtMatchingObject_; - double maxAbsEtaMatchingObject_; - double deltaR_; - - // tag and probe - int Selection_; - double massLow_; - double massHigh_; - bool TPchecksign_; - bool TAGcheckclass_; - bool PROBEetcut_; - bool PROBEcheckclass_; - - // electron selection - double minEt_; - double minPt_; - double maxAbsEta_; - bool isEB_; - bool isEE_; - bool isNotEBEEGap_; - bool isEcalDriven_; - bool isTrackerDriven_; - double eOverPMinBarrel_; - double eOverPMaxBarrel_; - double eOverPMinEndcaps_; - double eOverPMaxEndcaps_; - double dEtaMinBarrel_; - double dEtaMaxBarrel_; - double dEtaMinEndcaps_; - double dEtaMaxEndcaps_; - double dPhiMinBarrel_; - double dPhiMaxBarrel_; - double dPhiMinEndcaps_; - double dPhiMaxEndcaps_; - double sigIetaIetaMinBarrel_; - double sigIetaIetaMaxBarrel_; - double sigIetaIetaMinEndcaps_; - double sigIetaIetaMaxEndcaps_; - double hadronicOverEmMaxBarrel_; - double hadronicOverEmMaxEndcaps_; - double mvaMin_; - double tipMaxBarrel_; - double tipMaxEndcaps_; - double tkIso03Max_; - double hcalIso03Depth1MaxBarrel_; - double hcalIso03Depth1MaxEndcaps_; - double hcalIso03Depth2MaxEndcaps_; - double ecalIso03MaxBarrel_; - double ecalIso03MaxEndcaps_; - - // for trigger - edm::InputTag triggerResults_; - std::vector HLTPathsByName_; - - // histos limits and binning - int nbineta; - int nbineta2D; - double etamin; - double etamax; - int nbinphi; - int nbinphi2D; - double phimin; - double phimax; - int nbinpt; - int nbinpteff; - int nbinpt2D; - double ptmax; - int nbinp; - int nbinp2D; - double pmax; - int nbineop; - int nbineop2D; - double eopmax; - double eopmaxsht; - int nbindeta; - double detamin; - double detamax; - int nbindphi; - double dphimin; - double dphimax; - int nbindetamatch; - int nbindetamatch2D; - double detamatchmin; - double detamatchmax; - int nbindphimatch; - int nbindphimatch2D; - double dphimatchmin; - double dphimatchmax; - int nbinfhits; - double fhitsmax; - int nbinlhits; - double lhitsmax; - int nbinxyz; - int nbinpoptrue; - double poptruemin; - double poptruemax; - int nbinmee; - double meemin; - double meemax; - int nbinhoe; - double hoemin; - double hoemax; - - //========================================= - // usual attributes and methods - //========================================= - - unsigned int nEvents_; - - bool selected(const reco::GsfElectronCollection::const_iterator &gsfIter, double vertexTIP); - bool generalCut(const reco::GsfElectronCollection::const_iterator &gsfIter); - bool etCut(const reco::GsfElectronCollection::const_iterator &gsfIter); - bool isolationCut(const reco::GsfElectronCollection::const_iterator &gsfIter, double vertexTIP); - bool idCut(const reco::GsfElectronCollection::const_iterator &gsfIter); - - bool trigger(const edm::Event &e); - unsigned int nAfterTrigger_; - std::vector HLTPathsByIndex_; - - TrajectoryStateTransform transformer_; - edm::ESHandle pDD; - edm::ESHandle theMagField; - - TFile *histfile_; - TTree *tree_; - - float mcEnergy[10], mcEta[10], mcPhi[10], mcPt[10], mcQ[10]; - float superclusterEnergy[10], superclusterEta[10], superclusterPhi[10], superclusterEt[10]; - float seedMomentum[10], seedEta[10], seedPhi[10], seedPt[10], seedQ[10]; - - //========================================= - // histograms - //========================================= - - TH1F *h_matchingObjectNum; - - TH1F *h_matchingObjectEta; - TH1F *h_matchingObjectAbsEta; - TH1F *h_matchingObjectP; - TH1F *h_matchingObjectPt; - TH1F *h_matchingObjectPhi; - TH1F *h_matchingObjectZ; - - TH1F *h_ele_matchingObjectEta_matched; - TH1F *h_ele_matchingObjectAbsEta_matched; - TH1F *h_ele_matchingObjectPt_matched; - TH1F *h_ele_matchingObjectPhi_matched; - TH1F *h_ele_matchingObjectZ_matched; - - TH1F *h_ele_vertexPt; - TH1F *h_ele_Et; - TH1F *h_ele_vertexEta; - TH1F *h_ele_vertexPhi; - TH1F *h_ele_vertexX; - TH1F *h_ele_vertexY; - TH1F *h_ele_vertexZ; - TH1F *h_ele_vertexTIP; - TH1F *h_ele_charge; - - TH1F *histNum_; - - TH1F *histSclEn_; - TH1F *histSclEt_; - TH1F *histSclEta_; - TH1F *histSclPhi_; - TH1F *histSclSigEtaEta_; - - TH1F *h_ele_ambiguousTracks; - TH2F *h_ele_ambiguousTracksVsEta; - TH2F *h_ele_ambiguousTracksVsPhi; - TH2F *h_ele_ambiguousTracksVsPt; - TH1F *h_ele_foundHits; - TH2F *h_ele_foundHitsVsEta; - TH2F *h_ele_foundHitsVsPhi; - TH2F *h_ele_foundHitsVsPt; - TH1F *h_ele_lostHits; - TH2F *h_ele_lostHitsVsEta; - TH2F *h_ele_lostHitsVsPhi; - TH2F *h_ele_lostHitsVsPt; - TH1F *h_ele_chi2; - TH2F *h_ele_chi2VsEta; - TH2F *h_ele_chi2VsPhi; - TH2F *h_ele_chi2VsPt; - - TH1F *h_ele_EoP; - TH1F *h_ele_EeleOPout; - TH1F *h_ele_dEtaSc_propVtx; - TH1F *h_ele_dPhiSc_propVtx; - TH1F *h_ele_dEtaCl_propOut; - TH1F *h_ele_dPhiCl_propOut; - TH1F *h_ele_dEtaEleCl_propOut; - TH1F *h_ele_dPhiEleCl_propOut; - TH1F *h_ele_HoE; - TH1F *h_ele_outerP; - TH1F *h_ele_outerP_mode; - TH1F *h_ele_outerPt; - TH1F *h_ele_outerPt_mode; - - TH1F *h_ele_PinMnPout; - TH1F *h_ele_PinMnPout_mode; - - TH1F *h_ele_mva; - TH1F *h_ele_provenance; - - TH1F *h_ele_tkSumPt_dr03; - TH1F *h_ele_ecalRecHitSumEt_dr03; - TH1F *h_ele_hcalDepth1TowerSumEt_dr03; - TH1F *h_ele_hcalDepth2TowerSumEt_dr03; - TH1F *h_ele_tkSumPt_dr04; - TH1F *h_ele_ecalRecHitSumEt_dr04; - TH1F *h_ele_hcalDepth1TowerSumEt_dr04; - TH1F *h_ele_hcalDepth2TowerSumEt_dr04; - - TH1F *h_ele_mee_os; -}; - -using namespace reco; - -DQMAnalyzer::DQMAnalyzer(const edm::ParameterSet &conf) : beamSpot_(conf.getParameter("beamSpot")) { - outputFile_ = conf.getParameter("outputFile"); - electronCollection_ = conf.getParameter("electronCollection"); - matchingObjectCollection_ = conf.getParameter("matchingObjectCollection"); - matchingCondition_ = conf.getParameter("matchingCondition"); - readAOD_ = conf.getParameter("readAOD"); - - histfile_ = new TFile(outputFile_.c_str(), "RECREATE"); - - // currently only one possible matching conditions - assert(matchingCondition_ == "Cone"); - maxPtMatchingObject_ = conf.getParameter("MaxPtMatchingObject"); - maxAbsEtaMatchingObject_ = conf.getParameter("MaxAbsEtaMatchingObject"); - deltaR_ = conf.getParameter("DeltaR"); - - Selection_ = conf.getParameter("Selection"); - massLow_ = conf.getParameter("MassLow"); - massHigh_ = conf.getParameter("MassHigh"); - TPchecksign_ = conf.getParameter("TPchecksign"); - TAGcheckclass_ = conf.getParameter("TAGcheckclass"); - PROBEetcut_ = conf.getParameter("PROBEetcut"); - PROBEcheckclass_ = conf.getParameter("PROBEcheckclass"); - - minEt_ = conf.getParameter("MinEt"); - minPt_ = conf.getParameter("MinPt"); - maxAbsEta_ = conf.getParameter("MaxAbsEta"); - isEB_ = conf.getParameter("SelectEB"); - isEE_ = conf.getParameter("SelectEE"); - isNotEBEEGap_ = conf.getParameter("SelectNotEBEEGap"); - isEcalDriven_ = conf.getParameter("SelectEcalDriven"); - isTrackerDriven_ = conf.getParameter("SelectTrackerDriven"); - eOverPMinBarrel_ = conf.getParameter("MinEOverPBarrel"); - eOverPMaxBarrel_ = conf.getParameter("MaxEOverPBarrel"); - eOverPMinEndcaps_ = conf.getParameter("MinEOverPEndcaps"); - eOverPMaxEndcaps_ = conf.getParameter("MaxEOverPEndcaps"); - dEtaMinBarrel_ = conf.getParameter("MinDetaBarrel"); - dEtaMaxBarrel_ = conf.getParameter("MaxDetaBarrel"); - dEtaMinEndcaps_ = conf.getParameter("MinDetaEndcaps"); - dEtaMaxEndcaps_ = conf.getParameter("MaxDetaEndcaps"); - dPhiMinBarrel_ = conf.getParameter("MinDphiBarrel"); - dPhiMaxBarrel_ = conf.getParameter("MaxDphiBarrel"); - dPhiMinEndcaps_ = conf.getParameter("MinDphiEndcaps"); - dPhiMaxEndcaps_ = conf.getParameter("MaxDphiEndcaps"); - sigIetaIetaMinBarrel_ = conf.getParameter("MinSigIetaIetaBarrel"); - sigIetaIetaMaxBarrel_ = conf.getParameter("MaxSigIetaIetaBarrel"); - sigIetaIetaMinEndcaps_ = conf.getParameter("MinSigIetaIetaEndcaps"); - sigIetaIetaMaxEndcaps_ = conf.getParameter("MaxSigIetaIetaEndcaps"); - hadronicOverEmMaxBarrel_ = conf.getParameter("MaxHoEBarrel"); - hadronicOverEmMaxEndcaps_ = conf.getParameter("MaxHoEEndcaps"); - mvaMin_ = conf.getParameter("MinMVA"); - tipMaxBarrel_ = conf.getParameter("MaxTipBarrel"); - tipMaxEndcaps_ = conf.getParameter("MaxTipEndcaps"); - tkIso03Max_ = conf.getParameter("MaxTkIso03"); - hcalIso03Depth1MaxBarrel_ = conf.getParameter("MaxHcalIso03Depth1Barrel"); - hcalIso03Depth1MaxEndcaps_ = conf.getParameter("MaxHcalIso03Depth1Endcaps"); - hcalIso03Depth2MaxEndcaps_ = conf.getParameter("MaxHcalIso03Depth2Endcaps"); - ecalIso03MaxBarrel_ = conf.getParameter("MaxEcalIso03Barrel"); - ecalIso03MaxEndcaps_ = conf.getParameter("MaxEcalIso03Endcaps"); - - triggerResults_ = conf.getParameter("triggerResults"); - HLTPathsByName_ = conf.getParameter >("hltPaths"); - HLTPathsByIndex_.resize(HLTPathsByName_.size()); - - edm::ParameterSet pset = conf.getParameter("HistosConfigurationData"); - - etamin = pset.getParameter("Etamin"); - etamax = pset.getParameter("Etamax"); - phimin = pset.getParameter("Phimin"); - phimax = pset.getParameter("Phimax"); - ptmax = pset.getParameter("Ptmax"); - pmax = pset.getParameter("Pmax"); - eopmax = pset.getParameter("Eopmax"); - eopmaxsht = pset.getParameter("Eopmaxsht"); - detamin = pset.getParameter("Detamin"); - detamax = pset.getParameter("Detamax"); - dphimin = pset.getParameter("Dphimin"); - dphimax = pset.getParameter("Dphimax"); - detamatchmin = pset.getParameter("Detamatchmin"); - detamatchmax = pset.getParameter("Detamatchmax"); - dphimatchmin = pset.getParameter("Dphimatchmin"); - dphimatchmax = pset.getParameter("Dphimatchmax"); - fhitsmax = pset.getParameter("Fhitsmax"); - lhitsmax = pset.getParameter("Lhitsmax"); - nbineta = pset.getParameter("Nbineta"); - nbineta2D = pset.getParameter("Nbineta2D"); - nbinp = pset.getParameter("Nbinp"); - nbinpt = pset.getParameter("Nbinpt"); - nbinp2D = pset.getParameter("Nbinp2D"); - nbinpt2D = pset.getParameter("Nbinpt2D"); - nbinpteff = pset.getParameter("Nbinpteff"); - nbinphi = pset.getParameter("Nbinphi"); - nbinphi2D = pset.getParameter("Nbinphi2D"); - nbineop = pset.getParameter("Nbineop"); - nbineop2D = pset.getParameter("Nbineop2D"); - nbinfhits = pset.getParameter("Nbinfhits"); - nbinlhits = pset.getParameter("Nbinlhits"); - nbinxyz = pset.getParameter("Nbinxyz"); - nbindeta = pset.getParameter("Nbindeta"); - nbindphi = pset.getParameter("Nbindphi"); - nbindetamatch = pset.getParameter("Nbindetamatch"); - nbindphimatch = pset.getParameter("Nbindphimatch"); - nbindetamatch2D = pset.getParameter("Nbindetamatch2D"); - nbindphimatch2D = pset.getParameter("Nbindphimatch2D"); - nbinpoptrue = pset.getParameter("Nbinpoptrue"); - poptruemin = pset.getParameter("Poptruemin"); - poptruemax = pset.getParameter("Poptruemax"); - nbinmee = pset.getParameter("Nbinmee"); - meemin = pset.getParameter("Meemin"); - meemax = pset.getParameter("Meemax"); - nbinhoe = pset.getParameter("Nbinhoe"); - hoemin = pset.getParameter("Hoemin"); - hoemax = pset.getParameter("Hoemax"); -} - -DQMAnalyzer::~DQMAnalyzer() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) - histfile_->Write(); - histfile_->Close(); -} - -void DQMAnalyzer::beginJob() { - histfile_->cd(); - - nEvents_ = 0; - nAfterTrigger_ = 0; - - // matching object - std::string::size_type locSC = matchingObjectCollection_.label().find("SuperCluster", 0); - std::string type; - if (locSC != std::string::npos) { - std::cout << "Matching objects are SuperClusters " << std::endl; - type = "SC"; - } else { - std::cout << "Didn't recognize input matching objects!! " << std::endl; - } - - //================================================== - // matching object distributions - //================================================== - - std::string htitle, hlabel; - hlabel = "h_" + type + "Num"; - htitle = "# " + type + "s"; - h_matchingObjectNum = new TH1F(hlabel.c_str(), htitle.c_str(), nbinfhits, 0., fhitsmax); - hlabel = "h_" + type + "_eta"; - htitle = type + " #eta"; - h_matchingObjectEta = new TH1F(hlabel.c_str(), htitle.c_str(), nbineta, etamin, etamax); - hlabel = "h_" + type + "_abseta"; - htitle = type + " |#eta|"; - h_matchingObjectAbsEta = new TH1F(hlabel.c_str(), htitle.c_str(), nbineta / 2, 0., etamax); - hlabel = "h_" + type + "_P"; - htitle = type + " p"; - h_matchingObjectP = new TH1F(hlabel.c_str(), htitle.c_str(), nbinp, 0., pmax); - hlabel = "h_" + type + "_Pt"; - htitle = type + " pt"; - h_matchingObjectPt = new TH1F(hlabel.c_str(), htitle.c_str(), nbinpteff, 5., ptmax); - hlabel = "h_" + type + "_phi"; - htitle = type + " phi"; - h_matchingObjectPhi = new TH1F(hlabel.c_str(), htitle.c_str(), nbinphi, phimin, phimax); - hlabel = "h_" + type + "_z"; - htitle = type + " z"; - h_matchingObjectZ = new TH1F(hlabel.c_str(), htitle.c_str(), nbinxyz, -25, 25); - - h_matchingObjectNum->GetXaxis()->SetTitle("N_{SC}"); - h_matchingObjectNum->GetYaxis()->SetTitle("Events"); - h_matchingObjectEta->GetXaxis()->SetTitle("#eta_{SC}"); - h_matchingObjectEta->GetYaxis()->SetTitle("Events"); - h_matchingObjectP->GetXaxis()->SetTitle("E_{SC} (GeV)"); - h_matchingObjectP->GetYaxis()->SetTitle("Events"); - - h_ele_matchingObjectEta_matched = - new TH1F("h_ele_matchingObjectEta_matched", "Efficiency vs matching SC #eta", nbineta, etamin, etamax); - h_ele_matchingObjectEta_matched->Sumw2(); - h_ele_matchingObjectAbsEta_matched = - new TH1F("h_ele_matchingObjectAbsEta_matched", "Efficiency vs matching SC |#eta|", nbineta / 2, 0., 2.5); - h_ele_matchingObjectAbsEta_matched->Sumw2(); - h_ele_matchingObjectPt_matched = - new TH1F("h_ele_matchingObjectPt_matched", "Efficiency vs matching SC E_{T}", nbinpteff, 5., ptmax); - h_ele_matchingObjectPt_matched->Sumw2(); - h_ele_matchingObjectPhi_matched = - new TH1F("h_ele_matchingObjectPhi_matched", "Efficiency vs matching SC phi", nbinphi, phimin, phimax); - h_ele_matchingObjectPhi_matched->Sumw2(); - h_ele_matchingObjectZ_matched = - new TH1F("h_ele_matchingObjectZ_matched", "Efficiency vs matching SC z", nbinxyz, -25, 25); - h_ele_matchingObjectZ_matched->Sumw2(); - - //================================================== - // caractéristique particule - //================================================== - - h_ele_vertexPt = new TH1F("h_ele_vertexPt", "ele transverse momentum", nbinpt, 0., ptmax); - h_ele_Et = new TH1F("h_ele_Et", "ele SC transverse energy", nbinpt, 0., ptmax); - h_ele_vertexEta = new TH1F("h_ele_vertexEta", "ele momentum eta", nbineta, etamin, etamax); - h_ele_vertexPhi = new TH1F("h_ele_vertexPhi", "ele momentum #phi", nbinphi, phimin, phimax); - h_ele_vertexX = new TH1F("h_ele_vertexX", "ele vertex x", nbinxyz, -0.1, 0.1); - h_ele_vertexY = new TH1F("h_ele_vertexY", "ele vertex y", nbinxyz, -0.1, 0.1); - h_ele_vertexZ = new TH1F("h_ele_vertexZ", "ele vertex z", nbinxyz, -25, 25); - h_ele_vertexTIP = new TH1F("h_ele_vertexTIP", "ele transverse impact parameter (wrt bs)", 90, 0., 0.15); - h_ele_charge = new TH1F("h_ele_charge", "ele charge", 5, -2., 2.); - - h_ele_charge->GetXaxis()->SetTitle("charge"); - h_ele_charge->GetYaxis()->SetTitle("Events"); - - h_ele_vertexPt->GetXaxis()->SetTitle("p_{T vertex} (GeV/c)"); - h_ele_vertexPt->GetYaxis()->SetTitle("Events"); - - h_ele_Et->GetXaxis()->SetTitle("E_{T} (GeV)"); - h_ele_Et->GetYaxis()->SetTitle("Events"); - - h_ele_vertexEta->GetXaxis()->SetTitle("#eta"); - h_ele_vertexEta->GetYaxis()->SetTitle("Events"); - h_ele_vertexPhi->GetXaxis()->SetTitle("#phi (rad)"); - h_ele_vertexPhi->GetYaxis()->SetTitle("Events"); - - h_ele_vertexX->GetXaxis()->SetTitle("x (cm)"); - h_ele_vertexX->GetYaxis()->SetTitle("Events"); - h_ele_vertexY->GetXaxis()->SetTitle("y (cm)"); - h_ele_vertexY->GetYaxis()->SetTitle("Events"); - h_ele_vertexZ->GetXaxis()->SetTitle("z (cm)"); - h_ele_vertexZ->GetYaxis()->SetTitle("Events"); - - h_ele_vertexTIP->GetXaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIP->GetYaxis()->SetTitle("Events"); - - //================================================== - // # rec electrons - //================================================== - - histNum_ = new TH1F("h_recEleNum", "# rec electrons", 20, 0., 20.); - - histNum_->GetXaxis()->SetTitle("N_{ele}"); - histNum_->GetYaxis()->SetTitle("Events"); - - //================================================== - // SuperClusters - //================================================== - - histSclEn_ = new TH1F("h_scl_energy", "ele supercluster energy", nbinp, 0., pmax); - histSclEt_ = new TH1F("h_scl_et", "ele supercluster transverse energy", nbinpt, 0., ptmax); - histSclEta_ = new TH1F("h_scl_eta", "ele supercluster eta", nbineta, etamin, etamax); - histSclPhi_ = new TH1F("h_scl_phi", "ele supercluster phi", nbinphi, phimin, phimax); - histSclSigEtaEta_ = new TH1F("h_scl_sigetaeta", "ele supercluster sigma eta eta", 100, 0., 0.05); - - //================================================== - // electron track - //================================================== - - h_ele_ambiguousTracks = new TH1F("h_ele_ambiguousTracks", "ele # ambiguous tracks", 5, 0., 5.); - h_ele_ambiguousTracksVsEta = - new TH2F("h_ele_ambiguousTracksVsEta", "ele # ambiguous tracks vs eta", nbineta2D, etamin, etamax, 5, 0., 5.); - h_ele_ambiguousTracksVsPhi = - new TH2F("h_ele_ambiguousTracksVsPhi", "ele # ambiguous tracks vs phi", nbinphi2D, phimin, phimax, 5, 0., 5.); - h_ele_ambiguousTracksVsPt = - new TH2F("h_ele_ambiguousTracksVsPt", "ele # ambiguous tracks vs pt", nbinpt2D, 0., ptmax, 5, 0., 5.); - h_ele_foundHits = new TH1F("h_ele_foundHits", "ele track # found hits", nbinfhits, 0., fhitsmax); - h_ele_foundHitsVsEta = new TH2F( - "h_ele_foundHitsVsEta", "ele track # found hits vs eta", nbineta2D, etamin, etamax, nbinfhits, 0., fhitsmax); - h_ele_foundHitsVsPhi = new TH2F( - "h_ele_foundHitsVsPhi", "ele track # found hits vs phi", nbinphi2D, phimin, phimax, nbinfhits, 0., fhitsmax); - h_ele_foundHitsVsPt = - new TH2F("h_ele_foundHitsVsPt", "ele track # found hits vs pt", nbinpt2D, 0., ptmax, nbinfhits, 0., fhitsmax); - h_ele_lostHits = new TH1F("h_ele_lostHits", "ele track # lost hits", 5, 0., 5.); - h_ele_lostHitsVsEta = new TH2F( - "h_ele_lostHitsVsEta", "ele track # lost hits vs eta", nbineta2D, etamin, etamax, nbinlhits, 0., lhitsmax); - h_ele_lostHitsVsPhi = new TH2F( - "h_ele_lostHitsVsPhi", "ele track # lost hits vs eta", nbinphi2D, phimin, phimax, nbinlhits, 0., lhitsmax); - h_ele_lostHitsVsPt = - new TH2F("h_ele_lostHitsVsPt", "ele track # lost hits vs eta", nbinpt2D, 0., ptmax, nbinlhits, 0., lhitsmax); - h_ele_chi2 = new TH1F("h_ele_chi2", "ele track #chi^{2}", 100, 0., 15.); - h_ele_chi2VsEta = new TH2F("h_ele_chi2VsEta", "ele track #chi^{2} vs eta", nbineta2D, etamin, etamax, 50, 0., 15.); - h_ele_chi2VsPhi = new TH2F("h_ele_chi2VsPhi", "ele track #chi^{2} vs phi", nbinphi2D, phimin, phimax, 50, 0., 15.); - h_ele_chi2VsPt = new TH2F("h_ele_chi2VsPt", "ele track #chi^{2} vs pt", nbinpt2D, 0., ptmax, 50, 0., 15.); - - h_ele_foundHits->GetXaxis()->SetTitle("N_{hits}"); - h_ele_foundHits->GetYaxis()->SetTitle("Events"); - h_ele_lostHits->GetXaxis()->SetTitle("N_{lost hits}"); - h_ele_lostHits->GetYaxis()->SetTitle("Events"); - h_ele_chi2->GetXaxis()->SetTitle("#Chi^{2}"); - h_ele_chi2->GetYaxis()->SetTitle("Events"); - - //================================================== - // electron matching and ID - //================================================== - - h_ele_EoP = new TH1F("h_ele_EoP", "ele E/P_{vertex}", nbineop, 0., eopmax); - h_ele_EeleOPout = new TH1F("h_ele_EeleOPout", "ele E_{ele}/P_{out}", nbineop, 0., eopmax); - h_ele_dEtaSc_propVtx = new TH1F( - "h_ele_dEtaSc_propVtx", "ele #eta_{sc} - #eta_{tr}, prop from vertex", nbindetamatch, detamatchmin, detamatchmax); - h_ele_dPhiSc_propVtx = new TH1F( - "h_ele_dPhiSc_propVtx", "ele #phi_{sc} - #phi_{tr}, prop from vertex", nbindphimatch, dphimatchmin, dphimatchmax); - h_ele_dEtaCl_propOut = new TH1F("h_ele_dEtaCl_propOut", - "ele #eta_{cl} - #eta_{tr}, prop from outermost", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dPhiCl_propOut = new TH1F("h_ele_dPhiCl_propOut", - "ele #phi_{cl} - #phi_{tr}, prop from outermost", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dEtaEleCl_propOut = new TH1F("h_ele_dEtaEleCl_propOut", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dPhiEleCl_propOut = new TH1F("h_ele_dPhiEleCl_propOut", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_HoE = new TH1F("h_ele_HoE", "ele hadronic energy / em energy", nbinhoe, hoemin, hoemax); - h_ele_outerP = new TH1F("h_ele_outerP", "ele track outer p, mean", nbinp, 0., pmax); - h_ele_outerP_mode = new TH1F("h_ele_outerP_mode", "ele track outer p, mode", nbinp, 0., pmax); - h_ele_outerPt = new TH1F("h_ele_outerPt", "ele track outer p_{T}, mean", nbinpt, 0., ptmax); - h_ele_outerPt_mode = new TH1F("h_ele_outerPt_mode", "ele track outer p_{T}, mode", nbinpt, 0., ptmax); - - h_ele_PinMnPout = new TH1F("h_ele_PinMnPout", "ele track inner p - outer p, mean", nbinp, 0., 200.); - h_ele_PinMnPout_mode = new TH1F("h_ele_PinMnPout_mode", "ele track inner p - outer p, mode", nbinp, 0., 100.); - - h_ele_mva = new TH1F("h_ele_mva", "ele identification mva", 100, -1., 1.); - h_ele_provenance = new TH1F("h_ele_provenance", "ele provenance", 5, -2., 3.); - - h_ele_PinMnPout->GetXaxis()->SetTitle("P_{vertex} - P_{out} (GeV/c)"); - h_ele_PinMnPout->GetYaxis()->SetTitle("Events"); - h_ele_PinMnPout_mode->GetXaxis()->SetTitle("P_{vertex} - P_{out}, mode (GeV/c)"); - h_ele_PinMnPout_mode->GetYaxis()->SetTitle("Events"); - - h_ele_outerP->GetXaxis()->SetTitle("P_{out} (GeV/c)"); - h_ele_outerP->GetYaxis()->SetTitle("Events"); - h_ele_outerP_mode->GetXaxis()->SetTitle("P_{out} (GeV/c)"); - h_ele_outerP_mode->GetYaxis()->SetTitle("Events"); - - h_ele_outerPt->GetXaxis()->SetTitle("P_{T out} (GeV/c)"); - h_ele_outerPt->GetYaxis()->SetTitle("Events"); - h_ele_outerPt_mode->GetXaxis()->SetTitle("P_{T out} (GeV/c)"); - h_ele_outerPt_mode->GetYaxis()->SetTitle("Events"); - - h_ele_EoP->GetXaxis()->SetTitle("E/P_{vertex}"); - h_ele_EoP->GetYaxis()->SetTitle("Events"); - - h_ele_EeleOPout->GetXaxis()->SetTitle("E_{ele}/P_{out}"); - h_ele_EeleOPout->GetYaxis()->SetTitle("Events"); - - h_ele_dEtaSc_propVtx->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx->GetYaxis()->SetTitle("Events"); - h_ele_dEtaCl_propOut->GetXaxis()->SetTitle("#eta_{seedcl} - #eta_{tr}"); - h_ele_dEtaCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dEtaEleCl_propOut->GetXaxis()->SetTitle("#eta_{elecl} - #eta_{tr}"); - h_ele_dEtaEleCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dPhiSc_propVtx->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiSc_propVtx->GetYaxis()->SetTitle("Events"); - h_ele_dPhiCl_propOut->GetXaxis()->SetTitle("#phi_{seedcl} - #phi_{tr} (rad)"); - h_ele_dPhiCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dPhiEleCl_propOut->GetXaxis()->SetTitle("#phi_{elecl} - #phi_{tr} (rad)"); - h_ele_dPhiEleCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_HoE->GetXaxis()->SetTitle("H/E"); - h_ele_HoE->GetYaxis()->SetTitle("Events"); - - //================================================== - // isolation - //================================================== - - h_ele_tkSumPt_dr03 = new TH1F("h_ele_tkSumPt_dr03", "tk isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_ecalRecHitSumEt_dr03 = new TH1F("h_ele_ecalRecHitSumEt_dr03", "ecal isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_hcalDepth1TowerSumEt_dr03 = - new TH1F("h_ele_hcalDepth1TowerSumEt_dr03", "hcal depth1 isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_hcalDepth2TowerSumEt_dr03 = - new TH1F("h_ele_hcalDepth2TowerSumEt_dr03", "hcal depth2 isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_tkSumPt_dr04 = new TH1F("h_ele_tkSumPt_dr04", "hcal isolation sum", 100, 0.0, 20.); - h_ele_ecalRecHitSumEt_dr04 = new TH1F("h_ele_ecalRecHitSumEt_dr04", "ecal isolation sum, dR=0.4", 100, 0.0, 20.); - h_ele_hcalDepth1TowerSumEt_dr04 = - new TH1F("h_ele_hcalDepth1TowerSumEt_dr04", "hcal depth1 isolation sum, dR=0.4", 100, 0.0, 20.); - h_ele_hcalDepth2TowerSumEt_dr04 = - new TH1F("h_ele_hcalDepth2TowerSumEt_dr04", "hcal depth2 isolation sum, dR=0.4", 100, 0.0, 20.); - - //================================================== - // T&P - //================================================== - h_ele_mee_os = new TH1F("h_ele_mee_os", "ele pairs invariant mass, opposite sign", nbinmee, meemin, meemax); -} - -void DQMAnalyzer::endJob() { - histfile_->cd(); - std::cout << "efficiency calculation " << std::endl; - - // efficiency vs pt - TH1F *h_ele_ptEff = (TH1F *)h_ele_matchingObjectPt_matched->Clone("h_ele_ptEff"); - h_ele_ptEff->Reset(); - h_ele_ptEff->Divide(h_ele_matchingObjectPt_matched, h_matchingObjectPt, 1, 1, "b"); - h_ele_ptEff->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_ptEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs eta - TH1F *h_ele_etaEff = (TH1F *)h_ele_matchingObjectEta_matched->Clone("h_ele_etaEff"); - h_ele_etaEff->Reset(); - h_ele_etaEff->Divide(h_ele_matchingObjectEta_matched, h_matchingObjectEta, 1, 1, "b"); - h_ele_etaEff->Print(); - h_ele_etaEff->GetXaxis()->SetTitle("#eta"); - h_ele_etaEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs |eta| - TH1F *h_ele_absetaEff = (TH1F *)h_ele_matchingObjectAbsEta_matched->Clone("h_ele_absetaEff"); - h_ele_absetaEff->Reset(); - h_ele_absetaEff->Divide(h_ele_matchingObjectAbsEta_matched, h_matchingObjectAbsEta, 1, 1, "b"); - h_ele_absetaEff->GetXaxis()->SetTitle("|#eta|"); - h_ele_absetaEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs phi - TH1F *h_ele_phiEff = (TH1F *)h_ele_matchingObjectPhi_matched->Clone("h_ele_phiEff"); - h_ele_phiEff->Reset(); - h_ele_phiEff->Divide(h_ele_matchingObjectPhi_matched, h_matchingObjectPhi, 1, 1, "b"); - h_ele_phiEff->GetXaxis()->SetTitle("#phi (rad)"); - h_ele_phiEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs z - TH1F *h_ele_zEff = (TH1F *)h_ele_matchingObjectZ_matched->Clone("h_ele_zEff"); - h_ele_zEff->Reset(); - h_ele_zEff->Divide(h_ele_matchingObjectZ_matched, h_matchingObjectZ, 1, 1, "b"); - h_ele_zEff->Print(); - h_ele_zEff->GetXaxis()->SetTitle("z (cm)"); - h_ele_zEff->GetYaxis()->SetTitle("Efficiency"); - - // classes - - // fbrem - - //profiles from 2D histos - - // mc truth - - h_matchingObjectNum->Write(); - - // rec event - - histNum_->Write(); - - // mc - h_matchingObjectEta->Write(); - h_matchingObjectAbsEta->Write(); - h_matchingObjectP->Write(); - h_matchingObjectPt->Write(); - h_matchingObjectPhi->Write(); - h_matchingObjectZ->Write(); - - // matched electrons - h_ele_charge->Write(); - - h_ele_vertexPt->Write(); - h_ele_vertexEta->Write(); - h_ele_vertexPhi->Write(); - h_ele_vertexX->Write(); - h_ele_vertexY->Write(); - h_ele_vertexZ->Write(); - - h_ele_vertexTIP->Write(); - - h_ele_Et->Write(); - - h_ele_matchingObjectPt_matched->Write(); - h_ele_matchingObjectAbsEta_matched->Write(); - h_ele_matchingObjectEta_matched->Write(); - h_ele_matchingObjectPhi_matched->Write(); - h_ele_matchingObjectZ_matched->Write(); - - // h_ele_PoPmatchingObject_matched->Write(); - // h_ele_PtoPtmatchingObject_matched->Write(); - // h_ele_PoPmatchingObject_barrel_matched ->Write(); - // h_ele_PoPmatchingObject_endcaps_matched->Write(); - // h_ele_PtoPtmatchingObject_barrel_matched ->Write(); - // h_ele_PtoPtmatchingObject_endcaps_matched->Write(); - // h_ele_EtaMnEtamatchingObject_matched->Write(); - // h_ele_PhiMnPhimatchingObject_matched ->Write(); - // h_ele_PhiMnPhimatchingObject2_matched ->Write(); - - // matched electron, superclusters - histSclEn_->Write(); - histSclEt_->Write(); - histSclEta_->Write(); - histSclPhi_->Write(); - histSclSigEtaEta_->Write(); - - // matched electron, gsf tracks - h_ele_ambiguousTracks->Write(); - h_ele_ambiguousTracksVsEta->Write(); - h_ele_ambiguousTracksVsPhi->Write(); - h_ele_ambiguousTracksVsPt->Write(); - - h_ele_foundHits->Write(); - h_ele_foundHitsVsEta->Write(); - h_ele_foundHitsVsPhi->Write(); - h_ele_foundHitsVsPt->Write(); - - h_ele_lostHits->Write(); - h_ele_lostHitsVsEta->Write(); - h_ele_lostHitsVsPhi->Write(); - h_ele_lostHitsVsPt->Write(); - - h_ele_chi2->Write(); - h_ele_chi2VsEta->Write(); - h_ele_chi2VsPhi->Write(); - h_ele_chi2VsPt->Write(); - - h_ele_PinMnPout->Write(); - h_ele_PinMnPout_mode->Write(); - h_ele_outerP->Write(); - h_ele_outerP_mode->Write(); - h_ele_outerPt->Write(); - h_ele_outerPt_mode->Write(); - - // matched electrons, matching - h_ele_EoP->Write(); - h_ele_EeleOPout->Write(); - h_ele_dEtaSc_propVtx->Write(); - h_ele_dPhiSc_propVtx->Write(); - h_ele_dEtaCl_propOut->Write(); - h_ele_dPhiCl_propOut->Write(); - h_ele_dEtaEleCl_propOut->Write(); - h_ele_dPhiEleCl_propOut->Write(); - h_ele_HoE->Write(); - - h_ele_mee_os->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os->GetYaxis()->SetTitle("Events"); - h_ele_mee_os->Write(); - - // classes - - // fbrem - - // Eff - h_ele_etaEff->Write(); - h_ele_zEff->Write(); - h_ele_phiEff->Write(); - h_ele_absetaEff->Write(); - h_ele_ptEff->Write(); - - // e/g et pflow electrons - h_ele_mva->Write(); - h_ele_provenance->Write(); - - // isolation - h_ele_tkSumPt_dr03->GetXaxis()->SetTitle("TkIsoSum, cone 0.3 (GeV/c)"); - h_ele_tkSumPt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_ecalRecHitSumEt_dr03->GetXaxis()->SetTitle("EcalIsoSum, cone 0.3 (GeV)"); - h_ele_ecalRecHitSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth1TowerSumEt_dr03->GetXaxis()->SetTitle("Hcal1IsoSum, cone 0.3 (GeV)"); - h_ele_hcalDepth1TowerSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth2TowerSumEt_dr03->GetXaxis()->SetTitle("Hcal2IsoSum, cone 0.3 (GeV)"); - h_ele_hcalDepth2TowerSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_tkSumPt_dr04->GetXaxis()->SetTitle("TkIsoSum, cone 0.4 (GeV/c)"); - h_ele_tkSumPt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_ecalRecHitSumEt_dr04->GetXaxis()->SetTitle("EcalIsoSum, cone 0.4 (GeV)"); - h_ele_ecalRecHitSumEt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth1TowerSumEt_dr04->GetXaxis()->SetTitle("Hcal1IsoSum, cone 0.4 (GeV)"); - h_ele_hcalDepth1TowerSumEt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth2TowerSumEt_dr04->GetXaxis()->SetTitle("Hcal2IsoSum, cone 0.4 (GeV)"); - h_ele_hcalDepth2TowerSumEt_dr04->GetYaxis()->SetTitle("Events"); - - h_ele_tkSumPt_dr03->Write(); - h_ele_ecalRecHitSumEt_dr03->Write(); - h_ele_hcalDepth1TowerSumEt_dr03->Write(); - h_ele_hcalDepth2TowerSumEt_dr03->Write(); - h_ele_tkSumPt_dr04->Write(); - h_ele_ecalRecHitSumEt_dr04->Write(); - h_ele_hcalDepth1TowerSumEt_dr04->Write(); - h_ele_hcalDepth2TowerSumEt_dr04->Write(); -} - -void DQMAnalyzer::analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) { - edm::LogInfo("DQMAnalyzer::analyze") << "Treating event " << iEvent.id(); - nEvents_++; - if (!trigger(iEvent)) - return; - nAfterTrigger_++; - edm::LogInfo("DQMAnalyzer::analyze") << "Trigger OK"; - edm::Handle gsfElectrons; - iEvent.getByLabel(electronCollection_, gsfElectrons); - edm::LogInfo("DQMAnalyzer::analyze") << "Event has " << gsfElectrons.product()->size() << " electrons"; - edm::Handle recoClusters; - iEvent.getByLabel(matchingObjectCollection_, recoClusters); - edm::Handle recoBeamSpotHandle; - iEvent.getByLabel(beamSpot_, recoBeamSpotHandle); - const reco::BeamSpot bs = *recoBeamSpotHandle; - histNum_->Fill((*gsfElectrons).size()); - - // selected rec electrons - reco::GsfElectronCollection::const_iterator gsfIter; - for (gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); gsfIter++) { - // vertex TIP - double vertexTIP = (gsfIter->vertex().x() - bs.position().x()) * (gsfIter->vertex().x() - bs.position().x()) + - (gsfIter->vertex().y() - bs.position().y()) * (gsfIter->vertex().y() - bs.position().y()); - vertexTIP = sqrt(vertexTIP); - - // select electrons - if (!selected(gsfIter, vertexTIP)) - continue; - - // electron related distributions - h_ele_charge->Fill(gsfIter->charge()); - h_ele_vertexPt->Fill(gsfIter->pt()); - h_ele_Et->Fill(gsfIter->superCluster()->energy() / cosh(gsfIter->superCluster()->eta())); - h_ele_vertexEta->Fill(gsfIter->eta()); - h_ele_vertexPhi->Fill(gsfIter->phi()); - h_ele_vertexX->Fill(gsfIter->vertex().x()); - h_ele_vertexY->Fill(gsfIter->vertex().y()); - h_ele_vertexZ->Fill(gsfIter->vertex().z()); - h_ele_vertexTIP->Fill(vertexTIP); - - // supercluster related distributions - reco::SuperClusterRef sclRef = gsfIter->superCluster(); - // ALREADY DONE IN GSF ELECTRON CORE - // if (!gsfIter->ecalDrivenSeed()&&gsfIter->trackerDrivenSeed()) - // sclRef = gsfIter->parentSuperCluster() ; - histSclEn_->Fill(sclRef->energy()); - double R = std::sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y() + sclRef->z() * sclRef->z()); - double Rt = std::sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y()); - histSclEt_->Fill(sclRef->energy() * (Rt / R)); - histSclEta_->Fill(sclRef->eta()); - histSclPhi_->Fill(sclRef->phi()); - histSclSigEtaEta_->Fill(gsfIter->scSigmaEtaEta()); - - // track related distributions - h_ele_ambiguousTracks->Fill(gsfIter->ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsEta->Fill(gsfIter->eta(), gsfIter->ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsPhi->Fill(gsfIter->phi(), gsfIter->ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsPt->Fill(gsfIter->pt(), gsfIter->ambiguousGsfTracksSize()); - if (!readAOD_) { // track extra does not exist in AOD - h_ele_foundHits->Fill(gsfIter->gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsEta->Fill(gsfIter->eta(), gsfIter->gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsPhi->Fill(gsfIter->phi(), gsfIter->gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsPt->Fill(gsfIter->pt(), gsfIter->gsfTrack()->numberOfValidHits()); - h_ele_lostHits->Fill(gsfIter->gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsEta->Fill(gsfIter->eta(), gsfIter->gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsPhi->Fill(gsfIter->phi(), gsfIter->gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsPt->Fill(gsfIter->pt(), gsfIter->gsfTrack()->numberOfLostHits()); - h_ele_chi2->Fill(gsfIter->gsfTrack()->normalizedChi2()); - h_ele_chi2VsEta->Fill(gsfIter->eta(), gsfIter->gsfTrack()->normalizedChi2()); - h_ele_chi2VsPhi->Fill(gsfIter->phi(), gsfIter->gsfTrack()->normalizedChi2()); - h_ele_chi2VsPt->Fill(gsfIter->pt(), gsfIter->gsfTrack()->normalizedChi2()); - } - - // from gsf track interface, hence using mean - if (!readAOD_) { // track extra does not exist in AOD - h_ele_PinMnPout->Fill(gsfIter->gsfTrack()->innerMomentum().R() - gsfIter->gsfTrack()->outerMomentum().R()); - h_ele_outerP->Fill(gsfIter->gsfTrack()->outerMomentum().R()); - h_ele_outerPt->Fill(gsfIter->gsfTrack()->outerMomentum().Rho()); - } - - // from electron interface, hence using mode - h_ele_PinMnPout_mode->Fill(gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R()); - h_ele_outerP_mode->Fill(gsfIter->trackMomentumOut().R()); - h_ele_outerPt_mode->Fill(gsfIter->trackMomentumOut().Rho()); - - // match distributions - h_ele_EoP->Fill(gsfIter->eSuperClusterOverP()); - h_ele_EeleOPout->Fill(gsfIter->eEleClusterOverPout()); - h_ele_dEtaSc_propVtx->Fill(gsfIter->deltaEtaSuperClusterTrackAtVtx()); - h_ele_dPhiSc_propVtx->Fill(gsfIter->deltaPhiSuperClusterTrackAtVtx()); - h_ele_dEtaCl_propOut->Fill(gsfIter->deltaEtaSeedClusterTrackAtCalo()); - h_ele_dPhiCl_propOut->Fill(gsfIter->deltaPhiSeedClusterTrackAtCalo()); - h_ele_dEtaEleCl_propOut->Fill(gsfIter->deltaEtaEleClusterTrackAtCalo()); - h_ele_dPhiEleCl_propOut->Fill(gsfIter->deltaPhiEleClusterTrackAtCalo()); - h_ele_HoE->Fill(gsfIter->hadronicOverEm()); - - //classes - - //fbrem - - h_ele_mva->Fill(gsfIter->mva_e_pi()); - if (gsfIter->ecalDrivenSeed()) - h_ele_provenance->Fill(1.); - if (gsfIter->trackerDrivenSeed()) - h_ele_provenance->Fill(-1.); - if (gsfIter->trackerDrivenSeed() || gsfIter->ecalDrivenSeed()) - h_ele_provenance->Fill(0.); - if (gsfIter->trackerDrivenSeed() && !gsfIter->ecalDrivenSeed()) - h_ele_provenance->Fill(-2.); - if (!gsfIter->trackerDrivenSeed() && gsfIter->ecalDrivenSeed()) - h_ele_provenance->Fill(2.); - - h_ele_tkSumPt_dr03->Fill(gsfIter->dr03TkSumPt()); - h_ele_ecalRecHitSumEt_dr03->Fill(gsfIter->dr03EcalRecHitSumEt()); - h_ele_hcalDepth1TowerSumEt_dr03->Fill(gsfIter->dr03HcalTowerSumEt(1)); - h_ele_hcalDepth2TowerSumEt_dr03->Fill(gsfIter->dr03HcalTowerSumEt(2)); - h_ele_tkSumPt_dr04->Fill(gsfIter->dr04TkSumPt()); - h_ele_ecalRecHitSumEt_dr04->Fill(gsfIter->dr04EcalRecHitSumEt()); - h_ele_hcalDepth1TowerSumEt_dr04->Fill(gsfIter->dr04HcalTowerSumEt(1)); - h_ele_hcalDepth2TowerSumEt_dr04->Fill(gsfIter->dr04HcalTowerSumEt(2)); - } - - // association matching object-reco electrons - int matchingObjectNum = 0; - reco::SuperClusterCollection::const_iterator moIter; - for (moIter = recoClusters->begin(); moIter != recoClusters->end(); moIter++) { - // number of matching objects - matchingObjectNum++; - - if (moIter->energy() / cosh(moIter->eta()) > maxPtMatchingObject_ || - fabs(moIter->eta()) > maxAbsEtaMatchingObject_) { - continue; - } - - // suppress the endcaps - //if (fabs(moIter->eta()) > 1.5) continue; - // select central z - //if ( fabs((*mcIter)->production_vertex()->position().z())>50.) continue; - - h_matchingObjectEta->Fill(moIter->eta()); - h_matchingObjectAbsEta->Fill(fabs(moIter->eta())); - h_matchingObjectP->Fill(moIter->energy()); - h_matchingObjectPt->Fill(moIter->energy() / cosh(moIter->eta())); - h_matchingObjectPhi->Fill(moIter->phi()); - h_matchingObjectZ->Fill(moIter->z()); - - // find best matched electron - bool okGsfFound = false; - double gsfOkRatio = 999999.; - reco::GsfElectron bestGsfElectron; - reco::GsfElectronCollection::const_iterator gsfIter; - for (gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); gsfIter++) { - double vertexTIP = (gsfIter->vertex().x() - bs.position().x()) * (gsfIter->vertex().x() - bs.position().x()) + - (gsfIter->vertex().y() - bs.position().y()) * (gsfIter->vertex().y() - bs.position().y()); - vertexTIP = sqrt(vertexTIP); - - // select electrons - if (!selected(gsfIter, vertexTIP)) - continue; - - if (Selection_ >= 4) { - reco::GsfElectronCollection::const_iterator gsfIter2; - for (gsfIter2 = gsfIter + 1; gsfIter2 != gsfElectrons->end(); gsfIter2++) { - math::XYZTLorentzVector p12 = (*gsfIter).p4() + (*gsfIter2).p4(); - float mee2 = p12.Dot(p12); - bool opsign = (gsfIter->charge() * gsfIter2->charge() < 0.); - float invMass = sqrt(mee2); - - if (TPchecksign_ && !opsign) - break; - - // conditions Tag - if (TAGcheckclass_ && (gsfIter->classification() == GsfElectron::SHOWERING || gsfIter->isGap())) - break; - - // conditions Probe - if (PROBEetcut_ && (gsfIter2->superCluster()->energy() / cosh(gsfIter2->superCluster()->eta()) < minEt_)) - continue; - if (PROBEcheckclass_ && (gsfIter2->classification() == GsfElectron::SHOWERING || gsfIter2->isGap())) - continue; - - if (invMass < massLow_ || invMass > massHigh_) - continue; - - h_ele_mee_os->Fill(invMass); - bestGsfElectron = *gsfIter2; - okGsfFound = true; - } - } else { - reco::GsfElectronCollection::const_iterator gsfIter2; - for (gsfIter2 = gsfIter + 1; gsfIter2 != gsfElectrons->end(); gsfIter2++) { - math::XYZTLorentzVector p12 = (*gsfIter).p4() + (*gsfIter2).p4(); - float mee2 = p12.Dot(p12); - //bool opsign = (gsfIter->charge()*gsfIter2->charge()<0.) ; - float invMass = sqrt(mee2); - h_ele_mee_os->Fill(invMass); - } - - // matching with a cone in eta phi - if (matchingCondition_ == "Cone") { - double dphi = gsfIter->phi() - moIter->phi(); - if (fabs(dphi) > CLHEP::pi) { - dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi; - } - double deltaR = sqrt(std::pow((moIter->eta() - gsfIter->eta()), 2) + std::pow(dphi, 2)); - if (deltaR < deltaR_) { - //if ( (genPc->pdg_id() == 11) && (gsfIter->charge() < 0.) || (genPc->pdg_id() == -11) && - //(gsfIter->charge() > 0.) ){ - double tmpGsfRatio = gsfIter->p() / moIter->energy(); - if (fabs(tmpGsfRatio - 1) < fabs(gsfOkRatio - 1) && Selection_ != 4) { - gsfOkRatio = tmpGsfRatio; - bestGsfElectron = *gsfIter; - okGsfFound = true; - } - //} - } - } - } - } // loop over rec ele to look for the best one - - // analysis when the matching object is matched by a rec electron - if (okGsfFound) { - // generated distributions for matched electrons - h_ele_matchingObjectPt_matched->Fill(moIter->energy() / cosh(moIter->eta())); - h_ele_matchingObjectPhi_matched->Fill(moIter->phi()); - h_ele_matchingObjectAbsEta_matched->Fill(fabs(moIter->eta())); - h_ele_matchingObjectEta_matched->Fill(moIter->eta()); - h_ele_matchingObjectZ_matched->Fill(moIter->z()); - - reco::SuperClusterRef sclRef = bestGsfElectron.superCluster(); - - // add here distributions for matched electrons as for all electrons - //.. - } // gsf electron found - - } // loop overmatching object - - h_matchingObjectNum->Fill(matchingObjectNum); -} - -bool DQMAnalyzer::trigger(const edm::Event &e) { - // retreive TriggerResults from the event - edm::Handle triggerResults; - e.getByLabel(triggerResults_, triggerResults); - - bool accept = false; - - if (triggerResults.isValid()) { - //std::cout << "TriggerResults found, number of HLT paths: " << triggerResults->size() << std::endl; - - // get trigger names - const edm::TriggerNames &triggerNames = e.triggerNames(*triggerResults); - if (nEvents_ == 1) { - for (unsigned int i = 0; i < triggerNames.size(); i++) { - // std::cout << "trigger path= " << triggerNames.triggerName(i) << std::endl; - } - } - - unsigned int n = HLTPathsByName_.size(); - for (unsigned int i = 0; i != n; i++) { - HLTPathsByIndex_[i] = triggerNames.triggerIndex(HLTPathsByName_[i]); - } - - // empty input vectors (n==0) means any trigger paths - if (n == 0) { - n = triggerResults->size(); - HLTPathsByName_.resize(n); - HLTPathsByIndex_.resize(n); - for (unsigned int i = 0; i != n; i++) { - HLTPathsByName_[i] = triggerNames.triggerName(i); - HLTPathsByIndex_[i] = i; - } - } - - // if (nEvents_==1) - // { - // if (n>0) - // { - // std::cout << "HLT trigger paths requested: index, name and valididty:" << std::endl; - // for (unsigned int i=0; i!=n; i++) - // { - // bool validity = HLTPathsByIndex_[i]size(); - // std::cout - // << " " << HLTPathsByIndex_[i] - // << " " << HLTPathsByName_[i] - // << " " << validity << std::endl; - // } - // } - // } - - // count number of requested HLT paths which have fired - unsigned int fired = 0; - for (unsigned int i = 0; i != n; i++) { - if (HLTPathsByIndex_[i] < triggerResults->size()) { - if (triggerResults->accept(HLTPathsByIndex_[i])) { - fired++; - //std::cout << "Fired HLT path= " << HLTPathsByName_[i] << std::endl ; - accept = true; - } - } - } - } - - return accept; -} - -bool DQMAnalyzer::selected(const reco::GsfElectronCollection::const_iterator &gsfIter, double vertexTIP) { - if ((Selection_ > 0) && generalCut(gsfIter)) - return false; - if ((Selection_ >= 1) && etCut(gsfIter)) - return false; - if ((Selection_ >= 2) && isolationCut(gsfIter, vertexTIP)) - return false; - if ((Selection_ >= 3) && idCut(gsfIter)) - return false; - return true; -} - -bool DQMAnalyzer::generalCut(const reco::GsfElectronCollection::const_iterator &gsfIter) { - if (fabs(gsfIter->eta()) > maxAbsEta_) - return true; - if (gsfIter->pt() < minPt_) - return true; - - if (gsfIter->isEB() && isEE_) - return true; - if (gsfIter->isEE() && isEB_) - return true; - if (gsfIter->isEBEEGap() && isNotEBEEGap_) - return true; - - if (gsfIter->ecalDrivenSeed() && isTrackerDriven_) - return true; - if (gsfIter->trackerDrivenSeed() && isEcalDriven_) - return true; - - return false; -} - -bool DQMAnalyzer::etCut(const reco::GsfElectronCollection::const_iterator &gsfIter) { - if (gsfIter->superCluster()->energy() / cosh(gsfIter->superCluster()->eta()) < minEt_) - return true; - - return false; -} - -bool DQMAnalyzer::isolationCut(const reco::GsfElectronCollection::const_iterator &gsfIter, double vertexTIP) { - if (gsfIter->isEB() && vertexTIP > tipMaxBarrel_) - return true; - if (gsfIter->isEE() && vertexTIP > tipMaxEndcaps_) - return true; - - if (gsfIter->dr03TkSumPt() > tkIso03Max_) - return true; - if (gsfIter->isEB() && gsfIter->dr03HcalTowerSumEt(1) > hcalIso03Depth1MaxBarrel_) - return true; - if (gsfIter->isEE() && gsfIter->dr03HcalTowerSumEt(1) > hcalIso03Depth1MaxEndcaps_) - return true; - if (gsfIter->isEE() && gsfIter->dr03HcalTowerSumEt(2) > hcalIso03Depth2MaxEndcaps_) - return true; - if (gsfIter->isEB() && gsfIter->dr03EcalRecHitSumEt() > ecalIso03MaxBarrel_) - return true; - if (gsfIter->isEE() && gsfIter->dr03EcalRecHitSumEt() > ecalIso03MaxEndcaps_) - return true; - - return false; -} - -bool DQMAnalyzer::idCut(const reco::GsfElectronCollection::const_iterator &gsfIter) { - if (gsfIter->isEB() && gsfIter->eSuperClusterOverP() < eOverPMinBarrel_) - return true; - if (gsfIter->isEB() && gsfIter->eSuperClusterOverP() > eOverPMaxBarrel_) - return true; - if (gsfIter->isEE() && gsfIter->eSuperClusterOverP() < eOverPMinEndcaps_) - return true; - if (gsfIter->isEE() && gsfIter->eSuperClusterOverP() > eOverPMaxEndcaps_) - return true; - if (gsfIter->isEB() && fabs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) < dEtaMinBarrel_) - return true; - if (gsfIter->isEB() && fabs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) > dEtaMaxBarrel_) - return true; - if (gsfIter->isEE() && fabs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) < dEtaMinEndcaps_) - return true; - if (gsfIter->isEE() && fabs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) > dEtaMaxEndcaps_) - return true; - if (gsfIter->isEB() && fabs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) < dPhiMinBarrel_) - return true; - if (gsfIter->isEB() && fabs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) > dPhiMaxBarrel_) - return true; - if (gsfIter->isEE() && fabs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) < dPhiMinEndcaps_) - return true; - if (gsfIter->isEE() && fabs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) > dPhiMaxEndcaps_) - return true; - if (gsfIter->isEB() && gsfIter->scSigmaIEtaIEta() < sigIetaIetaMinBarrel_) - return true; - if (gsfIter->isEB() && gsfIter->scSigmaIEtaIEta() > sigIetaIetaMaxBarrel_) - return true; - if (gsfIter->isEE() && gsfIter->scSigmaIEtaIEta() < sigIetaIetaMinEndcaps_) - return true; - if (gsfIter->isEE() && gsfIter->scSigmaIEtaIEta() > sigIetaIetaMaxEndcaps_) - return true; - if (gsfIter->isEB() && gsfIter->hadronicOverEm() > hadronicOverEmMaxBarrel_) - return true; - if (gsfIter->isEE() && gsfIter->hadronicOverEm() > hadronicOverEmMaxEndcaps_) - return true; - - return false; -} diff --git a/RecoEgamma/Examples/plugins/ElectronIDAnalyzer.cc b/RecoEgamma/Examples/plugins/ElectronIDAnalyzer.cc deleted file mode 100644 index 268893ef96631..0000000000000 --- a/RecoEgamma/Examples/plugins/ElectronIDAnalyzer.cc +++ /dev/null @@ -1,65 +0,0 @@ -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -class ElectronIDAnalyzer : public edm::one::EDAnalyzer<> { -public: - explicit ElectronIDAnalyzer(const edm::ParameterSet& conf); - ~ElectronIDAnalyzer() override{}; - - void analyze(const edm::Event& e, const edm::EventSetup& c) override; - -private: - edm::ParameterSet conf_; - - std::string electronProducer_; - - std::string electronLabelRobustLoose_; - std::string electronLabelRobustTight_; - std::string electronLabelLoose_; - std::string electronLabelTight_; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(ElectronIDAnalyzer); - -ElectronIDAnalyzer::ElectronIDAnalyzer(const edm::ParameterSet& conf) : conf_(conf) { - electronProducer_ = conf.getParameter("electronProducer"); - electronLabelRobustLoose_ = conf.getParameter("electronLabelRobustLoose"); - electronLabelRobustTight_ = conf.getParameter("electronLabelRobustTight"); - electronLabelLoose_ = conf.getParameter("electronLabelLoose"); - electronLabelTight_ = conf.getParameter("electronLabelTight"); -} - -void ElectronIDAnalyzer::analyze(const edm::Event& e, const edm::EventSetup& c) { - //Read selectrons - edm::Handle electrons; - e.getByLabel(electronProducer_, electrons); - - //Read eID results - std::vector > > eIDValueMap(4); - //Robust-Loose - e.getByLabel(electronLabelRobustLoose_, eIDValueMap[0]); - const edm::ValueMap& eIDmapRL = *eIDValueMap[0]; - //Robust-Tight - e.getByLabel(electronLabelRobustTight_, eIDValueMap[1]); - const edm::ValueMap& eIDmapRT = *eIDValueMap[1]; - //Loose - e.getByLabel(electronLabelLoose_, eIDValueMap[2]); - const edm::ValueMap& eIDmapL = *eIDValueMap[2]; - //Tight - e.getByLabel(electronLabelTight_, eIDValueMap[3]); - const edm::ValueMap& eIDmapT = *eIDValueMap[3]; - - // Loop over electrons - for (unsigned int i = 0; i < electrons->size(); i++) { - edm::Ref electronRef(electrons, i); - std::cout << "Event " << e.id() << " , electron " << i + 1 << " , Robust Loose = " << eIDmapRL[electronRef] - << " , Robust Tight = " << eIDmapRT[electronRef] << " , Loose = " << eIDmapL[electronRef] - << " , Tight = " << eIDmapT[electronRef] << std::endl; - } -} diff --git a/RecoEgamma/Examples/plugins/ElectronSeedAnalyzer.cc b/RecoEgamma/Examples/plugins/ElectronSeedAnalyzer.cc deleted file mode 100644 index 14951a0a5791b..0000000000000 --- a/RecoEgamma/Examples/plugins/ElectronSeedAnalyzer.cc +++ /dev/null @@ -1,650 +0,0 @@ -// -// Package: RecoEgamma/ElectronTrackSeed -// Class: ElectronSeedAnalyzer -// - -// -// Original Author: Ursula Berthon, Claude Charlot -// Created: Mon Mar 27 13:22:06 CEST 2006 -// -// - -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/EgammaReco/interface/ElectronSeed.h" -#include "DataFormats/EgammaReco/interface/ElectronSeedFwd.h" -#include "DataFormats/EgammaReco/interface/SuperCluster.h" -#include "DataFormats/EgammaReco/interface/SuperClusterFwd.h" -#include "DataFormats/GeometryCommonDetAlgo/interface/PerpendicularBoundPlaneBuilder.h" -#include "DataFormats/GeometryVector/interface/GlobalPoint.h" -#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" -#include "DataFormats/TrajectoryState/interface/PTrajectoryStateOnDet.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "Geometry/CommonDetUnit/interface/GeomDet.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" -#include "Geometry/Records/interface/TrackerTopologyRcd.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" -#include "TrackingTools/MaterialEffects/interface/PropagatorWithMaterial.h" -#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" -#include "TrackingTools/TrajectoryState/interface/ftsFromVertexToPoint.h" - -#include "CLHEP/Units/GlobalPhysicalConstants.h" -#include "HepMC/GenParticle.h" -#include "HepMC/SimpleVector.h" - -#include "TFile.h" -#include "TH1F.h" -#include "TH1I.h" -#include "TTree.h" - -#include - -class ElectronSeedAnalyzer : public edm::one::EDAnalyzer<> { -public: - explicit ElectronSeedAnalyzer(const edm::ParameterSet &conf); - ~ElectronSeedAnalyzer() override; - void analyze(const edm::Event &, const edm::EventSetup &) override; - void beginJob() override; - void endJob() override; - -private: - TrajectoryStateTransform transformer_; - - edm::ESGetToken topoToken_; - edm::ESGetToken trackerToken_; - edm::ESGetToken magFieldToken_; - - TFile *histfile_; - TTree *tree_; - float mcEnergy[10], mcEta[10], mcPhi[10], mcPt[10], mcQ[10]; - float superclusterEnergy[10], superclusterEta[10], superclusterPhi[10], superclusterEt[10]; - float seedMomentum[10], seedEta[10], seedPhi[10], seedPt[10], seedQ[10]; - int seedSubdet1[10], seedSubdet2[10]; - int seedLayer1[10], seedLayer2[10]; - int seedSide1[10], seedSide2[10]; - float seedDphi1[10], seedDrz1[10], seedDphi2[10], seedDrz2[10]; - float seedPhi1[10], seedRz1[10], seedPhi2[10], seedRz2[10]; - TH1F *histeMC_; - TH1F *histeMCmatched_; - TH1F *histecaldriveneMCmatched_; - TH1F *histtrackerdriveneMCmatched_; - TH1F *histp_; - TH1F *histeclu_; - TH1F *histpt_; - TH1F *histptMC_; - TH1F *histptMCmatched_; - TH1F *histecaldrivenptMCmatched_; - TH1F *histtrackerdrivenptMCmatched_; - TH1F *histetclu_; - TH1F *histeffpt_; - TH1F *histeta_; - TH1F *histetaMC_; - TH1F *histetaMCmatched_; - TH1F *histecaldrivenetaMCmatched_; - TH1F *histtrackerdrivenetaMCmatched_; - TH1F *histetaclu_; - TH1F *histeffeta_; - TH1F *histq_; - TH1F *histeoverp_; - TH1I *histnrseeds_; - TH1I *histnbseeds_; - TH1I *histnbclus_; - - edm::InputTag inputCollection_; - edm::InputTag beamSpot_; - // std::vector > mapTsos_; - // std::vector, TrajectoryStateOnSurface> > mapTsos2_; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(ElectronSeedAnalyzer); - -using namespace std; -using namespace reco; - -ElectronSeedAnalyzer::ElectronSeedAnalyzer(const edm::ParameterSet &conf) - : topoToken_(esConsumes()), - trackerToken_(esConsumes()), - magFieldToken_(esConsumes()), - beamSpot_(conf.getParameter("beamSpot")) { - inputCollection_ = conf.getParameter("inputCollection"); - histfile_ = new TFile("electronpixelseeds.root", "RECREATE"); -} - -void ElectronSeedAnalyzer::beginJob() { - histfile_->cd(); - tree_ = new TTree("ElectronSeeds", "ElectronSeed validation ntuple"); - tree_->Branch("mcEnergy", mcEnergy, "mcEnergy[10]/F"); - tree_->Branch("mcEta", mcEta, "mcEta[10]/F"); - tree_->Branch("mcPhi", mcPhi, "mcPhi[10]/F"); - tree_->Branch("mcPt", mcPt, "mcPt[10]/F"); - tree_->Branch("mcQ", mcQ, "mcQ[10]/F"); - tree_->Branch("superclusterEnergy", superclusterEnergy, "superclusterEnergy[10]/F"); - tree_->Branch("superclusterEta", superclusterEta, "superclusterEta[10]/F"); - tree_->Branch("superclusterPhi", superclusterPhi, "superclusterPhi[10]/F"); - tree_->Branch("superclusterEt", superclusterEt, "superclusterEt[10]/F"); - tree_->Branch("seedMomentum", seedMomentum, "seedMomentum[10]/F"); - tree_->Branch("seedEta", seedEta, "seedEta[10]/F"); - tree_->Branch("seedPhi", seedPhi, "seedPhi[10]/F"); - tree_->Branch("seedPt", seedPt, "seedPt[10]/F"); - tree_->Branch("seedQ", seedQ, "seedQ[10]/F"); - tree_->Branch("seedSubdet1", seedSubdet1, "seedSubdet1[10]/I"); - tree_->Branch("seedLayer1", seedLayer1, "seedLayer1[10]/I"); - tree_->Branch("seedSide1", seedSide1, "seedSide1[10]/I"); - tree_->Branch("seedPhi1", seedPhi1, "seedPhi1[10]/F"); - tree_->Branch("seedDphi1", seedDphi1, "seedDphi1[10]/F"); - tree_->Branch("seedDrz1", seedDrz1, "seedDrz1[10]/F"); - tree_->Branch("seedRz1", seedRz1, "seedRz1[10]/F"); - tree_->Branch("seedSubdet2", seedSubdet2, "seedSubdet2[10]/I"); - tree_->Branch("seedLayer2", seedLayer2, "seedLayer2[10]/I"); - tree_->Branch("seedSide2", seedSide2, "seedSide2[10]/I"); - tree_->Branch("seedPhi2", seedPhi2, "seedPhi2[10]/F"); - tree_->Branch("seedDphi2", seedDphi2, "seedDphi2[10]/F"); - tree_->Branch("seedRz2", seedRz2, "seedRz2[10]/F"); - tree_->Branch("seedDrz2", seedDrz2, "seedDrz2[10]/F"); - histeMC_ = new TH1F("eMC", "MC particle energy", 100, 0., 100.); - histeMCmatched_ = new TH1F("eMCmatched", "matched MC particle energy", 100, 0., 100.); - histecaldriveneMCmatched_ = - new TH1F("ecaldriveneMCmatched", "matched MC particle energy, ecal driven", 100, 0., 100.); - histtrackerdriveneMCmatched_ = - new TH1F("trackerdriveneMCmatched", "matched MC particle energy, tracker driven", 100, 0., 100.); - histp_ = new TH1F("p", "seed p", 100, 0., 100.); - histeclu_ = new TH1F("clus energy", "supercluster energy", 100, 0., 100.); - histpt_ = new TH1F("pt", "seed pt", 100, 0., 100.); - histptMC_ = new TH1F("ptMC", "MC particle pt", 100, 0., 100.); - histptMCmatched_ = new TH1F("ptMCmatched", "matched MC particle pt", 100, 0., 100.); - histecaldrivenptMCmatched_ = new TH1F("ecaldrivenptMCmatched", "matched MC particle pt, ecal driven", 100, 0., 100.); - histtrackerdrivenptMCmatched_ = - new TH1F("trackerdrivenptMCmatched", "matched MC particle pt, tracker driven", 100, 0., 100.); - histetclu_ = new TH1F("Et", "supercluster Et", 100, 0., 100.); - histeffpt_ = new TH1F("pt eff", "seed effciency vs pt", 100, 0., 100.); - histeta_ = new TH1F("seed eta", "seed eta", 100, -2.5, 2.5); - histetaMC_ = new TH1F("etaMC", "MC particle eta", 100, -2.5, 2.5); - histetaMCmatched_ = new TH1F("etaMCmatched", "matched MC particle eta", 100, -2.5, 2.5); - histecaldrivenetaMCmatched_ = - new TH1F("ecaldrivenetaMCmatched", "matched MC particle eta, ecal driven", 100, -2.5, 2.5); - histtrackerdrivenetaMCmatched_ = - new TH1F("trackerdrivenetaMCmatched", "matched MC particle eta, tracker driven", 100, -2.5, 2.5); - histetaclu_ = new TH1F("clus eta", "supercluster eta", 100, -2.5, 2.5); - histeffeta_ = new TH1F("eta eff", "seed effciency vs eta", 100, -2.5, 2.5); - histq_ = new TH1F("q", "seed charge", 100, -2.5, 2.5); - histeoverp_ = new TH1F("E/p", "seed E/p", 100, 0., 10.); - histnbseeds_ = new TH1I("nrs", "Nr of seeds ", 50, 0., 25.); - histnbclus_ = new TH1I("nrclus", "Nr of superclusters ", 50, 0., 25.); - histnrseeds_ = new TH1I("ns", "Nr of seeds if clusters", 50, 0., 25.); -} - -void ElectronSeedAnalyzer::endJob() { - histfile_->cd(); - tree_->Print(); - tree_->Write(); - - // efficiency vs eta - TH1F *histetaEff = (TH1F *)histetaMCmatched_->Clone("histetaEff"); - histetaEff->Reset(); - histetaEff->Divide(histetaMCmatched_, histeta_, 1, 1, "b"); - histetaEff->Print(); - histetaEff->GetXaxis()->SetTitle("#eta"); - histetaEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs pt - TH1F *histptEff = (TH1F *)histptMCmatched_->Clone("histotEff"); - histptEff->Reset(); - histptEff->Divide(histptMCmatched_, histpt_, 1, 1, "b"); - histptEff->Print(); - histptEff->GetXaxis()->SetTitle("p_{T}"); - histptEff->GetYaxis()->SetTitle("Efficiency"); - - histeMCmatched_->Write(); - histecaldriveneMCmatched_->Write(); - histtrackerdriveneMCmatched_->Write(); - histeMC_->Write(); - histp_->Write(); - histeclu_->Write(); - histpt_->Write(); - histptMCmatched_->Write(); - histecaldrivenptMCmatched_->Write(); - histtrackerdrivenptMCmatched_->Write(); - histptMC_->Write(); - histetclu_->Write(); - histeffpt_->Write(); - histeta_->Write(); - histetaMCmatched_->Write(); - histecaldrivenetaMCmatched_->Write(); - histtrackerdrivenetaMCmatched_->Write(); - histetaMC_->Write(); - histetaclu_->Write(); - histeffeta_->Write(); - histq_->Write(); - histeoverp_->Write(); - histnbseeds_->Write(); - histnbclus_->Write(); - histnrseeds_->Write(); -} - -ElectronSeedAnalyzer::~ElectronSeedAnalyzer() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) - //tree_->Print(); - histfile_->Write(); - histeMC_->Write(); - histfile_->Close(); -} - -void ElectronSeedAnalyzer::analyze(const edm::Event &e, const edm::EventSetup &iSetup) { - //Retrieve tracker topology from geometry - edm::ESHandle tTopo = iSetup.getHandle(topoToken_); - - edm::ESHandle pDD = iSetup.getHandle(trackerToken_); - edm::ESHandle theMagField = iSetup.getHandle(magFieldToken_); - - // get beam spot - edm::Handle theBeamSpot; - e.getByLabel(beamSpot_, theBeamSpot); - - // get seeds - - edm::Handle elSeeds; - e.getByLabel(inputCollection_, elSeeds); - edm::LogInfo("") << "\n\n =================> Treating event " << e.id() << " Number of seeds " - << elSeeds.product()->size(); - int is = 0; - - float mass = .000511; // electron propagation - PropagatorWithMaterial *prop1stLayer = new PropagatorWithMaterial(oppositeToMomentum, mass, &(*theMagField)); - PropagatorWithMaterial *prop2ndLayer = new PropagatorWithMaterial(alongMomentum, mass, &(*theMagField)); - - float dphi1 = 0., dphi2 = 0., drz1 = 0., drz2 = 0.; - float phi1 = 0., phi2 = 0., rz1 = 0., rz2 = 0.; - - for (ElectronSeedCollection::const_iterator MyS = (*elSeeds).begin(); MyS != (*elSeeds).end(); ++MyS) { - LogDebug("") << "\nSeed nr " << is << ": "; - const TrajectorySeed::RecHitRange r = MyS->recHits(); - LogDebug("") << " Number of RecHits= " << (*MyS).nHits(); - const GeomDet *det1 = nullptr; - const GeomDet *det2 = nullptr; - - auto it = r.begin(); - DetId id1 = (*it).geographicalId(); - det1 = pDD->idToDet(id1); - LogDebug("") << " First hit local x,y,z " << (*it).localPosition() << " det " << id1.det() << " subdet " - << id1.subdetId(); - LogDebug("") << " First hit global " << det1->toGlobal((*it).localPosition()); - //std::cout <<" First hit local x,y,z "<<(*it).localPosition()<<" det "<toGlobal((*it).localPosition())<< std::endl; - it++; - DetId id2 = (*it).geographicalId(); - det2 = pDD->idToDet(id2); - LogDebug("") << " Second hit local x,y,z " << (*it).localPosition() << " det " << id2.det() << " subdet " - << id2.subdetId(); - LogDebug("") << " Second hit global " << det2->toGlobal((*it).localPosition()); - //std::cout <<" Second hit local x,y,z "<<(*it).localPosition()<<" det "<toGlobal((*it).localPosition()) << std::endl; - - // state on last det - const GeomDet *det = nullptr; - for (auto const &recHit : r) { - det = pDD->idToDet(recHit.geographicalId()); - } - TrajectoryStateOnSurface t = - trajectoryStateTransform::transientState((*MyS).startingState(), &(det->surface()), &(*theMagField)); - - // debug - - LogDebug("") << " ElectronSeed outermost state position: " << t.globalPosition(); - LogDebug("") << " ElectronSeed outermost state momentum: " << t.globalMomentum(); - edm::RefToBase caloCluster = (*MyS).caloCluster(); - if (caloCluster.isNull()) - continue; - edm::Ref theClus = caloCluster.castTo(); - LogDebug("") << " ElectronSeed superCluster energy: " << theClus->energy() << ", position: " << theClus->position(); - LogDebug("") << " ElectronSeed outermost state Pt: " << t.globalMomentum().perp(); - LogDebug("") << " ElectronSeed supercluster Et: " - << theClus->energy() * sin(2. * atan(exp(-theClus->position().eta()))); - LogDebug("") << " ElectronSeed outermost momentum direction eta: " << t.globalMomentum().eta(); - LogDebug("") << " ElectronSeed supercluster eta: " << theClus->position().eta(); - LogDebug("") << " ElectronSeed seed charge: " << (*MyS).getCharge(); - LogDebug("") << " ElectronSeed E/p: " << theClus->energy() / t.globalMomentum().mag(); - - // retreive SC and compute distances between hit position and prediction the same - // way as in the PixelHitMatcher - - // inputs are charge, cluster position, vertex position, cluster energy and B field - int charge = int((*MyS).getCharge()); - GlobalPoint xmeas(theClus->position().x(), theClus->position().y(), theClus->position().z()); - GlobalPoint vprim(theBeamSpot->position().x(), theBeamSpot->position().y(), theBeamSpot->position().z()); - float energy = theClus->energy(); - - auto fts = trackingTools::ftsFromVertexToPoint(*theMagField, xmeas, vprim, energy, charge); - //std::cout << "[PixelHitMatcher::compatibleSeeds] fts position, momentum " << - // fts.parameters().position() << " " << fts.parameters().momentum() << std::endl; - - PerpendicularBoundPlaneBuilder bpb; - TrajectoryStateOnSurface tsos(fts, *bpb(fts.position(), fts.momentum())); - - // TrajectorySeed::range r=(*seeds.product())[i].recHits(); - // TrajectorySeed::range r=(*seeds)[i].recHits(); - - // first Hit - it = r.begin(); - DetId id = (*it).geographicalId(); - const GeomDet *geomdet = pDD->idToDet((*it).geographicalId()); - LocalPoint lp = (*it).localPosition(); - GlobalPoint hitPos = geomdet->surface().toGlobal(lp); - - TrajectoryStateOnSurface tsos1; - tsos1 = prop1stLayer->propagate(tsos, geomdet->surface()); - - if (tsos1.isValid()) { - //UB add test on phidiff - float SCl_phi = xmeas.phi(); - float localDphi = SCl_phi - hitPos.phi(); - if (localDphi > CLHEP::pi) - localDphi -= (2 * CLHEP::pi); - if (localDphi < -CLHEP::pi) - localDphi += (2 * CLHEP::pi); - if (std::abs(localDphi) > 2.5) - continue; - - phi1 = hitPos.phi(); - dphi1 = hitPos.phi() - tsos1.globalPosition().phi(); - rz1 = hitPos.perp(); - drz1 = hitPos.perp() - tsos1.globalPosition().perp(); - if (id.subdetId() % 2 == 1) { - drz1 = hitPos.z() - tsos1.globalPosition().z(); - rz1 = hitPos.z(); - } - - // now second Hit - it++; - DetId id2 = (*it).geographicalId(); - const GeomDet *geomdet2 = pDD->idToDet((*it).geographicalId()); - TrajectoryStateOnSurface tsos2; - - // compute the z vertex from the cluster point and the found pixel hit - double pxHit1z = hitPos.z(); - double pxHit1x = hitPos.x(); - double pxHit1y = hitPos.y(); - double r1diff = (pxHit1x - vprim.x()) * (pxHit1x - vprim.x()) + (pxHit1y - vprim.y()) * (pxHit1y - vprim.y()); - r1diff = sqrt(r1diff); - double r2diff = (xmeas.x() - pxHit1x) * (xmeas.x() - pxHit1x) + (xmeas.y() - pxHit1y) * (xmeas.y() - pxHit1y); - r2diff = sqrt(r2diff); - double zVertexPred = pxHit1z - r1diff * (xmeas.z() - pxHit1z) / r2diff; - - GlobalPoint vertexPred(vprim.x(), vprim.y(), zVertexPred); - - auto fts2 = trackingTools::ftsFromVertexToPoint(*theMagField, hitPos, vertexPred, energy, charge); - tsos2 = prop2ndLayer->propagate(fts2, geomdet2->surface()); - - if (tsos2.isValid()) { - LocalPoint lp2 = (*it).localPosition(); - GlobalPoint hitPos2 = geomdet2->surface().toGlobal(lp2); - phi2 = hitPos2.phi(); - dphi2 = hitPos2.phi() - tsos2.globalPosition().phi(); - rz2 = hitPos2.perp(); - drz2 = hitPos2.perp() - tsos2.globalPosition().perp(); - if (id2.subdetId() % 2 == 1) { - rz2 = hitPos2.z(); - drz2 = hitPos2.z() - tsos2.globalPosition().z(); - } - } - } - - // fill the tree and histos - - histpt_->Fill(t.globalMomentum().perp()); - histetclu_->Fill(theClus->energy() * sin(2. * atan(exp(-theClus->position().eta())))); - histeta_->Fill(t.globalMomentum().eta()); - histetaclu_->Fill(theClus->position().eta()); - histq_->Fill((*MyS).getCharge()); - histeoverp_->Fill(theClus->energy() / t.globalMomentum().mag()); - - if (is < 10) { - superclusterEnergy[is] = theClus->energy(); - superclusterEta[is] = theClus->position().eta(); - superclusterPhi[is] = theClus->position().phi(); - superclusterEt[is] = theClus->energy() * sin(2. * atan(exp(-theClus->position().eta()))); - seedMomentum[is] = t.globalMomentum().mag(); - seedEta[is] = t.globalMomentum().eta(); - seedPhi[is] = t.globalMomentum().phi(); - seedPt[is] = t.globalMomentum().perp(); - seedQ[is] = (*MyS).getCharge(); - seedSubdet1[is] = id1.subdetId(); - seedLayer1[is] = tTopo->layer(id1); - seedSide1[is] = tTopo->side(id1); - seedPhi1[is] = phi1; - seedRz1[is] = rz1; - seedDphi1[is] = dphi1; - seedDrz1[is] = drz1; - seedSubdet2[is] = id2.subdetId(); - seedLayer2[is] = tTopo->layer(id2); - seedSide2[is] = tTopo->side(id2); - seedDphi2[is] = dphi2; - seedDrz2[is] = drz2; - seedPhi2[is] = phi2; - seedRz2[is] = rz2; - } - - is++; - } - - histnbseeds_->Fill(elSeeds.product()->size()); - - // get input clusters - - edm::Handle clusters; - //CC to be changed according to supercluster input - e.getByLabel("correctedHybridSuperClusters", clusters); - histnbclus_->Fill(clusters.product()->size()); - if (!clusters.product()->empty()) - histnrseeds_->Fill(elSeeds.product()->size()); - // get MC information - - edm::Handle HepMCEvt; - // this one is empty branch in current test files - //e.getByLabel("generatorSmeared", "", HepMCEvt); - //e.getByLabel("source", "", HepMCEvt); - e.getByLabel("generatorSmeared", "", HepMCEvt); - - const HepMC::GenEvent *MCEvt = HepMCEvt->GetEvent(); - HepMC::GenParticle *genPc = nullptr; - HepMC::FourVector pAssSim; - int ip = 0; - for (HepMC::GenEvent::particle_const_iterator partIter = MCEvt->particles_begin(); partIter != MCEvt->particles_end(); - ++partIter) { - for (HepMC::GenEvent::vertex_const_iterator vertIter = MCEvt->vertices_begin(); vertIter != MCEvt->vertices_end(); - ++vertIter) { - // CLHEP::HepLorentzVector creation = (*partIter)->CreationVertex(); - HepMC::GenVertex *creation = (*partIter)->production_vertex(); - // CLHEP::HepLorentzVector momentum = (*partIter)->Momentum(); - HepMC::FourVector momentum = (*partIter)->momentum(); - // HepPDT::ParticleID id = (*partIter)->particleID(); // electrons and positrons are 11 and -11 - int id = (*partIter)->pdg_id(); // electrons and positrons are 11 and -11 - LogDebug("") << "MC particle id " << id << ", creationVertex " << (*creation) << " cm, initialMomentum " - << momentum.rho() << " GeV/c" << std::endl; - - if (id == 11 || id == -11) { - // single primary electrons or electrons from Zs or Ws - HepMC::GenParticle *mother = nullptr; - if ((*partIter)->production_vertex()) { - if ((*partIter)->production_vertex()->particles_begin(HepMC::parents) != - (*partIter)->production_vertex()->particles_end(HepMC::parents)) - mother = *((*partIter)->production_vertex()->particles_begin(HepMC::parents)); - } - if (((mother == nullptr) || ((mother != nullptr) && (mother->pdg_id() == 23)) || - ((mother != nullptr) && (mother->pdg_id() == 32)) || - ((mother != nullptr) && (std::abs(mother->pdg_id()) == 24)))) { - genPc = (*partIter); - pAssSim = genPc->momentum(); - - // EWK fiducial - //if (pAssSim.perp()> 100. || std::abs(pAssSim.eta())> 2.5) continue; - //if (pAssSim.perp()< 20. || (std::abs(pAssSim.eta())> 1.4442 && std::abs(pAssSim.eta())< 1.56) || std::abs(pAssSim.eta())> 2.5) continue; - // reconstruction fiducial - //if (pAssSim.perp()< 5. || std::abs(pAssSim.eta())> 2.5) continue; - if (std::abs(pAssSim.eta()) > 2.5) - continue; - - histptMC_->Fill(pAssSim.perp()); - histetaMC_->Fill(pAssSim.eta()); - histeMC_->Fill(pAssSim.rho()); - - // looking for the best matching gsf electron - bool okSeedFound = false; - double seedOkRatio = 999999.; - - // find best matched seed - reco::ElectronSeed bestElectronSeed; - for (ElectronSeedCollection::const_iterator gsfIter = (*elSeeds).begin(); gsfIter != (*elSeeds).end(); - ++gsfIter) { - const GeomDet *det = nullptr; - for (auto const &recHit : gsfIter->recHits()) { - det = pDD->idToDet(recHit.geographicalId()); - } - TrajectoryStateOnSurface t = - trajectoryStateTransform::transientState(gsfIter->startingState(), &(det->surface()), &(*theMagField)); - - float eta = t.globalMomentum().eta(); - float phi = t.globalMomentum().phi(); - float p = t.globalMomentum().mag(); - double dphi = phi - pAssSim.phi(); - if (std::abs(dphi) > CLHEP::pi) - dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi; - double deltaR = sqrt(std::pow((eta - pAssSim.eta()), 2) + std::pow(dphi, 2)); - if (deltaR < 0.15) { - // if ( deltaR < 0.3 ){ - //if ( (genPc->pdg_id() == 11) && (gsfIter->charge() < 0.) || (genPc->pdg_id() == -11) && - //(gsfIter->charge() > 0.) ){ - double tmpSeedRatio = p / pAssSim.t(); - if (std::abs(tmpSeedRatio - 1) < std::abs(seedOkRatio - 1)) { - seedOkRatio = tmpSeedRatio; - bestElectronSeed = *gsfIter; - okSeedFound = true; - } - //} - } - } // loop over rec ele to look for the best one - - // analysis when the mc track is found - if (okSeedFound) { - histptMCmatched_->Fill(pAssSim.perp()); - histetaMCmatched_->Fill(pAssSim.eta()); - histeMCmatched_->Fill(pAssSim.rho()); - if (ip < 10) { - mcEnergy[ip] = pAssSim.rho(); - mcEta[ip] = pAssSim.eta(); - mcPhi[ip] = pAssSim.phi(); - mcPt[ip] = pAssSim.perp(); - mcQ[ip] = ((id == 11) ? -1. : +1.); - } - } - - // efficiency for ecal driven only - okSeedFound = false; - seedOkRatio = 999999.; - - // find best matched seed - for (ElectronSeedCollection::const_iterator gsfIter = (*elSeeds).begin(); gsfIter != (*elSeeds).end(); - ++gsfIter) { - const GeomDet *det = nullptr; - for (auto const &recHit : gsfIter->recHits()) { - det = pDD->idToDet(recHit.geographicalId()); - } - TrajectoryStateOnSurface t = - trajectoryStateTransform::transientState(gsfIter->startingState(), &(det->surface()), &(*theMagField)); - - float eta = t.globalMomentum().eta(); - float phi = t.globalMomentum().phi(); - float p = t.globalMomentum().mag(); - double dphi = phi - pAssSim.phi(); - if (std::abs(dphi) > CLHEP::pi) - dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi; - double deltaR = sqrt(std::pow((eta - pAssSim.eta()), 2) + std::pow(dphi, 2)); - if (gsfIter->isEcalDriven()) { - if (deltaR < 0.15) { - // if ( deltaR < 0.3 ){ - //if ( (genPc->pdg_id() == 11) && (gsfIter->charge() < 0.) || (genPc->pdg_id() == -11) && - //(gsfIter->charge() > 0.) ){ - double tmpSeedRatio = p / pAssSim.t(); - if (std::abs(tmpSeedRatio - 1) < std::abs(seedOkRatio - 1)) { - seedOkRatio = tmpSeedRatio; - bestElectronSeed = *gsfIter; - okSeedFound = true; - } - //} - } - } // end if ecal driven - } // loop over rec ele to look for the best one - - // analysis when the mc track is found - if (okSeedFound) { - histecaldrivenptMCmatched_->Fill(pAssSim.perp()); - histecaldrivenetaMCmatched_->Fill(pAssSim.eta()); - histecaldriveneMCmatched_->Fill(pAssSim.rho()); - } - - // efficiency for tracker driven only - okSeedFound = false; - seedOkRatio = 999999.; - - // find best matched seed - for (ElectronSeedCollection::const_iterator gsfIter = (*elSeeds).begin(); gsfIter != (*elSeeds).end(); - ++gsfIter) { - const GeomDet *det = nullptr; - for (auto const &recHit : gsfIter->recHits()) { - det = pDD->idToDet(recHit.geographicalId()); - } - TrajectoryStateOnSurface t = - trajectoryStateTransform::transientState(gsfIter->startingState(), &(det->surface()), &(*theMagField)); - - float eta = t.globalMomentum().eta(); - float phi = t.globalMomentum().phi(); - float p = t.globalMomentum().mag(); - double dphi = phi - pAssSim.phi(); - if (std::abs(dphi) > CLHEP::pi) - dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi; - double deltaR = sqrt(std::pow((eta - pAssSim.eta()), 2) + std::pow(dphi, 2)); - if (gsfIter->isTrackerDriven()) { - if (deltaR < 0.15) { - // if ( deltaR < 0.3 ){ - //if ( (genPc->pdg_id() == 11) && (gsfIter->charge() < 0.) || (genPc->pdg_id() == -11) && - //(gsfIter->charge() > 0.) ){ - double tmpSeedRatio = p / pAssSim.t(); - if (std::abs(tmpSeedRatio - 1) < std::abs(seedOkRatio - 1)) { - seedOkRatio = tmpSeedRatio; - bestElectronSeed = *gsfIter; - okSeedFound = true; - } - //} - } - } // end if ecal driven - } // loop over rec ele to look for the best one - - // analysis when the mc track is found - if (okSeedFound) { - histtrackerdrivenptMCmatched_->Fill(pAssSim.perp()); - histtrackerdrivenetaMCmatched_->Fill(pAssSim.eta()); - histtrackerdriveneMCmatched_->Fill(pAssSim.rho()); - } - - } // end if mother W or Z - - } // end if gen part is electron - - } // end loop on vertices - - ip++; - - } // end loop on gen particles - - //tree_->Fill(); -} diff --git a/RecoEgamma/Examples/plugins/GsfElectronDataAnalyzer.cc b/RecoEgamma/Examples/plugins/GsfElectronDataAnalyzer.cc deleted file mode 100644 index a61beb5c9faa1..0000000000000 --- a/RecoEgamma/Examples/plugins/GsfElectronDataAnalyzer.cc +++ /dev/null @@ -1,2404 +0,0 @@ - -// -*- C++ -*- -// -// Package: RecoEgamma/Examples -// Class: GsfElectronDataAnalyzer -// -/**\class GsfElectronDataAnalyzer RecoEgamma/Examples/src/GsfElectronDataAnalyzer.cc - - Description: GsfElectrons analyzer using reco data - - Implementation: - -*/ -// -// Original Author: Ursula Berthon, Claude Charlot -// Created: Mon Mar 27 13:22:06 CEST 2006 -// -// - -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Common/interface/TriggerResults.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" -#include "DataFormats/EgammaReco/interface/ElectronSeed.h" -#include "DataFormats/EgammaReco/interface/ElectronSeedFwd.h" -#include "DataFormats/EgammaReco/interface/SuperClusterFwd.h" -#include "DataFormats/GsfTrackReco/interface/GsfTrack.h" -#include "FWCore/Common/interface/TriggerNames.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" - -#include "CLHEP/Units/GlobalPhysicalConstants.h" - -#include "TFile.h" -#include "TH1F.h" -#include "TH1I.h" -#include "TH2F.h" -#include "TProfile.h" -#include "TTree.h" - -#include - -class GsfElectronDataAnalyzer : public edm::one::EDAnalyzer<> { -public: - explicit GsfElectronDataAnalyzer(const edm::ParameterSet &conf); - - ~GsfElectronDataAnalyzer() override; - - void beginJob() override; - void endJob() override; - void analyze(const edm::Event &e, const edm::EventSetup &c) override; - -private: - bool trigger(const edm::Event &e); - - unsigned int nEvents_; - unsigned int nAfterTrigger_; - - edm::InputTag triggerResults_; - edm::InputTag beamSpot_; - - std::vector HLTPathsByName_; - std::vector HLTPathsByIndex_; - - std::string outputFile_; - edm::InputTag electronCollection_; - edm::InputTag matchingObjectCollection_; - std::string matchingCondition_; - std::string type_; - bool readAOD_; - // matching - double maxPtMatchingObject_; - double maxAbsEtaMatchingObject_; - double deltaR_; - - TrajectoryStateTransform transformer_; - edm::ESHandle pDD; - edm::ESHandle theMagField; - - TFile *histfile_; - TTree *tree_; - float mcEnergy[10], mcEta[10], mcPhi[10], mcPt[10], mcQ[10]; - float superclusterEnergy[10], superclusterEta[10], superclusterPhi[10], superclusterEt[10]; - float seedMomentum[10], seedEta[10], seedPhi[10], seedPt[10], seedQ[10]; - - TH1F *h_matchingObjectNum; - - TH1F *h_matchingObjectEta; - TH1F *h_matchingObjectAbsEta; - TH1F *h_matchingObjectP; - TH1F *h_matchingObjectPt; - TH1F *h_matchingObjectPhi; - TH1F *h_matchingObjectZ; - - TH1F *h_ele_matchingObjectEta_matched; - TH1F *h_ele_matchingObjectAbsEta_matched; - TH1F *h_ele_matchingObjectPt_matched; - TH1F *h_ele_matchingObjectPhi_matched; - TH1F *h_ele_matchingObjectZ_matched; - - TH1F *h_ele_mee_all; - TH1F *h_ele_mee_os; - TH1F *h_ele_mee_os_ebeb; - TH1F *h_ele_mee_os_ebee; - TH1F *h_ele_mee_os_eeee; - TH1F *h_ele_mee_os_gg; - TH1F *h_ele_mee_os_gb; - TH1F *h_ele_mee_os_bb; - - TH2F *h_ele_E2mnE1vsMee_all; - TH2F *h_ele_E2mnE1vsMee_egeg_all; - - TH1F *h_ele_charge; - TH2F *h_ele_chargeVsEta; - TH2F *h_ele_chargeVsPhi; - TH2F *h_ele_chargeVsPt; - TH1F *h_ele_vertexP; - TH1F *h_ele_vertexPt; - TH1F *h_ele_Et; - TH2F *h_ele_vertexPtVsEta; - TH2F *h_ele_vertexPtVsPhi; - TH1F *h_ele_vertexPt_5100; - TH1F *h_ele_vertexEta; - TH2F *h_ele_vertexEtaVsPhi; - TH1F *h_ele_vertexAbsEta; - TH1F *h_ele_vertexPhi; - TH1F *h_ele_vertexX; - TH1F *h_ele_vertexY; - TH1F *h_ele_vertexZ; - TH1F *h_ele_vertexTIP; - TH2F *h_ele_vertexTIPVsEta; - TH2F *h_ele_vertexTIPVsPhi; - TH2F *h_ele_vertexTIPVsPt; - - TH1F *histNum_; - - TH1F *histSclEn_; - TH1F *histSclEoEmatchingObject_barrel_matched; - TH1F *histSclEoEmatchingObject_endcaps_matched; - TH1F *histSclEoEmatchingObject_barrel_new_matched; - TH1F *histSclEoEmatchingObject_endcaps_new_matched; - TH1F *histSclEt_; - TH2F *histSclEtVsEta_; - TH2F *histSclEtVsPhi_; - TH2F *histSclEtaVsPhi_; - TH1F *histSclEta_; - TH1F *histSclPhi_; - TH1F *histSclSigEtaEta_; - TH1F *histSclSigEtaEta_barrel_; - TH1F *histSclSigEtaEta_endcaps_; - TH1F *histSclSigIEtaIEta_; - TH1F *histSclSigIEtaIEta_barrel_; - TH1F *histSclSigIEtaIEta_endcaps_; - TH1F *histSclE1x5_; - TH1F *histSclE1x5_barrel_; - TH1F *histSclE1x5_endcaps_; - TH1F *histSclE2x5max_; - TH1F *histSclE2x5max_barrel_; - TH1F *histSclE2x5max_endcaps_; - TH1F *histSclE5x5_; - TH1F *histSclE5x5_barrel_; - TH1F *histSclE5x5_endcaps_; - - TH1F *h_ele_ambiguousTracks; - TH2F *h_ele_ambiguousTracksVsEta; - TH2F *h_ele_ambiguousTracksVsPhi; - TH2F *h_ele_ambiguousTracksVsPt; - TH1F *h_ele_foundHits; - TH1F *h_ele_foundHits_barrel; - TH1F *h_ele_foundHits_endcaps; - TH2F *h_ele_foundHitsVsEta; - TH2F *h_ele_foundHitsVsPhi; - TH2F *h_ele_foundHitsVsPt; - TH1F *h_ele_lostHits; - TH1F *h_ele_lostHits_barrel; - TH1F *h_ele_lostHits_endcaps; - TH2F *h_ele_lostHitsVsEta; - TH2F *h_ele_lostHitsVsPhi; - TH2F *h_ele_lostHitsVsPt; - TH1F *h_ele_chi2; - TH1F *h_ele_chi2_barrel_; - TH1F *h_ele_chi2_endcaps_; - TH2F *h_ele_chi2VsEta; - TH2F *h_ele_chi2VsPhi; - TH2F *h_ele_chi2VsPt; - - TH1F *h_ele_PtoPtmatchingObject_matched; - TH1F *h_ele_PoPmatchingObject_matched; - TH2F *h_ele_PoPmatchingObjectVsEta_matched; - TH2F *h_ele_PoPmatchingObjectVsPhi_matched; - TH2F *h_ele_PoPmatchingObjectVsPt_matched; - TH1F *h_ele_PoPmatchingObject_barrel_matched; - TH1F *h_ele_PoPmatchingObject_endcaps_matched; - TH1F *h_ele_PtoPtmatchingObject_barrel_matched; - TH1F *h_ele_PtoPtmatchingObject_endcaps_matched; - TH1F *h_ele_EtaMnEtamatchingObject_matched; - TH2F *h_ele_EtaMnEtamatchingObjectVsEta_matched; - TH2F *h_ele_EtaMnEtamatchingObjectVsPhi_matched; - TH2F *h_ele_EtaMnEtamatchingObjectVsPt_matched; - TH1F *h_ele_PhiMnPhimatchingObject_matched; - TH1F *h_ele_PhiMnPhimatchingObject2_matched; - TH2F *h_ele_PhiMnPhimatchingObjectVsEta_matched; - TH2F *h_ele_PhiMnPhimatchingObjectVsPhi_matched; - TH2F *h_ele_PhiMnPhimatchingObjectVsPt_matched; - TH1F *h_ele_PinMnPout; - TH1F *h_ele_PinMnPout_mode; - TH2F *h_ele_PinMnPoutVsEta_mode; - TH2F *h_ele_PinMnPoutVsPhi_mode; - TH2F *h_ele_PinMnPoutVsPt_mode; - TH2F *h_ele_PinMnPoutVsE_mode; - TH2F *h_ele_PinMnPoutVsChi2_mode; - - TH1F *h_ele_outerP; - TH1F *h_ele_outerP_mode; - TH2F *h_ele_outerPVsEta_mode; - TH1F *h_ele_outerPt; - TH1F *h_ele_outerPt_mode; - TH2F *h_ele_outerPtVsEta_mode; - TH2F *h_ele_outerPtVsPhi_mode; - TH2F *h_ele_outerPtVsPt_mode; - TH1F *h_ele_EoP; - TH1F *h_ele_EoP_barrel; - TH1F *h_ele_EoP_endcaps; - TH2F *h_ele_EoPVsEta; - TH2F *h_ele_EoPVsPhi; - TH2F *h_ele_EoPVsE; - TH1F *h_ele_EseedOP; - TH1F *h_ele_EseedOP_barrel; - TH1F *h_ele_EseedOP_endcaps; - TH2F *h_ele_EseedOPVsEta; - TH2F *h_ele_EseedOPVsPhi; - TH2F *h_ele_EseedOPVsE; - TH1F *h_ele_EoPout; - TH1F *h_ele_EoPout_barrel; - TH1F *h_ele_EoPout_endcaps; - TH2F *h_ele_EoPoutVsEta; - TH2F *h_ele_EoPoutVsPhi; - TH2F *h_ele_EoPoutVsE; - TH1F *h_ele_EeleOPout; - TH1F *h_ele_EeleOPout_barrel; - TH1F *h_ele_EeleOPout_endcaps; - TH2F *h_ele_EeleOPoutVsEta; - TH2F *h_ele_EeleOPoutVsPhi; - TH2F *h_ele_EeleOPoutVsE; - - TH1F *h_ele_dEtaSc_propVtx; - TH1F *h_ele_dEtaSc_propVtx_barrel; - TH1F *h_ele_dEtaSc_propVtx_endcaps; - TH2F *h_ele_dEtaScVsEta_propVtx; - TH2F *h_ele_dEtaScVsPhi_propVtx; - TH2F *h_ele_dEtaScVsPt_propVtx; - TH1F *h_ele_dPhiSc_propVtx; - TH1F *h_ele_dPhiSc_propVtx_barrel; - TH1F *h_ele_dPhiSc_propVtx_endcaps; - TH2F *h_ele_dPhiScVsEta_propVtx; - TH2F *h_ele_dPhiScVsPhi_propVtx; - TH2F *h_ele_dPhiScVsPt_propVtx; - TH1F *h_ele_dEtaCl_propOut; - TH1F *h_ele_dEtaCl_propOut_barrel; - TH1F *h_ele_dEtaCl_propOut_endcaps; - TH2F *h_ele_dEtaClVsEta_propOut; - TH2F *h_ele_dEtaClVsPhi_propOut; - TH2F *h_ele_dEtaClVsPt_propOut; - TH1F *h_ele_dPhiCl_propOut; - TH1F *h_ele_dPhiCl_propOut_barrel; - TH1F *h_ele_dPhiCl_propOut_endcaps; - TH2F *h_ele_dPhiClVsEta_propOut; - TH2F *h_ele_dPhiClVsPhi_propOut; - TH2F *h_ele_dPhiClVsPt_propOut; - TH1F *h_ele_dEtaEleCl_propOut; - TH1F *h_ele_dEtaEleCl_propOut_barrel; - TH1F *h_ele_dEtaEleCl_propOut_endcaps; - TH2F *h_ele_dEtaEleClVsEta_propOut; - TH2F *h_ele_dEtaEleClVsPhi_propOut; - TH2F *h_ele_dEtaEleClVsPt_propOut; - TH1F *h_ele_dPhiEleCl_propOut; - TH1F *h_ele_dPhiEleCl_propOut_barrel; - TH1F *h_ele_dPhiEleCl_propOut_endcaps; - TH2F *h_ele_dPhiEleClVsEta_propOut; - TH2F *h_ele_dPhiEleClVsPhi_propOut; - TH2F *h_ele_dPhiEleClVsPt_propOut; - - TH1F *h_ele_seed_dphi2_; - TH2F *h_ele_seed_dphi2VsEta_; - TH2F *h_ele_seed_dphi2VsPt_; - TH1F *h_ele_seed_drz2_; - TH2F *h_ele_seed_drz2VsEta_; - TH2F *h_ele_seed_drz2VsPt_; - TH1F *h_ele_seed_subdet2_; - - TH1F *h_ele_classes; - TH1F *h_ele_eta; - TH1F *h_ele_eta_golden; - TH1F *h_ele_eta_bbrem; - TH1F *h_ele_eta_narrow; - TH1F *h_ele_eta_shower; - - TH1F *h_ele_HoE; - TH1F *h_ele_HoE_barrel; - TH1F *h_ele_HoE_endcaps; - TH1F *h_ele_HoE_fiducial; - TH2F *h_ele_HoEVsEta; - TH2F *h_ele_HoEVsPhi; - TH2F *h_ele_HoEVsE; - - TH1F *h_ele_fbrem; - TProfile *h_ele_fbremVsEta_mode; - TProfile *h_ele_fbremVsEta_mean; - - TH2F *h_ele_PinVsPoutGolden_mode; - TH2F *h_ele_PinVsPoutShowering_mode; - TH2F *h_ele_PinVsPoutGolden_mean; - TH2F *h_ele_PinVsPoutShowering_mean; - TH2F *h_ele_PtinVsPtoutGolden_mode; - TH2F *h_ele_PtinVsPtoutShowering_mode; - TH2F *h_ele_PtinVsPtoutGolden_mean; - TH2F *h_ele_PtinVsPtoutShowering_mean; - TH1F *histSclEoEmatchingObjectGolden_barrel; - TH1F *histSclEoEmatchingObjectGolden_endcaps; - TH1F *histSclEoEmatchingObjectShowering_barrel; - TH1F *histSclEoEmatchingObjectShowering_endcaps; - - TH1F *h_ele_mva; - TH1F *h_ele_provenance; - - TH1F *h_ele_tkSumPt_dr03; - TH1F *h_ele_ecalRecHitSumEt_dr03; - TH1F *h_ele_hcalDepth1TowerSumEt_dr03; - TH1F *h_ele_hcalDepth2TowerSumEt_dr03; - TH1F *h_ele_tkSumPt_dr04; - TH1F *h_ele_ecalRecHitSumEt_dr04; - TH1F *h_ele_hcalDepth1TowerSumEt_dr04; - TH1F *h_ele_hcalDepth2TowerSumEt_dr04; - - // electron selection - double minEt_; - double minPt_; - double maxAbsEta_; - bool isEB_; - bool isEE_; - bool isNotEBEEGap_; - bool isEcalDriven_; - bool isTrackerDriven_; - double eOverPMinBarrel_; - double eOverPMaxBarrel_; - double eOverPMinEndcaps_; - double eOverPMaxEndcaps_; - double dEtaMinBarrel_; - double dEtaMaxBarrel_; - double dEtaMinEndcaps_; - double dEtaMaxEndcaps_; - double dPhiMinBarrel_; - double dPhiMaxBarrel_; - double dPhiMinEndcaps_; - double dPhiMaxEndcaps_; - double sigIetaIetaMinBarrel_; - double sigIetaIetaMaxBarrel_; - double sigIetaIetaMinEndcaps_; - double sigIetaIetaMaxEndcaps_; - double hadronicOverEmMaxBarrel_; - double hadronicOverEmMaxEndcaps_; - double mvaMin_; - double tipMaxBarrel_; - double tipMaxEndcaps_; - double tkIso03Max_; - double hcalIso03Depth1MaxBarrel_; - double hcalIso03Depth1MaxEndcaps_; - double hcalIso03Depth2MaxEndcaps_; - double ecalIso03MaxBarrel_; - double ecalIso03MaxEndcaps_; - - // histos limits and binning - double etamin; - double etamax; - double phimin; - double phimax; - double ptmax; - double pmax; - double eopmax; - double eopmaxsht; - double detamin; - double detamax; - double dphimin; - double dphimax; - double detamatchmin; - double detamatchmax; - double dphimatchmin; - double dphimatchmax; - double fhitsmax; - double lhitsmax; - double poptruemin; - double poptruemax; - double meemin; - double meemax; - double hoemin; - double hoemax; - int nbineta; - int nbinp; - int nbinpt; - int nbinpteff; - int nbinphi; - int nbinp2D; - int nbinpt2D; - int nbineta2D; - int nbinphi2D; - int nbineop; - int nbineop2D; - int nbinfhits; - int nbinlhits; - int nbinxyz; - int nbindeta; - int nbindphi; - int nbindetamatch; - int nbindphimatch; - int nbindetamatch2D; - int nbindphimatch2D; - int nbinpoptrue; - int nbinmee; - int nbinhoe; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(GsfElectronDataAnalyzer); - -using namespace reco; - -GsfElectronDataAnalyzer::GsfElectronDataAnalyzer(const edm::ParameterSet &conf) - : beamSpot_(conf.getParameter("beamSpot")) { - outputFile_ = conf.getParameter("outputFile"); - histfile_ = new TFile(outputFile_.c_str(), "RECREATE"); - electronCollection_ = conf.getParameter("electronCollection"); - readAOD_ = conf.getParameter("readAOD"); - - matchingObjectCollection_ = conf.getParameter("matchingObjectCollection"); - matchingCondition_ = conf.getParameter("matchingCondition"); - // currently only one possible matching conditions - assert(matchingCondition_ == "Cone"); - maxPtMatchingObject_ = conf.getParameter("MaxPtMatchingObject"); - maxAbsEtaMatchingObject_ = conf.getParameter("MaxAbsEtaMatchingObject"); - deltaR_ = conf.getParameter("DeltaR"); - - triggerResults_ = conf.getParameter("triggerResults"); - HLTPathsByName_ = conf.getParameter >("hltPaths"); - HLTPathsByIndex_.resize(HLTPathsByName_.size()); - - minEt_ = conf.getParameter("MinEt"); - minPt_ = conf.getParameter("MinPt"); - maxAbsEta_ = conf.getParameter("MaxAbsEta"); - isEB_ = conf.getParameter("SelectEB"); - isEE_ = conf.getParameter("SelectEE"); - isNotEBEEGap_ = conf.getParameter("SelectNotEBEEGap"); - isEcalDriven_ = conf.getParameter("SelectEcalDriven"); - isTrackerDriven_ = conf.getParameter("SelectTrackerDriven"); - eOverPMinBarrel_ = conf.getParameter("MinEOverPBarrel"); - eOverPMaxBarrel_ = conf.getParameter("MaxEOverPBarrel"); - eOverPMinEndcaps_ = conf.getParameter("MinEOverPEndcaps"); - eOverPMaxEndcaps_ = conf.getParameter("MaxEOverPEndcaps"); - dEtaMinBarrel_ = conf.getParameter("MinDetaBarrel"); - dEtaMaxBarrel_ = conf.getParameter("MaxDetaBarrel"); - dEtaMinEndcaps_ = conf.getParameter("MinDetaEndcaps"); - dEtaMaxEndcaps_ = conf.getParameter("MaxDetaEndcaps"); - dPhiMinBarrel_ = conf.getParameter("MinDphiBarrel"); - dPhiMaxBarrel_ = conf.getParameter("MaxDphiBarrel"); - dPhiMinEndcaps_ = conf.getParameter("MinDphiEndcaps"); - dPhiMaxEndcaps_ = conf.getParameter("MaxDphiEndcaps"); - sigIetaIetaMinBarrel_ = conf.getParameter("MinSigIetaIetaBarrel"); - sigIetaIetaMaxBarrel_ = conf.getParameter("MaxSigIetaIetaBarrel"); - sigIetaIetaMinEndcaps_ = conf.getParameter("MinSigIetaIetaEndcaps"); - sigIetaIetaMaxEndcaps_ = conf.getParameter("MaxSigIetaIetaEndcaps"); - hadronicOverEmMaxBarrel_ = conf.getParameter("MaxHoEBarrel"); - hadronicOverEmMaxEndcaps_ = conf.getParameter("MaxHoEEndcaps"); - mvaMin_ = conf.getParameter("MinMVA"); - tipMaxBarrel_ = conf.getParameter("MaxTipBarrel"); - tipMaxEndcaps_ = conf.getParameter("MaxTipEndcaps"); - tkIso03Max_ = conf.getParameter("MaxTkIso03"); - hcalIso03Depth1MaxBarrel_ = conf.getParameter("MaxHcalIso03Depth1Barrel"); - hcalIso03Depth1MaxEndcaps_ = conf.getParameter("MaxHcalIso03Depth1Endcaps"); - hcalIso03Depth2MaxEndcaps_ = conf.getParameter("MaxHcalIso03Depth2Endcaps"); - ecalIso03MaxBarrel_ = conf.getParameter("MaxEcalIso03Barrel"); - ecalIso03MaxEndcaps_ = conf.getParameter("MaxEcalIso03Endcaps"); - - edm::ParameterSet pset = conf.getParameter("HistosConfigurationData"); - - etamin = pset.getParameter("Etamin"); - etamax = pset.getParameter("Etamax"); - phimin = pset.getParameter("Phimin"); - phimax = pset.getParameter("Phimax"); - ptmax = pset.getParameter("Ptmax"); - pmax = pset.getParameter("Pmax"); - eopmax = pset.getParameter("Eopmax"); - eopmaxsht = pset.getParameter("Eopmaxsht"); - detamin = pset.getParameter("Detamin"); - detamax = pset.getParameter("Detamax"); - dphimin = pset.getParameter("Dphimin"); - dphimax = pset.getParameter("Dphimax"); - detamatchmin = pset.getParameter("Detamatchmin"); - detamatchmax = pset.getParameter("Detamatchmax"); - dphimatchmin = pset.getParameter("Dphimatchmin"); - dphimatchmax = pset.getParameter("Dphimatchmax"); - fhitsmax = pset.getParameter("Fhitsmax"); - lhitsmax = pset.getParameter("Lhitsmax"); - nbineta = pset.getParameter("Nbineta"); - nbineta2D = pset.getParameter("Nbineta2D"); - nbinp = pset.getParameter("Nbinp"); - nbinpt = pset.getParameter("Nbinpt"); - nbinp2D = pset.getParameter("Nbinp2D"); - nbinpt2D = pset.getParameter("Nbinpt2D"); - nbinpteff = pset.getParameter("Nbinpteff"); - nbinphi = pset.getParameter("Nbinphi"); - nbinphi2D = pset.getParameter("Nbinphi2D"); - nbineop = pset.getParameter("Nbineop"); - nbineop2D = pset.getParameter("Nbineop2D"); - nbinfhits = pset.getParameter("Nbinfhits"); - nbinlhits = pset.getParameter("Nbinlhits"); - nbinxyz = pset.getParameter("Nbinxyz"); - nbindeta = pset.getParameter("Nbindeta"); - nbindphi = pset.getParameter("Nbindphi"); - nbindetamatch = pset.getParameter("Nbindetamatch"); - nbindphimatch = pset.getParameter("Nbindphimatch"); - nbindetamatch2D = pset.getParameter("Nbindetamatch2D"); - nbindphimatch2D = pset.getParameter("Nbindphimatch2D"); - nbinpoptrue = pset.getParameter("Nbinpoptrue"); - poptruemin = pset.getParameter("Poptruemin"); - poptruemax = pset.getParameter("Poptruemax"); - nbinmee = pset.getParameter("Nbinmee"); - meemin = pset.getParameter("Meemin"); - meemax = pset.getParameter("Meemax"); - nbinhoe = pset.getParameter("Nbinhoe"); - hoemin = pset.getParameter("Hoemin"); - hoemax = pset.getParameter("Hoemax"); -} - -GsfElectronDataAnalyzer::~GsfElectronDataAnalyzer() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) - histfile_->Write(); - histfile_->Close(); -} - -void GsfElectronDataAnalyzer::beginJob() { - histfile_->cd(); - - nEvents_ = 0; - nAfterTrigger_ = 0; - - // matching object - std::string::size_type locSC = matchingObjectCollection_.label().find("SuperCluster", 0); - std::string type_; - if (locSC != std::string::npos) { - std::cout << "Matching objects are SuperClusters " << std::endl; - type_ = "SC"; - } else { - std::cout << "Didn't recognize input matching objects!! " << std::endl; - } - - std::string htitle, hlabel; - hlabel = "h_" + type_ + "Num"; - htitle = "# " + type_ + "s"; - h_matchingObjectNum = new TH1F(hlabel.c_str(), htitle.c_str(), nbinfhits, 0., fhitsmax); - - // rec event - - histNum_ = new TH1F("h_recEleNum", "# rec electrons", 20, 0., 20.); - - // matching object distributions - hlabel = "h_" + type_ + "_eta"; - htitle = type_ + " #eta"; - h_matchingObjectEta = new TH1F(hlabel.c_str(), htitle.c_str(), nbineta, etamin, etamax); - hlabel = "h_" + type_ + "_abseta"; - htitle = type_ + " |#eta|"; - h_matchingObjectAbsEta = new TH1F(hlabel.c_str(), htitle.c_str(), nbineta / 2, 0., etamax); - hlabel = "h_" + type_ + "_P"; - htitle = type_ + " p"; - h_matchingObjectP = new TH1F(hlabel.c_str(), htitle.c_str(), nbinp, 0., pmax); - hlabel = "h_" + type_ + "_Pt"; - htitle = type_ + " pt"; - h_matchingObjectPt = new TH1F(hlabel.c_str(), htitle.c_str(), nbinpteff, 5., ptmax); - hlabel = "h_" + type_ + "_phi"; - htitle = type_ + " phi"; - h_matchingObjectPhi = new TH1F(hlabel.c_str(), htitle.c_str(), nbinphi, phimin, phimax); - hlabel = "h_" + type_ + "_z"; - htitle = type_ + " z"; - h_matchingObjectZ = new TH1F(hlabel.c_str(), htitle.c_str(), nbinxyz, -25, 25); - - // mee - h_ele_mee_all = - new TH1F("h_ele_mee_all", "ele pairs invariant mass, all charge combinations", nbinmee, meemin, meemax); - h_ele_mee_os = new TH1F("h_ele_mee_os", "ele pairs invariant mass, opposite sign", nbinmee, meemin, meemax); - h_ele_mee_os_ebeb = - new TH1F("h_ele_mee_os_ebeb", "ele pairs invariant mass, opp. sign, EB-EB", nbinmee, meemin, meemax); - h_ele_mee_os_ebeb->Sumw2(); - h_ele_mee_os_ebee = - new TH1F("h_ele_mee_os_ebee", "ele pairs invariant mass, opp. sign, EB-EE", nbinmee, meemin, meemax); - h_ele_mee_os_ebee->Sumw2(); - h_ele_mee_os_eeee = - new TH1F("h_ele_mee_os_eeee", "ele pairs invariant mass, opp. sign, EE-EE", nbinmee, meemin, meemax); - h_ele_mee_os_eeee->Sumw2(); - h_ele_mee_os_gg = - new TH1F("h_ele_mee_os_gg", "ele pairs invariant mass, opp. sign, good-good", nbinmee, meemin, meemax); - h_ele_mee_os_gg->Sumw2(); - h_ele_mee_os_gb = - new TH1F("h_ele_mee_os_gb", "ele pairs invariant mass, opp. sign, good-bad", nbinmee, meemin, meemax); - h_ele_mee_os_gb->Sumw2(); - h_ele_mee_os_bb = - new TH1F("h_ele_mee_os_bb", "ele pairs invariant mass, opp. sign, bad-bad", nbinmee, meemin, meemax); - h_ele_mee_os_bb->Sumw2(); - - // duplicates - h_ele_E2mnE1vsMee_all = new TH2F("h_ele_E2mnE1vsMee_all", - "E2 - E1 vs ele pairs invariant mass, all electrons", - nbinmee, - meemin, - meemax, - 100, - -50., - 50.); - h_ele_E2mnE1vsMee_egeg_all = new TH2F("h_ele_E2mnE1vsMee_egeg_all", - "E2 - E1 vs ele pairs invariant mass, ecal driven pairs, all electrons", - nbinmee, - meemin, - meemax, - 100, - -50., - 50.); - - // recoed and matched electrons - h_ele_charge = new TH1F("h_ele_charge", "ele charge", 5, -2., 2.); - h_ele_chargeVsEta = new TH2F("h_ele_chargeVsEta", "ele charge vs eta", nbineta2D, etamin, etamax, 5, -2., 2.); - h_ele_chargeVsPhi = new TH2F("h_ele_chargeVsPhi", "ele charge vs phi", nbinphi2D, phimin, phimax, 5, -2., 2.); - h_ele_chargeVsPt = new TH2F("h_ele_chargeVsPt", "ele charge vs pt", nbinpt, 0., 100., 5, -2., 2.); - h_ele_vertexP = new TH1F("h_ele_vertexP", "ele momentum", nbinp, 0., pmax); - h_ele_vertexPt = new TH1F("h_ele_vertexPt", "ele transverse momentum", nbinpt, 0., ptmax); - h_ele_Et = new TH1F("h_ele_Et", "ele SC transverse energy", nbinpt, 0., ptmax); - h_ele_vertexPtVsEta = - new TH2F("h_ele_vertexPtVsEta", "ele transverse momentum vs eta", nbineta2D, etamin, etamax, nbinpt2D, 0., ptmax); - h_ele_vertexPtVsPhi = - new TH2F("h_ele_vertexPtVsPhi", "ele transverse momentum vs phi", nbinphi2D, phimin, phimax, nbinpt2D, 0., ptmax); - h_ele_matchingObjectPt_matched = - new TH1F("h_ele_matchingObjectPt_matched", "Efficiency vs matching SC E_{T}", nbinpteff, 5., ptmax); - h_ele_matchingObjectPt_matched->Sumw2(); - h_ele_vertexEta = new TH1F("h_ele_vertexEta", "ele momentum eta", nbineta, etamin, etamax); - h_ele_vertexEtaVsPhi = - new TH2F("h_ele_vertexEtaVsPhi", "ele momentum eta vs phi", nbineta2D, etamin, etamax, nbinphi2D, phimin, phimax); - h_ele_matchingObjectAbsEta_matched = - new TH1F("h_ele_matchingObjectAbsEta_matched", "Efficiency vs matching SC |#eta|", nbineta / 2, 0., 2.5); - h_ele_matchingObjectAbsEta_matched->Sumw2(); - h_ele_matchingObjectEta_matched = - new TH1F("h_ele_matchingObjectEta_matched", "Efficiency vs matching SC #eta", nbineta, etamin, etamax); - h_ele_matchingObjectEta_matched->Sumw2(); - h_ele_matchingObjectPhi_matched = - new TH1F("h_ele_matchingObjectPhi_matched", "Efficiency vs matching SC phi", nbinphi, phimin, phimax); - h_ele_matchingObjectPhi_matched->Sumw2(); - h_ele_vertexPhi = new TH1F("h_ele_vertexPhi", "ele momentum #phi", nbinphi, phimin, phimax); - h_ele_vertexX = new TH1F("h_ele_vertexX", "ele vertex x", nbinxyz, -0.1, 0.1); - h_ele_vertexY = new TH1F("h_ele_vertexY", "ele vertex y", nbinxyz, -0.1, 0.1); - h_ele_vertexZ = new TH1F("h_ele_vertexZ", "ele vertex z", nbinxyz, -25, 25); - h_ele_matchingObjectZ_matched = - new TH1F("h_ele_matchingObjectZ_matched", "Efficiency vs matching SC z", nbinxyz, -25, 25); - h_ele_matchingObjectZ_matched->Sumw2(); - h_ele_vertexTIP = new TH1F("h_ele_vertexTIP", "ele transverse impact parameter (wrt bs)", 90, 0., 0.15); - h_ele_vertexTIPVsEta = new TH2F("h_ele_vertexTIPVsEta", - "ele transverse impact parameter (wrt bs) vs eta", - nbineta2D, - etamin, - etamax, - 45, - 0., - 0.15); - h_ele_vertexTIPVsPhi = new TH2F("h_ele_vertexTIPVsPhi", - "ele transverse impact parameter (wrt bs) vs phi", - nbinphi2D, - phimin, - phimax, - 45, - 0., - 0.15); - h_ele_vertexTIPVsPt = new TH2F("h_ele_vertexTIPVsPt", - "ele transverse impact parameter (wrt bs) vs transverse momentum", - nbinpt2D, - 0., - ptmax, - 45, - 0., - 0.15); - h_ele_PoPmatchingObject_matched = new TH1F( - "h_ele_PoPmatchingObject_matched", "ele momentum / matching SC energy", nbinpoptrue, poptruemin, poptruemax); - h_ele_PtoPtmatchingObject_matched = new TH1F("h_ele_PtoPtmatchingObject_matched", - "ele trans momentum / matching SC trans energy", - nbinpoptrue, - poptruemin, - poptruemax); - h_ele_PoPmatchingObjectVsEta_matched = new TH2F("h_ele_PoPmatchingObjectVsEta_matched", - "ele momentum / matching SC energy vs eta", - nbineta2D, - etamin, - etamax, - 50, - poptruemin, - poptruemax); - h_ele_PoPmatchingObjectVsPhi_matched = new TH2F("h_ele_PoPmatchingObjectVsPhi_matched", - "ele momentum / matching SC energy vs phi", - nbinphi2D, - phimin, - phimax, - 50, - poptruemin, - poptruemax); - h_ele_PoPmatchingObjectVsPt_matched = new TH2F("h_ele_PoPmatchingObjectVsPt_matched", - "ele momentum / matching SC energy vs eta", - nbinpt2D, - 0., - ptmax, - 50, - poptruemin, - poptruemax); - h_ele_PoPmatchingObject_barrel_matched = new TH1F("h_ele_PoPmatchingObject_barrel_matched", - "ele momentum / matching SC energy, barrel", - nbinpoptrue, - poptruemin, - poptruemax); - h_ele_PoPmatchingObject_endcaps_matched = new TH1F("h_ele_PoPmatchingObject_endcaps_matched", - "ele momentum / matching SC energy, endcaps", - nbinpoptrue, - poptruemin, - poptruemax); - h_ele_PtoPtmatchingObject_barrel_matched = new TH1F("h_ele_PtoPmatchingObject_barrel_matched", - "ele trans momentum / matching SC trans energy, barrel", - nbinpoptrue, - poptruemin, - poptruemax); - h_ele_PtoPtmatchingObject_endcaps_matched = new TH1F("h_ele_PtoPmatchingObject_endcaps_matched", - "ele trans momentum / matching SC trans energy, endcaps", - nbinpoptrue, - poptruemin, - poptruemax); - h_ele_EtaMnEtamatchingObject_matched = new TH1F( - "h_ele_EtaMnEtamatchingObject_matched", "ele momentum eta - matching SC eta", nbindeta, detamin, detamax); - h_ele_EtaMnEtamatchingObjectVsEta_matched = new TH2F("h_ele_EtaMnEtamatchingObjectVsEta_matched", - "ele momentum eta - matching SC eta vs eta", - nbineta2D, - etamin, - etamax, - nbindeta / 2, - detamin, - detamax); - h_ele_EtaMnEtamatchingObjectVsPhi_matched = new TH2F("h_ele_EtaMnEtamatchingObjectVsPhi_matched", - "ele momentum eta - matching SC eta vs phi", - nbinphi2D, - phimin, - phimax, - nbindeta / 2, - detamin, - detamax); - h_ele_EtaMnEtamatchingObjectVsPt_matched = new TH2F("h_ele_EtaMnEtamatchingObjectVsPt_matched", - "ele momentum eta - matching SC eta vs pt", - nbinpt, - 0., - ptmax, - nbindeta / 2, - detamin, - detamax); - h_ele_PhiMnPhimatchingObject_matched = new TH1F( - "h_ele_PhiMnPhimatchingObject_matched", "ele momentum phi - matching SC phi", nbindphi, dphimin, dphimax); - h_ele_PhiMnPhimatchingObject2_matched = new TH1F("h_ele_PhiMnPhimatchingObject2_matched", - "ele momentum phi - matching SC phi", - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_PhiMnPhimatchingObjectVsEta_matched = new TH2F("h_ele_PhiMnPhimatchingObjectVsEta_matched", - "ele momentum phi - matching SC phi vs eta", - nbineta2D, - etamin, - etamax, - nbindphi / 2, - dphimin, - dphimax); - h_ele_PhiMnPhimatchingObjectVsPhi_matched = new TH2F("h_ele_PhiMnPhimatchingObjectVsPhi_matched", - "ele momentum phi - matching SC phi vs phi", - nbinphi2D, - phimin, - phimax, - nbindphi / 2, - dphimin, - dphimax); - h_ele_PhiMnPhimatchingObjectVsPt_matched = new TH2F("h_ele_PhiMnPhimatchingObjectVsPt_matched", - "ele momentum phi - matching SC phi vs pt", - nbinpt2D, - 0., - ptmax, - nbindphi / 2, - dphimin, - dphimax); - - // matched electron, superclusters - histSclEn_ = new TH1F("h_scl_energy", "ele supercluster energy", nbinp, 0., pmax); - histSclEoEmatchingObject_barrel_matched = new TH1F( - "h_scl_EoEmatchingObject_barrel_matched", "ele supercluster energy / matching SC energy, barrel", 50, 0.2, 1.2); - histSclEoEmatchingObject_endcaps_matched = new TH1F( - "h_scl_EoEmatchingObject_endcaps_matched", "ele supercluster energy / matching SC energy, endcaps", 50, 0.2, 1.2); - histSclEoEmatchingObject_barrel_new_matched = new TH1F("h_scl_EoEmatchingObject_barrel_new_matched", - "ele supercluster energy / matching SC energy, barrel", - nbinpoptrue, - poptruemin, - poptruemax); - histSclEoEmatchingObject_endcaps_new_matched = new TH1F("h_scl_EoEmatchingObject_endcaps_new_matched", - "ele supercluster energy / matching SC energy, endcaps", - nbinpoptrue, - poptruemin, - poptruemax); - histSclEt_ = new TH1F("h_scl_et", "ele supercluster transverse energy", nbinpt, 0., ptmax); - histSclEtVsEta_ = new TH2F( - "h_scl_etVsEta", "ele supercluster transverse energy vs eta", nbineta2D, etamin, etamax, nbinpt, 0., ptmax); - histSclEtVsPhi_ = new TH2F( - "h_scl_etVsPhi", "ele supercluster transverse energy vs phi", nbinphi2D, phimin, phimax, nbinpt, 0., ptmax); - histSclEtaVsPhi_ = - new TH2F("h_scl_etaVsPhi", "ele supercluster eta vs phi", nbinphi2D, phimin, phimax, nbineta2D, etamin, etamax); - histSclEta_ = new TH1F("h_scl_eta", "ele supercluster eta", nbineta, etamin, etamax); - histSclPhi_ = new TH1F("h_scl_phi", "ele supercluster phi", nbinphi, phimin, phimax); - - histSclSigEtaEta_ = new TH1F("h_scl_sigetaeta", "ele supercluster sigma eta eta", 100, 0., 0.05); - histSclSigIEtaIEta_barrel_ = - new TH1F("h_scl_sigietaieta_barrel", "ele supercluster sigma ieta ieta, barrel", 100, 0., 0.05); - histSclSigIEtaIEta_endcaps_ = - new TH1F("h_scl_sigietaieta_endcaps", "ele supercluster sigma ieta ieta, endcaps", 100, 0., 0.05); - histSclE1x5_ = new TH1F("h_scl_E1x5", "ele supercluster energy in 1x5", nbinp, 0., pmax); - histSclE1x5_barrel_ = new TH1F("h_scl_E1x_barrel5", "ele supercluster energy in 1x5 barrel", nbinp, 0., pmax); - histSclE1x5_endcaps_ = new TH1F("h_scl_E1x5_endcaps", "ele supercluster energy in 1x5 endcaps", nbinp, 0., pmax); - histSclE2x5max_ = new TH1F("h_scl_E2x5max", "ele supercluster energy in 2x5 max", nbinp, 0., pmax); - histSclE2x5max_barrel_ = - new TH1F("h_scl_E2x5max_barrel", "ele supercluster energy in 2x5 max barrel", nbinp, 0., pmax); - histSclE2x5max_endcaps_ = - new TH1F("h_scl_E2x5max_endcaps", "ele supercluster energy in 2x5 max endcaps", nbinp, 0., pmax); - histSclE5x5_ = new TH1F("h_scl_E5x5", "ele supercluster energy in 5x5", nbinp, 0., pmax); - histSclE5x5_barrel_ = new TH1F("h_scl_E5x5_barrel", "ele supercluster energy in 5x5 barrel", nbinp, 0., pmax); - histSclE5x5_endcaps_ = new TH1F("h_scl_E5x5_endcaps", "ele supercluster energy in 5x5 endcaps", nbinp, 0., pmax); - - // matched electron, gsf tracks - h_ele_ambiguousTracks = new TH1F("h_ele_ambiguousTracks", "ele # ambiguous tracks", 5, 0., 5.); - h_ele_ambiguousTracksVsEta = - new TH2F("h_ele_ambiguousTracksVsEta", "ele # ambiguous tracks vs eta", nbineta2D, etamin, etamax, 5, 0., 5.); - h_ele_ambiguousTracksVsPhi = - new TH2F("h_ele_ambiguousTracksVsPhi", "ele # ambiguous tracks vs phi", nbinphi2D, phimin, phimax, 5, 0., 5.); - h_ele_ambiguousTracksVsPt = - new TH2F("h_ele_ambiguousTracksVsPt", "ele # ambiguous tracks vs pt", nbinpt2D, 0., ptmax, 5, 0., 5.); - h_ele_foundHits = new TH1F("h_ele_foundHits", "ele track # found hits", nbinfhits, 0., fhitsmax); - h_ele_foundHitsVsEta = new TH2F( - "h_ele_foundHitsVsEta", "ele track # found hits vs eta", nbineta2D, etamin, etamax, nbinfhits, 0., fhitsmax); - h_ele_foundHitsVsPhi = new TH2F( - "h_ele_foundHitsVsPhi", "ele track # found hits vs phi", nbinphi2D, phimin, phimax, nbinfhits, 0., fhitsmax); - h_ele_foundHitsVsPt = - new TH2F("h_ele_foundHitsVsPt", "ele track # found hits vs pt", nbinpt2D, 0., ptmax, nbinfhits, 0., fhitsmax); - h_ele_lostHits = new TH1F("h_ele_lostHits", "ele track # lost hits", 5, 0., 5.); - h_ele_lostHitsVsEta = new TH2F( - "h_ele_lostHitsVsEta", "ele track # lost hits vs eta", nbineta2D, etamin, etamax, nbinlhits, 0., lhitsmax); - h_ele_lostHitsVsPhi = new TH2F( - "h_ele_lostHitsVsPhi", "ele track # lost hits vs eta", nbinphi2D, phimin, phimax, nbinlhits, 0., lhitsmax); - h_ele_lostHitsVsPt = - new TH2F("h_ele_lostHitsVsPt", "ele track # lost hits vs eta", nbinpt2D, 0., ptmax, nbinlhits, 0., lhitsmax); - h_ele_chi2 = new TH1F("h_ele_chi2", "ele track #chi^{2}", 100, 0., 15.); - h_ele_chi2VsEta = new TH2F("h_ele_chi2VsEta", "ele track #chi^{2} vs eta", nbineta2D, etamin, etamax, 50, 0., 15.); - h_ele_chi2VsPhi = new TH2F("h_ele_chi2VsPhi", "ele track #chi^{2} vs phi", nbinphi2D, phimin, phimax, 50, 0., 15.); - h_ele_chi2VsPt = new TH2F("h_ele_chi2VsPt", "ele track #chi^{2} vs pt", nbinpt2D, 0., ptmax, 50, 0., 15.); - h_ele_PinMnPout = new TH1F("h_ele_PinMnPout", "ele track inner p - outer p, mean", nbinp, 0., 200.); - h_ele_PinMnPout_mode = new TH1F("h_ele_PinMnPout_mode", "ele track inner p - outer p, mode", nbinp, 0., 100.); - h_ele_PinMnPoutVsEta_mode = new TH2F("h_ele_PinMnPoutVsEta_mode", - "ele track inner p - outer p vs eta, mode", - nbineta2D, - etamin, - etamax, - nbinp2D, - 0., - 100.); - h_ele_PinMnPoutVsPhi_mode = new TH2F("h_ele_PinMnPoutVsPhi_mode", - "ele track inner p - outer p vs phi, mode", - nbinphi2D, - phimin, - phimax, - nbinp2D, - 0., - 100.); - h_ele_PinMnPoutVsPt_mode = new TH2F( - "h_ele_PinMnPoutVsPt_mode", "ele track inner p - outer p vs pt, mode", nbinpt2D, 0., ptmax, nbinp2D, 0., 100.); - h_ele_PinMnPoutVsE_mode = new TH2F( - "h_ele_PinMnPoutVsE_mode", "ele track inner p - outer p vs E, mode", nbinp2D, 0., 200., nbinp2D, 0., 100.); - h_ele_PinMnPoutVsChi2_mode = new TH2F( - "h_ele_PinMnPoutVsChi2_mode", "ele track inner p - outer p vs track chi2, mode", 50, 0., 20., nbinp2D, 0., 100.); - h_ele_outerP = new TH1F("h_ele_outerP", "ele track outer p, mean", nbinp, 0., pmax); - h_ele_outerP_mode = new TH1F("h_ele_outerP_mode", "ele track outer p, mode", nbinp, 0., pmax); - h_ele_outerPVsEta_mode = - new TH2F("h_ele_outerPVsEta_mode", "ele track outer p vs eta mode", nbineta2D, etamin, etamax, 50, 0., pmax); - h_ele_outerPt = new TH1F("h_ele_outerPt", "ele track outer p_{T}, mean", nbinpt, 0., ptmax); - h_ele_outerPt_mode = new TH1F("h_ele_outerPt_mode", "ele track outer p_{T}, mode", nbinpt, 0., ptmax); - h_ele_outerPtVsEta_mode = new TH2F( - "h_ele_outerPtVsEta_mode", "ele track outer p_{T} vs eta, mode", nbineta2D, etamin, etamax, nbinpt2D, 0., ptmax); - h_ele_outerPtVsPhi_mode = new TH2F( - "h_ele_outerPtVsPhi_mode", "ele track outer p_{T} vs phi, mode", nbinphi2D, phimin, phimax, nbinpt2D, 0., ptmax); - h_ele_outerPtVsPt_mode = - new TH2F("h_ele_outerPtVsPt_mode", "ele track outer p_{T} vs pt, mode", nbinpt2D, 0., 100., nbinpt2D, 0., ptmax); - - // matched electrons, matching - h_ele_EoP = new TH1F("h_ele_EoP", "ele E/P_{vertex}", nbineop, 0., eopmax); - h_ele_EoPVsEta = - new TH2F("h_ele_EoPVsEta", "ele E/P_{vertex} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EoPVsPhi = - new TH2F("h_ele_EoPVsPhi", "ele E/P_{vertex} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EoPVsE = new TH2F("h_ele_EoPVsE", "ele E/P_{vertex} vs E", 50, 0., pmax, 50, 0., 5.); - h_ele_EseedOP = new TH1F("h_ele_EseedOP", "ele E_{seed}/P_{vertex}", nbineop, 0., eopmax); - h_ele_EseedOPVsEta = new TH2F( - "h_ele_EseedOPVsEta", "ele E_{seed}/P_{vertex} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EseedOPVsPhi = new TH2F( - "h_ele_EseedOPVsPhi", "ele E_{seed}/P_{vertex} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EseedOPVsE = new TH2F("h_ele_EseedOPVsE", "ele E_{seed}/P_{vertex} vs E", 50, 0., pmax, 50, 0., 5.); - h_ele_EoPout = new TH1F("h_ele_EoPout", "ele E/P_{out}", nbineop, 0., eopmax); - h_ele_EoPoutVsEta = - new TH2F("h_ele_EoPoutVsEta", "ele E/P_{out} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EoPoutVsPhi = - new TH2F("h_ele_EoPoutVsPhi", "ele E/P_{out} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EoPoutVsE = new TH2F("h_ele_EoPoutVsE", "ele E/P_{out} vs E", nbinp2D, 0., pmax, nbineop2D, 0., eopmaxsht); - h_ele_EeleOPout = new TH1F("h_ele_EeleOPout", "ele E_{ele}/P_{out}", nbineop, 0., eopmax); - h_ele_EeleOPoutVsEta = new TH2F( - "h_ele_EeleOPoutVsEta", "ele E_{ele}/P_{out} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EeleOPoutVsPhi = new TH2F( - "h_ele_EeleOPoutVsPhi", "ele E_{ele}/P_{out} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EeleOPoutVsE = - new TH2F("h_ele_EeleOPoutVsE", "ele E_{ele}/P_{out} vs E", nbinp2D, 0., pmax, nbineop2D, 0., eopmaxsht); - h_ele_dEtaSc_propVtx = new TH1F( - "h_ele_dEtaSc_propVtx", "ele #eta_{sc} - #eta_{tr}, prop from vertex", nbindetamatch, detamatchmin, detamatchmax); - h_ele_dEtaScVsEta_propVtx = new TH2F("h_ele_dEtaScVsEta_propVtx", - "ele #eta_{sc} - #eta_{tr} vs eta, prop from vertex", - nbineta2D, - etamin, - etamax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaScVsPhi_propVtx = new TH2F("h_ele_dEtaScVsPhi_propVtx", - "ele #eta_{sc} - #eta_{tr} vs phi, prop from vertex", - nbinphi2D, - phimin, - phimax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaScVsPt_propVtx = new TH2F("h_ele_dEtaScVsPt_propVtx", - "ele #eta_{sc} - #eta_{tr} vs pt, prop from vertex", - nbinpt2D, - 0., - ptmax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dPhiSc_propVtx = new TH1F( - "h_ele_dPhiSc_propVtx", "ele #phi_{sc} - #phi_{tr}, prop from vertex", nbindphimatch, dphimatchmin, dphimatchmax); - h_ele_dPhiScVsEta_propVtx = new TH2F("h_ele_dPhiScVsEta_propVtx", - "ele #phi_{sc} - #phi_{tr} vs eta, prop from vertex", - nbineta2D, - etamin, - etamax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiScVsPhi_propVtx = new TH2F("h_ele_dPhiScVsPhi_propVtx", - "ele #phi_{sc} - #phi_{tr} vs phi, prop from vertex", - nbinphi2D, - phimin, - phimax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiScVsPt_propVtx = new TH2F("h_ele_dPhiScVsPt_propVtx", - "ele #phi_{sc} - #phi_{tr} vs pt, prop from vertex", - nbinpt2D, - 0., - ptmax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dEtaCl_propOut = new TH1F("h_ele_dEtaCl_propOut", - "ele #eta_{cl} - #eta_{tr}, prop from outermost", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaClVsEta_propOut = new TH2F("h_ele_dEtaClVsEta_propOut", - "ele #eta_{cl} - #eta_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaClVsPhi_propOut = new TH2F("h_ele_dEtaClVsPhi_propOut", - "ele #eta_{cl} - #eta_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaClVsPt_propOut = new TH2F("h_ele_dEtaScVsPt_propOut", - "ele #eta_{cl} - #eta_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dPhiCl_propOut = new TH1F("h_ele_dPhiCl_propOut", - "ele #phi_{cl} - #phi_{tr}, prop from outermost", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiClVsEta_propOut = new TH2F("h_ele_dPhiClVsEta_propOut", - "ele #phi_{cl} - #phi_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiClVsPhi_propOut = new TH2F("h_ele_dPhiClVsPhi_propOut", - "ele #phi_{cl} - #phi_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiClVsPt_propOut = new TH2F("h_ele_dPhiSClsPt_propOut", - "ele #phi_{cl} - #phi_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dEtaEleCl_propOut = new TH1F("h_ele_dEtaEleCl_propOut", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleClVsEta_propOut = new TH2F("h_ele_dEtaEleClVsEta_propOut", - "ele #eta_{EleCl} - #eta_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaEleClVsPhi_propOut = new TH2F("h_ele_dEtaEleClVsPhi_propOut", - "ele #eta_{EleCl} - #eta_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaEleClVsPt_propOut = new TH2F("h_ele_dEtaScVsPt_propOut", - "ele #eta_{EleCl} - #eta_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dPhiEleCl_propOut = new TH1F("h_ele_dPhiEleCl_propOut", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleClVsEta_propOut = new TH2F("h_ele_dPhiEleClVsEta_propOut", - "ele #phi_{EleCl} - #phi_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleClVsPhi_propOut = new TH2F("h_ele_dPhiEleClVsPhi_propOut", - "ele #phi_{EleCl} - #phi_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleClVsPt_propOut = new TH2F("h_ele_dPhiSEleClsPt_propOut", - "ele #phi_{EleCl} - #phi_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - - h_ele_HoE = new TH1F("h_ele_HoE", "ele hadronic energy / em energy", nbinhoe, hoemin, hoemax); - h_ele_HoE_fiducial = - new TH1F("h_ele_HoE_fiducial", "ele hadronic energy / em energy, fiducial region", nbinhoe, hoemin, hoemax); - h_ele_HoEVsEta = new TH2F( - "h_ele_HoEVsEta", "ele hadronic energy / em energy vs eta", nbineta, etamin, etamax, nbinhoe, hoemin, hoemax); - h_ele_HoEVsPhi = new TH2F( - "h_ele_HoEVsPhi", "ele hadronic energy / em energy vs phi", nbinphi2D, phimin, phimax, nbinhoe, hoemin, hoemax); - h_ele_HoEVsE = - new TH2F("h_ele_HoEVsE", "ele hadronic energy / em energy vs E", nbinp, 0., 300., nbinhoe, hoemin, hoemax); - - h_ele_seed_dphi2_ = new TH1F("h_ele_seedDphi2", "ele seed dphi 2nd layer", 50, -0.003, +0.003); - h_ele_seed_dphi2VsEta_ = - new TH2F("h_ele_seedDphi2VsEta", "ele seed dphi 2nd layer vs eta", nbineta2D, etamin, etamax, 50, -0.003, +0.003); - h_ele_seed_dphi2VsPt_ = - new TH2F("h_ele_seedDphi2VsPt", "ele seed dphi 2nd layer vs pt", nbinpt2D, 0., ptmax, 50, -0.003, +0.003); - h_ele_seed_drz2_ = new TH1F("h_ele_seedDrz2", "ele seed dr/dz 2nd layer", 50, -0.03, +0.03); - h_ele_seed_drz2VsEta_ = - new TH2F("h_ele_seedDrz2VsEta", "ele seed dr/dz 2nd layer vs eta", nbineta2D, etamin, etamax, 50, -0.03, +0.03); - h_ele_seed_drz2VsPt_ = - new TH2F("h_ele_seedDrz2VsPt", "ele seed dr/dz 2nd layer vs pt", nbinpt2D, 0., ptmax, 50, -0.03, +0.03); - h_ele_seed_subdet2_ = new TH1F("h_ele_seedSubdet2", "ele seed subdet 2nd layer", 10, 0., 10.); - - // classes - h_ele_classes = new TH1F("h_ele_classes", "electron classes", 20, 0.0, 20.); - h_ele_eta = new TH1F("h_ele_eta", "ele electron eta", nbineta / 2, 0.0, etamax); - h_ele_eta_golden = new TH1F("h_ele_eta_golden", "ele electron eta golden", nbineta / 2, 0.0, etamax); - h_ele_eta_bbrem = new TH1F("h_ele_eta_bbrem", "ele electron eta bbrem", nbineta / 2, 0.0, etamax); - h_ele_eta_narrow = new TH1F("h_ele_eta_narrow", "ele electron eta narrow", nbineta / 2, 0.0, etamax); - h_ele_eta_shower = new TH1F("h_ele_eta_show", "ele electron eta showering", nbineta / 2, 0.0, etamax); - h_ele_PinVsPoutGolden_mode = new TH2F("h_ele_PinVsPoutGolden_mode", - "ele track inner p vs outer p vs eta, golden, mode", - nbinp2D, - 0., - pmax, - 50, - 0., - pmax); - h_ele_PinVsPoutShowering_mode = new TH2F("h_ele_PinVsPoutShowering_mode", - "ele track inner p vs outer p vs eta, Showering, mode", - nbinp2D, - 0., - pmax, - 50, - 0., - pmax); - h_ele_PinVsPoutGolden_mean = new TH2F("h_ele_PinVsPoutGolden_mean", - "ele track inner p vs outer p vs eta, golden, mean", - nbinp2D, - 0., - pmax, - 50, - 0., - pmax); - h_ele_PinVsPoutShowering_mean = new TH2F("h_ele_PinVsPoutShowering_mean", - "ele track inner p vs outer p vs eta, Showering, mean", - nbinp2D, - 0., - pmax, - 50, - 0., - pmax); - h_ele_PtinVsPtoutGolden_mode = new TH2F("h_ele_PtinVsPtoutGolden_mode", - "ele track inner pt vs outer pt vs eta, golden, mode", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - h_ele_PtinVsPtoutShowering_mode = new TH2F("h_ele_PtinVsPtoutShowering_mode", - "ele track inner pt vs outer pt vs eta, showering, mode", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - h_ele_PtinVsPtoutGolden_mean = new TH2F("h_ele_PtinVsPtoutGolden_mean", - "ele track inner pt vs outer pt vs eta, golden, mean", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - h_ele_PtinVsPtoutShowering_mean = new TH2F("h_ele_PtinVsPtoutShowering_mean", - "ele track inner pt vs outer pt vs eta, showering, mean", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - histSclEoEmatchingObjectGolden_barrel = new TH1F("h_scl_EoEmatchingObject golden, barrel", - "ele supercluster energy over matchingObject energy, golden, barrel", - 100, - 0.2, - 1.2); - histSclEoEmatchingObjectGolden_endcaps = - new TH1F("h_scl_EoEmatchingObject golden, endcaps", - "ele supercluster energy over matchingObject energy, golden, endcaps", - 100, - 0.2, - 1.2); - histSclEoEmatchingObjectShowering_barrel = - new TH1F("h_scl_EoEmatchingObject Showering, barrel", - "ele supercluster energy over matchingObject energy, showering, barrel", - 100, - 0.2, - 1.2); - histSclEoEmatchingObjectShowering_endcaps = - new TH1F("h_scl_EoEmatchingObject Showering, endcaps", - "ele supercluster energy over matchingObject energy, showering, endcaps", - 100, - 0.2, - 1.2); - - // isolation - h_ele_tkSumPt_dr03 = new TH1F("h_ele_tkSumPt_dr03", "tk isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_ecalRecHitSumEt_dr03 = new TH1F("h_ele_ecalRecHitSumEt_dr03", "ecal isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_hcalDepth1TowerSumEt_dr03 = - new TH1F("h_ele_hcalDepth1TowerSumEt_dr03", "hcal depth1 isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_hcalDepth2TowerSumEt_dr03 = - new TH1F("h_ele_hcalDepth2TowerSumEt_dr03", "hcal depth2 isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_tkSumPt_dr04 = new TH1F("h_ele_tkSumPt_dr04", "trk isolation sum", 100, 0.0, 20.); - h_ele_ecalRecHitSumEt_dr04 = new TH1F("h_ele_ecalRecHitSumEt_dr04", "ecal isolation sum, dR=0.4", 100, 0.0, 20.); - h_ele_hcalDepth1TowerSumEt_dr04 = - new TH1F("h_ele_hcalDepth1TowerSumEt_dr04", "hcal depth1 isolation sum, dR=0.4", 100, 0.0, 20.); - h_ele_hcalDepth2TowerSumEt_dr04 = - new TH1F("h_ele_hcalDepth2TowerSumEt_dr04", "hcal depth2 isolation sum, dR=0.4", 100, 0.0, 20.); - - // fbrem - h_ele_fbrem = new TH1F("h_ele_fbrem", "ele brem fraction, mode", 100, 0., 1.); - h_ele_fbremVsEta_mode = - new TProfile("h_ele_fbremvsEtamode", "mean ele brem fraction vs eta, mode", nbineta2D, etamin, etamax, 0., 1.); - h_ele_fbremVsEta_mean = - new TProfile("h_ele_fbremvsEtamean", "mean ele brem fraction vs eta, mean", nbineta2D, etamin, etamax, 0., 1.); - - // e/g et pflow electrons - h_ele_mva = new TH1F("h_ele_mva", "ele identification mva", 100, -1., 1.); - h_ele_provenance = new TH1F("h_ele_provenance", "ele provenance", 5, -2., 3.); - - // histos titles - h_matchingObjectNum->GetXaxis()->SetTitle("N_{SC}"); - h_matchingObjectNum->GetYaxis()->SetTitle("Events"); - h_matchingObjectEta->GetXaxis()->SetTitle("#eta_{SC}"); - h_matchingObjectEta->GetYaxis()->SetTitle("Events"); - h_matchingObjectP->GetXaxis()->SetTitle("E_{SC} (GeV)"); - h_matchingObjectP->GetYaxis()->SetTitle("Events"); - h_ele_foundHits->GetXaxis()->SetTitle("N_{hits}"); - h_ele_foundHits->GetYaxis()->SetTitle("Events"); - h_ele_ambiguousTracks->GetXaxis()->SetTitle("N_{ambiguous tracks}"); - h_ele_ambiguousTracks->GetYaxis()->SetTitle("Events"); - h_ele_lostHits->GetXaxis()->SetTitle("N_{lost hits}"); - h_ele_lostHits->GetYaxis()->SetTitle("Events"); - h_ele_chi2->GetXaxis()->SetTitle("#Chi^{2}"); - h_ele_chi2->GetYaxis()->SetTitle("Events"); - h_ele_charge->GetXaxis()->SetTitle("charge"); - h_ele_charge->GetYaxis()->SetTitle("Events"); - h_ele_vertexP->GetXaxis()->SetTitle("p_{vertex} (GeV/c)"); - h_ele_vertexP->GetYaxis()->SetTitle("Events"); - h_ele_vertexPt->GetXaxis()->SetTitle("p_{T vertex} (GeV/c)"); - h_ele_vertexPt->GetYaxis()->SetTitle("Events"); - h_ele_Et->GetXaxis()->SetTitle("E_{T} (GeV)"); - h_ele_Et->GetYaxis()->SetTitle("Events"); - h_ele_vertexEta->GetXaxis()->SetTitle("#eta"); - h_ele_vertexEta->GetYaxis()->SetTitle("Events"); - h_ele_vertexPhi->GetXaxis()->SetTitle("#phi (rad)"); - h_ele_vertexPhi->GetYaxis()->SetTitle("Events"); - h_ele_PoPmatchingObject_matched->GetXaxis()->SetTitle("P/E_{SC}"); - h_ele_PoPmatchingObject_matched->GetYaxis()->SetTitle("Events"); - h_ele_PoPmatchingObject_barrel_matched->GetXaxis()->SetTitle("P/E_{SC}"); - h_ele_PoPmatchingObject_barrel_matched->GetYaxis()->SetTitle("Events"); - h_ele_PoPmatchingObject_endcaps_matched->GetXaxis()->SetTitle("P/E_{SC}"); - h_ele_PoPmatchingObject_endcaps_matched->GetYaxis()->SetTitle("Events"); - h_ele_PtoPtmatchingObject_matched->GetXaxis()->SetTitle("P_{T}/E_{T}^{SC}"); - h_ele_PtoPtmatchingObject_matched->GetYaxis()->SetTitle("Events"); - h_ele_PtoPtmatchingObject_barrel_matched->GetXaxis()->SetTitle("P_{T}/E_{T}^{SC}"); - h_ele_PtoPtmatchingObject_barrel_matched->GetYaxis()->SetTitle("Events"); - h_ele_PtoPtmatchingObject_endcaps_matched->GetXaxis()->SetTitle("P_{T}/E_{T}^{SC}"); - h_ele_PtoPtmatchingObject_endcaps_matched->GetYaxis()->SetTitle("Events"); - histSclSigEtaEta_->GetXaxis()->SetTitle("#sigma_{#eta #eta}"); - histSclSigEtaEta_->GetYaxis()->SetTitle("Events"); - histSclSigIEtaIEta_barrel_->GetXaxis()->SetTitle("#sigma_{i#eta i#eta}"); - histSclSigIEtaIEta_barrel_->GetYaxis()->SetTitle("Events"); - histSclSigIEtaIEta_endcaps_->GetXaxis()->SetTitle("#sigma_{i#eta i#eta}"); - histSclSigIEtaIEta_endcaps_->GetYaxis()->SetTitle("Events"); - histSclE1x5_->GetXaxis()->SetTitle("E1x5 (GeV)"); - histSclE1x5_->GetYaxis()->SetTitle("Events"); - histSclE1x5_barrel_->GetXaxis()->SetTitle("E1x5 (GeV)"); - histSclE1x5_barrel_->GetYaxis()->SetTitle("Events"); - histSclE1x5_endcaps_->GetXaxis()->SetTitle("E1x5 (GeV)"); - histSclE1x5_endcaps_->GetYaxis()->SetTitle("Events"); - histSclE2x5max_->GetXaxis()->SetTitle("E2x5 (GeV)"); - histSclE2x5max_->GetYaxis()->SetTitle("Events"); - histSclE2x5max_barrel_->GetXaxis()->SetTitle("E2x5 (GeV)"); - histSclE2x5max_barrel_->GetYaxis()->SetTitle("Events"); - histSclE2x5max_endcaps_->GetXaxis()->SetTitle("E2x5 (GeV)"); - histSclE2x5max_endcaps_->GetYaxis()->SetTitle("Events"); - histSclE5x5_->GetXaxis()->SetTitle("E5x5 (GeV)"); - histSclE5x5_->GetYaxis()->SetTitle("Events"); - histSclE5x5_barrel_->GetXaxis()->SetTitle("E5x5 (GeV)"); - histSclE5x5_barrel_->GetYaxis()->SetTitle("Events"); - histSclE5x5_endcaps_->GetXaxis()->SetTitle("E5x5 (GeV)"); - histSclE5x5_endcaps_->GetYaxis()->SetTitle("Events"); - h_ele_EtaMnEtamatchingObject_matched->GetXaxis()->SetTitle("#eta_{rec} - #eta_{SC}"); - h_ele_EtaMnEtamatchingObject_matched->GetYaxis()->SetTitle("Events"); - h_ele_PhiMnPhimatchingObject_matched->GetXaxis()->SetTitle("#phi_{rec} - #phi_{SC} (rad)"); - h_ele_PhiMnPhimatchingObject_matched->GetYaxis()->SetTitle("Events"); - h_ele_PinMnPout->GetXaxis()->SetTitle("P_{vertex} - P_{out} (GeV/c)"); - h_ele_PinMnPout->GetYaxis()->SetTitle("Events"); - h_ele_PinMnPout_mode->GetXaxis()->SetTitle("P_{vertex} - P_{out}, mode (GeV/c)"); - h_ele_PinMnPout_mode->GetYaxis()->SetTitle("Events"); - h_ele_outerP->GetXaxis()->SetTitle("P_{out} (GeV/c)"); - h_ele_outerP->GetYaxis()->SetTitle("Events"); - h_ele_outerP_mode->GetXaxis()->SetTitle("P_{out} (GeV/c)"); - h_ele_outerP_mode->GetYaxis()->SetTitle("Events"); - h_ele_outerPt->GetXaxis()->SetTitle("P_{T out} (GeV/c)"); - h_ele_outerPt->GetYaxis()->SetTitle("Events"); - h_ele_outerPt_mode->GetXaxis()->SetTitle("P_{T out} (GeV/c)"); - h_ele_outerPt_mode->GetYaxis()->SetTitle("Events"); - h_ele_EoP->GetXaxis()->SetTitle("E/P_{vertex}"); - h_ele_EoP->GetYaxis()->SetTitle("Events"); - h_ele_EseedOP->GetXaxis()->SetTitle("E_{seed}/P_{vertex}"); - h_ele_EseedOP->GetYaxis()->SetTitle("Events"); - h_ele_EoPout->GetXaxis()->SetTitle("E_{seed}/P_{out}"); - h_ele_EoPout->GetYaxis()->SetTitle("Events"); - h_ele_EeleOPout->GetXaxis()->SetTitle("E_{ele}/P_{out}"); - h_ele_EeleOPout->GetYaxis()->SetTitle("Events"); - h_ele_vertexX->GetXaxis()->SetTitle("x (cm)"); - h_ele_vertexX->GetYaxis()->SetTitle("Events"); - h_ele_vertexY->GetXaxis()->SetTitle("y (cm)"); - h_ele_vertexY->GetYaxis()->SetTitle("Events"); - h_ele_vertexZ->GetXaxis()->SetTitle("z (cm)"); - h_ele_vertexZ->GetYaxis()->SetTitle("Events"); - h_ele_vertexTIP->GetXaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIP->GetYaxis()->SetTitle("Events"); - h_ele_vertexTIPVsEta->GetYaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIPVsEta->GetXaxis()->SetTitle("#eta"); - h_ele_vertexTIPVsPhi->GetYaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIPVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - h_ele_vertexTIPVsPt->GetYaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIPVsEta->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_dEtaSc_propVtx->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx->GetYaxis()->SetTitle("Events"); - h_ele_dEtaCl_propOut->GetXaxis()->SetTitle("#eta_{seedcl} - #eta_{tr}"); - h_ele_dEtaCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dEtaEleCl_propOut->GetXaxis()->SetTitle("#eta_{elecl} - #eta_{tr}"); - h_ele_dEtaEleCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dPhiSc_propVtx->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiSc_propVtx->GetYaxis()->SetTitle("Events"); - h_ele_dPhiCl_propOut->GetXaxis()->SetTitle("#phi_{seedcl} - #phi_{tr} (rad)"); - h_ele_dPhiCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dPhiEleCl_propOut->GetXaxis()->SetTitle("#phi_{elecl} - #phi_{tr} (rad)"); - h_ele_dPhiEleCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_HoE->GetXaxis()->SetTitle("H/E"); - h_ele_HoE->GetYaxis()->SetTitle("Events"); - h_ele_HoE_fiducial->GetXaxis()->SetTitle("H/E"); - h_ele_HoE_fiducial->GetYaxis()->SetTitle("Events"); - h_ele_fbrem->GetXaxis()->SetTitle("P_{in} - P_{out} / P_{in}"); - h_ele_fbrem->GetYaxis()->SetTitle("Events"); - h_ele_seed_dphi2_->GetXaxis()->SetTitle("#phi_{hit}-#phi_{pred} (rad)"); - h_ele_seed_dphi2_->GetYaxis()->SetTitle("Events"); - h_ele_seed_drz2_->GetXaxis()->SetTitle("r(z)_{hit}-r(z)_{pred} (cm)"); - h_ele_seed_drz2_->GetYaxis()->SetTitle("Events"); - h_ele_seed_subdet2_->GetXaxis()->SetTitle("2nd hit subdet Id"); - h_ele_seed_subdet2_->GetYaxis()->SetTitle("Events"); - h_ele_classes->GetXaxis()->SetTitle("class Id"); - h_ele_classes->GetYaxis()->SetTitle("Events"); - h_ele_mee_all->GetXaxis()->SetTitle("m_{ee} (GeV/c^{2})"); - h_ele_mee_all->GetYaxis()->SetTitle("Events"); - h_ele_mee_os->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os->GetYaxis()->SetTitle("Events"); - h_ele_mee_os_ebeb->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os_ebeb->GetYaxis()->SetTitle("Events"); - h_ele_mee_os_ebee->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os_ebee->GetYaxis()->SetTitle("Events"); - h_ele_mee_os_eeee->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os_eeee->GetYaxis()->SetTitle("Events"); - h_ele_mee_os_gg->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os_gg->GetYaxis()->SetTitle("Events"); - h_ele_mee_os_gb->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os_gb->GetYaxis()->SetTitle("Events"); - h_ele_mee_os_bb->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os_bb->GetYaxis()->SetTitle("Events"); - h_ele_E2mnE1vsMee_all->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_E2mnE1vsMee_all->GetYaxis()->SetTitle("E2 - E1 (GeV)"); - h_ele_E2mnE1vsMee_egeg_all->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_E2mnE1vsMee_egeg_all->GetYaxis()->SetTitle("E2 - E1 (GeV)"); - histNum_->GetXaxis()->SetTitle("N_{ele}"); - histNum_->GetYaxis()->SetTitle("Events"); - h_ele_fbremVsEta_mode->GetXaxis()->SetTitle("#eta"); - h_ele_fbremVsEta_mean->GetXaxis()->SetTitle("#eta"); -} - -void GsfElectronDataAnalyzer::endJob() { - histfile_->cd(); - std::cout << "efficiency calculation " << std::endl; - // efficiency vs eta - TH1F *h_ele_etaEff = (TH1F *)h_ele_matchingObjectEta_matched->Clone("h_ele_etaEff"); - h_ele_etaEff->Reset(); - h_ele_etaEff->Divide(h_ele_matchingObjectEta_matched, h_matchingObjectEta, 1, 1, "b"); - h_ele_etaEff->Print(); - h_ele_etaEff->GetXaxis()->SetTitle("#eta"); - h_ele_etaEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs z - TH1F *h_ele_zEff = (TH1F *)h_ele_matchingObjectZ_matched->Clone("h_ele_zEff"); - h_ele_zEff->Reset(); - h_ele_zEff->Divide(h_ele_matchingObjectZ_matched, h_matchingObjectZ, 1, 1, "b"); - h_ele_zEff->Print(); - h_ele_zEff->GetXaxis()->SetTitle("z (cm)"); - h_ele_zEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs |eta| - TH1F *h_ele_absetaEff = (TH1F *)h_ele_matchingObjectAbsEta_matched->Clone("h_ele_absetaEff"); - h_ele_absetaEff->Reset(); - h_ele_absetaEff->Divide(h_ele_matchingObjectAbsEta_matched, h_matchingObjectAbsEta, 1, 1, "b"); - h_ele_absetaEff->GetXaxis()->SetTitle("|#eta|"); - h_ele_absetaEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs pt - TH1F *h_ele_ptEff = (TH1F *)h_ele_matchingObjectPt_matched->Clone("h_ele_ptEff"); - h_ele_ptEff->Reset(); - h_ele_ptEff->Divide(h_ele_matchingObjectPt_matched, h_matchingObjectPt, 1, 1, "b"); - h_ele_ptEff->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_ptEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs phi - TH1F *h_ele_phiEff = (TH1F *)h_ele_matchingObjectPhi_matched->Clone("h_ele_phiEff"); - h_ele_phiEff->Reset(); - h_ele_phiEff->Divide(h_ele_matchingObjectPhi_matched, h_matchingObjectPhi, 1, 1, "b"); - h_ele_phiEff->GetXaxis()->SetTitle("#phi (rad)"); - h_ele_phiEff->GetYaxis()->SetTitle("Efficiency"); - - // classes - TH1F *h_ele_eta_goldenFrac = (TH1F *)h_ele_eta_golden->Clone("h_ele_eta_goldenFrac"); - h_ele_eta_goldenFrac->Reset(); - h_ele_eta_goldenFrac->Divide(h_ele_eta_golden, h_ele_eta, 1, 1); - h_ele_eta_goldenFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_goldenFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_goldenFrac->SetTitle("fraction of golden electrons vs eta"); - TH1F *h_ele_eta_bbremFrac = (TH1F *)h_ele_eta_bbrem->Clone("h_ele_eta_bbremFrac"); - h_ele_eta_bbremFrac->Reset(); - h_ele_eta_bbremFrac->Divide(h_ele_eta_bbrem, h_ele_eta, 1, 1); - h_ele_eta_bbremFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_bbremFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_bbremFrac->SetTitle("fraction of big brem electrons vs eta"); - TH1F *h_ele_eta_narrowFrac = (TH1F *)h_ele_eta_narrow->Clone("h_ele_eta_narrowFrac"); - h_ele_eta_narrowFrac->Reset(); - h_ele_eta_narrowFrac->Divide(h_ele_eta_narrow, h_ele_eta, 1, 1); - h_ele_eta_narrowFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_narrowFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_narrowFrac->SetTitle("fraction of narrow electrons vs eta"); - TH1F *h_ele_eta_showerFrac = (TH1F *)h_ele_eta_shower->Clone("h_ele_eta_showerFrac"); - h_ele_eta_showerFrac->Reset(); - h_ele_eta_showerFrac->Divide(h_ele_eta_shower, h_ele_eta, 1, 1); - h_ele_eta_showerFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_showerFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_showerFrac->SetTitle("fraction of showering electrons vs eta"); - - // fbrem - TH1F *h_ele_xOverX0VsEta = new TH1F("h_ele_xOverx0VsEta", "mean X/X_0 vs eta", nbineta / 2, 0.0, 2.5); - for (int ibin = 1; ibin < h_ele_fbremVsEta_mean->GetNbinsX() + 1; ibin++) { - double xOverX0 = 0.; - if (h_ele_fbremVsEta_mean->GetBinContent(ibin) > 0.) - xOverX0 = -log(h_ele_fbremVsEta_mean->GetBinContent(ibin)); - h_ele_xOverX0VsEta->SetBinContent(ibin, xOverX0); - } - - //profiles from 2D histos - TProfile *p_ele_PoPmatchingObjectVsEta_matched = h_ele_PoPmatchingObjectVsEta_matched->ProfileX(); - p_ele_PoPmatchingObjectVsEta_matched->SetTitle("mean ele momentum / matching SC energy vs eta"); - p_ele_PoPmatchingObjectVsEta_matched->GetXaxis()->SetTitle("#eta"); - p_ele_PoPmatchingObjectVsEta_matched->GetYaxis()->SetTitle("

"); - p_ele_PoPmatchingObjectVsEta_matched->Write(); - TProfile *p_ele_PoPmatchingObjectVsPhi_matched = h_ele_PoPmatchingObjectVsPhi_matched->ProfileX(); - p_ele_PoPmatchingObjectVsPhi_matched->SetTitle("mean ele momentum / gen momentum vs phi"); - p_ele_PoPmatchingObjectVsPhi_matched->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_PoPmatchingObjectVsPhi_matched->GetYaxis()->SetTitle("

"); - p_ele_PoPmatchingObjectVsPhi_matched->Write(); - TProfile *p_ele_EtaMnEtamatchingObjectVsEta_matched = h_ele_EtaMnEtamatchingObjectVsEta_matched->ProfileX(); - p_ele_EtaMnEtamatchingObjectVsEta_matched->GetXaxis()->SetTitle("#eta"); - p_ele_EtaMnEtamatchingObjectVsEta_matched->GetYaxis()->SetTitle("<#eta_{rec} - #eta_{matching SC}>"); - p_ele_EtaMnEtamatchingObjectVsEta_matched->Write(); - TProfile *p_ele_EtaMnEtamatchingObjectVsPhi_matched = h_ele_EtaMnEtamatchingObjectVsPhi_matched->ProfileX(); - p_ele_EtaMnEtamatchingObjectVsPhi_matched->GetXaxis()->SetTitle("#phi"); - p_ele_EtaMnEtamatchingObjectVsPhi_matched->GetYaxis()->SetTitle("<#eta_{rec} - #eta_{matching SC}>"); - p_ele_EtaMnEtamatchingObjectVsPhi_matched->Write(); - TProfile *p_ele_PhiMnPhimatchingObjectVsEta_matched = h_ele_PhiMnPhimatchingObjectVsEta_matched->ProfileX(); - p_ele_PhiMnPhimatchingObjectVsEta_matched->GetXaxis()->SetTitle("#eta"); - p_ele_PhiMnPhimatchingObjectVsEta_matched->GetYaxis()->SetTitle("<#phi_{rec} - #phi_{matching SC}> (rad)"); - p_ele_PhiMnPhimatchingObjectVsEta_matched->Write(); - TProfile *p_ele_PhiMnPhimatchingObjectVsPhi_matched = h_ele_PhiMnPhimatchingObjectVsPhi_matched->ProfileX(); - p_ele_PhiMnPhimatchingObjectVsPhi_matched->GetXaxis()->SetTitle("#phi"); - p_ele_PhiMnPhimatchingObjectVsPhi_matched->GetYaxis()->SetTitle("<#phi_{rec} - #phi_{matching SC}> (rad)"); - p_ele_PhiMnPhimatchingObjectVsPhi_matched->Write(); - TProfile *p_ele_vertexPtVsEta = h_ele_vertexPtVsEta->ProfileX(); - p_ele_vertexPtVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_vertexPtVsEta->GetYaxis()->SetTitle(" (GeV/c)"); - p_ele_vertexPtVsEta->Write(); - TProfile *p_ele_vertexPtVsPhi = h_ele_vertexPtVsPhi->ProfileX(); - p_ele_vertexPtVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_vertexPtVsPhi->GetYaxis()->SetTitle(" (GeV/c)"); - p_ele_vertexPtVsPhi->Write(); - TProfile *p_ele_EoPVsEta = h_ele_EoPVsEta->ProfileX(); - p_ele_EoPVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EoPVsEta->GetYaxis()->SetTitle(""); - p_ele_EoPVsEta->Write(); - TProfile *p_ele_EoPVsPhi = h_ele_EoPVsPhi->ProfileX(); - p_ele_EoPVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_EoPVsPhi->GetYaxis()->SetTitle(""); - p_ele_EoPVsPhi->Write(); - TProfile *p_ele_EoPoutVsEta = h_ele_EoPoutVsEta->ProfileX(); - p_ele_EoPoutVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EoPoutVsEta->GetYaxis()->SetTitle(""); - p_ele_EoPoutVsEta->Write(); - TProfile *p_ele_EoPoutVsPhi = h_ele_EoPoutVsPhi->ProfileX(); - p_ele_EoPoutVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_EoPoutVsPhi->GetYaxis()->SetTitle(""); - p_ele_EoPoutVsPhi->Write(); - TProfile *p_ele_EeleOPoutVsEta = h_ele_EeleOPoutVsEta->ProfileX(); - p_ele_EeleOPoutVsEta->SetTitle("mean ele Eele/pout vs eta"); - p_ele_EeleOPoutVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EeleOPoutVsEta->GetYaxis()->SetTitle(""); - p_ele_EeleOPoutVsEta->Write(); - TProfile *p_ele_EeleOPoutVsPhi = h_ele_EeleOPoutVsPhi->ProfileX(); - p_ele_EeleOPoutVsPhi->SetTitle("mean ele Eele/pout vs phi"); - p_ele_EeleOPoutVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_EeleOPoutVsPhi->GetYaxis()->SetTitle(""); - p_ele_EeleOPoutVsPhi->Write(); - TProfile *p_ele_HoEVsEta = h_ele_HoEVsEta->ProfileX(); - p_ele_HoEVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_HoEVsEta->GetYaxis()->SetTitle(""); - p_ele_HoEVsEta->Write(); - TProfile *p_ele_HoEVsPhi = h_ele_HoEVsPhi->ProfileX(); - p_ele_HoEVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_HoEVsPhi->GetYaxis()->SetTitle(""); - p_ele_HoEVsPhi->Write(); - TProfile *p_ele_chi2VsEta = h_ele_chi2VsEta->ProfileX(); - p_ele_chi2VsEta->GetXaxis()->SetTitle("#eta"); - p_ele_chi2VsEta->GetYaxis()->SetTitle("<#Chi^{2}>"); - p_ele_chi2VsEta->Write(); - TProfile *p_ele_chi2VsPhi = h_ele_chi2VsPhi->ProfileX(); - p_ele_chi2VsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_chi2VsPhi->GetYaxis()->SetTitle("<#Chi^{2}>"); - p_ele_chi2VsPhi->Write(); - TProfile *p_ele_foundHitsVsEta = h_ele_foundHitsVsEta->ProfileX(); - p_ele_foundHitsVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_foundHitsVsEta->GetYaxis()->SetTitle(""); - p_ele_foundHitsVsEta->Write(); - TProfile *p_ele_foundHitsVsPhi = h_ele_foundHitsVsPhi->ProfileX(); - p_ele_foundHitsVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_foundHitsVsPhi->GetYaxis()->SetTitle(""); - p_ele_foundHitsVsPhi->Write(); - TProfile *p_ele_lostHitsVsEta = h_ele_lostHitsVsEta->ProfileX(); - p_ele_lostHitsVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_lostHitsVsEta->GetYaxis()->SetTitle(""); - p_ele_lostHitsVsEta->Write(); - TProfile *p_ele_lostHitsVsPhi = h_ele_lostHitsVsPhi->ProfileX(); - p_ele_lostHitsVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_lostHitsVsPhi->GetYaxis()->SetTitle(""); - p_ele_lostHitsVsPhi->Write(); - TProfile *p_ele_vertexTIPVsEta = h_ele_vertexTIPVsEta->ProfileX(); - p_ele_vertexTIPVsEta->SetTitle("mean tip (wrt gen vtx) vs eta"); - p_ele_vertexTIPVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_vertexTIPVsEta->GetYaxis()->SetTitle(" (cm)"); - p_ele_vertexTIPVsEta->Write(); - TProfile *p_ele_vertexTIPVsPhi = h_ele_vertexTIPVsPhi->ProfileX(); - p_ele_vertexTIPVsPhi->SetTitle("mean tip (wrt gen vtx) vs phi"); - p_ele_vertexTIPVsPhi->GetXaxis()->SetTitle("#phi"); - p_ele_vertexTIPVsPhi->GetYaxis()->SetTitle(" (cm)"); - p_ele_vertexTIPVsPhi->Write(); - TProfile *p_ele_vertexTIPVsPt = h_ele_vertexTIPVsPt->ProfileX(); - p_ele_vertexTIPVsPt->SetTitle("mean tip (wrt gen vtx) vs phi"); - p_ele_vertexTIPVsPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - p_ele_vertexTIPVsPt->GetYaxis()->SetTitle(" (cm)"); - p_ele_vertexTIPVsPt->Write(); - - // mc truth - - h_matchingObjectNum->Write(); - - // rec event - - histNum_->Write(); - - // mc - h_matchingObjectEta->Write(); - h_matchingObjectAbsEta->Write(); - h_matchingObjectP->Write(); - h_matchingObjectPt->Write(); - h_matchingObjectPhi->Write(); - h_matchingObjectZ->Write(); - - h_ele_mee_all->Write(); - h_ele_mee_os->Write(); - h_ele_mee_os_ebeb->Write(); - h_ele_mee_os_ebee->Write(); - h_ele_mee_os_eeee->Write(); - h_ele_mee_os_gg->Write(); - h_ele_mee_os_gb->Write(); - h_ele_mee_os_bb->Write(); - h_ele_E2mnE1vsMee_all->Write(); - h_ele_E2mnE1vsMee_egeg_all->Write(); - - // matched electrons - h_ele_charge->Write(); - h_ele_chargeVsEta->Write(); - h_ele_chargeVsPhi->Write(); - h_ele_chargeVsPt->Write(); - h_ele_vertexP->Write(); - h_ele_vertexPt->Write(); - h_ele_Et->Write(); - h_ele_vertexPtVsEta->Write(); - h_ele_vertexPtVsPhi->Write(); - h_ele_matchingObjectPt_matched->Write(); - h_ele_vertexEta->Write(); - h_ele_vertexEtaVsPhi->Write(); - h_ele_matchingObjectAbsEta_matched->Write(); - h_ele_matchingObjectEta_matched->Write(); - h_ele_matchingObjectPhi_matched->Write(); - h_ele_vertexPhi->Write(); - h_ele_vertexX->Write(); - h_ele_vertexY->Write(); - h_ele_vertexZ->Write(); - h_ele_vertexTIP->Write(); - h_ele_matchingObjectZ_matched->Write(); - h_ele_vertexTIPVsEta->Write(); - h_ele_vertexTIPVsPhi->Write(); - h_ele_vertexTIPVsPt->Write(); - h_ele_PoPmatchingObject_matched->Write(); - h_ele_PtoPtmatchingObject_matched->Write(); - h_ele_PoPmatchingObjectVsEta_matched->Write(); - h_ele_PoPmatchingObjectVsPhi_matched->Write(); - h_ele_PoPmatchingObjectVsPt_matched->Write(); - h_ele_PoPmatchingObject_barrel_matched->Write(); - h_ele_PoPmatchingObject_endcaps_matched->Write(); - h_ele_PtoPtmatchingObject_barrel_matched->Write(); - h_ele_PtoPtmatchingObject_endcaps_matched->Write(); - h_ele_EtaMnEtamatchingObject_matched->Write(); - h_ele_EtaMnEtamatchingObjectVsEta_matched->Write(); - h_ele_EtaMnEtamatchingObjectVsPhi_matched->Write(); - h_ele_EtaMnEtamatchingObjectVsPt_matched->Write(); - h_ele_PhiMnPhimatchingObject_matched->Write(); - h_ele_PhiMnPhimatchingObject2_matched->Write(); - h_ele_PhiMnPhimatchingObjectVsEta_matched->Write(); - h_ele_PhiMnPhimatchingObjectVsPhi_matched->Write(); - h_ele_PhiMnPhimatchingObjectVsPt_matched->Write(); - - // matched electron, superclusters - histSclEn_->Write(); - histSclEoEmatchingObject_barrel_matched->Write(); - histSclEoEmatchingObject_endcaps_matched->Write(); - histSclEoEmatchingObject_barrel_new_matched->Write(); - histSclEoEmatchingObject_endcaps_new_matched->Write(); - histSclEt_->Write(); - histSclEtVsEta_->Write(); - histSclEtVsPhi_->Write(); - histSclEtaVsPhi_->Write(); - histSclEta_->Write(); - histSclPhi_->Write(); - histSclSigEtaEta_->Write(); - histSclSigIEtaIEta_barrel_->Write(); - histSclSigIEtaIEta_endcaps_->Write(); - histSclE1x5_->Write(); - histSclE1x5_barrel_->Write(); - histSclE1x5_endcaps_->Write(); - histSclE2x5max_->Write(); - histSclE2x5max_barrel_->Write(); - histSclE2x5max_endcaps_->Write(); - histSclE5x5_->Write(); - histSclE5x5_barrel_->Write(); - histSclE5x5_endcaps_->Write(); - - // matched electron, gsf tracks - h_ele_ambiguousTracks->Write(); - h_ele_ambiguousTracksVsEta->Write(); - h_ele_ambiguousTracksVsPhi->Write(); - h_ele_ambiguousTracksVsPt->Write(); - h_ele_foundHits->Write(); - h_ele_foundHitsVsEta->Write(); - h_ele_foundHitsVsPhi->Write(); - h_ele_foundHitsVsPt->Write(); - h_ele_lostHits->Write(); - h_ele_lostHitsVsEta->Write(); - h_ele_lostHitsVsPhi->Write(); - h_ele_lostHitsVsPt->Write(); - h_ele_chi2->Write(); - h_ele_chi2VsEta->Write(); - h_ele_chi2VsPhi->Write(); - h_ele_chi2VsPt->Write(); - h_ele_PinMnPout->Write(); - h_ele_PinMnPout_mode->Write(); - h_ele_PinMnPoutVsEta_mode->Write(); - h_ele_PinMnPoutVsPhi_mode->Write(); - h_ele_PinMnPoutVsPt_mode->Write(); - h_ele_PinMnPoutVsE_mode->Write(); - h_ele_PinMnPoutVsChi2_mode->Write(); - h_ele_outerP->Write(); - h_ele_outerP_mode->Write(); - h_ele_outerPVsEta_mode->Write(); - h_ele_outerPt->Write(); - h_ele_outerPt_mode->Write(); - h_ele_outerPtVsEta_mode->Write(); - h_ele_outerPtVsPhi_mode->Write(); - h_ele_outerPtVsPt_mode->Write(); - - // matched electrons, matching - h_ele_EoP->Write(); - h_ele_EoPVsEta->Write(); - h_ele_EoPVsPhi->Write(); - h_ele_EoPVsE->Write(); - h_ele_EseedOP->Write(); - h_ele_EseedOPVsEta->Write(); - h_ele_EseedOPVsPhi->Write(); - h_ele_EseedOPVsE->Write(); - h_ele_EoPout->Write(); - h_ele_EoPoutVsEta->Write(); - h_ele_EoPoutVsPhi->Write(); - h_ele_EoPoutVsE->Write(); - h_ele_EeleOPout->Write(); - h_ele_EeleOPoutVsEta->Write(); - h_ele_EeleOPoutVsPhi->Write(); - h_ele_EeleOPoutVsE->Write(); - h_ele_dEtaSc_propVtx->Write(); - h_ele_dEtaScVsEta_propVtx->Write(); - h_ele_dEtaScVsPhi_propVtx->Write(); - h_ele_dEtaScVsPt_propVtx->Write(); - h_ele_dPhiSc_propVtx->Write(); - h_ele_dPhiScVsEta_propVtx->Write(); - h_ele_dPhiScVsPhi_propVtx->Write(); - h_ele_dPhiScVsPt_propVtx->Write(); - h_ele_dEtaCl_propOut->Write(); - h_ele_dEtaClVsEta_propOut->Write(); - h_ele_dEtaClVsPhi_propOut->Write(); - h_ele_dEtaClVsPt_propOut->Write(); - h_ele_dPhiCl_propOut->Write(); - h_ele_dPhiClVsEta_propOut->Write(); - h_ele_dPhiClVsPhi_propOut->Write(); - h_ele_dPhiClVsPt_propOut->Write(); - h_ele_dEtaEleCl_propOut->Write(); - h_ele_dEtaEleClVsEta_propOut->Write(); - h_ele_dEtaEleClVsPhi_propOut->Write(); - h_ele_dEtaEleClVsPt_propOut->Write(); - h_ele_dPhiEleCl_propOut->Write(); - h_ele_dPhiEleClVsEta_propOut->Write(); - h_ele_dPhiEleClVsPhi_propOut->Write(); - h_ele_dPhiEleClVsPt_propOut->Write(); - h_ele_HoE->Write(); - h_ele_HoE_fiducial->Write(); - h_ele_HoEVsEta->Write(); - h_ele_HoEVsPhi->Write(); - h_ele_HoEVsE->Write(); - - h_ele_seed_dphi2_->Write(); - h_ele_seed_subdet2_->Write(); - TProfile *p_ele_seed_dphi2VsEta_ = h_ele_seed_dphi2VsEta_->ProfileX(); - p_ele_seed_dphi2VsEta_->SetTitle("mean ele seed dphi 2nd layer vs eta"); - p_ele_seed_dphi2VsEta_->GetXaxis()->SetTitle("#eta"); - p_ele_seed_dphi2VsEta_->GetYaxis()->SetTitle("<#phi_{pred} - #phi_{hit}, 2nd layer> (rad)"); - p_ele_seed_dphi2VsEta_->SetMinimum(-0.004); - p_ele_seed_dphi2VsEta_->SetMaximum(0.004); - p_ele_seed_dphi2VsEta_->Write(); - TProfile *p_ele_seed_dphi2VsPt_ = h_ele_seed_dphi2VsPt_->ProfileX(); - p_ele_seed_dphi2VsPt_->SetTitle("mean ele seed dphi 2nd layer vs pt"); - p_ele_seed_dphi2VsPt_->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - p_ele_seed_dphi2VsPt_->GetYaxis()->SetTitle("<#phi_{pred} - #phi_{hit}, 2nd layer> (rad)"); - p_ele_seed_dphi2VsPt_->Write(); - p_ele_seed_dphi2VsPt_->SetMinimum(-0.004); - p_ele_seed_dphi2VsPt_->SetMaximum(0.004); - h_ele_seed_drz2_->Write(); - TProfile *p_ele_seed_drz2VsEta_ = h_ele_seed_drz2VsEta_->ProfileX(); - p_ele_seed_drz2VsEta_->SetTitle("mean ele seed dr(dz) 2nd layer vs eta"); - p_ele_seed_drz2VsEta_->GetXaxis()->SetTitle("#eta"); - p_ele_seed_drz2VsEta_->GetYaxis()->SetTitle(" (cm)"); - p_ele_seed_drz2VsEta_->SetMinimum(-0.15); - p_ele_seed_drz2VsEta_->SetMaximum(0.15); - p_ele_seed_drz2VsEta_->Write(); - TProfile *p_ele_seed_drz2VsPt_ = h_ele_seed_drz2VsPt_->ProfileX(); - p_ele_seed_drz2VsPt_->SetTitle("mean ele seed dr(dz) 2nd layer vs pt"); - p_ele_seed_drz2VsPt_->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - p_ele_seed_drz2VsPt_->GetYaxis()->SetTitle(" (cm)"); - p_ele_seed_drz2VsPt_->SetMinimum(-0.15); - p_ele_seed_drz2VsPt_->SetMaximum(0.15); - p_ele_seed_drz2VsPt_->Write(); - - // classes - h_ele_classes->Write(); - h_ele_eta->Write(); - h_ele_eta_golden->Write(); - h_ele_eta_bbrem->Write(); - h_ele_eta_narrow->Write(); - h_ele_eta_shower->Write(); - h_ele_PinVsPoutGolden_mode->Write(); - h_ele_PinVsPoutShowering_mode->Write(); - h_ele_PinVsPoutGolden_mean->Write(); - h_ele_PinVsPoutShowering_mean->Write(); - h_ele_PtinVsPtoutGolden_mode->Write(); - h_ele_PtinVsPtoutShowering_mode->Write(); - h_ele_PtinVsPtoutGolden_mean->Write(); - h_ele_PtinVsPtoutShowering_mean->Write(); - histSclEoEmatchingObjectGolden_barrel->Write(); - histSclEoEmatchingObjectGolden_endcaps->Write(); - histSclEoEmatchingObjectShowering_barrel->Write(); - histSclEoEmatchingObjectShowering_endcaps->Write(); - - // fbrem - h_ele_fbrem->Write(); - h_ele_fbremVsEta_mode->Write(); - h_ele_fbremVsEta_mean->Write(); - h_ele_etaEff->Write(); - h_ele_zEff->Write(); - h_ele_phiEff->Write(); - h_ele_absetaEff->Write(); - h_ele_ptEff->Write(); - h_ele_eta_goldenFrac->Write(); - h_ele_eta_bbremFrac->Write(); - h_ele_eta_narrowFrac->Write(); - h_ele_eta_showerFrac->Write(); - h_ele_xOverX0VsEta->Write(); - - // e/g et pflow electrons - h_ele_mva->Write(); - h_ele_provenance->Write(); - - // isolation - h_ele_tkSumPt_dr03->GetXaxis()->SetTitle("TkIsoSum, cone 0.3 (GeV/c)"); - h_ele_tkSumPt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_tkSumPt_dr03->Write(); - h_ele_ecalRecHitSumEt_dr03->GetXaxis()->SetTitle("EcalIsoSum, cone 0.3 (GeV)"); - h_ele_ecalRecHitSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_ecalRecHitSumEt_dr03->Write(); - h_ele_hcalDepth1TowerSumEt_dr03->GetXaxis()->SetTitle("Hcal1IsoSum, cone 0.3 (GeV)"); - h_ele_hcalDepth1TowerSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth1TowerSumEt_dr03->Write(); - h_ele_hcalDepth2TowerSumEt_dr03->GetXaxis()->SetTitle("Hcal2IsoSum, cone 0.3 (GeV)"); - h_ele_hcalDepth2TowerSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth2TowerSumEt_dr03->Write(); - h_ele_tkSumPt_dr04->GetXaxis()->SetTitle("TkIsoSum, cone 0.4 (GeV/c)"); - h_ele_tkSumPt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_tkSumPt_dr04->Write(); - h_ele_ecalRecHitSumEt_dr04->GetXaxis()->SetTitle("EcalIsoSum, cone 0.4 (GeV)"); - h_ele_ecalRecHitSumEt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_ecalRecHitSumEt_dr04->Write(); - h_ele_hcalDepth1TowerSumEt_dr04->GetXaxis()->SetTitle("Hcal1IsoSum, cone 0.4 (GeV)"); - h_ele_hcalDepth1TowerSumEt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth1TowerSumEt_dr04->Write(); - h_ele_hcalDepth2TowerSumEt_dr04->GetXaxis()->SetTitle("Hcal2IsoSum, cone 0.4 (GeV)"); - h_ele_hcalDepth2TowerSumEt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth2TowerSumEt_dr04->Write(); -} - -void GsfElectronDataAnalyzer::analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) { - std::cout << "analyzing new event " << std::endl; - nEvents_++; - - // check event pass requested triggers if any - if (!trigger(iEvent)) - return; - - std::cout << "new event passing trigger " << std::endl; - nAfterTrigger_++; - - // get reco electrons - edm::Handle gsfElectrons; - iEvent.getByLabel(electronCollection_, gsfElectrons); - edm::LogInfo("") << "\n\n =================> Treating event " << iEvent.id() << " Number of electrons " - << gsfElectrons.product()->size(); - - // get reco supercluster collection - edm::Handle recoClusters; - iEvent.getByLabel(matchingObjectCollection_, recoClusters); - - // get the beamspot from the Event: - edm::Handle recoBeamSpotHandle; - iEvent.getByLabel(beamSpot_, recoBeamSpotHandle); - const BeamSpot bs = *recoBeamSpotHandle; - - histNum_->Fill((*gsfElectrons).size()); - - // selected rec electrons - for (reco::GsfElectronCollection::const_iterator gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); - gsfIter++) { - // select electrons - if (gsfIter->superCluster()->energy() / cosh(gsfIter->superCluster()->eta()) < minEt_) - continue; - if (std::abs(gsfIter->eta()) > maxAbsEta_) - continue; - if (gsfIter->pt() < minPt_) - continue; - - if (gsfIter->isEB() && isEE_) - continue; - if (gsfIter->isEE() && isEB_) - continue; - if (gsfIter->isEBEEGap() && isNotEBEEGap_) - continue; - - if (gsfIter->ecalDrivenSeed() && isTrackerDriven_) - continue; - if (gsfIter->trackerDrivenSeed() && isEcalDriven_) - continue; - - if (gsfIter->isEB() && gsfIter->eSuperClusterOverP() < eOverPMinBarrel_) - continue; - if (gsfIter->isEB() && gsfIter->eSuperClusterOverP() > eOverPMaxBarrel_) - continue; - if (gsfIter->isEE() && gsfIter->eSuperClusterOverP() < eOverPMinEndcaps_) - continue; - if (gsfIter->isEE() && gsfIter->eSuperClusterOverP() > eOverPMaxEndcaps_) - continue; - if (gsfIter->isEB() && std::abs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) < dEtaMinBarrel_) - continue; - if (gsfIter->isEB() && std::abs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) > dEtaMaxBarrel_) - continue; - if (gsfIter->isEE() && std::abs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) < dEtaMinEndcaps_) - continue; - if (gsfIter->isEE() && std::abs(gsfIter->deltaEtaSuperClusterTrackAtVtx()) > dEtaMaxEndcaps_) - continue; - if (gsfIter->isEB() && std::abs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) < dPhiMinBarrel_) - continue; - if (gsfIter->isEB() && std::abs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) > dPhiMaxBarrel_) - continue; - if (gsfIter->isEE() && std::abs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) < dPhiMinEndcaps_) - continue; - if (gsfIter->isEE() && std::abs(gsfIter->deltaPhiSuperClusterTrackAtVtx()) > dPhiMaxEndcaps_) - continue; - if (gsfIter->isEB() && gsfIter->scSigmaIEtaIEta() < sigIetaIetaMinBarrel_) - continue; - if (gsfIter->isEB() && gsfIter->scSigmaIEtaIEta() > sigIetaIetaMaxBarrel_) - continue; - if (gsfIter->isEE() && gsfIter->scSigmaIEtaIEta() < sigIetaIetaMinEndcaps_) - continue; - if (gsfIter->isEE() && gsfIter->scSigmaIEtaIEta() > sigIetaIetaMaxEndcaps_) - continue; - if (gsfIter->isEB() && gsfIter->hadronicOverEm() > hadronicOverEmMaxBarrel_) - continue; - if (gsfIter->isEE() && gsfIter->hadronicOverEm() > hadronicOverEmMaxEndcaps_) - continue; - if (gsfIter->mva_e_pi() < mvaMin_) - continue; - - double d = (gsfIter->vertex().x() - bs.position().x()) * (gsfIter->vertex().x() - bs.position().x()) + - (gsfIter->vertex().y() - bs.position().y()) * (gsfIter->vertex().y() - bs.position().y()); - d = sqrt(d); - if (gsfIter->isEB() && d > tipMaxBarrel_) - continue; - if (gsfIter->isEE() && d > tipMaxEndcaps_) - continue; - - if (gsfIter->dr03TkSumPt() > tkIso03Max_) - continue; - if (gsfIter->isEB() && gsfIter->dr03HcalTowerSumEt(1) > hcalIso03Depth1MaxBarrel_) - continue; - if (gsfIter->isEE() && gsfIter->dr03HcalTowerSumEt(1) > hcalIso03Depth1MaxEndcaps_) - continue; - if (gsfIter->isEE() && gsfIter->dr03HcalTowerSumEt(2) > hcalIso03Depth2MaxEndcaps_) - continue; - if (gsfIter->isEB() && gsfIter->dr03EcalRecHitSumEt() > ecalIso03MaxBarrel_) - continue; - if (gsfIter->isEE() && gsfIter->dr03EcalRecHitSumEt() > ecalIso03MaxEndcaps_) - continue; - - // electron related distributions - h_ele_charge->Fill(gsfIter->charge()); - h_ele_chargeVsEta->Fill(gsfIter->eta(), gsfIter->charge()); - h_ele_chargeVsPhi->Fill(gsfIter->phi(), gsfIter->charge()); - h_ele_chargeVsPt->Fill(gsfIter->pt(), gsfIter->charge()); - h_ele_vertexP->Fill(gsfIter->p()); - h_ele_vertexPt->Fill(gsfIter->pt()); - h_ele_Et->Fill(gsfIter->superCluster()->energy() / cosh(gsfIter->superCluster()->eta())); - h_ele_vertexPtVsEta->Fill(gsfIter->eta(), gsfIter->pt()); - h_ele_vertexPtVsPhi->Fill(gsfIter->phi(), gsfIter->pt()); - h_ele_vertexEta->Fill(gsfIter->eta()); - - h_ele_vertexEtaVsPhi->Fill(gsfIter->phi(), gsfIter->eta()); - h_ele_vertexPhi->Fill(gsfIter->phi()); - h_ele_vertexX->Fill(gsfIter->vertex().x()); - h_ele_vertexY->Fill(gsfIter->vertex().y()); - h_ele_vertexZ->Fill(gsfIter->vertex().z()); - h_ele_vertexTIP->Fill(d); - h_ele_vertexTIPVsEta->Fill(gsfIter->eta(), d); - h_ele_vertexTIPVsPhi->Fill(gsfIter->phi(), d); - h_ele_vertexTIPVsPt->Fill(gsfIter->pt(), d); - - // supercluster related distributions - reco::SuperClusterRef sclRef = gsfIter->superCluster(); - if (!gsfIter->ecalDrivenSeed() && gsfIter->trackerDrivenSeed()) - sclRef = gsfIter->parentSuperCluster(); - histSclEn_->Fill(sclRef->energy()); - double R = std::sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y() + sclRef->z() * sclRef->z()); - double Rt = std::sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y()); - histSclEt_->Fill(sclRef->energy() * (Rt / R)); - histSclEtVsEta_->Fill(sclRef->eta(), sclRef->energy() * (Rt / R)); - histSclEtVsPhi_->Fill(sclRef->phi(), sclRef->energy() * (Rt / R)); - histSclEta_->Fill(sclRef->eta()); - histSclEtaVsPhi_->Fill(sclRef->phi(), sclRef->eta()); - histSclPhi_->Fill(sclRef->phi()); - histSclSigEtaEta_->Fill(gsfIter->scSigmaEtaEta()); - if (gsfIter->isEB()) - histSclSigIEtaIEta_barrel_->Fill(gsfIter->scSigmaIEtaIEta()); - if (gsfIter->isEE()) - histSclSigIEtaIEta_endcaps_->Fill(gsfIter->scSigmaIEtaIEta()); - histSclE1x5_->Fill(gsfIter->scE1x5()); - if (gsfIter->isEB()) - histSclE1x5_barrel_->Fill(gsfIter->scE1x5()); - if (gsfIter->isEE()) - histSclE1x5_endcaps_->Fill(gsfIter->scE1x5()); - histSclE2x5max_->Fill(gsfIter->scE2x5Max()); - if (gsfIter->isEB()) - histSclE2x5max_barrel_->Fill(gsfIter->scE2x5Max()); - if (gsfIter->isEE()) - histSclE2x5max_endcaps_->Fill(gsfIter->scE2x5Max()); - histSclE5x5_->Fill(gsfIter->scE5x5()); - if (gsfIter->isEB()) - histSclE5x5_barrel_->Fill(gsfIter->scE5x5()); - if (gsfIter->isEE()) - histSclE5x5_endcaps_->Fill(gsfIter->scE5x5()); - - // track related distributions - h_ele_ambiguousTracks->Fill(gsfIter->ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsEta->Fill(gsfIter->eta(), gsfIter->ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsPhi->Fill(gsfIter->phi(), gsfIter->ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsPt->Fill(gsfIter->pt(), gsfIter->ambiguousGsfTracksSize()); - if (!readAOD_) { // track extra does not exist in AOD - h_ele_foundHits->Fill(gsfIter->gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsEta->Fill(gsfIter->eta(), gsfIter->gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsPhi->Fill(gsfIter->phi(), gsfIter->gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsPt->Fill(gsfIter->pt(), gsfIter->gsfTrack()->numberOfValidHits()); - h_ele_lostHits->Fill(gsfIter->gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsEta->Fill(gsfIter->eta(), gsfIter->gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsPhi->Fill(gsfIter->phi(), gsfIter->gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsPt->Fill(gsfIter->pt(), gsfIter->gsfTrack()->numberOfLostHits()); - h_ele_chi2->Fill(gsfIter->gsfTrack()->normalizedChi2()); - h_ele_chi2VsEta->Fill(gsfIter->eta(), gsfIter->gsfTrack()->normalizedChi2()); - h_ele_chi2VsPhi->Fill(gsfIter->phi(), gsfIter->gsfTrack()->normalizedChi2()); - h_ele_chi2VsPt->Fill(gsfIter->pt(), gsfIter->gsfTrack()->normalizedChi2()); - } - // from gsf track interface, hence using mean - if (!readAOD_) { // track extra does not exist in AOD - h_ele_PinMnPout->Fill(gsfIter->gsfTrack()->innerMomentum().R() - gsfIter->gsfTrack()->outerMomentum().R()); - h_ele_outerP->Fill(gsfIter->gsfTrack()->outerMomentum().R()); - h_ele_outerPt->Fill(gsfIter->gsfTrack()->outerMomentum().Rho()); - } - // from electron interface, hence using mode - h_ele_PinMnPout_mode->Fill(gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R()); - h_ele_PinMnPoutVsEta_mode->Fill(gsfIter->eta(), - gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R()); - h_ele_PinMnPoutVsPhi_mode->Fill(gsfIter->phi(), - gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R()); - h_ele_PinMnPoutVsPt_mode->Fill(gsfIter->pt(), gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R()); - h_ele_PinMnPoutVsE_mode->Fill(gsfIter->caloEnergy(), - gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R()); - if (!readAOD_) // track extra does not exist in AOD - h_ele_PinMnPoutVsChi2_mode->Fill(gsfIter->gsfTrack()->normalizedChi2(), - gsfIter->trackMomentumAtVtx().R() - gsfIter->trackMomentumOut().R()); - h_ele_outerP_mode->Fill(gsfIter->trackMomentumOut().R()); - h_ele_outerPVsEta_mode->Fill(gsfIter->eta(), gsfIter->trackMomentumOut().R()); - h_ele_outerPt_mode->Fill(gsfIter->trackMomentumOut().Rho()); - h_ele_outerPtVsEta_mode->Fill(gsfIter->eta(), gsfIter->trackMomentumOut().Rho()); - h_ele_outerPtVsPhi_mode->Fill(gsfIter->phi(), gsfIter->trackMomentumOut().Rho()); - h_ele_outerPtVsPt_mode->Fill(gsfIter->pt(), gsfIter->trackMomentumOut().Rho()); - - if (!readAOD_) { // track extra does not exist in AOD - edm::RefToBase seed = gsfIter->gsfTrack()->extra()->seedRef(); - ElectronSeedRef elseed = seed.castTo(); - h_ele_seed_dphi2_->Fill(elseed->dPhiNeg(1)); - h_ele_seed_dphi2VsEta_->Fill(gsfIter->eta(), elseed->dPhiNeg(1)); - h_ele_seed_dphi2VsPt_->Fill(gsfIter->pt(), elseed->dPhiNeg(1)); - h_ele_seed_drz2_->Fill(elseed->dRZNeg(1)); - h_ele_seed_drz2VsEta_->Fill(gsfIter->eta(), elseed->dRZNeg(1)); - h_ele_seed_drz2VsPt_->Fill(gsfIter->pt(), elseed->dRZNeg(1)); - h_ele_seed_subdet2_->Fill(elseed->subDet(1)); - } - // match distributions - h_ele_EoP->Fill(gsfIter->eSuperClusterOverP()); - h_ele_EoPVsEta->Fill(gsfIter->eta(), gsfIter->eSuperClusterOverP()); - h_ele_EoPVsPhi->Fill(gsfIter->phi(), gsfIter->eSuperClusterOverP()); - h_ele_EoPVsE->Fill(gsfIter->caloEnergy(), gsfIter->eSuperClusterOverP()); - h_ele_EseedOP->Fill(gsfIter->eSeedClusterOverP()); - h_ele_EseedOPVsEta->Fill(gsfIter->eta(), gsfIter->eSeedClusterOverP()); - h_ele_EseedOPVsPhi->Fill(gsfIter->phi(), gsfIter->eSeedClusterOverP()); - h_ele_EseedOPVsE->Fill(gsfIter->caloEnergy(), gsfIter->eSeedClusterOverP()); - h_ele_EoPout->Fill(gsfIter->eSeedClusterOverPout()); - h_ele_EoPoutVsEta->Fill(gsfIter->eta(), gsfIter->eSeedClusterOverPout()); - h_ele_EoPoutVsPhi->Fill(gsfIter->phi(), gsfIter->eSeedClusterOverPout()); - h_ele_EoPoutVsE->Fill(gsfIter->caloEnergy(), gsfIter->eSeedClusterOverPout()); - h_ele_EeleOPout->Fill(gsfIter->eEleClusterOverPout()); - h_ele_EeleOPoutVsEta->Fill(gsfIter->eta(), gsfIter->eEleClusterOverPout()); - h_ele_EeleOPoutVsPhi->Fill(gsfIter->phi(), gsfIter->eEleClusterOverPout()); - h_ele_EeleOPoutVsE->Fill(gsfIter->caloEnergy(), gsfIter->eEleClusterOverPout()); - h_ele_dEtaSc_propVtx->Fill(gsfIter->deltaEtaSuperClusterTrackAtVtx()); - h_ele_dEtaScVsEta_propVtx->Fill(gsfIter->eta(), gsfIter->deltaEtaSuperClusterTrackAtVtx()); - h_ele_dEtaScVsPhi_propVtx->Fill(gsfIter->phi(), gsfIter->deltaEtaSuperClusterTrackAtVtx()); - h_ele_dEtaScVsPt_propVtx->Fill(gsfIter->pt(), gsfIter->deltaEtaSuperClusterTrackAtVtx()); - h_ele_dPhiSc_propVtx->Fill(gsfIter->deltaPhiSuperClusterTrackAtVtx()); - h_ele_dPhiScVsEta_propVtx->Fill(gsfIter->eta(), gsfIter->deltaPhiSuperClusterTrackAtVtx()); - h_ele_dPhiScVsPhi_propVtx->Fill(gsfIter->phi(), gsfIter->deltaPhiSuperClusterTrackAtVtx()); - h_ele_dPhiScVsPt_propVtx->Fill(gsfIter->pt(), gsfIter->deltaPhiSuperClusterTrackAtVtx()); - h_ele_dEtaCl_propOut->Fill(gsfIter->deltaEtaSeedClusterTrackAtCalo()); - h_ele_dEtaClVsEta_propOut->Fill(gsfIter->eta(), gsfIter->deltaEtaSeedClusterTrackAtCalo()); - h_ele_dEtaClVsPhi_propOut->Fill(gsfIter->phi(), gsfIter->deltaEtaSeedClusterTrackAtCalo()); - h_ele_dEtaClVsPt_propOut->Fill(gsfIter->pt(), gsfIter->deltaEtaSeedClusterTrackAtCalo()); - h_ele_dPhiCl_propOut->Fill(gsfIter->deltaPhiSeedClusterTrackAtCalo()); - h_ele_dPhiClVsEta_propOut->Fill(gsfIter->eta(), gsfIter->deltaPhiSeedClusterTrackAtCalo()); - h_ele_dPhiClVsPhi_propOut->Fill(gsfIter->phi(), gsfIter->deltaPhiSeedClusterTrackAtCalo()); - h_ele_dPhiClVsPt_propOut->Fill(gsfIter->pt(), gsfIter->deltaPhiSeedClusterTrackAtCalo()); - h_ele_dEtaEleCl_propOut->Fill(gsfIter->deltaEtaEleClusterTrackAtCalo()); - h_ele_dEtaEleClVsEta_propOut->Fill(gsfIter->eta(), gsfIter->deltaEtaEleClusterTrackAtCalo()); - h_ele_dEtaEleClVsPhi_propOut->Fill(gsfIter->phi(), gsfIter->deltaEtaEleClusterTrackAtCalo()); - h_ele_dEtaEleClVsPt_propOut->Fill(gsfIter->pt(), gsfIter->deltaEtaEleClusterTrackAtCalo()); - h_ele_dPhiEleCl_propOut->Fill(gsfIter->deltaPhiEleClusterTrackAtCalo()); - h_ele_dPhiEleClVsEta_propOut->Fill(gsfIter->eta(), gsfIter->deltaPhiEleClusterTrackAtCalo()); - h_ele_dPhiEleClVsPhi_propOut->Fill(gsfIter->phi(), gsfIter->deltaPhiEleClusterTrackAtCalo()); - h_ele_dPhiEleClVsPt_propOut->Fill(gsfIter->pt(), gsfIter->deltaPhiEleClusterTrackAtCalo()); - h_ele_HoE->Fill(gsfIter->hadronicOverEm()); - if (!gsfIter->isEBEtaGap() && !gsfIter->isEBPhiGap() && !gsfIter->isEBEEGap() && !gsfIter->isEERingGap() && - !gsfIter->isEEDeeGap()) - h_ele_HoE_fiducial->Fill(gsfIter->hadronicOverEm()); - h_ele_HoEVsEta->Fill(gsfIter->eta(), gsfIter->hadronicOverEm()); - h_ele_HoEVsPhi->Fill(gsfIter->phi(), gsfIter->hadronicOverEm()); - h_ele_HoEVsE->Fill(gsfIter->caloEnergy(), gsfIter->hadronicOverEm()); - - //classes - int eleClass = gsfIter->classification(); - if (gsfIter->isEE()) - eleClass += 10; - h_ele_classes->Fill(eleClass); - - h_ele_eta->Fill(std::abs(gsfIter->eta())); - if (gsfIter->classification() == GsfElectron::GOLDEN) - h_ele_eta_golden->Fill(std::abs(gsfIter->eta())); - if (gsfIter->classification() == GsfElectron::BIGBREM) - h_ele_eta_bbrem->Fill(std::abs(gsfIter->eta())); - //if (gsfIter->classification() == GsfElectron::OLDNARROW) h_ele_eta_narrow ->Fill(std::abs(gsfIter->eta())); - if (gsfIter->classification() == GsfElectron::SHOWERING) - h_ele_eta_shower->Fill(std::abs(gsfIter->eta())); - - //fbrem - double fbrem_mean = 0.; - if (!readAOD_) // track extra does not exist in AOD - fbrem_mean = 1. - gsfIter->gsfTrack()->outerMomentum().R() / gsfIter->gsfTrack()->innerMomentum().R(); - double fbrem_mode = gsfIter->fbrem(); - h_ele_fbrem->Fill(fbrem_mode); - h_ele_fbremVsEta_mode->Fill(gsfIter->eta(), fbrem_mode); - if (!readAOD_) // track extra does not exist in AOD - h_ele_fbremVsEta_mean->Fill(gsfIter->eta(), fbrem_mean); - - if (gsfIter->classification() == GsfElectron::GOLDEN) - h_ele_PinVsPoutGolden_mode->Fill(gsfIter->trackMomentumOut().R(), gsfIter->trackMomentumAtVtx().R()); - if (gsfIter->classification() == GsfElectron::SHOWERING) - h_ele_PinVsPoutShowering_mode->Fill(gsfIter->trackMomentumOut().R(), gsfIter->trackMomentumAtVtx().R()); - if (!readAOD_) // track extra does not exist in AOD - if (gsfIter->classification() == GsfElectron::GOLDEN) - h_ele_PinVsPoutGolden_mean->Fill(gsfIter->gsfTrack()->outerMomentum().R(), - gsfIter->gsfTrack()->innerMomentum().R()); - if (!readAOD_) // track extra does not exist in AOD - if (gsfIter->classification() == GsfElectron::SHOWERING) - h_ele_PinVsPoutShowering_mean->Fill(gsfIter->gsfTrack()->outerMomentum().R(), - gsfIter->gsfTrack()->innerMomentum().R()); - if (gsfIter->classification() == GsfElectron::GOLDEN) - h_ele_PtinVsPtoutGolden_mode->Fill(gsfIter->trackMomentumOut().Rho(), gsfIter->trackMomentumAtVtx().Rho()); - if (gsfIter->classification() == GsfElectron::SHOWERING) - h_ele_PtinVsPtoutShowering_mode->Fill(gsfIter->trackMomentumOut().Rho(), gsfIter->trackMomentumAtVtx().Rho()); - if (!readAOD_) // track extra does not exist in AOD - if (gsfIter->classification() == GsfElectron::GOLDEN) - h_ele_PtinVsPtoutGolden_mean->Fill(gsfIter->gsfTrack()->outerMomentum().Rho(), - gsfIter->gsfTrack()->innerMomentum().Rho()); - if (!readAOD_) // track extra does not exist in AOD - if (gsfIter->classification() == GsfElectron::SHOWERING) - h_ele_PtinVsPtoutShowering_mean->Fill(gsfIter->gsfTrack()->outerMomentum().Rho(), - gsfIter->gsfTrack()->innerMomentum().Rho()); - - h_ele_mva->Fill(gsfIter->mva_e_pi()); - if (gsfIter->ecalDrivenSeed()) - h_ele_provenance->Fill(1.); - if (gsfIter->trackerDrivenSeed()) - h_ele_provenance->Fill(-1.); - if (gsfIter->trackerDrivenSeed() || gsfIter->ecalDrivenSeed()) - h_ele_provenance->Fill(0.); - if (gsfIter->trackerDrivenSeed() && !gsfIter->ecalDrivenSeed()) - h_ele_provenance->Fill(-2.); - if (!gsfIter->trackerDrivenSeed() && gsfIter->ecalDrivenSeed()) - h_ele_provenance->Fill(2.); - - h_ele_tkSumPt_dr03->Fill(gsfIter->dr03TkSumPt()); - h_ele_ecalRecHitSumEt_dr03->Fill(gsfIter->dr03EcalRecHitSumEt()); - h_ele_hcalDepth1TowerSumEt_dr03->Fill(gsfIter->dr03HcalTowerSumEt(1)); - h_ele_hcalDepth2TowerSumEt_dr03->Fill(gsfIter->dr03HcalTowerSumEt(2)); - h_ele_tkSumPt_dr04->Fill(gsfIter->dr04TkSumPt()); - h_ele_ecalRecHitSumEt_dr04->Fill(gsfIter->dr04EcalRecHitSumEt()); - h_ele_hcalDepth1TowerSumEt_dr04->Fill(gsfIter->dr04HcalTowerSumEt(1)); - h_ele_hcalDepth2TowerSumEt_dr04->Fill(gsfIter->dr04HcalTowerSumEt(2)); - - float enrj1 = gsfIter->superCluster()->energy(); - // mee - for (reco::GsfElectronCollection::const_iterator gsfIter2 = gsfIter + 1; gsfIter2 != gsfElectrons->end(); - gsfIter2++) { - math::XYZTLorentzVector p12 = (*gsfIter).p4() + (*gsfIter2).p4(); - float mee2 = p12.Dot(p12); - float enrj2 = gsfIter2->superCluster()->energy(); - h_ele_mee_all->Fill(sqrt(mee2)); - h_ele_E2mnE1vsMee_all->Fill(sqrt(mee2), enrj2 - enrj1); - if (gsfIter->ecalDrivenSeed() && gsfIter2->ecalDrivenSeed()) - h_ele_E2mnE1vsMee_egeg_all->Fill(sqrt(mee2), enrj2 - enrj1); - if (gsfIter->charge() * gsfIter2->charge() < 0.) { - h_ele_mee_os->Fill(sqrt(mee2)); - if (gsfIter->isEB() && gsfIter2->isEB()) - h_ele_mee_os_ebeb->Fill(sqrt(mee2)); - if ((gsfIter->isEB() && gsfIter2->isEE()) || (gsfIter->isEE() && gsfIter2->isEB())) - h_ele_mee_os_ebee->Fill(sqrt(mee2)); - if (gsfIter->isEE() && gsfIter2->isEE()) - h_ele_mee_os_eeee->Fill(sqrt(mee2)); - if ((gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::GOLDEN) || - (gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::BIGBREM) || - //(gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::OLDNARROW) || - (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::GOLDEN) || - (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::BIGBREM)/* || - (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::OLDNARROW) || - (gsfIter->classification()==GsfElectron::OLDNARROW && gsfIter2->classification()==GsfElectron::GOLDEN) || - (gsfIter->classification()==GsfElectron::OLDNARROW && gsfIter2->classification()==GsfElectron::BIGBREM) || - (gsfIter->classification()==GsfElectron::OLDNARROW && gsfIter2->classification()==GsfElectron::OLDNARROW)*/) - { - h_ele_mee_os_gg->Fill(sqrt(mee2)); - } else if ((gsfIter->classification() == GsfElectron::SHOWERING && - gsfIter2->classification() == GsfElectron::SHOWERING) || - (gsfIter->classification() == GsfElectron::SHOWERING && gsfIter2->isGap()) || - (gsfIter->isGap() && gsfIter2->classification() == GsfElectron::SHOWERING) || - (gsfIter->isGap() && gsfIter2->isGap())) { - h_ele_mee_os_bb->Fill(sqrt(mee2)); - } else { - h_ele_mee_os_gb->Fill(sqrt(mee2)); - } - } - } - } - - // association matching object-reco electrons - int matchingObjectNum = 0; - - for (reco::SuperClusterCollection::const_iterator moIter = recoClusters->begin(); moIter != recoClusters->end(); - moIter++) { - // number of matching objects - matchingObjectNum++; - - if (moIter->energy() / cosh(moIter->eta()) > maxPtMatchingObject_ || - std::abs(moIter->eta()) > maxAbsEtaMatchingObject_) - continue; - - // suppress the endcaps - //if (std::abs(moIter->eta()) > 1.5) continue; - // select central z - //if ( std::abs((*mcIter)->production_vertex()->position().z())>50.) continue; - - h_matchingObjectEta->Fill(moIter->eta()); - h_matchingObjectAbsEta->Fill(std::abs(moIter->eta())); - h_matchingObjectP->Fill(moIter->energy()); - h_matchingObjectPt->Fill(moIter->energy() / cosh(moIter->eta())); - h_matchingObjectPhi->Fill(moIter->phi()); - h_matchingObjectZ->Fill(moIter->z()); - - // looking for the best matching gsf electron - bool okGsfFound = false; - double gsfOkRatio = 999999.; - - // find matching electron - reco::GsfElectron bestGsfElectron; - for (reco::GsfElectronCollection::const_iterator gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); - gsfIter++) { - // matching with a cone in eta phi - if (matchingCondition_ == "Cone") { - double dphi = gsfIter->phi() - moIter->phi(); - if (std::abs(dphi) > CLHEP::pi) - dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi; - double deltaR = sqrt(std::pow((moIter->eta() - gsfIter->eta()), 2) + std::pow(dphi, 2)); - if (deltaR < deltaR_) { - //if ( (genPc->pdg_id() == 11) && (gsfIter->charge() < 0.) || (genPc->pdg_id() == -11) && - //(gsfIter->charge() > 0.) ){ - double tmpGsfRatio = gsfIter->p() / moIter->energy(); - if (std::abs(tmpGsfRatio - 1) < std::abs(gsfOkRatio - 1)) { - gsfOkRatio = tmpGsfRatio; - bestGsfElectron = *gsfIter; - okGsfFound = true; - } - //} - } - } - } // loop over rec ele to look for the best one - - // analysis when the matching object is matched by a rec electron - if (okGsfFound) { - // generated distributions for matched electrons - h_ele_matchingObjectPt_matched->Fill(moIter->energy() / cosh(moIter->eta())); - h_ele_matchingObjectPhi_matched->Fill(moIter->phi()); - h_ele_matchingObjectAbsEta_matched->Fill(std::abs(moIter->eta())); - h_ele_matchingObjectEta_matched->Fill(moIter->eta()); - h_ele_matchingObjectZ_matched->Fill(moIter->z()); - - // comparison electron vs matching object - h_ele_EtaMnEtamatchingObject_matched->Fill(bestGsfElectron.eta() - moIter->eta()); - h_ele_EtaMnEtamatchingObjectVsEta_matched->Fill(bestGsfElectron.eta(), bestGsfElectron.eta() - moIter->eta()); - h_ele_EtaMnEtamatchingObjectVsPhi_matched->Fill(bestGsfElectron.phi(), bestGsfElectron.eta() - moIter->eta()); - h_ele_EtaMnEtamatchingObjectVsPt_matched->Fill(bestGsfElectron.pt(), bestGsfElectron.eta() - moIter->eta()); - h_ele_PhiMnPhimatchingObject_matched->Fill(bestGsfElectron.phi() - moIter->phi()); - h_ele_PhiMnPhimatchingObject2_matched->Fill(bestGsfElectron.phi() - moIter->phi()); - h_ele_PhiMnPhimatchingObjectVsEta_matched->Fill(bestGsfElectron.eta(), bestGsfElectron.phi() - moIter->phi()); - h_ele_PhiMnPhimatchingObjectVsPhi_matched->Fill(bestGsfElectron.phi(), bestGsfElectron.phi() - moIter->phi()); - h_ele_PhiMnPhimatchingObjectVsPt_matched->Fill(bestGsfElectron.pt(), bestGsfElectron.phi() - moIter->phi()); - h_ele_PoPmatchingObject_matched->Fill(bestGsfElectron.p() / moIter->energy()); - h_ele_PtoPtmatchingObject_matched->Fill(bestGsfElectron.pt() / moIter->energy() / cosh(moIter->eta())); - h_ele_PoPmatchingObjectVsEta_matched->Fill(bestGsfElectron.eta(), bestGsfElectron.p() / moIter->energy()); - h_ele_PoPmatchingObjectVsPhi_matched->Fill(bestGsfElectron.phi(), bestGsfElectron.p() / moIter->energy()); - h_ele_PoPmatchingObjectVsPt_matched->Fill(bestGsfElectron.py(), bestGsfElectron.p() / moIter->energy()); - if (bestGsfElectron.isEB()) - h_ele_PoPmatchingObject_barrel_matched->Fill(bestGsfElectron.p() / moIter->energy()); - if (bestGsfElectron.isEE()) - h_ele_PoPmatchingObject_endcaps_matched->Fill(bestGsfElectron.p() / moIter->energy()); - if (bestGsfElectron.isEB()) - h_ele_PtoPtmatchingObject_barrel_matched->Fill(bestGsfElectron.pt() / moIter->energy() / cosh(moIter->eta())); - if (bestGsfElectron.isEE()) - h_ele_PtoPtmatchingObject_endcaps_matched->Fill(bestGsfElectron.pt() / moIter->energy() / cosh(moIter->eta())); - - reco::SuperClusterRef sclRef = bestGsfElectron.superCluster(); - if (bestGsfElectron.isEB()) - histSclEoEmatchingObject_barrel_matched->Fill(sclRef->energy() / moIter->energy()); - if (bestGsfElectron.isEE()) - histSclEoEmatchingObject_endcaps_matched->Fill(sclRef->energy() / moIter->energy()); - if (bestGsfElectron.isEB()) - histSclEoEmatchingObject_barrel_new_matched->Fill(sclRef->energy() / moIter->energy()); - if (bestGsfElectron.isEE()) - histSclEoEmatchingObject_endcaps_new_matched->Fill(sclRef->energy() / moIter->energy()); - - // add here distributions for matched electrons as for all electrons - //.. - - } // gsf electron found - - } // loop overmatching object - - h_matchingObjectNum->Fill(matchingObjectNum); -} - -bool GsfElectronDataAnalyzer::trigger(const edm::Event &e) { - // retreive TriggerResults from the event - edm::Handle triggerResults; - e.getByLabel(triggerResults_, triggerResults); - - bool accept = false; - - if (triggerResults.isValid()) { - //std::cout << "TriggerResults found, number of HLT paths: " << triggerResults->size() << std::endl; - - // get trigger names - const edm::TriggerNames &triggerNames = e.triggerNames(*triggerResults); - if (nEvents_ == 1) { - for (unsigned int i = 0; i < triggerNames.size(); i++) { - std::cout << "trigger path= " << triggerNames.triggerName(i) << std::endl; - } - } - - unsigned int n = HLTPathsByName_.size(); - for (unsigned int i = 0; i != n; i++) { - HLTPathsByIndex_[i] = triggerNames.triggerIndex(HLTPathsByName_[i]); - } - - // empty input vectors (n==0) means any trigger paths - if (n == 0) { - n = triggerResults->size(); - HLTPathsByName_.resize(n); - HLTPathsByIndex_.resize(n); - for (unsigned int i = 0; i != n; i++) { - HLTPathsByName_[i] = triggerNames.triggerName(i); - HLTPathsByIndex_[i] = i; - } - } - - if (nEvents_ == 1) { - if (n > 0) { - std::cout << "HLT trigger paths requested: index, name and valididty:" << std::endl; - for (unsigned int i = 0; i != n; i++) { - bool validity = HLTPathsByIndex_[i] < triggerResults->size(); - std::cout << " " << HLTPathsByIndex_[i] << " " << HLTPathsByName_[i] << " " << validity << std::endl; - } - } - } - - // count number of requested HLT paths which have fired - unsigned int fired = 0; - for (unsigned int i = 0; i != n; i++) { - if (HLTPathsByIndex_[i] < triggerResults->size()) { - if (triggerResults->accept(HLTPathsByIndex_[i])) { - fired++; - std::cout << "Fired HLT path= " << HLTPathsByName_[i] << std::endl; - accept = true; - } - } - } - } - - return accept; -} diff --git a/RecoEgamma/Examples/plugins/GsfElectronFakeAnalyzer.cc b/RecoEgamma/Examples/plugins/GsfElectronFakeAnalyzer.cc deleted file mode 100644 index 9f871ba7186f9..0000000000000 --- a/RecoEgamma/Examples/plugins/GsfElectronFakeAnalyzer.cc +++ /dev/null @@ -1,2609 +0,0 @@ -// -*- C++ -*- -// -// Package: RecoEgamma/Examples -// Class: GsfElectronFakeAnalyzer -// -/**\class GsfElectronFakeAnalyzer RecoEgamma/Examples/src/GsfElectronFakeAnalyzer.cc - - Description: GsfElectrons fake electrons analyzer using reco data - - Implementation: - -*/ -// -// Original Author: Ursula Berthon, Claude Charlot -// Created: Mon Mar 27 13:22:06 CEST 2006 -// -// - -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" -#include "DataFormats/EgammaReco/interface/ElectronSeed.h" -#include "DataFormats/EgammaReco/interface/ElectronSeedFwd.h" -#include "DataFormats/EgammaReco/interface/SuperClusterFwd.h" -#include "DataFormats/GsfTrackReco/interface/GsfTrack.h" -#include "DataFormats/JetReco/interface/CaloJet.h" -#include "DataFormats/JetReco/interface/CaloJetCollection.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" - -#include "CLHEP/Units/GlobalPhysicalConstants.h" - -#include "TFile.h" -#include "TH1F.h" -#include "TH1I.h" -#include "TH2F.h" -#include "TProfile.h" -#include "TTree.h" - -#include - -class GsfElectronFakeAnalyzer : public edm::one::EDAnalyzer<> { -public: - explicit GsfElectronFakeAnalyzer(const edm::ParameterSet &conf); - - ~GsfElectronFakeAnalyzer() override; - - void beginJob() override; - void endJob() override; - void analyze(const edm::Event &e, const edm::EventSetup &c) override; - -private: - TrajectoryStateTransform transformer_; - edm::ESHandle pDD; - edm::ESHandle theMagField; - TFile *histfile_; - TTree *tree_; - float mcEnergy[10], mcEta[10], mcPhi[10], mcPt[10], mcQ[10]; - float superclusterEnergy[10], superclusterEta[10], superclusterPhi[10], superclusterEt[10]; - float seedMomentum[10], seedEta[10], seedPhi[10], seedPt[10], seedQ[10]; - - TH1F *h_matchingObjectNum; - - TH1F *h_matchingObjectEta; - TH1F *h_matchingObjectAbsEta; - TH1F *h_matchingObjectP; - TH1F *h_matchingObjectPt; - TH1F *h_matchingObjectPhi; - TH1F *h_matchingObjectZ; - - TH1F *h_ele_matchingObjectEta_matched; - TH1F *h_ele_matchingObjectAbsEta_matched; - TH1F *h_ele_matchingObjectPt_matched; - TH1F *h_ele_matchingObjectPhi_matched; - TH1F *h_ele_matchingObjectZ_matched; - - TH1F *h_ele_EoverP_all; - TH1F *h_ele_EoverP_all_barrel; - TH1F *h_ele_EoverP_all_endcaps; - TH1F *h_ele_EseedOP_all; - TH1F *h_ele_EseedOP_all_barrel; - TH1F *h_ele_EseedOP_all_endcaps; - TH1F *h_ele_EoPout_all; - TH1F *h_ele_EoPout_all_barrel; - TH1F *h_ele_EoPout_all_endcaps; - TH1F *h_ele_EeleOPout_all; - TH1F *h_ele_EeleOPout_all_barrel; - TH1F *h_ele_EeleOPout_all_endcaps; - TH1F *h_ele_dEtaSc_propVtx_all; - TH1F *h_ele_dEtaSc_propVtx_all_barrel; - TH1F *h_ele_dEtaSc_propVtx_all_endcaps; - TH1F *h_ele_dPhiSc_propVtx_all; - TH1F *h_ele_dPhiSc_propVtx_all_barrel; - TH1F *h_ele_dPhiSc_propVtx_all_endcaps; - TH1F *h_ele_dEtaCl_propOut_all; - TH1F *h_ele_dEtaCl_propOut_all_barrel; - TH1F *h_ele_dEtaCl_propOut_all_endcaps; - TH1F *h_ele_dPhiCl_propOut_all; - TH1F *h_ele_dPhiCl_propOut_all_barrel; - TH1F *h_ele_dPhiCl_propOut_all_endcaps; - TH1F *h_ele_TIP_all; - TH1F *h_ele_TIP_all_barrel; - TH1F *h_ele_TIP_all_endcaps; - TH1F *h_ele_HoE_all; - TH1F *h_ele_HoE_all_barrel; - TH1F *h_ele_HoE_all_endcaps; - TH1F *h_ele_vertexEta_all; - TH1F *h_ele_vertexPt_all; - TH1F *h_ele_mee_all; - TH1F *h_ele_mee_os; - - TH2F *h_ele_E2mnE1vsMee_all; - TH2F *h_ele_E2mnE1vsMee_egeg_all; - - TH1F *h_ele_charge; - TH2F *h_ele_chargeVsEta; - TH2F *h_ele_chargeVsPhi; - TH2F *h_ele_chargeVsPt; - TH1F *h_ele_vertexP; - TH1F *h_ele_vertexPt; - TH2F *h_ele_vertexPtVsEta; - TH2F *h_ele_vertexPtVsPhi; - TH1F *h_ele_vertexPt_5100; - TH1F *h_ele_vertexEta; - TH2F *h_ele_vertexEtaVsPhi; - TH1F *h_ele_vertexAbsEta; - TH1F *h_ele_vertexPhi; - TH1F *h_ele_vertexX; - TH1F *h_ele_vertexY; - TH1F *h_ele_vertexZ; - TH1F *h_ele_vertexTIP; - TH2F *h_ele_vertexTIPVsEta; - TH2F *h_ele_vertexTIPVsPhi; - TH2F *h_ele_vertexTIPVsPt; - - TH1F *histNum_; - - TH1F *histSclEn_; - TH1F *histSclEoEmatchingObject_barrel; - TH1F *histSclEoEmatchingObject_endcaps; - TH1F *histSclEt_; - TH2F *histSclEtVsEta_; - TH2F *histSclEtVsPhi_; - TH2F *histSclEtaVsPhi_; - TH1F *histSclEta_; - TH1F *histSclPhi_; - TH1F *histSclSigEtaEta_; - TH1F *histSclSigEtaEta_barrel_; - TH1F *histSclSigEtaEta_endcaps_; - TH1F *histSclSigIEtaIEta_; - TH1F *histSclSigIEtaIEta_barrel_; - TH1F *histSclSigIEtaIEta_endcaps_; - TH1F *histSclE1x5_; - TH1F *histSclE1x5_barrel_; - TH1F *histSclE1x5_endcaps_; - TH1F *histSclE2x5max_; - TH1F *histSclE2x5max_barrel_; - TH1F *histSclE2x5max_endcaps_; - TH1F *histSclE5x5_; - TH1F *histSclE5x5_barrel_; - TH1F *histSclE5x5_endcaps_; - - TH1F *h_ele_ambiguousTracks; - TH2F *h_ele_ambiguousTracksVsEta; - TH2F *h_ele_ambiguousTracksVsPhi; - TH2F *h_ele_ambiguousTracksVsPt; - TH1F *h_ele_foundHits; - TH1F *h_ele_foundHits_barrel; - TH1F *h_ele_foundHits_endcaps; - TH2F *h_ele_foundHitsVsEta; - TH2F *h_ele_foundHitsVsPhi; - TH2F *h_ele_foundHitsVsPt; - TH1F *h_ele_lostHits; - TH1F *h_ele_lostHits_barrel; - TH1F *h_ele_lostHits_endcaps; - TH2F *h_ele_lostHitsVsEta; - TH2F *h_ele_lostHitsVsPhi; - TH2F *h_ele_lostHitsVsPt; - TH1F *h_ele_chi2; - TH1F *h_ele_chi2_barrel; - TH1F *h_ele_chi2_endcaps; - TH2F *h_ele_chi2VsEta; - TH2F *h_ele_chi2VsPhi; - TH2F *h_ele_chi2VsPt; - - TH1F *h_ele_PoPmatchingObject; - TH2F *h_ele_PoPmatchingObjectVsEta; - TH2F *h_ele_PoPmatchingObjectVsPhi; - TH2F *h_ele_PoPmatchingObjectVsPt; - TH1F *h_ele_PoPmatchingObject_barrel; - TH1F *h_ele_PoPmatchingObject_endcaps; - TH1F *h_ele_EtaMnEtamatchingObject; - TH2F *h_ele_EtaMnEtamatchingObjectVsEta; - TH2F *h_ele_EtaMnEtamatchingObjectVsPhi; - TH2F *h_ele_EtaMnEtamatchingObjectVsPt; - TH1F *h_ele_PhiMnPhimatchingObject; - TH1F *h_ele_PhiMnPhimatchingObject2; - TH2F *h_ele_PhiMnPhimatchingObjectVsEta; - TH2F *h_ele_PhiMnPhimatchingObjectVsPhi; - TH2F *h_ele_PhiMnPhimatchingObjectVsPt; - TH1F *h_ele_PinMnPout; - TH1F *h_ele_PinMnPout_mode; - TH2F *h_ele_PinMnPoutVsEta_mode; - TH2F *h_ele_PinMnPoutVsPhi_mode; - TH2F *h_ele_PinMnPoutVsPt_mode; - TH2F *h_ele_PinMnPoutVsE_mode; - TH2F *h_ele_PinMnPoutVsChi2_mode; - - TH1F *h_ele_outerP; - TH1F *h_ele_outerP_mode; - TH2F *h_ele_outerPVsEta_mode; - TH1F *h_ele_outerPt; - TH1F *h_ele_outerPt_mode; - TH2F *h_ele_outerPtVsEta_mode; - TH2F *h_ele_outerPtVsPhi_mode; - TH2F *h_ele_outerPtVsPt_mode; - TH1F *h_ele_EoP; - TH1F *h_ele_EoP_barrel; - TH1F *h_ele_EoP_endcaps; - TH1F *h_ele_EoP_eg; - TH1F *h_ele_EoP_eg_barrel; - TH1F *h_ele_EoP_eg_endcaps; - TH2F *h_ele_EoPVsEta; - TH2F *h_ele_EoPVsPhi; - TH2F *h_ele_EoPVsE; - TH1F *h_ele_EseedOP; - TH1F *h_ele_EseedOP_barrel; - TH1F *h_ele_EseedOP_endcaps; - TH1F *h_ele_EseedOP_eg; - TH1F *h_ele_EseedOP_eg_barrel; - TH1F *h_ele_EseedOP_eg_endcaps; - TH2F *h_ele_EseedOPVsEta; - TH2F *h_ele_EseedOPVsPhi; - TH2F *h_ele_EseedOPVsE; - TH1F *h_ele_EoPout; - TH1F *h_ele_EoPout_barrel; - TH1F *h_ele_EoPout_endcaps; - TH1F *h_ele_EoPout_eg; - TH1F *h_ele_EoPout_eg_barrel; - TH1F *h_ele_EoPout_eg_endcaps; - TH2F *h_ele_EoPoutVsEta; - TH2F *h_ele_EoPoutVsPhi; - TH2F *h_ele_EoPoutVsE; - TH1F *h_ele_EeleOPout; - TH1F *h_ele_EeleOPout_barrel; - TH1F *h_ele_EeleOPout_endcaps; - TH1F *h_ele_EeleOPout_eg; - TH1F *h_ele_EeleOPout_eg_barrel; - TH1F *h_ele_EeleOPout_eg_endcaps; - TH2F *h_ele_EeleOPoutVsEta; - TH2F *h_ele_EeleOPoutVsPhi; - TH2F *h_ele_EeleOPoutVsE; - - TH1F *h_ele_dEtaSc_propVtx; - TH1F *h_ele_dEtaSc_propVtx_barrel; - TH1F *h_ele_dEtaSc_propVtx_endcaps; - TH1F *h_ele_dEtaSc_propVtx_eg; - TH1F *h_ele_dEtaSc_propVtx_eg_barrel; - TH1F *h_ele_dEtaSc_propVtx_eg_endcaps; - TH2F *h_ele_dEtaScVsEta_propVtx; - TH2F *h_ele_dEtaScVsPhi_propVtx; - TH2F *h_ele_dEtaScVsPt_propVtx; - TH1F *h_ele_dPhiSc_propVtx; - TH1F *h_ele_dPhiSc_propVtx_barrel; - TH1F *h_ele_dPhiSc_propVtx_endcaps; - TH1F *h_ele_dPhiSc_propVtx_eg; - TH1F *h_ele_dPhiSc_propVtx_eg_barrel; - TH1F *h_ele_dPhiSc_propVtx_eg_endcaps; - TH2F *h_ele_dPhiScVsEta_propVtx; - TH2F *h_ele_dPhiScVsPhi_propVtx; - TH2F *h_ele_dPhiScVsPt_propVtx; - TH1F *h_ele_dEtaCl_propOut; - TH1F *h_ele_dEtaCl_propOut_barrel; - TH1F *h_ele_dEtaCl_propOut_endcaps; - TH1F *h_ele_dEtaCl_propOut_eg; - TH1F *h_ele_dEtaCl_propOut_eg_barrel; - TH1F *h_ele_dEtaCl_propOut_eg_endcaps; - TH2F *h_ele_dEtaClVsEta_propOut; - TH2F *h_ele_dEtaClVsPhi_propOut; - TH2F *h_ele_dEtaClVsPt_propOut; - TH1F *h_ele_dPhiCl_propOut; - TH1F *h_ele_dPhiCl_propOut_barrel; - TH1F *h_ele_dPhiCl_propOut_endcaps; - TH1F *h_ele_dPhiCl_propOut_eg; - TH1F *h_ele_dPhiCl_propOut_eg_barrel; - TH1F *h_ele_dPhiCl_propOut_eg_endcaps; - TH2F *h_ele_dPhiClVsEta_propOut; - TH2F *h_ele_dPhiClVsPhi_propOut; - TH2F *h_ele_dPhiClVsPt_propOut; - TH1F *h_ele_dEtaEleCl_propOut; - TH1F *h_ele_dEtaEleCl_propOut_barrel; - TH1F *h_ele_dEtaEleCl_propOut_endcaps; - TH1F *h_ele_dEtaEleCl_propOut_eg; - TH1F *h_ele_dEtaEleCl_propOut_eg_barrel; - TH1F *h_ele_dEtaEleCl_propOut_eg_endcaps; - TH2F *h_ele_dEtaEleClVsEta_propOut; - TH2F *h_ele_dEtaEleClVsPhi_propOut; - TH2F *h_ele_dEtaEleClVsPt_propOut; - TH1F *h_ele_dPhiEleCl_propOut; - TH1F *h_ele_dPhiEleCl_propOut_barrel; - TH1F *h_ele_dPhiEleCl_propOut_endcaps; - TH1F *h_ele_dPhiEleCl_propOut_eg; - TH1F *h_ele_dPhiEleCl_propOut_eg_barrel; - TH1F *h_ele_dPhiEleCl_propOut_eg_endcaps; - TH2F *h_ele_dPhiEleClVsEta_propOut; - TH2F *h_ele_dPhiEleClVsPhi_propOut; - TH2F *h_ele_dPhiEleClVsPt_propOut; - - TH1F *h_ele_seed_dphi2_; - TH2F *h_ele_seed_dphi2VsEta_; - TH2F *h_ele_seed_dphi2VsPt_; - TH1F *h_ele_seed_drz2_; - TH2F *h_ele_seed_drz2VsEta_; - TH2F *h_ele_seed_drz2VsPt_; - TH1F *h_ele_seed_subdet2_; - - TH1F *h_ele_classes; - TH1F *h_ele_eta; - TH1F *h_ele_eta_golden; - TH1F *h_ele_eta_bbrem; - TH1F *h_ele_eta_narrow; - TH1F *h_ele_eta_shower; - - TH1F *h_ele_HoE; - TH1F *h_ele_HoE_barrel; - TH1F *h_ele_HoE_endcaps; - TH1F *h_ele_HoE_eg; - TH1F *h_ele_HoE_eg_barrel; - TH1F *h_ele_HoE_eg_endcaps; - TH1F *h_ele_HoE_fiducial; - TH2F *h_ele_HoEVsEta; - TH2F *h_ele_HoEVsPhi; - TH2F *h_ele_HoEVsE; - - TH1F *h_ele_fbrem; - TProfile *h_ele_fbremVsEta_mode; - TProfile *h_ele_fbremVsEta_mean; - - TH2F *h_ele_PinVsPoutGolden_mode; - TH2F *h_ele_PinVsPoutShowering_mode; - TH2F *h_ele_PinVsPoutGolden_mean; - TH2F *h_ele_PinVsPoutShowering_mean; - TH2F *h_ele_PtinVsPtoutGolden_mode; - TH2F *h_ele_PtinVsPtoutShowering_mode; - TH2F *h_ele_PtinVsPtoutGolden_mean; - TH2F *h_ele_PtinVsPtoutShowering_mean; - TH1F *histSclEoEmatchingObjectGolden_barrel; - TH1F *histSclEoEmatchingObjectGolden_endcaps; - TH1F *histSclEoEmatchingObjectShowering_barrel; - TH1F *histSclEoEmatchingObjectShowering_endcaps; - - TH1F *h_ele_mva; - TH1F *h_ele_provenance; - - TH1F *h_ele_tkSumPt_dr03; - TH1F *h_ele_ecalRecHitSumEt_dr03; - TH1F *h_ele_hcalDepth1TowerSumEt_dr03; - TH1F *h_ele_hcalDepth2TowerSumEt_dr03; - TH1F *h_ele_tkSumPt_dr04; - TH1F *h_ele_ecalRecHitSumEt_dr04; - TH1F *h_ele_hcalDepth1TowerSumEt_dr04; - TH1F *h_ele_hcalDepth2TowerSumEt_dr04; - - std::string outputFile_; - edm::InputTag electronCollection_; - edm::InputTag matchingObjectCollection_; - edm::InputTag beamSpot_; - std::string type_; - bool readAOD_; - - double maxPt_; - double maxAbsEta_; - double deltaR_; - - // histos limits and binning - double etamin; - double etamax; - double phimin; - double phimax; - double ptmax; - double pmax; - double eopmax; - double eopmaxsht; - double detamin; - double detamax; - double dphimin; - double dphimax; - double detamatchmin; - double detamatchmax; - double dphimatchmin; - double dphimatchmax; - double fhitsmax; - double lhitsmax; - double meemin; - double meemax; - double hoemin; - double hoemax; - int nbineta; - int nbinp; - int nbinpt; - int nbinpteff; - int nbinphi; - int nbinp2D; - int nbinpt2D; - int nbineta2D; - int nbinphi2D; - int nbineop; - int nbineop2D; - int nbinfhits; - int nbinlhits; - int nbinxyz; - int nbindeta; - int nbindphi; - int nbindetamatch; - int nbindphimatch; - int nbindetamatch2D; - int nbindphimatch2D; - int nbinmee; - int nbinhoe; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(GsfElectronFakeAnalyzer); - -using namespace reco; - -GsfElectronFakeAnalyzer::GsfElectronFakeAnalyzer(const edm::ParameterSet &conf) - : beamSpot_(conf.getParameter("beamSpot")) { - outputFile_ = conf.getParameter("outputFile"); - histfile_ = new TFile(outputFile_.c_str(), "RECREATE"); - electronCollection_ = conf.getParameter("electronCollection"); - matchingObjectCollection_ = conf.getParameter("matchingObjectCollection"); - readAOD_ = conf.getParameter("readAOD"); - maxPt_ = conf.getParameter("MaxPt"); - maxAbsEta_ = conf.getParameter("MaxAbsEta"); - deltaR_ = conf.getParameter("DeltaR"); - - edm::ParameterSet pset = conf.getParameter("HistosConfigurationFake"); - - etamin = pset.getParameter("Etamin"); - etamax = pset.getParameter("Etamax"); - phimin = pset.getParameter("Phimin"); - phimax = pset.getParameter("Phimax"); - ptmax = pset.getParameter("Ptmax"); - pmax = pset.getParameter("Pmax"); - eopmax = pset.getParameter("Eopmax"); - eopmaxsht = pset.getParameter("Eopmaxsht"); - detamin = pset.getParameter("Detamin"); - detamax = pset.getParameter("Detamax"); - dphimin = pset.getParameter("Dphimin"); - dphimax = pset.getParameter("Dphimax"); - detamatchmin = pset.getParameter("Detamatchmin"); - detamatchmax = pset.getParameter("Detamatchmax"); - dphimatchmin = pset.getParameter("Dphimatchmin"); - dphimatchmax = pset.getParameter("Dphimatchmax"); - fhitsmax = pset.getParameter("Fhitsmax"); - lhitsmax = pset.getParameter("Lhitsmax"); - nbineta = pset.getParameter("Nbineta"); - nbineta2D = pset.getParameter("Nbineta2D"); - nbinp = pset.getParameter("Nbinp"); - nbinpt = pset.getParameter("Nbinpt"); - nbinp2D = pset.getParameter("Nbinp2D"); - nbinpt2D = pset.getParameter("Nbinpt2D"); - nbinpteff = pset.getParameter("Nbinpteff"); - nbinphi = pset.getParameter("Nbinphi"); - nbinphi2D = pset.getParameter("Nbinphi2D"); - nbineop = pset.getParameter("Nbineop"); - nbineop2D = pset.getParameter("Nbineop2D"); - nbinfhits = pset.getParameter("Nbinfhits"); - nbinlhits = pset.getParameter("Nbinlhits"); - nbinxyz = pset.getParameter("Nbinxyz"); - nbindeta = pset.getParameter("Nbindeta"); - nbindphi = pset.getParameter("Nbindphi"); - nbindetamatch = pset.getParameter("Nbindetamatch"); - nbindphimatch = pset.getParameter("Nbindphimatch"); - nbindetamatch2D = pset.getParameter("Nbindetamatch2D"); - nbindphimatch2D = pset.getParameter("Nbindphimatch2D"); - nbinmee = pset.getParameter("Nbinmee"); - meemin = pset.getParameter("Meemin"); - meemax = pset.getParameter("Meemax"); - nbinhoe = pset.getParameter("Nbinhoe"); - hoemin = pset.getParameter("Hoemin"); - hoemax = pset.getParameter("Hoemax"); -} - -GsfElectronFakeAnalyzer::~GsfElectronFakeAnalyzer() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) - histfile_->Write(); - histfile_->Close(); -} - -void GsfElectronFakeAnalyzer::beginJob() { - histfile_->cd(); - - // matching object - std::string::size_type locJet = matchingObjectCollection_.label().find("iterativeCone5CaloJets", 0); - std::string type_; - if (locJet != std::string::npos) { - std::cout << "Matching objects are CaloJets " << std::endl; - type_ = "CaloJet"; - } else { - std::cout << "Didn't recognize input matching objects!! " << std::endl; - } - - std::string htitle, hlabel; - hlabel = "h_" + type_ + "Num"; - htitle = "# " + type_ + "s"; - h_matchingObjectNum = new TH1F(hlabel.c_str(), htitle.c_str(), nbinfhits, 0., fhitsmax); - - // rec event - - histNum_ = new TH1F("h_recEleNum", "# rec electrons", 20, 0., 20.); - - // matching object distributions - hlabel = "h_" + type_ + "_eta"; - htitle = type_ + " #eta"; - h_matchingObjectEta = new TH1F(hlabel.c_str(), htitle.c_str(), nbineta, etamin, etamax); - hlabel = "h_" + type_ + "_abseta"; - htitle = type_ + " |#eta|"; - h_matchingObjectAbsEta = new TH1F(hlabel.c_str(), htitle.c_str(), nbineta / 2, 0., etamax); - hlabel = "h_" + type_ + "_P"; - htitle = type_ + " p"; - h_matchingObjectP = new TH1F(hlabel.c_str(), htitle.c_str(), nbinp, 0., pmax); - hlabel = "h_" + type_ + "_Pt"; - htitle = type_ + " pt"; - h_matchingObjectPt = new TH1F(hlabel.c_str(), htitle.c_str(), nbinpteff, 5., ptmax); - hlabel = "h_" + type_ + "_phi"; - htitle = type_ + " phi"; - h_matchingObjectPhi = new TH1F(hlabel.c_str(), htitle.c_str(), nbinphi, phimin, phimax); - hlabel = "h_" + type_ + "_z"; - htitle = type_ + " z"; - h_matchingObjectZ = new TH1F(hlabel.c_str(), htitle.c_str(), nbinxyz, -25, 25); - - // all electrons - h_ele_EoverP_all = new TH1F("h_ele_EoverP_all", "ele E/P_{vertex}, all reco electrons", nbineop, 0., eopmax); - h_ele_EseedOP_all = new TH1F("h_ele_EseedOP_all", "ele E_{seed}/P_{vertex}, all reco electrons", nbineop, 0., eopmax); - h_ele_EoPout_all = new TH1F("h_ele_EoPout_all", "ele E_{seed}/P_{out}, all reco electrons", nbineop, 0., eopmax); - h_ele_EeleOPout_all = new TH1F("h_ele_EeleOPout_all", "ele E_{ele}/P_{out}, all reco electrons", nbineop, 0., eopmax); - h_ele_dEtaSc_propVtx_all = new TH1F("h_ele_dEtaSc_propVtx_all", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dPhiSc_propVtx_all = new TH1F("h_ele_dPhiSc_propVtx_all", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dEtaCl_propOut_all = new TH1F("h_ele_dEtaCl_propOut_all", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dPhiCl_propOut_all = new TH1F("h_ele_dPhiCl_propOut_all", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_HoE_all = - new TH1F("h_ele_HoE_all", "ele hadronic energy / em energy, all reco electrons", nbinhoe, hoemin, hoemax); - h_ele_vertexPt_all = new TH1F("h_ele_vertexPt_all", "ele p_{T}, all reco electrons", nbinpteff, 5., ptmax); - h_ele_vertexPt_all->Sumw2(); - h_ele_vertexEta_all = new TH1F("h_ele_vertexEta_all", "ele eta, all reco electrons", nbineta, etamin, etamax); - h_ele_vertexEta_all->Sumw2(); - h_ele_TIP_all = new TH1F("h_ele_TIP_all", "ele vertex transverse radius, all reco electrons", 100, 0., 0.2); - h_ele_mee_all = new TH1F("h_ele_mee_all", "ele pairs invariant mass, all reco electrons", nbinmee, meemin, meemax); - h_ele_mee_os = new TH1F("h_ele_mee_os", "ele pairs invariant mass, opp. sign", nbinmee, meemin, meemax); - - // duplicates - h_ele_E2mnE1vsMee_all = new TH2F("h_ele_E2mnE1vsMee_all", - "E2 - E1 vs ele pairs invariant mass, all electrons", - nbinmee, - meemin, - meemax, - 100, - -50., - 50.); - h_ele_E2mnE1vsMee_egeg_all = new TH2F("h_ele_E2mnE1vsMee_egeg_all", - "E2 - E1 vs ele pairs invariant mass, ecal driven pairs, all electrons", - nbinmee, - meemin, - meemax, - 100, - -50., - 50.); - - // matched electrons - h_ele_charge = new TH1F("h_ele_charge", "ele charge", 5, -2., 2.); - h_ele_chargeVsEta = new TH2F("h_ele_chargeVsEta", "ele charge vs eta", nbineta2D, etamin, etamax, 5, -2., 2.); - h_ele_chargeVsPhi = new TH2F("h_ele_chargeVsPhi", "ele charge vs phi", nbinphi2D, phimin, phimax, 5, -2., 2.); - h_ele_chargeVsPt = new TH2F("h_ele_chargeVsPt", "ele charge vs pt", nbinpt, 0., 100., 5, -2., 2.); - h_ele_vertexP = new TH1F("h_ele_vertexP", "ele momentum", nbinp, 0., pmax); - h_ele_vertexPt = new TH1F("h_ele_vertexPt", "ele transverse momentum", nbinpt, 0., ptmax); - h_ele_vertexPtVsEta = - new TH2F("h_ele_vertexPtVsEta", "ele transverse momentum vs eta", nbineta2D, etamin, etamax, nbinpt2D, 0., ptmax); - h_ele_vertexPtVsPhi = - new TH2F("h_ele_vertexPtVsPhi", "ele transverse momentum vs phi", nbinphi2D, phimin, phimax, nbinpt2D, 0., ptmax); - h_ele_matchingObjectPt_matched = - new TH1F("h_ele_matchingObjectPt_matched", "Efficiency vs matching jet p_{T}", nbinpteff, 5., ptmax); - h_ele_matchingObjectPt_matched->Sumw2(); - h_ele_vertexEta = new TH1F("h_ele_vertexEta", "ele momentum eta", nbineta, etamin, etamax); - h_ele_vertexEtaVsPhi = - new TH2F("h_ele_vertexEtaVsPhi", "ele momentum eta vs phi", nbineta2D, etamin, etamax, nbinphi2D, phimin, phimax); - h_ele_matchingObjectAbsEta_matched = - new TH1F("h_ele_matchingObjectAbsEta_matched", "Efficiency vs matching jet |#eta|", nbineta / 2, 0., 2.5); - h_ele_matchingObjectAbsEta_matched->Sumw2(); - h_ele_matchingObjectEta_matched = - new TH1F("h_ele_matchingObjectEta_matched", "Efficiency vs matching jet #eta", nbineta, etamin, etamax); - h_ele_matchingObjectEta_matched->Sumw2(); - h_ele_matchingObjectPhi_matched = - new TH1F("h_ele_matchingObjectPhi_matched", "Efficiency vs matching jet phi", nbinphi, phimin, phimax); - h_ele_matchingObjectPhi_matched->Sumw2(); - h_ele_vertexPhi = new TH1F("h_ele_vertexPhi", "ele momentum #phi", nbinphi, phimin, phimax); - h_ele_vertexX = new TH1F("h_ele_vertexX", "ele vertex x", nbinxyz, -0.1, 0.1); - h_ele_vertexY = new TH1F("h_ele_vertexY", "ele vertex y", nbinxyz, -0.1, 0.1); - h_ele_vertexZ = new TH1F("h_ele_vertexZ", "ele vertex z", nbinxyz, -25, 25); - h_ele_matchingObjectZ_matched = - new TH1F("h_ele_matchingObjectZ_matched", "Efficiency vs matching jet z", nbinxyz, -25, 25); - h_ele_matchingObjectZ_matched->Sumw2(); - h_ele_vertexTIP = new TH1F("h_ele_vertexTIP", "ele transverse impact parameter (wrt bs)", 90, 0., 0.15); - h_ele_vertexTIPVsEta = new TH2F("h_ele_vertexTIPVsEta", - "ele transverse impact parameter (wrt bs) vs eta", - nbineta2D, - etamin, - etamax, - 45, - 0., - 0.15); - h_ele_vertexTIPVsPhi = new TH2F("h_ele_vertexTIPVsPhi", - "ele transverse impact parameter (wrt bs) vs phi", - nbinphi2D, - phimin, - phimax, - 45, - 0., - 0.15); - h_ele_vertexTIPVsPt = new TH2F( - "h_ele_vertexTIPVsPt", "ele transverse impact parameter (wrt bs) vs Pt", nbinpt2D, 0., ptmax, 45, 0., 0.15); - h_ele_PoPmatchingObject = new TH1F("h_ele_PoPmatchingObject", "ele momentum / matching jet momentum", 75, 0., 1.5); - h_ele_PoPmatchingObjectVsEta = new TH2F("h_ele_PoPmatchingObjectVsEta", - "ele momentum / matching jet momentum vs eta", - nbineta2D, - etamin, - etamax, - 50, - 0., - 1.5); - h_ele_PoPmatchingObjectVsPhi = new TH2F("h_ele_PoPmatchingObjectVsPhi", - "ele momentum / matching jet momentum vs phi", - nbinphi2D, - phimin, - phimax, - 50, - 0., - 1.5); - h_ele_PoPmatchingObjectVsPt = new TH2F( - "h_ele_PoPmatchingObjectVsPt", "ele momentum / matching jet momentum vs eta", nbinpt2D, 0., ptmax, 50, 0., 1.5); - h_ele_PoPmatchingObject_barrel = - new TH1F("h_ele_PoPmatchingObject_barrel", "ele momentum / matching jet momentum, barrel", 75, 0., 1.5); - h_ele_PoPmatchingObject_endcaps = - new TH1F("h_ele_PoPmatchingObject_endcaps", "ele momentum / matching jet momentum, endcaps", 75, 0., 1.5); - h_ele_EtaMnEtamatchingObject = - new TH1F("h_ele_EtaMnEtamatchingObject", "ele momentum eta - matching jet eta", nbindeta, detamin, detamax); - h_ele_EtaMnEtamatchingObjectVsEta = new TH2F("h_ele_EtaMnEtamatchingObjectVsEta", - "ele momentum eta - matching jet eta vs eta", - nbineta2D, - etamin, - etamax, - nbindeta / 2, - detamin, - detamax); - h_ele_EtaMnEtamatchingObjectVsPhi = new TH2F("h_ele_EtaMnEtamatchingObjectVsPhi", - "ele momentum eta - matching jet eta vs phi", - nbinphi2D, - phimin, - phimax, - nbindeta / 2, - detamin, - detamax); - h_ele_EtaMnEtamatchingObjectVsPt = new TH2F("h_ele_EtaMnEtamatchingObjectVsPt", - "ele momentum eta - matching jet eta vs pt", - nbinpt, - 0., - ptmax, - nbindeta / 2, - detamin, - detamax); - h_ele_PhiMnPhimatchingObject = - new TH1F("h_ele_PhiMnPhimatchingObject", "ele momentum phi - matching jet phi", nbindphi, dphimin, dphimax); - h_ele_PhiMnPhimatchingObject2 = new TH1F("h_ele_PhiMnPhimatchingObject2", - "ele momentum phi - matching jet phi", - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_PhiMnPhimatchingObjectVsEta = new TH2F("h_ele_PhiMnPhimatchingObjectVsEta", - "ele momentum phi - matching SC phi vs eta", - nbineta2D, - etamin, - etamax, - nbindphi / 2, - dphimin, - dphimax); - h_ele_PhiMnPhimatchingObjectVsPhi = new TH2F("h_ele_PhiMnPhimatchingObjectVsPhi", - "ele momentum phi - matching SC phi vs phi", - nbinphi2D, - phimin, - phimax, - nbindphi / 2, - dphimin, - dphimax); - h_ele_PhiMnPhimatchingObjectVsPt = new TH2F("h_ele_PhiMnPhimatchingObjectVsPt", - "ele momentum phi - matching SC phi vs pt", - nbinpt2D, - 0., - ptmax, - nbindphi / 2, - dphimin, - dphimax); - - // matched electron, superclusters - histSclEn_ = new TH1F("h_scl_energy", "ele supercluster energy", nbinp, 0., pmax); - histSclEoEmatchingObject_barrel = - new TH1F("h_scl_EoEmatchingObject_barrel", "ele supercluster energy / matching jet energy, barrel", 50, 0.2, 1.2); - histSclEoEmatchingObject_endcaps = new TH1F( - "h_scl_EoEmatchingObject_endcaps", "ele supercluster energy / matching jet energy, endcaps", 50, 0.2, 1.2); - histSclEt_ = new TH1F("h_scl_et", "ele supercluster transverse energy", nbinpt, 0., ptmax); - histSclEtVsEta_ = new TH2F( - "h_scl_etVsEta", "ele supercluster transverse energy vs eta", nbineta2D, etamin, etamax, nbinpt, 0., ptmax); - histSclEtVsPhi_ = new TH2F( - "h_scl_etVsPhi", "ele supercluster transverse energy vs phi", nbinphi2D, phimin, phimax, nbinpt, 0., ptmax); - histSclEtaVsPhi_ = - new TH2F("h_scl_etaVsPhi", "ele supercluster eta vs phi", nbinphi2D, phimin, phimax, nbineta2D, etamin, etamax); - histSclEta_ = new TH1F("h_scl_eta", "ele supercluster eta", nbineta, etamin, etamax); - histSclPhi_ = new TH1F("h_scl_phi", "ele supercluster phi", nbinphi, phimin, phimax); - - histSclSigIEtaIEta_ = new TH1F("h_scl_sigietaieta", "ele supercluster sigma ieta ieta", 100, 0., 0.05); - histSclSigIEtaIEta_barrel_ = - new TH1F("h_scl_sigietaieta_barrel", "ele supercluster sigma ieta ieta, barrel", 100, 0., 0.05); - histSclSigIEtaIEta_endcaps_ = - new TH1F("h_scl_sigietaieta_endcaps", "ele supercluster sigma ieta ieta, endcaps", 100, 0., 0.05); - histSclE1x5_ = new TH1F("h_scl_E1x5", "ele supercluster energy in 1x5", nbinp, 0., pmax); - histSclE1x5_barrel_ = new TH1F("h_scl_E1x5_barrel", "ele supercluster energy in 1x5 barrel", nbinp, 0., pmax); - histSclE1x5_endcaps_ = new TH1F("h_scl_E1x5_endcaps", "ele supercluster energy in 1x5 endcaps", nbinp, 0., pmax); - histSclE2x5max_ = new TH1F("h_scl_E2x5max", "ele supercluster energy in 2x5 max", nbinp, 0., pmax); - histSclE2x5max_barrel_ = - new TH1F("h_scl_E2x5max_barrel", "ele supercluster energy in 2x5 max barrel", nbinp, 0., pmax); - histSclE2x5max_endcaps_ = - new TH1F("h_scl_E2x5max_endcaps", "ele supercluster energy in 2x5 max endcaps", nbinp, 0., pmax); - histSclE5x5_ = new TH1F("h_scl_E5x5", "ele supercluster energy in 5x5", nbinp, 0., pmax); - histSclE5x5_barrel_ = new TH1F("h_scl_E5x5_barrel", "ele supercluster energy in 5x5 barrel", nbinp, 0., pmax); - histSclE5x5_endcaps_ = new TH1F("h_scl_E5x5_endcaps", "ele supercluster energy in 5x5 endcaps", nbinp, 0., pmax); - - // matched electron, gsf tracks - h_ele_ambiguousTracks = new TH1F("h_ele_ambiguousTracks", "ele # ambiguous tracks", 5, 0., 5.); - h_ele_ambiguousTracksVsEta = - new TH2F("h_ele_ambiguousTracksVsEta", "ele # ambiguous tracks vs eta", nbineta2D, etamin, etamax, 5, 0., 5.); - h_ele_ambiguousTracksVsPhi = - new TH2F("h_ele_ambiguousTracksVsPhi", "ele # ambiguous tracks vs phi", nbinphi2D, phimin, phimax, 5, 0., 5.); - h_ele_ambiguousTracksVsPt = - new TH2F("h_ele_ambiguousTracksVsPt", "ele # ambiguous tracks vs pt", nbinpt2D, 0., ptmax, 5, 0., 5.); - h_ele_foundHits = new TH1F("h_ele_foundHits", "ele track # found hits", nbinfhits, 0., fhitsmax); - h_ele_foundHitsVsEta = new TH2F( - "h_ele_foundHitsVsEta", "ele track # found hits vs eta", nbineta2D, etamin, etamax, nbinfhits, 0., fhitsmax); - h_ele_foundHitsVsPhi = new TH2F( - "h_ele_foundHitsVsPhi", "ele track # found hits vs phi", nbinphi2D, phimin, phimax, nbinfhits, 0., fhitsmax); - h_ele_foundHitsVsPt = - new TH2F("h_ele_foundHitsVsPt", "ele track # found hits vs pt", nbinpt2D, 0., ptmax, nbinfhits, 0., fhitsmax); - h_ele_lostHits = new TH1F("h_ele_lostHits", "ele track # lost hits", 5, 0., 5.); - h_ele_lostHitsVsEta = new TH2F( - "h_ele_lostHitsVsEta", "ele track # lost hits vs eta", nbineta2D, etamin, etamax, nbinlhits, 0., lhitsmax); - h_ele_lostHitsVsPhi = new TH2F( - "h_ele_lostHitsVsPhi", "ele track # lost hits vs eta", nbinphi2D, phimin, phimax, nbinlhits, 0., lhitsmax); - h_ele_lostHitsVsPt = - new TH2F("h_ele_lostHitsVsPt", "ele track # lost hits vs eta", nbinpt2D, 0., ptmax, nbinlhits, 0., lhitsmax); - h_ele_chi2 = new TH1F("h_ele_chi2", "ele track #chi^{2}", 100, 0., 15.); - h_ele_chi2VsEta = new TH2F("h_ele_chi2VsEta", "ele track #chi^{2} vs eta", nbineta2D, etamin, etamax, 50, 0., 15.); - h_ele_chi2VsPhi = new TH2F("h_ele_chi2VsPhi", "ele track #chi^{2} vs phi", nbinphi2D, phimin, phimax, 50, 0., 15.); - h_ele_chi2VsPt = new TH2F("h_ele_chi2VsPt", "ele track #chi^{2} vs pt", nbinpt2D, 0., ptmax, 50, 0., 15.); - h_ele_PinMnPout = new TH1F("h_ele_PinMnPout", "ele track inner p - outer p, mean", nbinp, 0., 200.); - h_ele_PinMnPout_mode = new TH1F("h_ele_PinMnPout_mode", "ele track inner p - outer p, mode", nbinp, 0., 100.); - h_ele_PinMnPoutVsEta_mode = new TH2F("h_ele_PinMnPoutVsEta_mode", - "ele track inner p - outer p vs eta, mode", - nbineta2D, - etamin, - etamax, - nbinp2D, - 0., - 100.); - h_ele_PinMnPoutVsPhi_mode = new TH2F("h_ele_PinMnPoutVsPhi_mode", - "ele track inner p - outer p vs phi, mode", - nbinphi2D, - phimin, - phimax, - nbinp2D, - 0., - 100.); - h_ele_PinMnPoutVsPt_mode = new TH2F( - "h_ele_PinMnPoutVsPt_mode", "ele track inner p - outer p vs pt, mode", nbinpt2D, 0., ptmax, nbinp2D, 0., 100.); - h_ele_PinMnPoutVsE_mode = new TH2F( - "h_ele_PinMnPoutVsE_mode", "ele track inner p - outer p vs E, mode", nbinp2D, 0., 200., nbinp2D, 0., 100.); - h_ele_PinMnPoutVsChi2_mode = new TH2F( - "h_ele_PinMnPoutVsChi2_mode", "ele track inner p - outer p vs track chi2, mode", 50, 0., 20., nbinp2D, 0., 100.); - h_ele_outerP = new TH1F("h_ele_outerP", "ele track outer p, mean", nbinp, 0., pmax); - h_ele_outerP_mode = new TH1F("h_ele_outerP_mode", "ele track outer p, mode", nbinp, 0., pmax); - h_ele_outerPVsEta_mode = - new TH2F("h_ele_outerPVsEta_mode", "ele track outer p vs eta mode", nbineta2D, etamin, etamax, 50, 0., pmax); - h_ele_outerPt = new TH1F("h_ele_outerPt", "ele track outer p_{T}, mean", nbinpt, 0., ptmax); - h_ele_outerPt_mode = new TH1F("h_ele_outerPt_mode", "ele track outer p_{T}, mode", nbinpt, 0., ptmax); - h_ele_outerPtVsEta_mode = new TH2F( - "h_ele_outerPtVsEta_mode", "ele track outer p_{T} vs eta, mode", nbineta2D, etamin, etamax, nbinpt2D, 0., ptmax); - h_ele_outerPtVsPhi_mode = new TH2F( - "h_ele_outerPtVsPhi_mode", "ele track outer p_{T} vs phi, mode", nbinphi2D, phimin, phimax, nbinpt2D, 0., ptmax); - h_ele_outerPtVsPt_mode = - new TH2F("h_ele_outerPtVsPt_mode", "ele track outer p_{T} vs pt, mode", nbinpt2D, 0., 100., nbinpt2D, 0., ptmax); - - // matched electrons,cluster-track matching - h_ele_EoP = new TH1F("h_ele_EoP", "ele E/P_{vertex}", nbineop, 0., eopmax); - h_ele_EoP->Sumw2(); - h_ele_EoP_eg = new TH1F("h_ele_EoP_eg", "ele E/P_{vertex}, ecal driven", nbineop, 0., eopmax); - h_ele_EoP_eg->Sumw2(); - h_ele_EoP_barrel = new TH1F("h_ele_EoP_barrel", "ele E/P_{vertex} barrel", nbineop, 0., eopmax); - h_ele_EoP_barrel->Sumw2(); - h_ele_EoP_eg_barrel = new TH1F("h_ele_EoP_eg_barrel", "ele E/P_{vertex}, ecal driven barrel", nbineop, 0., eopmax); - h_ele_EoP_eg_barrel->Sumw2(); - h_ele_EoP_endcaps = new TH1F("h_ele_EoP_endcaps", "ele E/P_{vertex} endcaps", nbineop, 0., eopmax); - h_ele_EoP_endcaps->Sumw2(); - h_ele_EoP_eg_endcaps = new TH1F("h_ele_EoP_eg_endcaps", "ele E/P_{vertex}, ecal driven endcaps", nbineop, 0., eopmax); - h_ele_EoP_eg_endcaps->Sumw2(); - h_ele_EoPVsEta = - new TH2F("h_ele_EoPVsEta", "ele E/P_{vertex} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EoPVsPhi = - new TH2F("h_ele_EoPVsPhi", "ele E/P_{vertex} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EoPVsE = new TH2F("h_ele_EoPVsE", "ele E/P_{vertex} vs E", 50, 0., pmax, 50, 0., 5.); - h_ele_EseedOP = new TH1F("h_ele_EseedOP", "ele E_{seed}/P_{vertex}", nbineop, 0., eopmax); - h_ele_EseedOP->Sumw2(); - h_ele_EseedOP_eg = new TH1F("h_ele_EseedOP_eg", "ele E_{seed}/P_{vertex}, ecal driven", nbineop, 0., eopmax); - h_ele_EseedOP_eg->Sumw2(); - h_ele_EseedOP_barrel = new TH1F("h_ele_EseedOP_barrel", "ele E_{seed}/P_{vertex} barrel", nbineop, 0., eopmax); - h_ele_EseedOP_barrel->Sumw2(); - h_ele_EseedOP_eg_barrel = - new TH1F("h_ele_EseedOP_eg_barrel", "ele E_{seed}/P_{vertex}, ecal driven barrel", nbineop, 0., eopmax); - h_ele_EseedOP_eg_barrel->Sumw2(); - h_ele_EseedOP_endcaps = new TH1F("h_ele_EseedOP_endcaps", "ele E_{seed}/P_{vertex} endcaps", nbineop, 0., eopmax); - h_ele_EseedOP_endcaps->Sumw2(); - h_ele_EseedOP_eg_endcaps = - new TH1F("h_ele_EseedOP_eg_endcaps", "ele E_{seed}/P_{vertex}, ecal driven, endcaps", nbineop, 0., eopmax); - h_ele_EseedOP_eg_endcaps->Sumw2(); - h_ele_EseedOPVsEta = new TH2F( - "h_ele_EseedOPVsEta", "ele E_{seed}/P_{vertex} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EseedOPVsPhi = new TH2F( - "h_ele_EseedOPVsPhi", "ele E_{seed}/P_{vertex} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EseedOPVsE = new TH2F("h_ele_EseedOPVsE", "ele E_{seed}/P_{vertex} vs E", 50, 0., pmax, 50, 0., 5.); - h_ele_EoPout = new TH1F("h_ele_EoPout", "ele E_{seed}/P_{out}", nbineop, 0., eopmax); - h_ele_EoPout->Sumw2(); - h_ele_EoPout_eg = new TH1F("h_ele_EoPout_eg", "ele E_{seed}/P_{out}, ecal driven", nbineop, 0., eopmax); - h_ele_EoPout_eg->Sumw2(); - h_ele_EoPout_barrel = new TH1F("h_ele_EoPout_barrel", "ele E_{seed}/P_{out} barrel", nbineop, 0., eopmax); - h_ele_EoPout_barrel->Sumw2(); - h_ele_EoPout_eg_barrel = - new TH1F("h_ele_EoPout_eg_barrel", "ele E_{seed}/P_{out}, ecal driven, barrel", nbineop, 0., eopmax); - h_ele_EoPout_eg_barrel->Sumw2(); - h_ele_EoPout_endcaps = new TH1F("h_ele_EoPout_endcaps", "ele E_{seed}/P_{out} endcaps", nbineop, 0., eopmax); - h_ele_EoPout_endcaps->Sumw2(); - h_ele_EoPout_eg_endcaps = - new TH1F("h_ele_EoPout_eg_endcaps", "ele E_{seed}/P_{out}, ecal driven, endcaps", nbineop, 0., eopmax); - h_ele_EoPout_eg_endcaps->Sumw2(); - h_ele_EoPoutVsEta = - new TH2F("h_ele_EoPoutVsEta", "ele E/P_{out} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EoPoutVsPhi = - new TH2F("h_ele_EoPoutVsPhi", "ele E/P_{out} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EoPoutVsE = new TH2F("h_ele_EoPoutVsE", "ele E/P_{out} vs E", nbinp2D, 0., pmax, nbineop2D, 0., eopmaxsht); - h_ele_EeleOPout = new TH1F("h_ele_EeleOPout", "ele E_{ele}/P_{out}", nbineop, 0., eopmax); - h_ele_EeleOPout->Sumw2(); - h_ele_EeleOPout_eg = new TH1F("h_ele_EeleOPout_eg", "ele E_{ele}/P_{out}, ecal driven", nbineop, 0., eopmax); - h_ele_EeleOPout_eg->Sumw2(); - h_ele_EeleOPout_barrel = new TH1F("h_ele_EeleOPout_barrel", "ele E_{ele}/P_{out} barrel", nbineop, 0., eopmax); - h_ele_EeleOPout_barrel->Sumw2(); - h_ele_EeleOPout_eg_barrel = - new TH1F("h_ele_EeleOPout_eg_barrel", "ele E_{ele}/P_{out}, ecal driven, barrel", nbineop, 0., eopmax); - h_ele_EeleOPout_eg_barrel->Sumw2(); - h_ele_EeleOPout_endcaps = new TH1F("h_ele_EeleOPout_endcaps", "ele E_{ele}/P_{out} endcaps", nbineop, 0., eopmax); - h_ele_EeleOPout_endcaps->Sumw2(); - h_ele_EeleOPout_eg_endcaps = - new TH1F("h_ele_EeleOPout_eg_endcaps", "ele E_{ele}/P_{out}, ecal driven, endcaps", nbineop, 0., eopmax); - h_ele_EeleOPout_eg_endcaps->Sumw2(); - h_ele_EeleOPoutVsEta = new TH2F( - "h_ele_EeleOPoutVsEta", "ele E_{ele}/P_{out} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EeleOPoutVsPhi = new TH2F( - "h_ele_EeleOPoutVsPhi", "ele E_{ele}/P_{out} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EeleOPoutVsE = - new TH2F("h_ele_EeleOPoutVsE", "ele E_{ele}/P_{out} vs E", nbinp2D, 0., pmax, nbineop2D, 0., eopmaxsht); - h_ele_dEtaSc_propVtx = new TH1F( - "h_ele_dEtaSc_propVtx", "ele #eta_{sc} - #eta_{tr}, prop from vertex", nbindetamatch, detamatchmin, detamatchmax); - h_ele_dEtaSc_propVtx->Sumw2(); - h_ele_dEtaSc_propVtx_eg = new TH1F("h_ele_dEtaSc_propVtx_eg", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_eg->Sumw2(); - h_ele_dEtaSc_propVtx_barrel = new TH1F("h_ele_dEtaSc_propVtx_barrel", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_barrel->Sumw2(); - h_ele_dEtaSc_propVtx_eg_barrel = new TH1F("h_ele_dEtaSc_propVtx_eg_barrel", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_eg_barrel->Sumw2(); - h_ele_dEtaSc_propVtx_endcaps = new TH1F("h_ele_dEtaSc_propVtx_endcaps", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_endcaps->Sumw2(); - h_ele_dEtaSc_propVtx_eg_endcaps = new TH1F("h_ele_dEtaSc_propVtx_eg_endcaps", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_eg_endcaps->Sumw2(); - h_ele_dEtaScVsEta_propVtx = new TH2F("h_ele_dEtaScVsEta_propVtx", - "ele #eta_{sc} - #eta_{tr} vs eta, prop from vertex", - nbineta2D, - etamin, - etamax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaScVsPhi_propVtx = new TH2F("h_ele_dEtaScVsPhi_propVtx", - "ele #eta_{sc} - #eta_{tr} vs phi, prop from vertex", - nbinphi2D, - phimin, - phimax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaScVsPt_propVtx = new TH2F("h_ele_dEtaScVsPt_propVtx", - "ele #eta_{sc} - #eta_{tr} vs pt, prop from vertex", - nbinpt2D, - 0., - ptmax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dPhiSc_propVtx = new TH1F( - "h_ele_dPhiSc_propVtx", "ele #phi_{sc} - #phi_{tr}, prop from vertex", nbindphimatch, dphimatchmin, dphimatchmax); - h_ele_dPhiSc_propVtx->Sumw2(); - h_ele_dPhiSc_propVtx_eg = new TH1F("h_ele_dPhiSc_propVtx_eg", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_eg->Sumw2(); - h_ele_dPhiSc_propVtx_barrel = new TH1F("h_ele_dPhiSc_propVtx_barrel", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_barrel->Sumw2(); - h_ele_dPhiSc_propVtx_eg_barrel = new TH1F("h_ele_dPhiSc_propVtx_eg_barrel", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_eg_barrel->Sumw2(); - h_ele_dPhiSc_propVtx_endcaps = new TH1F("h_ele_dPhiSc_propVtx_endcaps", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_endcaps->Sumw2(); - h_ele_dPhiSc_propVtx_eg_endcaps = new TH1F("h_ele_dPhiSc_propVtx_eg_endcaps", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_eg_endcaps->Sumw2(); - h_ele_dPhiScVsEta_propVtx = new TH2F("h_ele_dPhiScVsEta_propVtx", - "ele #phi_{sc} - #phi_{tr} vs eta, prop from vertex", - nbineta2D, - etamin, - etamax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiScVsPhi_propVtx = new TH2F("h_ele_dPhiScVsPhi_propVtx", - "ele #phi_{sc} - #phi_{tr} vs phi, prop from vertex", - nbinphi2D, - phimin, - phimax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiScVsPt_propVtx = new TH2F("h_ele_dPhiScVsPt_propVtx", - "ele #phi_{sc} - #phi_{tr} vs pt, prop from vertex", - nbinpt2D, - 0., - ptmax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dEtaCl_propOut = new TH1F("h_ele_dEtaCl_propOut", - "ele #eta_{cl} - #eta_{tr}, prop from outermost", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut->Sumw2(); - h_ele_dEtaCl_propOut_eg = new TH1F("h_ele_dEtaCl_propOut_eg", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_eg->Sumw2(); - h_ele_dEtaCl_propOut_barrel = new TH1F("h_ele_dEtaCl_propOut_barrel", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_barrel->Sumw2(); - h_ele_dEtaCl_propOut_eg_barrel = new TH1F("h_ele_dEtaCl_propOut_eg_barrel", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_eg_barrel->Sumw2(); - h_ele_dEtaCl_propOut_endcaps = new TH1F("h_ele_dEtaCl_propOut_endcaps", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_endcaps->Sumw2(); - h_ele_dEtaCl_propOut_eg_endcaps = new TH1F("h_ele_dEtaCl_propOut_eg_endcaps", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_eg_endcaps->Sumw2(); - h_ele_dEtaClVsEta_propOut = new TH2F("h_ele_dEtaClVsEta_propOut", - "ele #eta_{cl} - #eta_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaClVsPhi_propOut = new TH2F("h_ele_dEtaClVsPhi_propOut", - "ele #eta_{cl} - #eta_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaClVsPt_propOut = new TH2F("h_ele_dEtaScVsPt_propOut", - "ele #eta_{cl} - #eta_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dPhiCl_propOut = new TH1F("h_ele_dPhiCl_propOut", - "ele #phi_{cl} - #phi_{tr}, prop from outermost", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut->Sumw2(); - h_ele_dPhiCl_propOut_eg = new TH1F("h_ele_dPhiCl_propOut_eg", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_eg->Sumw2(); - h_ele_dPhiCl_propOut_barrel = new TH1F("h_ele_dPhiCl_propOut_barrel", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_barrel->Sumw2(); - h_ele_dPhiCl_propOut_eg_barrel = new TH1F("h_ele_dPhiCl_propOut_eg_barrel", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_eg_barrel->Sumw2(); - h_ele_dPhiCl_propOut_endcaps = new TH1F("h_ele_dPhiCl_propOut_endcaps", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_endcaps->Sumw2(); - h_ele_dPhiCl_propOut_eg_endcaps = new TH1F("h_ele_dPhiCl_propOut_eg_endcaps", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_eg_endcaps->Sumw2(); - h_ele_dPhiClVsEta_propOut = new TH2F("h_ele_dPhiClVsEta_propOut", - "ele #phi_{cl} - #phi_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiClVsPhi_propOut = new TH2F("h_ele_dPhiClVsPhi_propOut", - "ele #phi_{cl} - #phi_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiClVsPt_propOut = new TH2F("h_ele_dPhiSClsPt_propOut", - "ele #phi_{cl} - #phi_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dEtaEleCl_propOut = new TH1F("h_ele_dEtaEleCl_propOut", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut->Sumw2(); - h_ele_dEtaEleCl_propOut_eg = new TH1F("h_ele_dEtaEleCl_propOut_eg", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_eg->Sumw2(); - h_ele_dEtaEleCl_propOut_barrel = new TH1F("h_ele_dEtaEleCl_propOut_barrel", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_barrel->Sumw2(); - h_ele_dEtaEleCl_propOut_eg_barrel = new TH1F("h_ele_dEtaEleCl_propOut_eg_barrel", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_eg_barrel->Sumw2(); - h_ele_dEtaEleCl_propOut_endcaps = new TH1F("h_ele_dEtaEleCl_propOut_endcaps", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_endcaps->Sumw2(); - h_ele_dEtaEleCl_propOut_eg_endcaps = - new TH1F("h_ele_dEtaEleCl_propOut_eg_endcaps", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_eg_endcaps->Sumw2(); - h_ele_dEtaEleClVsEta_propOut = new TH2F("h_ele_dEtaEleClVsEta_propOut", - "ele #eta_{EleCl} - #eta_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaEleClVsPhi_propOut = new TH2F("h_ele_dEtaEleClVsPhi_propOut", - "ele #eta_{EleCl} - #eta_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaEleClVsPt_propOut = new TH2F("h_ele_dEtaScVsPt_propOut", - "ele #eta_{EleCl} - #eta_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dPhiEleCl_propOut = new TH1F("h_ele_dPhiEleCl_propOut", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut->Sumw2(); - h_ele_dPhiEleCl_propOut_eg = new TH1F("h_ele_dPhiEleCl_propOut_eg", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_eg->Sumw2(); - h_ele_dPhiEleCl_propOut_barrel = new TH1F("h_ele_dPhiEleCl_propOut_barrel", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_barrel->Sumw2(); - h_ele_dPhiEleCl_propOut_eg_barrel = new TH1F("h_ele_dPhiEleCl_propOut_eg_barrel", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_eg_barrel->Sumw2(); - h_ele_dPhiEleCl_propOut_endcaps = new TH1F("h_ele_dPhiEleCl_propOut_endcaps", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_endcaps->Sumw2(); - h_ele_dPhiEleCl_propOut_eg_endcaps = - new TH1F("h_ele_dPhiEleCl_propOut_eg_endcaps", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_eg_endcaps->Sumw2(); - h_ele_dPhiEleClVsEta_propOut = new TH2F("h_ele_dPhiEleClVsEta_propOut", - "ele #phi_{EleCl} - #phi_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleClVsPhi_propOut = new TH2F("h_ele_dPhiEleClVsPhi_propOut", - "ele #phi_{EleCl} - #phi_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleClVsPt_propOut = new TH2F("h_ele_dPhiSEleClsPt_propOut", - "ele #phi_{EleCl} - #phi_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - - h_ele_HoE = new TH1F("h_ele_HoE", "ele hadronic energy / em energy", nbinhoe, hoemin, hoemax); - h_ele_HoE->Sumw2(); - h_ele_HoE_eg = new TH1F("h_ele_HoE_eg", "ele hadronic energy / em energy, ecal driven", nbinhoe, hoemin, hoemax); - h_ele_HoE_eg->Sumw2(); - h_ele_HoE_barrel = new TH1F("h_ele_HoE_barrel", "ele hadronic energy / em energy, barrel", nbinhoe, hoemin, hoemax); - h_ele_HoE_barrel->Sumw2(); - h_ele_HoE_eg_barrel = - new TH1F("h_ele_HoE_eg_barrel", "ele hadronic energy / em energy, ecal driven, barrel", nbinhoe, hoemin, hoemax); - h_ele_HoE_eg_barrel->Sumw2(); - h_ele_HoE_endcaps = - new TH1F("h_ele_HoE_endcaps", "ele hadronic energy / em energy, endcaps", nbinhoe, hoemin, hoemax); - h_ele_HoE_endcaps->Sumw2(); - h_ele_HoE_eg_endcaps = new TH1F( - "h_ele_HoE_eg_endcaps", "ele hadronic energy / em energy, ecal driven, endcaps", nbinhoe, hoemin, hoemax); - h_ele_HoE_eg_endcaps->Sumw2(); - h_ele_HoE_fiducial = new TH1F("h_ele_HoE_fiducial", "ele hadronic energy / em energy", nbinhoe, hoemin, hoemax); - h_ele_HoEVsEta = new TH2F( - "h_ele_HoEVsEta", "ele hadronic energy / em energy vs eta", nbineta, etamin, etamax, nbinhoe, hoemin, hoemax); - h_ele_HoEVsPhi = new TH2F( - "h_ele_HoEVsPhi", "ele hadronic energy / em energy vs phi", nbinphi2D, phimin, phimax, nbinhoe, hoemin, hoemax); - h_ele_HoEVsE = - new TH2F("h_ele_HoEVsE", "ele hadronic energy / em energy vs E", nbinp, 0., 300., nbinhoe, hoemin, hoemax); - - h_ele_seed_dphi2_ = new TH1F("h_ele_seedDphi2", "ele seed dphi 2nd layer", 50, -0.003, +0.003); - h_ele_seed_dphi2VsEta_ = - new TH2F("h_ele_seedDphi2VsEta", "ele seed dphi 2nd layer vs eta", nbineta2D, etamin, etamax, 50, -0.003, +0.003); - h_ele_seed_dphi2VsPt_ = - new TH2F("h_ele_seedDphi2VsPt", "ele seed dphi 2nd layer vs pt", nbinpt2D, 0., ptmax, 50, -0.003, +0.003); - h_ele_seed_drz2_ = new TH1F("h_ele_seedDrz2", "ele seed dr/dz 2nd layer", 50, -0.03, +0.03); - h_ele_seed_drz2VsEta_ = - new TH2F("h_ele_seedDrz2VsEta", "ele seed dr/dz 2nd layer vs eta", nbineta2D, etamin, etamax, 50, -0.03, +0.03); - h_ele_seed_drz2VsPt_ = - new TH2F("h_ele_seedDrz2VsPt", "ele seed dr/dz 2nd layer vs pt", nbinpt2D, 0., ptmax, 50, -0.03, +0.03); - h_ele_seed_subdet2_ = new TH1F("h_ele_seedSubdet2", "ele seed subdet 2nd layer", 10, 0., 10.); - - // classes - h_ele_classes = new TH1F("h_ele_classes", "electron classes", 20, 0.0, 20.); - h_ele_eta = new TH1F("h_ele_eta", "ele electron eta", nbineta / 2, 0.0, etamax); - h_ele_eta_golden = new TH1F("h_ele_eta_golden", "ele electron eta golden", nbineta / 2, 0.0, etamax); - h_ele_eta_bbrem = new TH1F("h_ele_eta_bbrem", "ele electron eta bbrem", nbineta / 2, 0.0, etamax); - h_ele_eta_narrow = new TH1F("h_ele_eta_narrow", "ele electron eta narrow", nbineta / 2, 0.0, etamax); - h_ele_eta_shower = new TH1F("h_ele_eta_show", "el, electron eta showering", nbineta / 2, 0.0, etamax); - h_ele_PinVsPoutGolden_mode = new TH2F( - "h_ele_PinVsPoutGolden_mode", "ele track inner p vs outer p, golden, mode", nbinp2D, 0., pmax, 50, 0., pmax); - h_ele_PinVsPoutShowering_mode = new TH2F("h_ele_PinVsPoutShowering_mode", - "ele track inner p vs outer p vs eta, showering, mode", - nbinp2D, - 0., - pmax, - 50, - 0., - pmax); - h_ele_PinVsPoutGolden_mean = new TH2F( - "h_ele_PinVsPoutGolden_mean", "ele track inner p vs outer p, golden, mean", nbinp2D, 0., pmax, 50, 0., pmax); - h_ele_PinVsPoutShowering_mean = new TH2F( - "h_ele_PinVsPoutShowering_mean", "ele track inner p vs outer p, showering, mean", nbinp2D, 0., pmax, 50, 0., pmax); - h_ele_PtinVsPtoutGolden_mode = new TH2F("h_ele_PtinVsPtoutGolden_mode", - "ele track inner pt vs outer pt, golden, mode", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - h_ele_PtinVsPtoutShowering_mode = new TH2F("h_ele_PtinVsPtoutShowering_mode", - "ele track inner pt vs outer pt, showering, mode", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - h_ele_PtinVsPtoutGolden_mean = new TH2F("h_ele_PtinVsPtoutGolden_mean", - "ele track inner pt vs outer pt, golden, mean", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - h_ele_PtinVsPtoutShowering_mean = new TH2F("h_ele_PtinVsPtoutShowering_mean", - "ele track inner pt vs outer pt, showering, mean", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - histSclEoEmatchingObjectGolden_barrel = new TH1F( - "h_scl_EoEmatchingObject golden, barrel", "ele SC energy over matching jet energy, golden, barrel", 100, 0.2, 1.2); - histSclEoEmatchingObjectGolden_endcaps = new TH1F("h_scl_EoEmatchingObject golden, endcaps", - "ele SC energy over matching jet energy, golden, endcaps", - 100, - 0.2, - 1.2); - histSclEoEmatchingObjectShowering_barrel = new TH1F("h_scl_EoEmatchingObject showering, barrel", - "ele SC energy over matching jet energy, showering, barrel", - 100, - 0.2, - 1.2); - histSclEoEmatchingObjectShowering_endcaps = new TH1F("h_scl_EoEmatchingObject showering, endcaps", - "ele SC energy over matching jet energy, showering, endcaps", - 100, - 0.2, - 1.2); - - // isolation - h_ele_tkSumPt_dr03 = new TH1F("h_ele_tkSumPt_dr03", "tk isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_ecalRecHitSumEt_dr03 = new TH1F("h_ele_ecalRecHitSumEt_dr03", "ecal isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_hcalDepth1TowerSumEt_dr03 = - new TH1F("h_ele_hcalDepth1TowerSumEt_dr03", "hcal depth1 isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_hcalDepth2TowerSumEt_dr03 = - new TH1F("h_ele_hcalDepth2TowerSumEt_dr03", "hcal depth2 isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_tkSumPt_dr04 = new TH1F("h_ele_tkSumPt_dr04", "hcal isolation sum", 100, 0.0, 20.); - h_ele_ecalRecHitSumEt_dr04 = new TH1F("h_ele_ecalRecHitSumEt_dr04", "ecal isolation sum, dR=0.4", 100, 0.0, 20.); - h_ele_hcalDepth1TowerSumEt_dr04 = - new TH1F("h_ele_hcalDepth1TowerSumEt_dr04", "hcal depth1 isolation sum, dR=0.4", 100, 0.0, 20.); - h_ele_hcalDepth2TowerSumEt_dr04 = - new TH1F("h_ele_hcalDepth2TowerSumEt_dr04", "hcal depth2 isolation sum, dR=0.4", 100, 0.0, 20.); - - // fbrem - h_ele_fbrem = new TH1F("h_ele_fbrem", "ele brem fraction, mode", 100, 0., 1.); - h_ele_fbremVsEta_mode = - new TProfile("h_ele_fbremvsEtamode", "mean ele brem fraction vs eta, mode", nbineta2D, etamin, etamax, 0., 1.); - h_ele_fbremVsEta_mean = - new TProfile("h_ele_fbremvsEtamean", "mean ele brem fraction vs eta, mean", nbineta2D, etamin, etamax, 0., 1.); - - // e/g et pflow electrons - h_ele_mva = new TH1F("h_ele_mva", "ele mva", 100, -1., 1.); - h_ele_provenance = new TH1F("h_ele_provenance", "ele provenance", 5, -2., 3.); - - // histos titles - h_matchingObjectNum->GetXaxis()->SetTitle("N_{SC}"); - h_matchingObjectNum->GetYaxis()->SetTitle("Events"); - h_matchingObjectEta->GetXaxis()->SetTitle("#eta_{SC}"); - h_matchingObjectEta->GetYaxis()->SetTitle("Events"); - h_matchingObjectP->GetXaxis()->SetTitle("E_{SC} (GeV)"); - h_matchingObjectP->GetYaxis()->SetTitle("Events"); - h_ele_foundHits->GetXaxis()->SetTitle("N_{hits}"); - h_ele_foundHits->GetYaxis()->SetTitle("Events"); - h_ele_ambiguousTracks->GetXaxis()->SetTitle("N_{ambiguous tracks}"); - h_ele_ambiguousTracks->GetYaxis()->SetTitle("Events"); - h_ele_lostHits->GetXaxis()->SetTitle("N_{lost hits}"); - h_ele_lostHits->GetYaxis()->SetTitle("Events"); - h_ele_chi2->GetXaxis()->SetTitle("#Chi^{2}"); - h_ele_chi2->GetYaxis()->SetTitle("Events"); - h_ele_charge->GetXaxis()->SetTitle("charge"); - h_ele_charge->GetYaxis()->SetTitle("Events"); - h_ele_vertexP->GetXaxis()->SetTitle("p_{vertex} (GeV/c)"); - h_ele_vertexP->GetYaxis()->SetTitle("Events"); - h_ele_vertexPt->GetXaxis()->SetTitle("p_{T vertex} (GeV/c)"); - h_ele_vertexPt->GetYaxis()->SetTitle("Events"); - h_ele_vertexEta->GetXaxis()->SetTitle("#eta"); - h_ele_vertexEta->GetYaxis()->SetTitle("Events"); - h_ele_vertexPhi->GetXaxis()->SetTitle("#phi (rad)"); - h_ele_vertexPhi->GetYaxis()->SetTitle("Events"); - h_ele_PoPmatchingObject->GetXaxis()->SetTitle("P/P_{jet}"); - h_ele_PoPmatchingObject->GetYaxis()->SetTitle("Events"); - h_ele_PoPmatchingObject_barrel->GetXaxis()->SetTitle("P/P_{jet}"); - h_ele_PoPmatchingObject_barrel->GetYaxis()->SetTitle("Events"); - h_ele_PoPmatchingObject_endcaps->GetXaxis()->SetTitle("P/P_{jet}"); - h_ele_PoPmatchingObject_endcaps->GetYaxis()->SetTitle("Events"); - histSclSigIEtaIEta_->GetXaxis()->SetTitle("#sigma_{#eta #eta}"); - histSclSigIEtaIEta_->GetYaxis()->SetTitle("Events"); - histSclSigIEtaIEta_barrel_->GetXaxis()->SetTitle("#sigma_{i#eta i#eta}"); - histSclSigIEtaIEta_barrel_->GetYaxis()->SetTitle("Events"); - histSclSigIEtaIEta_endcaps_->GetXaxis()->SetTitle("#sigma_{i#eta i#eta}"); - histSclSigIEtaIEta_endcaps_->GetYaxis()->SetTitle("Events"); - histSclE1x5_->GetXaxis()->SetTitle("E1x5 (GeV)"); - histSclE1x5_->GetYaxis()->SetTitle("Events"); - histSclE1x5_barrel_->GetXaxis()->SetTitle("E1x5 (GeV)"); - histSclE1x5_barrel_->GetYaxis()->SetTitle("Events"); - histSclE1x5_endcaps_->GetXaxis()->SetTitle("E1x5 (GeV)"); - histSclE1x5_endcaps_->GetYaxis()->SetTitle("Events"); - histSclE2x5max_->GetXaxis()->SetTitle("E2x5 (GeV)"); - histSclE2x5max_->GetYaxis()->SetTitle("Events"); - histSclE2x5max_barrel_->GetXaxis()->SetTitle("E2x5 (GeV)"); - histSclE2x5max_barrel_->GetYaxis()->SetTitle("Events"); - histSclE2x5max_endcaps_->GetXaxis()->SetTitle("E2x5 (GeV)"); - histSclE2x5max_endcaps_->GetYaxis()->SetTitle("Events"); - histSclE5x5_->GetXaxis()->SetTitle("E5x5 (GeV)"); - histSclE5x5_->GetYaxis()->SetTitle("Events"); - histSclE5x5_barrel_->GetXaxis()->SetTitle("E5x5 (GeV)"); - histSclE5x5_barrel_->GetYaxis()->SetTitle("Events"); - histSclE5x5_endcaps_->GetXaxis()->SetTitle("E5x5 (GeV)"); - histSclE5x5_endcaps_->GetYaxis()->SetTitle("Events"); - h_ele_EtaMnEtamatchingObject->GetXaxis()->SetTitle("#eta_{rec} - #eta_{jet}"); - h_ele_EtaMnEtamatchingObject->GetYaxis()->SetTitle("Events"); - h_ele_PhiMnPhimatchingObject->GetXaxis()->SetTitle("#phi_{rec} - #phi_{jet} (rad)"); - h_ele_PhiMnPhimatchingObject->GetYaxis()->SetTitle("Events"); - h_ele_PinMnPout->GetXaxis()->SetTitle("P_{vertex} - P_{out} (GeV/c)"); - h_ele_PinMnPout->GetYaxis()->SetTitle("Events"); - h_ele_PinMnPout_mode->GetXaxis()->SetTitle("P_{vertex} - P_{out}, mode (GeV/c)"); - h_ele_PinMnPout_mode->GetYaxis()->SetTitle("Events"); - h_ele_outerP->GetXaxis()->SetTitle("P_{out} (GeV/c)"); - h_ele_outerP->GetYaxis()->SetTitle("Events"); - h_ele_outerP_mode->GetXaxis()->SetTitle("P_{out} (GeV/c)"); - h_ele_outerP_mode->GetYaxis()->SetTitle("Events"); - h_ele_outerPt->GetXaxis()->SetTitle("P_{T out} (GeV/c)"); - h_ele_outerPt->GetYaxis()->SetTitle("Events"); - h_ele_outerPt_mode->GetXaxis()->SetTitle("P_{T out} (GeV/c)"); - h_ele_outerPt_mode->GetYaxis()->SetTitle("Events"); - h_ele_EoP->GetXaxis()->SetTitle("E/P_{vertex}"); - h_ele_EoP->GetYaxis()->SetTitle("Events"); - h_ele_EseedOP->GetXaxis()->SetTitle("E_{seed}/P_{vertex}"); - h_ele_EseedOP->GetYaxis()->SetTitle("Events"); - h_ele_EoPout->GetXaxis()->SetTitle("E_{seed}/P_{out}"); - h_ele_EoPout->GetYaxis()->SetTitle("Events"); - h_ele_EeleOPout->GetXaxis()->SetTitle("E_{ele}/P_{out}"); - h_ele_EeleOPout->GetYaxis()->SetTitle("Events"); - h_ele_EoP_barrel->GetXaxis()->SetTitle("E/P_{vertex}"); - h_ele_EoP_barrel->GetYaxis()->SetTitle("Events"); - h_ele_EseedOP_barrel->GetXaxis()->SetTitle("E_{seed}/P_{vertex}"); - h_ele_EseedOP_barrel->GetYaxis()->SetTitle("Events"); - h_ele_EoPout_barrel->GetXaxis()->SetTitle("E_{seed}/P_{out}"); - h_ele_EoPout_barrel->GetYaxis()->SetTitle("Events"); - h_ele_EeleOPout_barrel->GetXaxis()->SetTitle("E_{ele}/P_{out}"); - h_ele_EeleOPout_barrel->GetYaxis()->SetTitle("Events"); - h_ele_EoP_endcaps->GetXaxis()->SetTitle("E/P_{vertex}"); - h_ele_EoP_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_EseedOP_endcaps->GetXaxis()->SetTitle("E_{seed}/P_{vertex}"); - h_ele_EseedOP_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_EoPout_endcaps->GetXaxis()->SetTitle("E_{seed}/P_{out}"); - h_ele_EoPout_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_EeleOPout_endcaps->GetXaxis()->SetTitle("E_{ele}/P_{out}"); - h_ele_EeleOPout_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_vertexX->GetXaxis()->SetTitle("x (cm)"); - h_ele_vertexX->GetYaxis()->SetTitle("Events"); - h_ele_vertexY->GetXaxis()->SetTitle("y (cm)"); - h_ele_vertexY->GetYaxis()->SetTitle("Events"); - h_ele_vertexZ->GetXaxis()->SetTitle("z (cm)"); - h_ele_vertexZ->GetYaxis()->SetTitle("Events"); - h_ele_vertexTIP->GetXaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIP->GetYaxis()->SetTitle("Events"); - h_ele_TIP_all->GetXaxis()->SetTitle("r_{T} (cm)"); - h_ele_TIP_all->GetYaxis()->SetTitle("Events"); - h_ele_vertexTIPVsEta->GetYaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIPVsEta->GetXaxis()->SetTitle("#eta"); - h_ele_vertexTIPVsPhi->GetYaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIPVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - h_ele_vertexTIPVsPt->GetYaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIPVsPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_dEtaSc_propVtx->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx->GetYaxis()->SetTitle("Events"); - h_ele_dEtaCl_propOut->GetXaxis()->SetTitle("#eta_{seedcl} - #eta_{tr}"); - h_ele_dEtaCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dEtaEleCl_propOut->GetXaxis()->SetTitle("#eta_{elecl} - #eta_{tr}"); - h_ele_dEtaEleCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dPhiSc_propVtx->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiSc_propVtx->GetYaxis()->SetTitle("Events"); - h_ele_dPhiCl_propOut->GetXaxis()->SetTitle("#phi_{seedcl} - #phi_{tr} (rad)"); - h_ele_dPhiCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dPhiEleCl_propOut->GetXaxis()->SetTitle("#phi_{elecl} - #phi_{tr} (rad)"); - h_ele_dPhiEleCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dEtaSc_propVtx_barrel->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dEtaCl_propOut_barrel->GetXaxis()->SetTitle("#eta_{seedcl} - #eta_{tr}"); - h_ele_dEtaCl_propOut_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dEtaEleCl_propOut_barrel->GetXaxis()->SetTitle("#eta_{elecl} - #eta_{tr}"); - h_ele_dEtaEleCl_propOut_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dPhiSc_propVtx_barrel->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiSc_propVtx_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dPhiCl_propOut_barrel->GetXaxis()->SetTitle("#phi_{seedcl} - #phi_{tr} (rad)"); - h_ele_dPhiCl_propOut_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dPhiEleCl_propOut_barrel->GetXaxis()->SetTitle("#phi_{elecl} - #phi_{tr} (rad)"); - h_ele_dPhiEleCl_propOut_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dEtaSc_propVtx_endcaps->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dEtaCl_propOut_endcaps->GetXaxis()->SetTitle("#eta_{seedcl} - #eta_{tr}"); - h_ele_dEtaCl_propOut_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dEtaEleCl_propOut_endcaps->GetXaxis()->SetTitle("#eta_{elecl} - #eta_{tr}"); - h_ele_dEtaEleCl_propOut_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dPhiSc_propVtx_endcaps->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiSc_propVtx_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dPhiCl_propOut_endcaps->GetXaxis()->SetTitle("#phi_{seedcl} - #phi_{tr} (rad)"); - h_ele_dPhiCl_propOut_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dPhiEleCl_propOut_endcaps->GetXaxis()->SetTitle("#phi_{elecl} - #phi_{tr} (rad)"); - h_ele_dPhiEleCl_propOut_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_HoE->GetXaxis()->SetTitle("H/E"); - h_ele_HoE->GetYaxis()->SetTitle("Events"); - h_ele_HoE_barrel->GetXaxis()->SetTitle("H/E"); - h_ele_HoE_barrel->GetYaxis()->SetTitle("Events"); - h_ele_HoE_endcaps->GetXaxis()->SetTitle("H/E"); - h_ele_HoE_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_HoE_fiducial->GetXaxis()->SetTitle("H/E"); - h_ele_HoE_fiducial->GetYaxis()->SetTitle("Events"); - h_ele_fbrem->GetXaxis()->SetTitle("P_{in} - P_{out} / P_{in}"); - h_ele_fbrem->GetYaxis()->SetTitle("Events"); - h_ele_seed_dphi2_->GetXaxis()->SetTitle("#phi_{hit}-#phi_{pred} (rad)"); - h_ele_seed_dphi2_->GetYaxis()->SetTitle("Events"); - h_ele_seed_drz2_->GetXaxis()->SetTitle("r(z)_{hit}-r(z)_{pred} (cm)"); - h_ele_seed_drz2_->GetYaxis()->SetTitle("Events"); - h_ele_seed_subdet2_->GetXaxis()->SetTitle("2nd hit subdet Id"); - h_ele_seed_subdet2_->GetYaxis()->SetTitle("Events"); - h_ele_classes->GetXaxis()->SetTitle("class Id"); - h_ele_classes->GetYaxis()->SetTitle("Events"); - h_ele_EoverP_all->GetXaxis()->SetTitle("E/P_{vertex}"); - h_ele_EoverP_all->GetYaxis()->SetTitle("Events"); - h_ele_EseedOP_all->GetXaxis()->SetTitle("E_{seed}/P_{vertex}"); - h_ele_EseedOP_all->GetYaxis()->SetTitle("Events"); - h_ele_EoPout_all->GetXaxis()->SetTitle("E_{seed}/P_{out}"); - h_ele_EoPout_all->GetYaxis()->SetTitle("Events"); - h_ele_EeleOPout_all->GetXaxis()->SetTitle("E_{ele}/P_{out}"); - h_ele_EeleOPout_all->GetYaxis()->SetTitle("Events"); - h_ele_dEtaSc_propVtx_all->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx_all->GetYaxis()->SetTitle("Events"); - h_ele_dPhiSc_propVtx_all->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiSc_propVtx_all->GetYaxis()->SetTitle("Events"); - h_ele_dEtaCl_propOut_all->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaCl_propOut_all->GetYaxis()->SetTitle("Events"); - h_ele_dPhiCl_propOut_all->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiCl_propOut_all->GetYaxis()->SetTitle("Events"); - h_ele_HoE_all->GetXaxis()->SetTitle("H/E"); - h_ele_HoE_all->GetYaxis()->SetTitle("Events"); - h_ele_mee_all->GetXaxis()->SetTitle("m_{ee} (GeV/c^{2})"); - h_ele_mee_all->GetYaxis()->SetTitle("Events"); - h_ele_mee_os->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os->GetYaxis()->SetTitle("Events"); - h_ele_E2mnE1vsMee_all->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_E2mnE1vsMee_all->GetYaxis()->SetTitle("E2 - E1 (GeV)"); - h_ele_E2mnE1vsMee_egeg_all->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_E2mnE1vsMee_egeg_all->GetYaxis()->SetTitle("E2 - E1 (GeV)"); - histNum_->GetXaxis()->SetTitle("N_{ele}"); - histNum_->GetYaxis()->SetTitle("Events"); - h_ele_fbremVsEta_mode->GetXaxis()->SetTitle("#eta"); - h_ele_fbremVsEta_mean->GetXaxis()->SetTitle("#eta"); -} - -void GsfElectronFakeAnalyzer::endJob() { - histfile_->cd(); - std::cout << "efficiency calculation " << std::endl; - // efficiency vs eta - TH1F *h_ele_etaEff = (TH1F *)h_ele_matchingObjectEta_matched->Clone("h_ele_etaEff"); - h_ele_etaEff->Reset(); - h_ele_etaEff->Divide(h_ele_matchingObjectEta_matched, h_matchingObjectEta, 1, 1, "b"); - h_ele_etaEff->Print(); - h_ele_etaEff->GetXaxis()->SetTitle("#eta"); - h_ele_etaEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs z - TH1F *h_ele_zEff = (TH1F *)h_ele_matchingObjectZ_matched->Clone("h_ele_zEff"); - h_ele_zEff->Reset(); - h_ele_zEff->Divide(h_ele_matchingObjectZ_matched, h_matchingObjectZ, 1, 1, "b"); - h_ele_zEff->Print(); - h_ele_zEff->GetXaxis()->SetTitle("z (cm)"); - h_ele_zEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs |eta| - TH1F *h_ele_absetaEff = (TH1F *)h_ele_matchingObjectAbsEta_matched->Clone("h_ele_absetaEff"); - h_ele_absetaEff->Reset(); - h_ele_absetaEff->Divide(h_ele_matchingObjectAbsEta_matched, h_matchingObjectAbsEta, 1, 1, "b"); - h_ele_absetaEff->GetXaxis()->SetTitle("|#eta|"); - h_ele_absetaEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs pt - TH1F *h_ele_ptEff = (TH1F *)h_ele_matchingObjectPt_matched->Clone("h_ele_ptEff"); - h_ele_ptEff->Reset(); - h_ele_ptEff->Divide(h_ele_matchingObjectPt_matched, h_matchingObjectPt, 1, 1, "b"); - h_ele_ptEff->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_ptEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs phi - TH1F *h_ele_phiEff = (TH1F *)h_ele_matchingObjectPhi_matched->Clone("h_ele_phiEff"); - h_ele_phiEff->Reset(); - h_ele_phiEff->Divide(h_ele_matchingObjectPhi_matched, h_matchingObjectPhi, 1, 1, "b"); - h_ele_phiEff->GetXaxis()->SetTitle("#phi (rad)"); - h_ele_phiEff->GetYaxis()->SetTitle("Efficiency"); - - // rec/matching objects all electrons - TH1F *h_ele_etaEff_all = (TH1F *)h_ele_vertexEta_all->Clone("h_ele_etaEff_all"); - h_ele_etaEff_all->Reset(); - h_ele_etaEff_all->Divide(h_ele_vertexEta_all, h_matchingObjectEta, 1, 1, "b"); - h_ele_etaEff_all->Print(); - h_ele_etaEff_all->GetXaxis()->SetTitle("#eta"); - h_ele_etaEff_all->GetYaxis()->SetTitle("N_{rec}/N_{matching jet}"); - TH1F *h_ele_ptEff_all = (TH1F *)h_ele_vertexPt_all->Clone("h_ele_ptEff_all"); - h_ele_ptEff_all->Reset(); - h_ele_ptEff_all->Divide(h_ele_vertexPt_all, h_matchingObjectPt, 1, 1, "b"); - h_ele_ptEff_all->Print(); - h_ele_ptEff_all->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_ptEff_all->GetYaxis()->SetTitle("N_{rec}/N_{matching jet}"); - - // classes - TH1F *h_ele_eta_goldenFrac = (TH1F *)h_ele_eta_golden->Clone("h_ele_eta_goldenFrac"); - h_ele_eta_goldenFrac->Reset(); - h_ele_eta_goldenFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_goldenFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_goldenFrac->Divide(h_ele_eta_golden, h_ele_eta, 1, 1); - h_ele_eta_goldenFrac->SetTitle("fraction of golden electrons vs eta"); - TH1F *h_ele_eta_bbremFrac = (TH1F *)h_ele_eta_bbrem->Clone("h_ele_eta_bbremFrac"); - h_ele_eta_bbremFrac->Reset(); - h_ele_eta_bbremFrac->Divide(h_ele_eta_bbrem, h_ele_eta, 1, 1); - h_ele_eta_bbremFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_bbremFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_bbremFrac->SetTitle("fraction of big brem electrons vs eta"); - TH1F *h_ele_eta_narrowFrac = (TH1F *)h_ele_eta_narrow->Clone("h_ele_eta_narrowFrac"); - h_ele_eta_narrowFrac->Reset(); - h_ele_eta_narrowFrac->Divide(h_ele_eta_narrow, h_ele_eta, 1, 1); - h_ele_eta_narrowFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_narrowFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_narrowFrac->SetTitle("fraction of narrow electrons vs eta"); - TH1F *h_ele_eta_showerFrac = (TH1F *)h_ele_eta_shower->Clone("h_ele_eta_showerFrac"); - h_ele_eta_showerFrac->Reset(); - h_ele_eta_showerFrac->Divide(h_ele_eta_shower, h_ele_eta, 1, 1); - h_ele_eta_showerFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_showerFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_showerFrac->SetTitle("fraction of showering electrons vs eta"); - - // fbrem - TH1F *h_ele_xOverX0VsEta = new TH1F("h_ele_xOverx0VsEta", "mean X/X_0 vs eta", nbineta / 2, 0.0, 2.5); - for (int ibin = 1; ibin < h_ele_fbremVsEta_mean->GetNbinsX() + 1; ibin++) { - double xOverX0 = 0.; - if (h_ele_fbremVsEta_mean->GetBinContent(ibin) > 0.) - xOverX0 = -log(h_ele_fbremVsEta_mean->GetBinContent(ibin)); - h_ele_xOverX0VsEta->SetBinContent(ibin, xOverX0); - } - - //profiles from 2D histos - TProfile *p_ele_PoPmatchingObjectVsEta = h_ele_PoPmatchingObjectVsEta->ProfileX(); - p_ele_PoPmatchingObjectVsEta->SetTitle("mean ele momentum / matching SC energy vs eta"); - p_ele_PoPmatchingObjectVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_PoPmatchingObjectVsEta->GetYaxis()->SetTitle("

"); - p_ele_PoPmatchingObjectVsEta->Write(); - TProfile *p_ele_PoPmatchingObjectVsPhi = h_ele_PoPmatchingObjectVsPhi->ProfileX(); - p_ele_PoPmatchingObjectVsPhi->SetTitle("mean ele momentum / gen momentum vs phi"); - p_ele_PoPmatchingObjectVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_PoPmatchingObjectVsPhi->GetYaxis()->SetTitle("

"); - p_ele_PoPmatchingObjectVsPhi->Write(); - TProfile *p_ele_EtaMnEtamatchingObjectVsEta = h_ele_EtaMnEtamatchingObjectVsEta->ProfileX(); - p_ele_EtaMnEtamatchingObjectVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EtaMnEtamatchingObjectVsEta->GetYaxis()->SetTitle("<#eta_{rec} - #eta_{matching jet}>"); - p_ele_EtaMnEtamatchingObjectVsEta->Write(); - TProfile *p_ele_EtaMnEtamatchingObjectVsPhi = h_ele_EtaMnEtamatchingObjectVsPhi->ProfileX(); - p_ele_EtaMnEtamatchingObjectVsPhi->GetXaxis()->SetTitle("#phi"); - p_ele_EtaMnEtamatchingObjectVsPhi->GetYaxis()->SetTitle("<#eta_{rec} - #eta_{matching jet}>"); - p_ele_EtaMnEtamatchingObjectVsPhi->Write(); - TProfile *p_ele_PhiMnPhimatchingObjectVsEta = h_ele_PhiMnPhimatchingObjectVsEta->ProfileX(); - p_ele_PhiMnPhimatchingObjectVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_PhiMnPhimatchingObjectVsEta->GetYaxis()->SetTitle("<#phi_{rec} - #phi_{matching jet}> (rad)"); - p_ele_PhiMnPhimatchingObjectVsEta->Write(); - TProfile *p_ele_PhiMnPhimatchingObjectVsPhi = h_ele_PhiMnPhimatchingObjectVsPhi->ProfileX(); - p_ele_PhiMnPhimatchingObjectVsPhi->GetXaxis()->SetTitle("#phi"); - p_ele_PhiMnPhimatchingObjectVsPhi->GetYaxis()->SetTitle("<#phi_{rec} - #phi_{matching jet}> (rad)"); - p_ele_PhiMnPhimatchingObjectVsPhi->Write(); - TProfile *p_ele_vertexPtVsEta = h_ele_vertexPtVsEta->ProfileX(); - p_ele_vertexPtVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_vertexPtVsEta->GetYaxis()->SetTitle(" (GeV/c)"); - p_ele_vertexPtVsEta->Write(); - TProfile *p_ele_vertexPtVsPhi = h_ele_vertexPtVsPhi->ProfileX(); - p_ele_vertexPtVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_vertexPtVsPhi->GetYaxis()->SetTitle(" (GeV/c)"); - p_ele_vertexPtVsPhi->Write(); - TProfile *p_ele_EoPVsEta = h_ele_EoPVsEta->ProfileX(); - p_ele_EoPVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EoPVsEta->GetYaxis()->SetTitle(""); - p_ele_EoPVsEta->Write(); - TProfile *p_ele_EoPVsPhi = h_ele_EoPVsPhi->ProfileX(); - p_ele_EoPVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_EoPVsPhi->GetYaxis()->SetTitle(""); - p_ele_EoPVsPhi->Write(); - TProfile *p_ele_EoPoutVsEta = h_ele_EoPoutVsEta->ProfileX(); - p_ele_EoPoutVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EoPoutVsEta->GetYaxis()->SetTitle(""); - p_ele_EoPoutVsEta->Write(); - TProfile *p_ele_EoPoutVsPhi = h_ele_EoPoutVsPhi->ProfileX(); - p_ele_EoPoutVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_EoPoutVsPhi->GetYaxis()->SetTitle(""); - p_ele_EoPoutVsPhi->Write(); - TProfile *p_ele_EeleOPoutVsEta = h_ele_EeleOPoutVsEta->ProfileX(); - p_ele_EeleOPoutVsEta->SetTitle("mean ele Eele/pout vs eta"); - p_ele_EeleOPoutVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EeleOPoutVsEta->GetYaxis()->SetTitle(""); - p_ele_EeleOPoutVsEta->Write(); - TProfile *p_ele_EeleOPoutVsPhi = h_ele_EeleOPoutVsPhi->ProfileX(); - p_ele_EeleOPoutVsPhi->SetTitle("mean ele Eele/pout vs phi"); - p_ele_EeleOPoutVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_EeleOPoutVsPhi->GetYaxis()->SetTitle(""); - p_ele_EeleOPoutVsPhi->Write(); - TProfile *p_ele_HoEVsEta = h_ele_HoEVsEta->ProfileX(); - p_ele_HoEVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_HoEVsEta->GetYaxis()->SetTitle(""); - p_ele_HoEVsEta->Write(); - TProfile *p_ele_HoEVsPhi = h_ele_HoEVsPhi->ProfileX(); - p_ele_HoEVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_HoEVsPhi->GetYaxis()->SetTitle(""); - p_ele_HoEVsPhi->Write(); - TProfile *p_ele_chi2VsEta = h_ele_chi2VsEta->ProfileX(); - p_ele_chi2VsEta->GetXaxis()->SetTitle("#eta"); - p_ele_chi2VsEta->GetYaxis()->SetTitle("<#Chi^{2}>"); - p_ele_chi2VsEta->Write(); - TProfile *p_ele_chi2VsPhi = h_ele_chi2VsPhi->ProfileX(); - p_ele_chi2VsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_chi2VsPhi->GetYaxis()->SetTitle("<#Chi^{2}>"); - p_ele_chi2VsPhi->Write(); - TProfile *p_ele_foundHitsVsEta = h_ele_foundHitsVsEta->ProfileX(); - p_ele_foundHitsVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_foundHitsVsEta->GetYaxis()->SetTitle(""); - p_ele_foundHitsVsEta->Write(); - TProfile *p_ele_foundHitsVsPhi = h_ele_foundHitsVsPhi->ProfileX(); - p_ele_foundHitsVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_foundHitsVsPhi->GetYaxis()->SetTitle(""); - p_ele_foundHitsVsPhi->Write(); - TProfile *p_ele_lostHitsVsEta = h_ele_lostHitsVsEta->ProfileX(); - p_ele_lostHitsVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_lostHitsVsEta->GetYaxis()->SetTitle(""); - p_ele_lostHitsVsEta->Write(); - TProfile *p_ele_lostHitsVsPhi = h_ele_lostHitsVsPhi->ProfileX(); - p_ele_lostHitsVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_lostHitsVsPhi->GetYaxis()->SetTitle(""); - p_ele_lostHitsVsPhi->Write(); - TProfile *p_ele_vertexTIPVsEta = h_ele_vertexTIPVsEta->ProfileX(); - p_ele_vertexTIPVsEta->SetTitle("mean tip (wrt gen vtx) vs eta"); - p_ele_vertexTIPVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_vertexTIPVsEta->GetYaxis()->SetTitle(" (cm)"); - p_ele_vertexTIPVsEta->Write(); - TProfile *p_ele_vertexTIPVsPhi = h_ele_vertexTIPVsPhi->ProfileX(); - p_ele_vertexTIPVsPhi->SetTitle("mean tip (wrt gen vtx) vs phi"); - p_ele_vertexTIPVsPhi->GetXaxis()->SetTitle("#phi"); - p_ele_vertexTIPVsPhi->GetYaxis()->SetTitle(" (cm)"); - p_ele_vertexTIPVsPhi->Write(); - TProfile *p_ele_vertexTIPVsPt = h_ele_vertexTIPVsPt->ProfileX(); - p_ele_vertexTIPVsPt->SetTitle("mean tip (wrt gen vtx) vs phi"); - p_ele_vertexTIPVsPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - p_ele_vertexTIPVsPt->GetYaxis()->SetTitle(" (cm)"); - p_ele_vertexTIPVsPt->Write(); - - // mc truth - - h_matchingObjectNum->Write(); - - // rec event - - histNum_->Write(); - - // mc - h_matchingObjectEta->Write(); - h_matchingObjectAbsEta->Write(); - h_matchingObjectP->Write(); - h_matchingObjectPt->Write(); - h_matchingObjectPhi->Write(); - h_matchingObjectZ->Write(); - - // all electrons - h_ele_EoverP_all->Write(); - h_ele_EseedOP_all->Write(); - h_ele_EoPout_all->Write(); - h_ele_EeleOPout_all->Write(); - h_ele_dEtaSc_propVtx_all->Write(); - h_ele_dPhiSc_propVtx_all->Write(); - h_ele_dEtaCl_propOut_all->Write(); - h_ele_dPhiCl_propOut_all->Write(); - h_ele_HoE_all->Write(); - h_ele_TIP_all->Write(); - h_ele_vertexPt_all->Write(); - h_ele_vertexEta_all->Write(); - h_ele_mee_all->Write(); - h_ele_mee_os->Write(); - h_ele_E2mnE1vsMee_all->Write(); - h_ele_E2mnE1vsMee_egeg_all->Write(); - - // matched electrons - h_ele_charge->Write(); - h_ele_chargeVsEta->Write(); - h_ele_chargeVsPhi->Write(); - h_ele_chargeVsPt->Write(); - h_ele_vertexP->Write(); - h_ele_vertexPt->Write(); - h_ele_vertexPtVsEta->Write(); - h_ele_vertexPtVsPhi->Write(); - h_ele_matchingObjectPt_matched->Write(); - h_ele_vertexEta->Write(); - h_ele_vertexEtaVsPhi->Write(); - h_ele_matchingObjectAbsEta_matched->Write(); - h_ele_matchingObjectEta_matched->Write(); - h_ele_vertexPhi->Write(); - h_ele_matchingObjectPhi_matched->Write(); - h_ele_vertexX->Write(); - h_ele_vertexY->Write(); - h_ele_vertexZ->Write(); - h_ele_vertexTIP->Write(); - h_ele_matchingObjectZ_matched->Write(); - h_ele_vertexTIPVsEta->Write(); - h_ele_vertexTIPVsPhi->Write(); - h_ele_vertexTIPVsPt->Write(); - h_ele_PoPmatchingObject->Write(); - h_ele_PoPmatchingObjectVsEta->Write(); - h_ele_PoPmatchingObjectVsPhi->Write(); - h_ele_PoPmatchingObjectVsPt->Write(); - h_ele_PoPmatchingObject_barrel->Write(); - h_ele_PoPmatchingObject_endcaps->Write(); - h_ele_EtaMnEtamatchingObject->Write(); - h_ele_EtaMnEtamatchingObjectVsEta->Write(); - h_ele_EtaMnEtamatchingObjectVsPhi->Write(); - h_ele_EtaMnEtamatchingObjectVsPt->Write(); - h_ele_PhiMnPhimatchingObject->Write(); - h_ele_PhiMnPhimatchingObject2->Write(); - h_ele_PhiMnPhimatchingObjectVsEta->Write(); - h_ele_PhiMnPhimatchingObjectVsPhi->Write(); - h_ele_PhiMnPhimatchingObjectVsPt->Write(); - - // matched electron, superclusters - histSclEn_->Write(); - histSclEoEmatchingObject_barrel->Write(); - histSclEoEmatchingObject_endcaps->Write(); - histSclEt_->Write(); - histSclEtVsEta_->Write(); - histSclEtVsPhi_->Write(); - histSclEtaVsPhi_->Write(); - histSclEta_->Write(); - histSclPhi_->Write(); - histSclSigIEtaIEta_->Write(); - histSclSigIEtaIEta_barrel_->Write(); - histSclSigIEtaIEta_endcaps_->Write(); - histSclE1x5_->Write(); - histSclE1x5_barrel_->Write(); - histSclE1x5_endcaps_->Write(); - histSclE2x5max_->Write(); - histSclE2x5max_barrel_->Write(); - histSclE2x5max_endcaps_->Write(); - histSclE5x5_->Write(); - histSclE5x5_barrel_->Write(); - histSclE5x5_endcaps_->Write(); - - // matched electron, gsf tracks - h_ele_ambiguousTracks->Write(); - h_ele_ambiguousTracksVsEta->Write(); - h_ele_ambiguousTracksVsPhi->Write(); - h_ele_ambiguousTracksVsPt->Write(); - h_ele_foundHits->Write(); - h_ele_foundHitsVsEta->Write(); - h_ele_foundHitsVsPhi->Write(); - h_ele_foundHitsVsPt->Write(); - h_ele_lostHits->Write(); - h_ele_lostHitsVsEta->Write(); - h_ele_lostHitsVsPhi->Write(); - h_ele_lostHitsVsPt->Write(); - h_ele_chi2->Write(); - h_ele_chi2VsEta->Write(); - h_ele_chi2VsPhi->Write(); - h_ele_chi2VsPt->Write(); - h_ele_PinMnPout->Write(); - h_ele_PinMnPout_mode->Write(); - h_ele_PinMnPoutVsEta_mode->Write(); - h_ele_PinMnPoutVsPhi_mode->Write(); - h_ele_PinMnPoutVsPt_mode->Write(); - h_ele_PinMnPoutVsE_mode->Write(); - h_ele_PinMnPoutVsChi2_mode->Write(); - h_ele_outerP->Write(); - h_ele_outerP_mode->Write(); - h_ele_outerPVsEta_mode->Write(); - h_ele_outerPt->Write(); - h_ele_outerPt_mode->Write(); - h_ele_outerPtVsEta_mode->Write(); - h_ele_outerPtVsPhi_mode->Write(); - h_ele_outerPtVsPt_mode->Write(); - - // matched electrons, matching - h_ele_EoP->Write(); - h_ele_EoP_eg->Write(); - h_ele_EoP_barrel->Write(); - h_ele_EoP_eg_barrel->Write(); - h_ele_EoP_endcaps->Write(); - h_ele_EoP_eg_endcaps->Write(); - h_ele_EoPVsEta->Write(); - h_ele_EoPVsPhi->Write(); - h_ele_EoPVsE->Write(); - h_ele_EseedOP->Write(); - h_ele_EseedOP_eg->Write(); - h_ele_EseedOP_barrel->Write(); - h_ele_EseedOP_eg_barrel->Write(); - h_ele_EseedOP_endcaps->Write(); - h_ele_EseedOP_eg_endcaps->Write(); - h_ele_EseedOPVsEta->Write(); - h_ele_EseedOPVsPhi->Write(); - h_ele_EseedOPVsE->Write(); - h_ele_EoPout->Write(); - h_ele_EoPout_eg->Write(); - h_ele_EoPout_barrel->Write(); - h_ele_EoPout_eg_barrel->Write(); - h_ele_EoPout_endcaps->Write(); - h_ele_EoPout_eg_endcaps->Write(); - h_ele_EoPoutVsEta->Write(); - h_ele_EoPoutVsPhi->Write(); - h_ele_EoPoutVsE->Write(); - h_ele_EeleOPout->Write(); - h_ele_EeleOPout_eg->Write(); - h_ele_EeleOPout_barrel->Write(); - h_ele_EeleOPout_eg_barrel->Write(); - h_ele_EeleOPout_endcaps->Write(); - h_ele_EeleOPout_eg_endcaps->Write(); - h_ele_EeleOPoutVsEta->Write(); - h_ele_EeleOPoutVsPhi->Write(); - h_ele_EeleOPoutVsE->Write(); - h_ele_dEtaSc_propVtx->Write(); - h_ele_dEtaSc_propVtx_eg->Write(); - h_ele_dEtaSc_propVtx_barrel->Write(); - h_ele_dEtaSc_propVtx_eg_barrel->Write(); - h_ele_dEtaSc_propVtx_endcaps->Write(); - h_ele_dEtaSc_propVtx_eg_endcaps->Write(); - h_ele_dEtaScVsEta_propVtx->Write(); - h_ele_dEtaScVsPhi_propVtx->Write(); - h_ele_dEtaScVsPt_propVtx->Write(); - h_ele_dPhiSc_propVtx->Write(); - h_ele_dPhiSc_propVtx_eg->Write(); - h_ele_dPhiSc_propVtx_barrel->Write(); - h_ele_dPhiSc_propVtx_eg_barrel->Write(); - h_ele_dPhiSc_propVtx_endcaps->Write(); - h_ele_dPhiSc_propVtx_eg_endcaps->Write(); - h_ele_dPhiScVsEta_propVtx->Write(); - h_ele_dPhiScVsPhi_propVtx->Write(); - h_ele_dPhiScVsPt_propVtx->Write(); - h_ele_dEtaCl_propOut->Write(); - h_ele_dEtaCl_propOut_eg->Write(); - h_ele_dEtaCl_propOut_barrel->Write(); - h_ele_dEtaCl_propOut_eg_barrel->Write(); - h_ele_dEtaCl_propOut_endcaps->Write(); - h_ele_dEtaCl_propOut_eg_endcaps->Write(); - h_ele_dEtaClVsEta_propOut->Write(); - h_ele_dEtaClVsPhi_propOut->Write(); - h_ele_dEtaClVsPt_propOut->Write(); - h_ele_dPhiCl_propOut->Write(); - h_ele_dPhiCl_propOut_eg->Write(); - h_ele_dPhiCl_propOut_barrel->Write(); - h_ele_dPhiCl_propOut_eg_barrel->Write(); - h_ele_dPhiCl_propOut_endcaps->Write(); - h_ele_dPhiCl_propOut_eg_endcaps->Write(); - h_ele_dPhiClVsEta_propOut->Write(); - h_ele_dPhiClVsPhi_propOut->Write(); - h_ele_dPhiClVsPt_propOut->Write(); - h_ele_dEtaEleCl_propOut->Write(); - h_ele_dEtaEleCl_propOut_eg->Write(); - h_ele_dEtaEleCl_propOut_barrel->Write(); - h_ele_dEtaEleCl_propOut_eg_barrel->Write(); - h_ele_dEtaEleCl_propOut_endcaps->Write(); - h_ele_dEtaEleCl_propOut_eg_endcaps->Write(); - h_ele_dEtaEleClVsEta_propOut->Write(); - h_ele_dEtaEleClVsPhi_propOut->Write(); - h_ele_dEtaEleClVsPt_propOut->Write(); - h_ele_dPhiEleCl_propOut->Write(); - h_ele_dPhiEleCl_propOut_eg->Write(); - h_ele_dPhiEleCl_propOut_barrel->Write(); - h_ele_dPhiEleCl_propOut_eg_barrel->Write(); - h_ele_dPhiEleCl_propOut_endcaps->Write(); - h_ele_dPhiEleCl_propOut_eg_endcaps->Write(); - h_ele_dPhiEleClVsEta_propOut->Write(); - h_ele_dPhiEleClVsPhi_propOut->Write(); - h_ele_dPhiEleClVsPt_propOut->Write(); - h_ele_HoE->Write(); - h_ele_HoE_eg->Write(); - h_ele_HoE_barrel->Write(); - h_ele_HoE_eg_barrel->Write(); - h_ele_HoE_endcaps->Write(); - h_ele_HoE_eg_endcaps->Write(); - h_ele_HoE_fiducial->Write(); - h_ele_HoEVsEta->Write(); - h_ele_HoEVsPhi->Write(); - h_ele_HoEVsE->Write(); - - h_ele_seed_dphi2_->Write(); - h_ele_seed_subdet2_->Write(); - TProfile *p_ele_seed_dphi2VsEta_ = h_ele_seed_dphi2VsEta_->ProfileX(); - p_ele_seed_dphi2VsEta_->SetTitle("mean ele seed dphi 2nd layer vs eta"); - p_ele_seed_dphi2VsEta_->GetXaxis()->SetTitle("#eta"); - p_ele_seed_dphi2VsEta_->GetYaxis()->SetTitle("<#phi_{pred} - #phi_{hit}, 2nd layer> (rad)"); - p_ele_seed_dphi2VsEta_->SetMinimum(-0.004); - p_ele_seed_dphi2VsEta_->SetMaximum(0.004); - p_ele_seed_dphi2VsEta_->Write(); - TProfile *p_ele_seed_dphi2VsPt_ = h_ele_seed_dphi2VsPt_->ProfileX(); - p_ele_seed_dphi2VsPt_->SetTitle("mean ele seed dphi 2nd layer vs pt"); - p_ele_seed_dphi2VsPt_->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - p_ele_seed_dphi2VsPt_->GetYaxis()->SetTitle("<#phi_{pred} - #phi_{hit}, 2nd layer> (rad)"); - p_ele_seed_dphi2VsPt_->SetMinimum(-0.004); - p_ele_seed_dphi2VsPt_->SetMaximum(0.004); - p_ele_seed_dphi2VsPt_->Write(); - h_ele_seed_drz2_->Write(); - TProfile *p_ele_seed_drz2VsEta_ = h_ele_seed_drz2VsEta_->ProfileX(); - p_ele_seed_drz2VsEta_->SetTitle("mean ele seed dr(dz) 2nd layer vs eta"); - p_ele_seed_drz2VsEta_->GetXaxis()->SetTitle("#eta"); - p_ele_seed_drz2VsEta_->GetYaxis()->SetTitle(" (cm)"); - p_ele_seed_drz2VsEta_->SetMinimum(-0.15); - p_ele_seed_drz2VsEta_->SetMaximum(0.15); - p_ele_seed_drz2VsEta_->Write(); - TProfile *p_ele_seed_drz2VsPt_ = h_ele_seed_drz2VsPt_->ProfileX(); - p_ele_seed_drz2VsPt_->SetTitle("mean ele seed dr(dz) 2nd layer vs pt"); - p_ele_seed_drz2VsPt_->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - p_ele_seed_drz2VsPt_->GetYaxis()->SetTitle(" (cm)"); - p_ele_seed_drz2VsPt_->SetMinimum(-0.15); - p_ele_seed_drz2VsPt_->SetMaximum(0.15); - p_ele_seed_drz2VsPt_->Write(); - - // classes - h_ele_classes->Write(); - h_ele_eta->Write(); - h_ele_eta_golden->Write(); - h_ele_eta_bbrem->Write(); - h_ele_eta_narrow->Write(); - h_ele_eta_shower->Write(); - h_ele_PinVsPoutGolden_mode->Write(); - h_ele_PinVsPoutShowering_mode->Write(); - h_ele_PinVsPoutGolden_mean->Write(); - h_ele_PinVsPoutShowering_mean->Write(); - h_ele_PtinVsPtoutGolden_mode->Write(); - h_ele_PtinVsPtoutShowering_mode->Write(); - h_ele_PtinVsPtoutGolden_mean->Write(); - h_ele_PtinVsPtoutShowering_mean->Write(); - histSclEoEmatchingObjectGolden_barrel->Write(); - histSclEoEmatchingObjectGolden_endcaps->Write(); - histSclEoEmatchingObjectShowering_barrel->Write(); - histSclEoEmatchingObjectShowering_endcaps->Write(); - - // fbrem - h_ele_fbrem->Write(); - h_ele_fbremVsEta_mode->Write(); - h_ele_fbremVsEta_mean->Write(); - h_ele_etaEff->Write(); - h_ele_zEff->Write(); - h_ele_phiEff->Write(); - h_ele_absetaEff->Write(); - h_ele_ptEff->Write(); - h_ele_etaEff_all->Write(); - h_ele_ptEff_all->Write(); - h_ele_eta_goldenFrac->Write(); - h_ele_eta_bbremFrac->Write(); - h_ele_eta_narrowFrac->Write(); - h_ele_eta_showerFrac->Write(); - h_ele_xOverX0VsEta->Write(); - - // e/g et pflow electrons - h_ele_mva->Write(); - h_ele_provenance->Write(); - - // isolation - h_ele_tkSumPt_dr03->GetXaxis()->SetTitle("TkIsoSum, cone 0.3 (GeV/c)"); - h_ele_tkSumPt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_tkSumPt_dr03->Write(); - h_ele_ecalRecHitSumEt_dr03->GetXaxis()->SetTitle("EcalIsoSum, cone 0.3 (GeV)"); - h_ele_ecalRecHitSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_ecalRecHitSumEt_dr03->Write(); - h_ele_hcalDepth1TowerSumEt_dr03->GetXaxis()->SetTitle("Hcal1IsoSum, cone 0.3 (GeV)"); - h_ele_hcalDepth1TowerSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth1TowerSumEt_dr03->Write(); - h_ele_hcalDepth2TowerSumEt_dr03->GetXaxis()->SetTitle("Hcal2IsoSum, cone 0.3 (GeV)"); - h_ele_hcalDepth2TowerSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth2TowerSumEt_dr03->Write(); - h_ele_tkSumPt_dr04->GetXaxis()->SetTitle("TkIsoSum, cone 0.4 (GeV/c)"); - h_ele_tkSumPt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_tkSumPt_dr04->Write(); - h_ele_ecalRecHitSumEt_dr04->GetXaxis()->SetTitle("EcalIsoSum, cone 0.4 (GeV)"); - h_ele_ecalRecHitSumEt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_ecalRecHitSumEt_dr04->Write(); - h_ele_hcalDepth1TowerSumEt_dr04->GetXaxis()->SetTitle("Hcal1IsoSum, cone 0.4 (GeV)"); - h_ele_hcalDepth1TowerSumEt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth1TowerSumEt_dr04->Write(); - h_ele_hcalDepth2TowerSumEt_dr04->GetXaxis()->SetTitle("Hcal2IsoSum, cone 0.4 (GeV)"); - h_ele_hcalDepth2TowerSumEt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth2TowerSumEt_dr04->Write(); -} - -void GsfElectronFakeAnalyzer::analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) { - std::cout << "analyzing new event " << std::endl; - - // get reco electrons - edm::Handle gsfElectrons; - iEvent.getByLabel(electronCollection_, gsfElectrons); - edm::LogInfo("") << "\n\n =================> Treating event " << iEvent.id() << " Number of electrons " - << gsfElectrons.product()->size(); - - // get reco calojet collection - edm::Handle recoCaloJets; - iEvent.getByLabel(matchingObjectCollection_, recoCaloJets); - - // get the beamspot from the Event: - edm::Handle recoBeamSpotHandle; - iEvent.getByLabel(beamSpot_, recoBeamSpotHandle); - const BeamSpot bs = *recoBeamSpotHandle; - - histNum_->Fill((*gsfElectrons).size()); - - // all rec electrons - for (reco::GsfElectronCollection::const_iterator gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); - gsfIter++) { - // preselect electrons - if (gsfIter->pt() > maxPt_ || std::abs(gsfIter->eta()) > maxAbsEta_) - continue; - h_ele_EoverP_all->Fill(gsfIter->eSuperClusterOverP()); - h_ele_EseedOP_all->Fill(gsfIter->eSeedClusterOverP()); - h_ele_EoPout_all->Fill(gsfIter->eSeedClusterOverPout()); - h_ele_EeleOPout_all->Fill(gsfIter->eEleClusterOverPout()); - h_ele_dEtaSc_propVtx_all->Fill(gsfIter->deltaEtaSuperClusterTrackAtVtx()); - h_ele_dPhiSc_propVtx_all->Fill(gsfIter->deltaPhiSuperClusterTrackAtVtx()); - h_ele_dEtaCl_propOut_all->Fill(gsfIter->deltaEtaSeedClusterTrackAtCalo()); - h_ele_dPhiCl_propOut_all->Fill(gsfIter->deltaPhiSeedClusterTrackAtCalo()); - h_ele_HoE_all->Fill(gsfIter->hadronicOverEm()); - double d = gsfIter->vertex().x() * gsfIter->vertex().x() + gsfIter->vertex().y() * gsfIter->vertex().y(); - h_ele_TIP_all->Fill(sqrt(d)); - h_ele_vertexEta_all->Fill(gsfIter->eta()); - h_ele_vertexPt_all->Fill(gsfIter->pt()); - float enrj1 = gsfIter->superCluster()->energy(); - // mee - for (reco::GsfElectronCollection::const_iterator gsfIter2 = gsfIter + 1; gsfIter2 != gsfElectrons->end(); - gsfIter2++) { - math::XYZTLorentzVector p12 = (*gsfIter).p4() + (*gsfIter2).p4(); - float mee2 = p12.Dot(p12); - h_ele_mee_all->Fill(sqrt(mee2)); - float enrj2 = gsfIter2->superCluster()->energy(); - h_ele_E2mnE1vsMee_all->Fill(sqrt(mee2), enrj2 - enrj1); - if (gsfIter->ecalDrivenSeed() && gsfIter2->ecalDrivenSeed()) - h_ele_E2mnE1vsMee_egeg_all->Fill(sqrt(mee2), enrj2 - enrj1); - if (gsfIter->charge() * gsfIter2->charge() < 0.) - h_ele_mee_os->Fill(sqrt(mee2)); - } - } - - // association matching object-reco electrons - int matchingObjectNum = 0; - - for (reco::CaloJetCollection::const_iterator moIter = recoCaloJets->begin(); moIter != recoCaloJets->end(); - moIter++) { - // number of matching objects - matchingObjectNum++; - - if (moIter->energy() / cosh(moIter->eta()) > maxPt_ || std::abs(moIter->eta()) > maxAbsEta_) - continue; - - // suppress the endcaps - //if (std::abs(moIter->eta()) > 1.5) continue; - // select central z - //if ( std::abs((*mcIter)->production_vertex()->position().z())>50.) continue; - - h_matchingObjectEta->Fill(moIter->eta()); - h_matchingObjectAbsEta->Fill(std::abs(moIter->eta())); - h_matchingObjectP->Fill(moIter->energy()); - h_matchingObjectPt->Fill(moIter->energy() / cosh(moIter->eta())); - h_matchingObjectPhi->Fill(moIter->phi()); - h_matchingObjectZ->Fill(moIter->vz()); - - // looking for the best matching gsf electron - bool okGsfFound = false; - double gsfOkRatio = 999999.; - - // find best matched electron - reco::GsfElectron bestGsfElectron; - for (reco::GsfElectronCollection::const_iterator gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); - gsfIter++) { - double dphi = gsfIter->phi() - moIter->phi(); - if (std::abs(dphi) > CLHEP::pi) - dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi; - double deltaR = sqrt(std::pow((gsfIter->eta() - moIter->eta()), 2) + std::pow(dphi, 2)); - if (deltaR < deltaR_) { - //if ( (genPc->pdg_id() == 11) && (gsfIter->charge() < 0.) || (genPc->pdg_id() == -11) && - //(gsfIter->charge() > 0.) ){ - double tmpGsfRatio = gsfIter->p() / moIter->energy(); - if (std::abs(tmpGsfRatio - 1) < std::abs(gsfOkRatio - 1)) { - gsfOkRatio = tmpGsfRatio; - bestGsfElectron = *gsfIter; - okGsfFound = true; - } - //} - } - } // loop over rec ele to look for the best one - - // analysis when the matching object is matched by a rec electron - if (okGsfFound) { - // electron related distributions - h_ele_charge->Fill(bestGsfElectron.charge()); - h_ele_chargeVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.charge()); - h_ele_chargeVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.charge()); - h_ele_chargeVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.charge()); - h_ele_vertexP->Fill(bestGsfElectron.p()); - h_ele_vertexPt->Fill(bestGsfElectron.pt()); - h_ele_vertexPtVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.pt()); - h_ele_vertexPtVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.pt()); - h_ele_vertexEta->Fill(bestGsfElectron.eta()); - // generated distributions for matched electrons - h_ele_matchingObjectPt_matched->Fill(moIter->energy() / cosh(moIter->eta())); - h_ele_matchingObjectPhi_matched->Fill(moIter->phi()); - h_ele_matchingObjectAbsEta_matched->Fill(std::abs(moIter->eta())); - h_ele_matchingObjectEta_matched->Fill(moIter->eta()); - h_ele_vertexEtaVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta()); - h_ele_vertexPhi->Fill(bestGsfElectron.phi()); - h_ele_vertexX->Fill(bestGsfElectron.vertex().x()); - h_ele_vertexY->Fill(bestGsfElectron.vertex().y()); - h_ele_vertexZ->Fill(bestGsfElectron.vertex().z()); - h_ele_matchingObjectZ_matched->Fill(moIter->vz()); - double d = - (bestGsfElectron.vertex().x() - bs.position().x()) * (bestGsfElectron.vertex().x() - bs.position().x()) + - (bestGsfElectron.vertex().y() - bs.position().y()) * (bestGsfElectron.vertex().y() - bs.position().y()); - d = sqrt(d); - h_ele_vertexTIP->Fill(d); - h_ele_vertexTIPVsEta->Fill(bestGsfElectron.eta(), d); - h_ele_vertexTIPVsPhi->Fill(bestGsfElectron.phi(), d); - h_ele_vertexTIPVsPt->Fill(bestGsfElectron.pt(), d); - h_ele_EtaMnEtamatchingObject->Fill(bestGsfElectron.eta() - moIter->eta()); - h_ele_EtaMnEtamatchingObjectVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eta() - moIter->eta()); - h_ele_EtaMnEtamatchingObjectVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta() - moIter->eta()); - h_ele_EtaMnEtamatchingObjectVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.eta() - moIter->eta()); - h_ele_PhiMnPhimatchingObject->Fill(bestGsfElectron.phi() - moIter->phi()); - h_ele_PhiMnPhimatchingObject2->Fill(bestGsfElectron.phi() - moIter->phi()); - h_ele_PhiMnPhimatchingObjectVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.phi() - moIter->phi()); - h_ele_PhiMnPhimatchingObjectVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.phi() - moIter->phi()); - h_ele_PhiMnPhimatchingObjectVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.phi() - moIter->phi()); - h_ele_PoPmatchingObject->Fill(bestGsfElectron.p() / moIter->energy()); - h_ele_PoPmatchingObjectVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.p() / moIter->energy()); - h_ele_PoPmatchingObjectVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.p() / moIter->energy()); - h_ele_PoPmatchingObjectVsPt->Fill(bestGsfElectron.py(), bestGsfElectron.p() / moIter->energy()); - if (bestGsfElectron.isEB()) - h_ele_PoPmatchingObject_barrel->Fill(bestGsfElectron.p() / moIter->energy()); - if (bestGsfElectron.isEE()) - h_ele_PoPmatchingObject_endcaps->Fill(bestGsfElectron.p() / moIter->energy()); - - // supercluster related distributions - reco::SuperClusterRef sclRef = bestGsfElectron.superCluster(); - if (!bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.trackerDrivenSeed()) - sclRef = bestGsfElectron.parentSuperCluster(); - histSclEn_->Fill(sclRef->energy()); - double R = std::sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y() + sclRef->z() * sclRef->z()); - double Rt = std::sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y()); - histSclEt_->Fill(sclRef->energy() * (Rt / R)); - histSclEtVsEta_->Fill(sclRef->eta(), sclRef->energy() * (Rt / R)); - histSclEtVsPhi_->Fill(sclRef->phi(), sclRef->energy() * (Rt / R)); - if (bestGsfElectron.isEB()) - histSclEoEmatchingObject_barrel->Fill(sclRef->energy() / moIter->energy()); - if (bestGsfElectron.isEE()) - histSclEoEmatchingObject_endcaps->Fill(sclRef->energy() / moIter->energy()); - histSclEta_->Fill(sclRef->eta()); - histSclEtaVsPhi_->Fill(sclRef->phi(), sclRef->eta()); - histSclPhi_->Fill(sclRef->phi()); - histSclSigIEtaIEta_->Fill(bestGsfElectron.scSigmaIEtaIEta()); - if (bestGsfElectron.isEB()) - histSclSigIEtaIEta_barrel_->Fill(bestGsfElectron.scSigmaIEtaIEta()); - if (bestGsfElectron.isEE()) - histSclSigIEtaIEta_endcaps_->Fill(bestGsfElectron.scSigmaIEtaIEta()); - histSclE1x5_->Fill(bestGsfElectron.scE1x5()); - if (bestGsfElectron.isEB()) - histSclE1x5_barrel_->Fill(bestGsfElectron.scE1x5()); - if (bestGsfElectron.isEE()) - histSclE1x5_endcaps_->Fill(bestGsfElectron.scE1x5()); - histSclE2x5max_->Fill(bestGsfElectron.scE2x5Max()); - if (bestGsfElectron.isEB()) - histSclE2x5max_barrel_->Fill(bestGsfElectron.scE2x5Max()); - if (bestGsfElectron.isEE()) - histSclE2x5max_endcaps_->Fill(bestGsfElectron.scE2x5Max()); - histSclE5x5_->Fill(bestGsfElectron.scE5x5()); - if (bestGsfElectron.isEB()) - histSclE5x5_barrel_->Fill(bestGsfElectron.scE5x5()); - if (bestGsfElectron.isEE()) - histSclE5x5_endcaps_->Fill(bestGsfElectron.scE5x5()); - - // track related distributions - h_ele_ambiguousTracks->Fill(bestGsfElectron.ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.ambiguousGsfTracksSize()); - if (!readAOD_) { // track extra does not exist in AOD - h_ele_foundHits->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfValidHits()); - h_ele_lostHits->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfLostHits()); - h_ele_chi2->Fill(bestGsfElectron.gsfTrack()->normalizedChi2()); - h_ele_chi2VsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->normalizedChi2()); - h_ele_chi2VsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->normalizedChi2()); - h_ele_chi2VsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->normalizedChi2()); - } - // from gsf track interface, hence using mean - if (!readAOD_) { // track extra does not exist in AOD - h_ele_PinMnPout->Fill(bestGsfElectron.gsfTrack()->innerMomentum().R() - - bestGsfElectron.gsfTrack()->outerMomentum().R()); - h_ele_outerP->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R()); - h_ele_outerPt->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho()); - } - // from electron interface, hence using mode - h_ele_PinMnPout_mode->Fill(bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_PinMnPoutVsEta_mode->Fill( - bestGsfElectron.eta(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_PinMnPoutVsPhi_mode->Fill( - bestGsfElectron.phi(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_PinMnPoutVsPt_mode->Fill(bestGsfElectron.pt(), - bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_PinMnPoutVsE_mode->Fill(bestGsfElectron.caloEnergy(), - bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - if (!readAOD_) // track extra does not exist in AOD - h_ele_PinMnPoutVsChi2_mode->Fill( - bestGsfElectron.gsfTrack()->normalizedChi2(), - bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_outerP_mode->Fill(bestGsfElectron.trackMomentumOut().R()); - h_ele_outerPVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().R()); - h_ele_outerPt_mode->Fill(bestGsfElectron.trackMomentumOut().Rho()); - h_ele_outerPtVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().Rho()); - h_ele_outerPtVsPhi_mode->Fill(bestGsfElectron.phi(), bestGsfElectron.trackMomentumOut().Rho()); - h_ele_outerPtVsPt_mode->Fill(bestGsfElectron.pt(), bestGsfElectron.trackMomentumOut().Rho()); - - if (!readAOD_) { // track extra does not exist in AOD - edm::RefToBase seed = bestGsfElectron.gsfTrack()->extra()->seedRef(); - ElectronSeedRef elseed = seed.castTo(); - h_ele_seed_dphi2_->Fill(elseed->dPhiNeg(1)); - h_ele_seed_dphi2VsEta_->Fill(bestGsfElectron.eta(), elseed->dPhiNeg(1)); - h_ele_seed_dphi2VsPt_->Fill(bestGsfElectron.pt(), elseed->dPhiNeg(1)); - h_ele_seed_drz2_->Fill(elseed->dRZNeg(1)); - h_ele_seed_drz2VsEta_->Fill(bestGsfElectron.eta(), elseed->dRZNeg(1)); - h_ele_seed_drz2VsPt_->Fill(bestGsfElectron.pt(), elseed->dRZNeg(1)); - h_ele_seed_subdet2_->Fill(elseed->subDet(1)); - } - // match distributions - h_ele_EoP->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_EoP_eg->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.isEB()) - h_ele_EoP_barrel->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EoP_eg_barrel->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.isEE()) - h_ele_EoP_endcaps->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EoP_eg_endcaps->Fill(bestGsfElectron.eSuperClusterOverP()); - h_ele_EoPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSuperClusterOverP()); - h_ele_EoPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSuperClusterOverP()); - h_ele_EoPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSuperClusterOverP()); - h_ele_EseedOP->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_EseedOP_eg->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.isEB()) - h_ele_EseedOP_barrel->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EseedOP_eg_barrel->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.isEE()) - h_ele_EseedOP_endcaps->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EseedOP_eg_endcaps->Fill(bestGsfElectron.eSeedClusterOverP()); - h_ele_EseedOPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverP()); - h_ele_EseedOPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverP()); - h_ele_EseedOPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverP()); - h_ele_EoPout->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_EoPout_eg->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.isEB()) - h_ele_EoPout_barrel->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EoPout_eg_barrel->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.isEE()) - h_ele_EoPout_endcaps->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EoPout_eg_endcaps->Fill(bestGsfElectron.eSeedClusterOverPout()); - h_ele_EoPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverPout()); - h_ele_EoPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverPout()); - h_ele_EoPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverPout()); - h_ele_EeleOPout->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_EeleOPout_eg->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.isEB()) - h_ele_EeleOPout_barrel->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EeleOPout_eg_barrel->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.isEE()) - h_ele_EeleOPout_endcaps->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EeleOPout_eg_endcaps->Fill(bestGsfElectron.eEleClusterOverPout()); - h_ele_EeleOPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eEleClusterOverPout()); - h_ele_EeleOPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eEleClusterOverPout()); - h_ele_EeleOPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eEleClusterOverPout()); - h_ele_dEtaSc_propVtx->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaSc_propVtx_eg->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEB()) - h_ele_dEtaSc_propVtx_barrel->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaSc_propVtx_eg_barrel->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEE()) - h_ele_dEtaSc_propVtx_endcaps->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaSc_propVtx_eg_endcaps->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - h_ele_dEtaScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - h_ele_dEtaScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - h_ele_dEtaScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - h_ele_dPhiSc_propVtx->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiSc_propVtx_eg->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEB()) - h_ele_dPhiSc_propVtx_barrel->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiSc_propVtx_eg_barrel->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEE()) - h_ele_dPhiSc_propVtx_endcaps->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiSc_propVtx_eg_endcaps->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - h_ele_dPhiScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - h_ele_dPhiScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - h_ele_dPhiScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - h_ele_dEtaCl_propOut->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaCl_propOut_eg->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEB()) - h_ele_dEtaCl_propOut_barrel->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEE()) - h_ele_dEtaCl_propOut_endcaps->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - h_ele_dEtaClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - h_ele_dEtaClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - h_ele_dEtaClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - h_ele_dPhiCl_propOut->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiCl_propOut_eg->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEB()) - h_ele_dPhiCl_propOut_barrel->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEE()) - h_ele_dPhiCl_propOut_endcaps->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - h_ele_dPhiClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - h_ele_dPhiClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - h_ele_dPhiClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - h_ele_dEtaEleCl_propOut->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaEleCl_propOut_eg->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.isEB()) - h_ele_dEtaEleCl_propOut_barrel->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaEleCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.isEE()) - h_ele_dEtaEleCl_propOut_endcaps->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaEleCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - h_ele_dEtaEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - h_ele_dEtaEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - h_ele_dEtaEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - h_ele_dPhiEleCl_propOut->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiEleCl_propOut_eg->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.isEB()) - h_ele_dPhiEleCl_propOut_barrel->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiEleCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.isEE()) - h_ele_dPhiEleCl_propOut_endcaps->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiEleCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - h_ele_dPhiEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - h_ele_dPhiEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - h_ele_dPhiEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - h_ele_HoE->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_HoE_eg->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.isEB()) - h_ele_HoE_barrel->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_HoE_eg_barrel->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.isEE()) - h_ele_HoE_endcaps->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_HoE_eg_endcaps->Fill(bestGsfElectron.hadronicOverEm()); - if (!bestGsfElectron.isEBEtaGap() && !bestGsfElectron.isEBPhiGap() && !bestGsfElectron.isEBEEGap() && - !bestGsfElectron.isEERingGap() && !bestGsfElectron.isEEDeeGap()) - h_ele_HoE_fiducial->Fill(bestGsfElectron.hadronicOverEm()); - h_ele_HoEVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.hadronicOverEm()); - h_ele_HoEVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.hadronicOverEm()); - h_ele_HoEVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.hadronicOverEm()); - - //classes - int eleClass = bestGsfElectron.classification(); - if (bestGsfElectron.isEE()) - eleClass += 10; - h_ele_classes->Fill(eleClass); - - h_ele_eta->Fill(std::abs(bestGsfElectron.eta())); - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_eta_golden->Fill(std::abs(bestGsfElectron.eta())); - if (bestGsfElectron.classification() == GsfElectron::BIGBREM) - h_ele_eta_bbrem->Fill(std::abs(bestGsfElectron.eta())); - //if (bestGsfElectron.classification() == GsfElectron::OLDNARROW) h_ele_eta_narrow ->Fill(std::abs(bestGsfElectron.eta())); - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_eta_shower->Fill(std::abs(bestGsfElectron.eta())); - - //fbrem - double fbrem_mean = 0.; - if (!readAOD_) // track extra does not exist in AOD - fbrem_mean = - 1. - bestGsfElectron.gsfTrack()->outerMomentum().R() / bestGsfElectron.gsfTrack()->innerMomentum().R(); - double fbrem_mode = bestGsfElectron.fbrem(); - h_ele_fbrem->Fill(fbrem_mode); - h_ele_fbremVsEta_mode->Fill(bestGsfElectron.eta(), fbrem_mode); - if (!readAOD_) // track extra does not exist in AOD - h_ele_fbremVsEta_mean->Fill(bestGsfElectron.eta(), fbrem_mean); - - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_PinVsPoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().R(), - bestGsfElectron.trackMomentumAtVtx().R()); - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_PinVsPoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().R(), - bestGsfElectron.trackMomentumAtVtx().R()); - if (!readAOD_) // track extra does not exist in AOD - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_PinVsPoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(), - bestGsfElectron.gsfTrack()->innerMomentum().R()); - if (!readAOD_) // track extra does not exist in AOD - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_PinVsPoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(), - bestGsfElectron.gsfTrack()->innerMomentum().R()); - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_PtinVsPtoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(), - bestGsfElectron.trackMomentumAtVtx().Rho()); - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_PtinVsPtoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(), - bestGsfElectron.trackMomentumAtVtx().Rho()); - if (!readAOD_) // track extra does not exist in AOD - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_PtinVsPtoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(), - bestGsfElectron.gsfTrack()->innerMomentum().Rho()); - if (!readAOD_) // track extra does not exist in AOD - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_PtinVsPtoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(), - bestGsfElectron.gsfTrack()->innerMomentum().Rho()); - - h_ele_mva->Fill(bestGsfElectron.mva_e_pi()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_provenance->Fill(1.); - if (bestGsfElectron.trackerDrivenSeed()) - h_ele_provenance->Fill(-1.); - if (bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) - h_ele_provenance->Fill(0.); - if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed()) - h_ele_provenance->Fill(-2.); - if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed()) - h_ele_provenance->Fill(2.); - - h_ele_tkSumPt_dr03->Fill(bestGsfElectron.dr03TkSumPt()); - h_ele_ecalRecHitSumEt_dr03->Fill(bestGsfElectron.dr03EcalRecHitSumEt()); - h_ele_hcalDepth1TowerSumEt_dr03->Fill(bestGsfElectron.dr03HcalTowerSumEt(1)); - h_ele_hcalDepth2TowerSumEt_dr03->Fill(bestGsfElectron.dr03HcalTowerSumEt(2)); - h_ele_tkSumPt_dr04->Fill(bestGsfElectron.dr04TkSumPt()); - h_ele_ecalRecHitSumEt_dr04->Fill(bestGsfElectron.dr04EcalRecHitSumEt()); - h_ele_hcalDepth1TowerSumEt_dr04->Fill(bestGsfElectron.dr04HcalTowerSumEt(1)); - h_ele_hcalDepth2TowerSumEt_dr04->Fill(bestGsfElectron.dr04HcalTowerSumEt(2)); - - } // gsf electron found - - // } // matching object found - - // } - - } // loop overmatching object - - h_matchingObjectNum->Fill(matchingObjectNum); -} diff --git a/RecoEgamma/Examples/plugins/GsfElectronMCAnalyzer.cc b/RecoEgamma/Examples/plugins/GsfElectronMCAnalyzer.cc deleted file mode 100644 index 8adbb78aa1c4c..0000000000000 --- a/RecoEgamma/Examples/plugins/GsfElectronMCAnalyzer.cc +++ /dev/null @@ -1,3598 +0,0 @@ -// -*- C++ -*- -// -// Package: RecoEgamma/Examples -// Class: GsfElectronMCAnalyzer -// -/**\class GsfElectronMCAnalyzer RecoEgamma/Examples/src/GsfElectronMCAnalyzer.cc - - Description: GsfElectrons analyzer using MC truth - - Implementation: - -*/ -// -// Original Author: Ursula Berthon, Claude Charlot -// Created: Mon Mar 27 13:22:06 CEST 2006 -// -// - -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" -#include "DataFormats/EgammaReco/interface/ElectronSeed.h" -#include "DataFormats/EgammaReco/interface/ElectronSeedFwd.h" -#include "DataFormats/EgammaReco/interface/SuperClusterFwd.h" -#include "DataFormats/GsfTrackReco/interface/GsfTrack.h" -#include "DataFormats/HepMCCandidate/interface/GenParticle.h" -#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" - -#include "CLHEP/Units/GlobalPhysicalConstants.h" - -#include "TFile.h" -#include "TH1F.h" -#include "TH1I.h" -#include "TH2F.h" -#include "TProfile.h" -#include "TTree.h" - -#include -#include - -class GsfElectronMCAnalyzer : public edm::one::EDAnalyzer<> { -public: - explicit GsfElectronMCAnalyzer(const edm::ParameterSet &conf); - - ~GsfElectronMCAnalyzer() override; - - void beginJob() override; - void endJob() override; - void analyze(const edm::Event &e, const edm::EventSetup &c) override; - -private: - TrajectoryStateTransform transformer_; - edm::ESHandle pDD; - edm::ESHandle theMagField; - TFile *histfile_; - TTree *tree_; - float mcEnergy[10], mcEta[10], mcPhi[10], mcPt[10], mcQ[10]; - float superclusterEnergy[10], superclusterEta[10], superclusterPhi[10], superclusterEt[10]; - float seedMomentum[10], seedEta[10], seedPhi[10], seedPt[10], seedQ[10]; - - TH1F *h_mcNum; - TH1F *h_eleNum; - TH1F *h_gamNum; - - TH1F *h_simEta; - TH1F *h_simAbsEta; - TH1F *h_simP; - TH1F *h_simPt; - TH1F *h_simPhi; - TH1F *h_simZ; - TH2F *h_simPtEta; - - TH1F *h_ele_simEta_matched; - TH1F *h_ele_simAbsEta_matched; - TH1F *h_ele_simPt_matched; - TH1F *h_ele_simPhi_matched; - TH1F *h_ele_simZ_matched; - TH2F *h_ele_simPtEta_matched; - - TH1F *h_ele_simEta_matched_qmisid; - TH1F *h_ele_simAbsEta_matched_qmisid; - TH1F *h_ele_simPt_matched_qmisid; - TH1F *h_ele_simPhi_matched_qmisid; - TH1F *h_ele_simZ_matched_qmisid; - - TH1F *h_ele_EoverP_all; - TH1F *h_ele_EoverP_all_barrel; - TH1F *h_ele_EoverP_all_endcaps; - TH1F *h_ele_EseedOP_all; - TH1F *h_ele_EseedOP_all_barrel; - TH1F *h_ele_EseedOP_all_endcaps; - TH1F *h_ele_EoPout_all; - TH1F *h_ele_EoPout_all_barrel; - TH1F *h_ele_EoPout_all_endcaps; - TH1F *h_ele_EeleOPout_all; - TH1F *h_ele_EeleOPout_all_barrel; - TH1F *h_ele_EeleOPout_all_endcaps; - TH1F *h_ele_dEtaSc_propVtx_all; - TH1F *h_ele_dEtaSc_propVtx_all_barrel; - TH1F *h_ele_dEtaSc_propVtx_all_endcaps; - TH1F *h_ele_dPhiSc_propVtx_all; - TH1F *h_ele_dPhiSc_propVtx_all_barrel; - TH1F *h_ele_dPhiSc_propVtx_all_endcaps; - TH1F *h_ele_dEtaCl_propOut_all; - TH1F *h_ele_dEtaCl_propOut_all_barrel; - TH1F *h_ele_dEtaCl_propOut_all_endcaps; - TH1F *h_ele_dPhiCl_propOut_all; - TH1F *h_ele_dPhiCl_propOut_all_barrel; - TH1F *h_ele_dPhiCl_propOut_all_endcaps; - TH1F *h_ele_TIP_all; - TH1F *h_ele_TIP_all_barrel; - TH1F *h_ele_TIP_all_endcaps; - TH1F *h_ele_HoE_all; - TH1F *h_ele_HoE_all_barrel; - TH1F *h_ele_HoE_all_endcaps; - TH1F *h_ele_vertexEta_all; - TH1F *h_ele_vertexPt_all; - TH1F *h_ele_Et_all; - TH1F *h_ele_mee_all; - TH1F *h_ele_mee_os; - TH1F *h_ele_mee_os_ebeb; - TH1F *h_ele_mee_os_ebee; - TH1F *h_ele_mee_os_eeee; - TH1F *h_ele_mee_os_gg; - TH1F *h_ele_mee_os_gb; - TH1F *h_ele_mee_os_bb; - - TH2F *h_ele_E2mnE1vsMee_all; - TH2F *h_ele_E2mnE1vsMee_egeg_all; - - TH1F *h_ele_charge; - TH2F *h_ele_chargeVsEta; - TH2F *h_ele_chargeVsPhi; - TH2F *h_ele_chargeVsPt; - TH1F *h_ele_vertexP; - TH1F *h_ele_vertexPt; - TH1F *h_ele_Et; - TH2F *h_ele_vertexPtVsEta; - TH2F *h_ele_vertexPtVsPhi; - TH1F *h_ele_vertexPt_5100; - TH1F *h_ele_vertexEta; - TH2F *h_ele_vertexEtaVsPhi; - TH1F *h_ele_vertexAbsEta; - TH1F *h_ele_vertexPhi; - TH1F *h_ele_vertexX; - TH1F *h_ele_vertexY; - TH1F *h_ele_vertexZ; - TH1F *h_ele_vertexTIP; - TH2F *h_ele_vertexTIPVsEta; - TH2F *h_ele_vertexTIPVsPhi; - TH2F *h_ele_vertexTIPVsPt; - - TH1F *histNum_; - - TH1F *histSclEn_; - TH1F *histSclEoEtrue_barrel; - TH1F *histSclEoEtrue_endcaps; - TH1F *histSclEoEtrue_barrel_eg; - TH1F *histSclEoEtrue_endcaps_eg; - TH1F *histSclEoEtrue_barrel_etagap; - TH1F *histSclEoEtrue_barrel_phigap; - TH1F *histSclEoEtrue_ebeegap; - TH1F *histSclEoEtrue_endcaps_deegap; - TH1F *histSclEoEtrue_endcaps_ringgap; - TH1F *histSclEoEtrue_barrel_new; - TH1F *histSclEoEtrue_endcaps_new; - TH1F *histSclEoEtrue_barrel_eg_new; - TH1F *histSclEoEtrue_endcaps_eg_new; - TH1F *histSclEoEtrue_barrel_etagap_new; - TH1F *histSclEoEtrue_barrel_phigap_new; - TH1F *histSclEoEtrue_ebeegap_new; - TH1F *histSclEoEtrue_endcaps_deegap_new; - TH1F *histSclEoEtrue_endcaps_ringgap_new; - TH1F *histSclEt_; - TH2F *histSclEtVsEta_; - TH2F *histSclEtVsPhi_; - TH2F *histSclEtaVsPhi_; - TH1F *histSclEta_; - TH1F *histSclPhi_; - - TH2F *histSclEoEtruePfVsEg; - - TH1F *histSclSigEtaEta_; - TH1F *histSclSigEtaEta_barrel_; - TH1F *histSclSigEtaEta_endcaps_; - TH1F *histSclSigIEtaIEta_; - TH1F *histSclSigIEtaIEta_barrel_; - TH1F *histSclSigIEtaIEta_endcaps_; - TH1F *histSclE1x5_; - TH1F *histSclE1x5_barrel_; - TH1F *histSclE1x5_endcaps_; - TH1F *histSclE2x5max_; - TH1F *histSclE2x5max_barrel_; - TH1F *histSclE2x5max_endcaps_; - TH1F *histSclE5x5_; - TH1F *histSclE5x5_barrel_; - TH1F *histSclE5x5_endcaps_; - TH1F *histSclSigEtaEta_eg_; - TH1F *histSclSigEtaEta_eg_barrel_; - TH1F *histSclSigEtaEta_eg_endcaps_; - TH1F *histSclSigIEtaIEta_eg_; - TH1F *histSclSigIEtaIEta_eg_barrel_; - TH1F *histSclSigIEtaIEta_eg_endcaps_; - TH1F *histSclE1x5_eg_; - TH1F *histSclE1x5_eg_barrel_; - TH1F *histSclE1x5_eg_endcaps_; - TH1F *histSclE2x5max_eg_; - TH1F *histSclE2x5max_eg_barrel_; - TH1F *histSclE2x5max_eg_endcaps_; - TH1F *histSclE5x5_eg_; - TH1F *histSclE5x5_eg_barrel_; - TH1F *histSclE5x5_eg_endcaps_; - - TH1F *h_ele_ambiguousTracks; - TH2F *h_ele_ambiguousTracksVsEta; - TH2F *h_ele_ambiguousTracksVsPhi; - TH2F *h_ele_ambiguousTracksVsPt; - TH1F *h_ele_foundHits; - TH1F *h_ele_foundHits_barrel; - TH1F *h_ele_foundHits_endcaps; - TH2F *h_ele_foundHitsVsEta; - TH2F *h_ele_foundHitsVsPhi; - TH2F *h_ele_foundHitsVsPt; - TH1F *h_ele_lostHits; - TH1F *h_ele_lostHits_barrel; - TH1F *h_ele_lostHits_endcaps; - TH2F *h_ele_lostHitsVsEta; - TH2F *h_ele_lostHitsVsPhi; - TH2F *h_ele_lostHitsVsPt; - TH1F *h_ele_chi2; - TH1F *h_ele_chi2_barrel; - TH1F *h_ele_chi2_endcaps; - TH2F *h_ele_chi2VsEta; - TH2F *h_ele_chi2VsPhi; - TH2F *h_ele_chi2VsPt; - - TH1F *h_ele_PoPtrue; - TH1F *h_ele_PtoPttrue; - TH2F *h_ele_PoPtrueVsEta; - TH2F *h_ele_PoPtrueVsPhi; - TH2F *h_ele_PoPtrueVsPt; - TH1F *h_ele_PoPtrue_barrel; - TH1F *h_ele_PoPtrue_endcaps; - TH1F *h_ele_PoPtrue_golden_barrel; - TH1F *h_ele_PoPtrue_golden_endcaps; - TH1F *h_ele_PoPtrue_showering_barrel; - TH1F *h_ele_PoPtrue_showering_endcaps; - TH1F *h_ele_PtoPttrue_barrel; - TH1F *h_ele_PtoPttrue_endcaps; - TH1F *h_ele_ChargeMnChargeTrue; - TH1F *h_ele_EtaMnEtaTrue; - TH1F *h_ele_EtaMnEtaTrue_barrel; - TH1F *h_ele_EtaMnEtaTrue_endcaps; - TH2F *h_ele_EtaMnEtaTrueVsEta; - TH2F *h_ele_EtaMnEtaTrueVsPhi; - TH2F *h_ele_EtaMnEtaTrueVsPt; - TH1F *h_ele_PhiMnPhiTrue; - TH1F *h_ele_PhiMnPhiTrue_barrel; - TH1F *h_ele_PhiMnPhiTrue_endcaps; - TH1F *h_ele_PhiMnPhiTrue2; - TH2F *h_ele_PhiMnPhiTrueVsEta; - TH2F *h_ele_PhiMnPhiTrueVsPhi; - TH2F *h_ele_PhiMnPhiTrueVsPt; - TH1F *h_ele_PinMnPout; - TH1F *h_ele_PinMnPout_mode; - TH2F *h_ele_PinMnPoutVsEta_mode; - TH2F *h_ele_PinMnPoutVsPhi_mode; - TH2F *h_ele_PinMnPoutVsPt_mode; - TH2F *h_ele_PinMnPoutVsE_mode; - TH2F *h_ele_PinMnPoutVsChi2_mode; - - TH1F *h_ele_outerP; - TH1F *h_ele_outerP_mode; - TH2F *h_ele_outerPVsEta_mode; - TH1F *h_ele_outerPt; - TH1F *h_ele_outerPt_mode; - TH2F *h_ele_outerPtVsEta_mode; - TH2F *h_ele_outerPtVsPhi_mode; - TH2F *h_ele_outerPtVsPt_mode; - TH1F *h_ele_EoP; - TH1F *h_ele_EoP_barrel; - TH1F *h_ele_EoP_endcaps; - TH1F *h_ele_EoP_eg; - TH1F *h_ele_EoP_eg_barrel; - TH1F *h_ele_EoP_eg_endcaps; - TH2F *h_ele_EoPVsEta; - TH2F *h_ele_EoPVsPhi; - TH2F *h_ele_EoPVsE; - TH1F *h_ele_EseedOP; - TH1F *h_ele_EseedOP_barrel; - TH1F *h_ele_EseedOP_endcaps; - TH1F *h_ele_EseedOP_eg; - TH1F *h_ele_EseedOP_eg_barrel; - TH1F *h_ele_EseedOP_eg_endcaps; - TH2F *h_ele_EseedOPVsEta; - TH2F *h_ele_EseedOPVsPhi; - TH2F *h_ele_EseedOPVsE; - TH1F *h_ele_EoPout; - TH1F *h_ele_EoPout_barrel; - TH1F *h_ele_EoPout_endcaps; - TH1F *h_ele_EoPout_eg; - TH1F *h_ele_EoPout_eg_barrel; - TH1F *h_ele_EoPout_eg_endcaps; - TH2F *h_ele_EoPoutVsEta; - TH2F *h_ele_EoPoutVsPhi; - TH2F *h_ele_EoPoutVsE; - TH1F *h_ele_EeleOPout; - TH1F *h_ele_EeleOPout_barrel; - TH1F *h_ele_EeleOPout_endcaps; - TH1F *h_ele_EeleOPout_eg; - TH1F *h_ele_EeleOPout_eg_barrel; - TH1F *h_ele_EeleOPout_eg_endcaps; - TH2F *h_ele_EeleOPoutVsEta; - TH2F *h_ele_EeleOPoutVsPhi; - TH2F *h_ele_EeleOPoutVsE; - - TH1F *h_ele_dEtaSc_propVtx; - TH1F *h_ele_dEtaSc_propVtx_barrel; - TH1F *h_ele_dEtaSc_propVtx_endcaps; - TH1F *h_ele_dEtaSc_propVtx_eg; - TH1F *h_ele_dEtaSc_propVtx_eg_barrel; - TH1F *h_ele_dEtaSc_propVtx_eg_endcaps; - TH2F *h_ele_dEtaScVsEta_propVtx; - TH2F *h_ele_dEtaScVsPhi_propVtx; - TH2F *h_ele_dEtaScVsPt_propVtx; - TH1F *h_ele_dPhiSc_propVtx; - TH1F *h_ele_dPhiSc_propVtx_barrel; - TH1F *h_ele_dPhiSc_propVtx_endcaps; - TH1F *h_ele_dPhiSc_propVtx_eg; - TH1F *h_ele_dPhiSc_propVtx_eg_barrel; - TH1F *h_ele_dPhiSc_propVtx_eg_endcaps; - TH2F *h_ele_dPhiScVsEta_propVtx; - TH2F *h_ele_dPhiScVsPhi_propVtx; - TH2F *h_ele_dPhiScVsPt_propVtx; - TH1F *h_ele_dEtaCl_propOut; - TH1F *h_ele_dEtaCl_propOut_barrel; - TH1F *h_ele_dEtaCl_propOut_endcaps; - TH1F *h_ele_dEtaCl_propOut_eg; - TH1F *h_ele_dEtaCl_propOut_eg_barrel; - TH1F *h_ele_dEtaCl_propOut_eg_endcaps; - TH2F *h_ele_dEtaClVsEta_propOut; - TH2F *h_ele_dEtaClVsPhi_propOut; - TH2F *h_ele_dEtaClVsPt_propOut; - TH1F *h_ele_dPhiCl_propOut; - TH1F *h_ele_dPhiCl_propOut_barrel; - TH1F *h_ele_dPhiCl_propOut_endcaps; - TH1F *h_ele_dPhiCl_propOut_eg; - TH1F *h_ele_dPhiCl_propOut_eg_barrel; - TH1F *h_ele_dPhiCl_propOut_eg_endcaps; - TH2F *h_ele_dPhiClVsEta_propOut; - TH2F *h_ele_dPhiClVsPhi_propOut; - TH2F *h_ele_dPhiClVsPt_propOut; - TH1F *h_ele_dEtaEleCl_propOut; - TH1F *h_ele_dEtaEleCl_propOut_barrel; - TH1F *h_ele_dEtaEleCl_propOut_endcaps; - TH1F *h_ele_dEtaEleCl_propOut_eg; - TH1F *h_ele_dEtaEleCl_propOut_eg_barrel; - TH1F *h_ele_dEtaEleCl_propOut_eg_endcaps; - TH2F *h_ele_dEtaEleClVsEta_propOut; - TH2F *h_ele_dEtaEleClVsPhi_propOut; - TH2F *h_ele_dEtaEleClVsPt_propOut; - TH1F *h_ele_dPhiEleCl_propOut; - TH1F *h_ele_dPhiEleCl_propOut_barrel; - TH1F *h_ele_dPhiEleCl_propOut_endcaps; - TH1F *h_ele_dPhiEleCl_propOut_eg; - TH1F *h_ele_dPhiEleCl_propOut_eg_barrel; - TH1F *h_ele_dPhiEleCl_propOut_eg_endcaps; - TH2F *h_ele_dPhiEleClVsEta_propOut; - TH2F *h_ele_dPhiEleClVsPhi_propOut; - TH2F *h_ele_dPhiEleClVsPt_propOut; - - TH1F *h_ele_seed_dphi2_; - TH2F *h_ele_seed_dphi2VsEta_; - TH2F *h_ele_seed_dphi2VsPt_; - TH1F *h_ele_seed_drz2_; - TH2F *h_ele_seed_drz2VsEta_; - TH2F *h_ele_seed_drz2VsPt_; - TH1F *h_ele_seed_subdet2_; - - TH1F *h_ele_classes; - TH1F *h_ele_eta; - TH1F *h_ele_eta_golden; - TH1F *h_ele_eta_bbrem; - TH1F *h_ele_eta_narrow; - TH1F *h_ele_eta_shower; - - TH1F *h_ele_HoE; - TH1F *h_ele_HoE_barrel; - TH1F *h_ele_HoE_endcaps; - TH1F *h_ele_HoE_eg; - TH1F *h_ele_HoE_eg_barrel; - TH1F *h_ele_HoE_eg_endcaps; - TH1F *h_ele_HoE_fiducial; - TH2F *h_ele_HoEVsEta; - TH2F *h_ele_HoEVsPhi; - TH2F *h_ele_HoEVsE; - - TH1F *h_ele_fbrem; - TH1F *h_ele_fbrem_eg; - TProfile *h_ele_fbremVsEta_mode; - TProfile *h_ele_fbremVsEta_mean; - - TH2F *h_ele_PinVsPoutGolden_mode; - TH2F *h_ele_PinVsPoutShowering_mode; - TH2F *h_ele_PinVsPoutGolden_mean; - TH2F *h_ele_PinVsPoutShowering_mean; - TH2F *h_ele_PtinVsPtoutGolden_mode; - TH2F *h_ele_PtinVsPtoutShowering_mode; - TH2F *h_ele_PtinVsPtoutGolden_mean; - TH2F *h_ele_PtinVsPtoutShowering_mean; - TH1F *histSclEoEtrueGolden_barrel; - TH1F *histSclEoEtrueGolden_endcaps; - TH1F *histSclEoEtrueShowering_barrel; - TH1F *histSclEoEtrueShowering_endcaps; - - TH1F *h_ele_mva; - TH1F *h_ele_mva_eg; - TH1F *h_ele_provenance; - - TH1F *h_ele_tkSumPt_dr03; - TH1F *h_ele_ecalRecHitSumEt_dr03; - TH1F *h_ele_hcalDepth1TowerSumEt_dr03; - TH1F *h_ele_hcalDepth2TowerSumEt_dr03; - TH1F *h_ele_tkSumPt_dr04; - TH1F *h_ele_ecalRecHitSumEt_dr04; - TH1F *h_ele_hcalDepth1TowerSumEt_dr04; - TH1F *h_ele_hcalDepth2TowerSumEt_dr04; - - std::string outputFile_; - edm::InputTag electronCollection_; - edm::InputTag mcTruthCollection_; - bool readAOD_; - - double maxPt_; - double maxAbsEta_; - double deltaR_; - std::vector matchingIDs_; - std::vector matchingMotherIDs_; - - // histos limits and binning - double etamin; - double etamax; - double phimin; - double phimax; - double ptmax; - double pmax; - double eopmax; - double eopmaxsht; - double detamin; - double detamax; - double dphimin; - double dphimax; - double detamatchmin; - double detamatchmax; - double dphimatchmin; - double dphimatchmax; - double fhitsmax; - double lhitsmax; - double poptruemin; - double poptruemax; - double meemin; - double meemax; - double hoemin; - double hoemax; - int nbineta; - int nbinp; - int nbinpt; - int nbinpteff; - int nbinphi; - int nbinp2D; - int nbinpt2D; - int nbineta2D; - int nbinphi2D; - int nbineop; - int nbineop2D; - int nbinfhits; - int nbinlhits; - int nbinxyz; - int nbindeta; - int nbindphi; - int nbindetamatch; - int nbindphimatch; - int nbindetamatch2D; - int nbindphimatch2D; - int nbinpoptrue; - int nbinmee; - int nbinhoe; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(GsfElectronMCAnalyzer); - -using namespace reco; - -GsfElectronMCAnalyzer::GsfElectronMCAnalyzer(const edm::ParameterSet &conf) { - outputFile_ = conf.getParameter("outputFile"); - histfile_ = new TFile(outputFile_.c_str(), "RECREATE"); - electronCollection_ = conf.getParameter("electronCollection"); - mcTruthCollection_ = conf.getParameter("mcTruthCollection"); - readAOD_ = conf.getParameter("readAOD"); - maxPt_ = conf.getParameter("MaxPt"); - maxAbsEta_ = conf.getParameter("MaxAbsEta"); - deltaR_ = conf.getParameter("DeltaR"); - matchingIDs_ = conf.getParameter >("MatchingID"); - matchingMotherIDs_ = conf.getParameter >("MatchingMotherID"); - edm::ParameterSet pset = conf.getParameter("HistosConfigurationMC"); - - etamin = pset.getParameter("Etamin"); - etamax = pset.getParameter("Etamax"); - phimin = pset.getParameter("Phimin"); - phimax = pset.getParameter("Phimax"); - ptmax = pset.getParameter("Ptmax"); - pmax = pset.getParameter("Pmax"); - eopmax = pset.getParameter("Eopmax"); - eopmaxsht = pset.getParameter("Eopmaxsht"); - detamin = pset.getParameter("Detamin"); - detamax = pset.getParameter("Detamax"); - dphimin = pset.getParameter("Dphimin"); - dphimax = pset.getParameter("Dphimax"); - detamatchmin = pset.getParameter("Detamatchmin"); - detamatchmax = pset.getParameter("Detamatchmax"); - dphimatchmin = pset.getParameter("Dphimatchmin"); - dphimatchmax = pset.getParameter("Dphimatchmax"); - fhitsmax = pset.getParameter("Fhitsmax"); - lhitsmax = pset.getParameter("Lhitsmax"); - nbineta = pset.getParameter("Nbineta"); - nbineta2D = pset.getParameter("Nbineta2D"); - nbinp = pset.getParameter("Nbinp"); - nbinpt = pset.getParameter("Nbinpt"); - nbinp2D = pset.getParameter("Nbinp2D"); - nbinpt2D = pset.getParameter("Nbinpt2D"); - nbinpteff = pset.getParameter("Nbinpteff"); - nbinphi = pset.getParameter("Nbinphi"); - nbinphi2D = pset.getParameter("Nbinphi2D"); - nbineop = pset.getParameter("Nbineop"); - nbineop2D = pset.getParameter("Nbineop2D"); - nbinfhits = pset.getParameter("Nbinfhits"); - nbinlhits = pset.getParameter("Nbinlhits"); - nbinxyz = pset.getParameter("Nbinxyz"); - nbindeta = pset.getParameter("Nbindeta"); - nbindphi = pset.getParameter("Nbindphi"); - nbindetamatch = pset.getParameter("Nbindetamatch"); - nbindphimatch = pset.getParameter("Nbindphimatch"); - nbindetamatch2D = pset.getParameter("Nbindetamatch2D"); - nbindphimatch2D = pset.getParameter("Nbindphimatch2D"); - nbinpoptrue = pset.getParameter("Nbinpoptrue"); - poptruemin = pset.getParameter("Poptruemin"); - poptruemax = pset.getParameter("Poptruemax"); - nbinmee = pset.getParameter("Nbinmee"); - meemin = pset.getParameter("Meemin"); - meemax = pset.getParameter("Meemax"); - nbinhoe = pset.getParameter("Nbinhoe"); - hoemin = pset.getParameter("Hoemin"); - hoemax = pset.getParameter("Hoemax"); -} - -void GsfElectronMCAnalyzer::beginJob() { - histfile_->cd(); - - // mc truth - h_mcNum = new TH1F("h_mcNum", "# mc particles", nbinfhits, 0., fhitsmax); - h_mcNum->Sumw2(); - h_eleNum = new TH1F("h_mcNum_ele", "# mc electrons", nbinfhits, 0., fhitsmax); - h_eleNum->Sumw2(); - h_gamNum = new TH1F("h_mcNum_gam", "# mc gammas", nbinfhits, 0., fhitsmax); - h_gamNum->Sumw2(); - - // rec event - histNum_ = new TH1F("h_recEleNum", "# rec electrons", 20, 0., 20.); - - // mc - h_simEta = new TH1F("h_mc_eta", "gen #eta", nbineta, etamin, etamax); - h_simEta->Sumw2(); - h_simAbsEta = new TH1F("h_mc_abseta", "gen |#eta|", nbineta / 2, 0., etamax); - h_simAbsEta->Sumw2(); - h_simP = new TH1F("h_mc_P", "gen p", nbinp, 0., pmax); - h_simP->Sumw2(); - h_simPt = new TH1F("h_mc_Pt", "gen pt", nbinpteff, 5., ptmax); - h_simPt->Sumw2(); - h_simPhi = new TH1F("h_mc_phi", "gen phi", nbinphi, phimin, phimax); - h_simPhi->Sumw2(); - h_simZ = new TH1F("h_mc_z", "gen z ", nbinxyz, -25, 25); - h_simZ->Sumw2(); - h_simPtEta = new TH2F("h_mc_pteta", "gen pt vs #eta", nbineta2D, etamin, etamax, nbinpt2D, 5., ptmax); - h_simPtEta->Sumw2(); - - // all electrons - h_ele_EoverP_all = new TH1F("h_ele_EoverP_all", "ele E/P_{vertex}, all reco electrons", nbineop, 0., eopmax); - h_ele_EoverP_all->Sumw2(); - h_ele_EoverP_all_barrel = - new TH1F("h_ele_EoverP_all_barrel", "ele E/P_{vertex}, all reco electrons, barrel", nbineop, 0., eopmax); - h_ele_EoverP_all_barrel->Sumw2(); - h_ele_EoverP_all_endcaps = - new TH1F("h_ele_EoverP_all_endcaps", "ele E/P_{vertex}, all reco electrons, endcaps", nbineop, 0., eopmax); - h_ele_EoverP_all_endcaps->Sumw2(); - h_ele_EseedOP_all = new TH1F("h_ele_EseedOP_all", "ele E_{seed}/P_{vertex}, all reco electrons", nbineop, 0., eopmax); - h_ele_EseedOP_all->Sumw2(); - h_ele_EseedOP_all_barrel = - new TH1F("h_ele_EseedOP_all_barrel", "ele E_{seed}/P_{vertex}, all reco electrons, barrel", nbineop, 0., eopmax); - h_ele_EseedOP_all_barrel->Sumw2(); - h_ele_EseedOP_all_endcaps = new TH1F( - "h_ele_EseedOP_all_endcaps", "ele E_{seed}/P_{vertex}, all reco electrons, endcaps", nbineop, 0., eopmax); - h_ele_EseedOP_all_endcaps->Sumw2(); - h_ele_EoPout_all = new TH1F("h_ele_EoPout_all", "ele E_{seed}/P_{out}, all reco electrons", nbineop, 0., eopmax); - h_ele_EoPout_all->Sumw2(); - h_ele_EoPout_all_barrel = - new TH1F("h_ele_EoPout_all_barrel", "ele E_{seed}/P_{out}, all reco electrons barrel", nbineop, 0., eopmax); - h_ele_EoPout_all_barrel->Sumw2(); - h_ele_EoPout_all_endcaps = - new TH1F("h_ele_EoPout_all_endcaps", "ele E_{seed}/P_{out}, all reco electrons endcaps", nbineop, 0., eopmax); - h_ele_EoPout_all_endcaps->Sumw2(); - h_ele_EeleOPout_all = new TH1F("h_ele_EeleOPout_all", "ele E_{ele}/P_{out}, all reco electrons", nbineop, 0., eopmax); - h_ele_EeleOPout_all->Sumw2(); - h_ele_EeleOPout_all_barrel = - new TH1F("h_ele_EeleOPout_all_barrel", "ele E_{ele}/P_{out}, all reco electrons barrel", nbineop, 0., eopmax); - h_ele_EeleOPout_all_barrel->Sumw2(); - h_ele_EeleOPout_all_endcaps = - new TH1F("h_ele_EeleOPout_all_endcaps", "ele E_{ele}/P_{out}, all reco electrons endcaps", nbineop, 0., eopmax); - h_ele_EeleOPout_all_endcaps->Sumw2(); - h_ele_dEtaSc_propVtx_all = new TH1F("h_ele_dEtaSc_propVtx_all", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_all->Sumw2(); - h_ele_dEtaSc_propVtx_all_barrel = new TH1F("h_ele_dEtaSc_propVtx_all_barrel", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_all_barrel->Sumw2(); - h_ele_dEtaSc_propVtx_all_endcaps = new TH1F("h_ele_dEtaSc_propVtx_all_endcaps", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_all_endcaps->Sumw2(); - h_ele_dPhiSc_propVtx_all = new TH1F("h_ele_dPhiSc_propVtx_all", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_all->Sumw2(); - h_ele_dPhiSc_propVtx_all_barrel = new TH1F("h_ele_dPhiSc_propVtx_all_barrel", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_all_barrel->Sumw2(); - h_ele_dPhiSc_propVtx_all_endcaps = new TH1F("h_ele_dPhiSc_propVtx_all_endcaps", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_all_endcaps->Sumw2(); - h_ele_dEtaCl_propOut_all = new TH1F("h_ele_dEtaCl_propOut_all", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_all->Sumw2(); - h_ele_dEtaCl_propOut_all_barrel = - new TH1F("h_ele_dEtaCl_propOut_all_barrel", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_all_barrel->Sumw2(); - h_ele_dEtaCl_propOut_all_endcaps = - new TH1F("h_ele_dEtaCl_propOut_all_endcaps", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_all_endcaps->Sumw2(); - h_ele_dPhiCl_propOut_all = new TH1F("h_ele_dPhiCl_propOut_all", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_all->Sumw2(); - h_ele_dPhiCl_propOut_all_barrel = - new TH1F("h_ele_dPhiCl_propOut_all_barrel", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_all_endcaps = - new TH1F("h_ele_dPhiCl_propOut_all_endcaps", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_all_barrel->Sumw2(); - h_ele_dPhiCl_propOut_all_endcaps->Sumw2(); - h_ele_HoE_all = - new TH1F("h_ele_HoE_all", "ele hadronic energy / em energy, all reco electrons", nbinhoe, hoemin, hoemax); - h_ele_HoE_all->Sumw2(); - h_ele_HoE_all_barrel = new TH1F( - "h_ele_HoE_all_barrel", "ele hadronic energy / em energy, all reco electrons barrel", nbinhoe, hoemin, hoemax); - h_ele_HoE_all_barrel->Sumw2(); - h_ele_HoE_all_endcaps = new TH1F( - "h_ele_HoE_all_endcaps", "ele hadronic energy / em energy, all reco electrons endcaps", nbinhoe, hoemin, hoemax); - h_ele_HoE_all_endcaps->Sumw2(); - h_ele_vertexPt_all = new TH1F("h_ele_vertexPt_all", "ele p_{T}, all reco electrons", nbinpteff, 5., ptmax); - h_ele_vertexPt_all->Sumw2(); - h_ele_Et_all = new TH1F("h_ele_Et_all", "ele SC E_{T}, all reco electrons", nbinpteff, 5., ptmax); - h_ele_Et_all->Sumw2(); - h_ele_vertexEta_all = new TH1F("h_ele_vertexEta_all", "ele eta, all reco electrons", nbineta, etamin, etamax); - h_ele_vertexEta_all->Sumw2(); - h_ele_TIP_all = new TH1F("h_ele_TIP_all", "ele vertex transverse radius, all reco electrons", 100, 0., 0.2); - h_ele_TIP_all->Sumw2(); - h_ele_TIP_all_barrel = - new TH1F("h_ele_TIP_all_barrel", "ele vertex transverse radius, all reco electrons barrel", 100, 0., 0.2); - h_ele_TIP_all_barrel->Sumw2(); - h_ele_TIP_all_endcaps = - new TH1F("h_ele_TIP_all_endcaps", "ele vertex transverse radius, all reco electrons endcaps", 100, 0., 0.2); - h_ele_TIP_all_endcaps->Sumw2(); - h_ele_mee_all = new TH1F("h_ele_mee_all", "ele pairs invariant mass, all reco electrons", nbinmee, meemin, meemax); - h_ele_mee_all->Sumw2(); - h_ele_mee_os = new TH1F("h_ele_mee_os", "ele pairs invariant mass, opp. sign", nbinmee, meemin, meemax); - h_ele_mee_os->Sumw2(); - h_ele_mee_os_ebeb = - new TH1F("h_ele_mee_os_ebeb", "ele pairs invariant mass, opp. sign, EB-EB", nbinmee, meemin, meemax); - h_ele_mee_os_ebeb->Sumw2(); - h_ele_mee_os_ebee = - new TH1F("h_ele_mee_os_ebee", "ele pairs invariant mass, opp. sign, EB-EE", nbinmee, meemin, meemax); - h_ele_mee_os_ebee->Sumw2(); - h_ele_mee_os_eeee = - new TH1F("h_ele_mee_os_eeee", "ele pairs invariant mass, opp. sign, EE-EE", nbinmee, meemin, meemax); - h_ele_mee_os_eeee->Sumw2(); - h_ele_mee_os_gg = - new TH1F("h_ele_mee_os_gg", "ele pairs invariant mass, opp. sign, good-good", nbinmee, meemin, meemax); - h_ele_mee_os_gg->Sumw2(); - h_ele_mee_os_gb = - new TH1F("h_ele_mee_os_gb", "ele pairs invariant mass, opp. sign, good-bad", nbinmee, meemin, meemax); - h_ele_mee_os_gb->Sumw2(); - h_ele_mee_os_bb = - new TH1F("h_ele_mee_os_bb", "ele pairs invariant mass, opp. sign, bad-bad", nbinmee, meemin, meemax); - h_ele_mee_os_bb->Sumw2(); - - // duplicates - h_ele_E2mnE1vsMee_all = new TH2F("h_ele_E2mnE1vsMee_all", - "E2 - E1 vs ele pairs invariant mass, all electrons", - nbinmee, - meemin, - meemax, - 100, - -50., - 50.); - h_ele_E2mnE1vsMee_egeg_all = new TH2F("h_ele_E2mnE1vsMee_egeg_all", - "E2 - E1 vs ele pairs invariant mass, ecal driven pairs, all electrons", - nbinmee, - meemin, - meemax, - 100, - -50., - 50.); - - // charge ID - h_ele_ChargeMnChargeTrue = new TH1F("h_ele_ChargeMnChargeTrue", "ele charge - gen charge ", 5, -1., 4.); - h_ele_ChargeMnChargeTrue->Sumw2(); - h_ele_simEta_matched_qmisid = - new TH1F("h_ele_eta_matched_qmisid", "charge misid vs gen eta", nbineta, etamin, etamax); - h_ele_simEta_matched_qmisid->Sumw2(); - h_ele_simAbsEta_matched_qmisid = - new TH1F("h_ele_abseta_matched_qmisid", "charge misid vs gen |eta|", nbineta / 2, 0., etamax); - h_ele_simAbsEta_matched_qmisid->Sumw2(); - h_ele_simPt_matched_qmisid = - new TH1F("h_ele_Pt_matched_qmisid", "charge misid vs gen transverse momentum", nbinpteff, 5., ptmax); - h_ele_simPt_matched_qmisid->Sumw2(); - h_ele_simPhi_matched_qmisid = - new TH1F("h_ele_phi_matched_qmisid", "charge misid vs gen phi", nbinphi, phimin, phimax); - h_ele_simPhi_matched_qmisid->Sumw2(); - h_ele_simZ_matched_qmisid = new TH1F("h_ele_z_matched_qmisid", "charge misid vs gen z", nbinxyz, -25, 25); - h_ele_simZ_matched_qmisid->Sumw2(); - - // matched electrons - h_ele_charge = new TH1F("h_ele_charge", "ele charge", 5, -2., 2.); - h_ele_charge->Sumw2(); - h_ele_chargeVsEta = new TH2F("h_ele_chargeVsEta", "ele charge vs eta", nbineta2D, etamin, etamax, 5, -2., 2.); - h_ele_chargeVsPhi = new TH2F("h_ele_chargeVsPhi", "ele charge vs phi", nbinphi2D, phimin, phimax, 5, -2., 2.); - h_ele_chargeVsPt = new TH2F("h_ele_chargeVsPt", "ele charge vs pt", nbinpt, 0., 100., 5, -2., 2.); - h_ele_vertexP = new TH1F("h_ele_vertexP", "ele momentum", nbinp, 0., pmax); - h_ele_vertexP->Sumw2(); - h_ele_vertexPt = new TH1F("h_ele_vertexPt", "ele transverse momentum", nbinpt, 0., ptmax); - h_ele_vertexPt->Sumw2(); - h_ele_Et = new TH1F("h_ele_Et", "ele transverse energy", nbinpt, 0., ptmax); - h_ele_Et->Sumw2(); - h_ele_vertexPtVsEta = - new TH2F("h_ele_vertexPtVsEta", "ele transverse momentum vs eta", nbineta2D, etamin, etamax, nbinpt2D, 0., ptmax); - h_ele_vertexPtVsPhi = - new TH2F("h_ele_vertexPtVsPhi", "ele transverse momentum vs phi", nbinphi2D, phimin, phimax, nbinpt2D, 0., ptmax); - h_ele_simPt_matched = new TH1F("h_ele_simPt_matched", "Efficiency vs gen transverse momentum", nbinpteff, 5., ptmax); - h_ele_vertexEta = new TH1F("h_ele_vertexEta", "ele momentum eta", nbineta, etamin, etamax); - h_ele_vertexEta->Sumw2(); - h_ele_vertexEtaVsPhi = - new TH2F("h_ele_vertexEtaVsPhi", "ele momentum eta vs phi", nbineta2D, etamin, etamax, nbinphi2D, phimin, phimax); - h_ele_simAbsEta_matched = new TH1F("h_ele_simAbsEta_matched", "Efficiency vs gen |eta|", nbineta / 2, 0., 2.5); - h_ele_simAbsEta_matched->Sumw2(); - h_ele_simEta_matched = new TH1F("h_ele_simEta_matched", "Efficiency vs gen eta", nbineta, etamin, etamax); - h_ele_simEta_matched->Sumw2(); - h_ele_simPtEta_matched = - new TH2F("h_ele_simPtEta_matched", "Efficiency vs pt #eta", nbineta2D, etamin, etamax, nbinpt2D, 5., ptmax); - h_ele_simPtEta_matched->Sumw2(); - h_ele_simPhi_matched = new TH1F("h_ele_simPhi_matched", "Efficiency vs gen phi", nbinphi, phimin, phimax); - h_ele_simPhi_matched->Sumw2(); - h_ele_vertexPhi = new TH1F("h_ele_vertexPhi", "ele momentum #phi", nbinphi, phimin, phimax); - h_ele_vertexPhi->Sumw2(); - h_ele_vertexX = new TH1F("h_ele_vertexX", "ele vertex x", nbinxyz, -0.1, 0.1); - h_ele_vertexX->Sumw2(); - h_ele_vertexY = new TH1F("h_ele_vertexY", "ele vertex y", nbinxyz, -0.1, 0.1); - h_ele_vertexY->Sumw2(); - h_ele_vertexZ = new TH1F("h_ele_vertexZ", "ele vertex z", nbinxyz, -25, 25); - h_ele_vertexZ->Sumw2(); - h_ele_simZ_matched = new TH1F("h_ele_simZ_matched", "Efficiency vs gen vertex z", nbinxyz, -25, 25); - h_ele_simZ_matched->Sumw2(); - h_ele_vertexTIP = new TH1F("h_ele_vertexTIP", "ele transverse impact parameter (wrt gen vtx)", 90, 0., 0.15); - h_ele_vertexTIP->Sumw2(); - h_ele_vertexTIPVsEta = new TH2F("h_ele_vertexTIPVsEta", - "ele transverse impact parameter (wrt gen vtx) vs eta", - nbineta2D, - etamin, - etamax, - 45, - 0., - 0.15); - h_ele_vertexTIPVsPhi = new TH2F("h_ele_vertexTIPVsPhi", - "ele transverse impact parameter (wrt gen vtx) vs phi", - nbinphi2D, - phimin, - phimax, - 45, - 0., - 0.15); - h_ele_vertexTIPVsPt = new TH2F("h_ele_vertexTIPVsPt", - "ele transverse impact parameter (wrt gen vtx) vs transverse momentum", - nbinpt2D, - 0., - ptmax, - 45, - 0., - 0.15); - h_ele_PoPtrue = new TH1F("h_ele_PoPtrue", "ele momentum / gen momentum", nbinpoptrue, poptruemin, poptruemax); - h_ele_PoPtrue->Sumw2(); - h_ele_PtoPttrue = new TH1F( - "h_ele_PtoPttrue", "ele transverse momentum / gen transverse momentum", nbinpoptrue, poptruemin, poptruemax); - h_ele_PtoPttrue->Sumw2(); - h_ele_PoPtrueVsEta = new TH2F( - "h_ele_PoPtrueVsEta", "ele momentum / gen momentum vs eta", nbineta2D, etamin, etamax, 50, poptruemin, poptruemax); - h_ele_PoPtrueVsPhi = new TH2F( - "h_ele_PoPtrueVsPhi", "ele momentum / gen momentum vs phi", nbinphi2D, phimin, phimax, 50, poptruemin, poptruemax); - h_ele_PoPtrueVsPt = new TH2F( - "h_ele_PoPtrueVsPt", "ele momentum / gen momentum vs eta", nbinpt2D, 0., ptmax, 50, poptruemin, poptruemax); - h_ele_PoPtrue_barrel = - new TH1F("h_ele_PoPtrue_barrel", "ele momentum / gen momentum, barrel", nbinpoptrue, poptruemin, poptruemax); - h_ele_PoPtrue_barrel->Sumw2(); - h_ele_PoPtrue_endcaps = - new TH1F("h_ele_PoPtrue_endcaps", "ele momentum / gen momentum, endcaps", nbinpoptrue, poptruemin, poptruemax); - h_ele_PoPtrue_endcaps->Sumw2(); - h_ele_PoPtrue_golden_barrel = new TH1F( - "h_ele_PoPtrue_golden_barrel", "ele momentum / gen momentum, golden, barrel", nbinpoptrue, poptruemin, poptruemax); - h_ele_PoPtrue_golden_barrel->Sumw2(); - h_ele_PoPtrue_golden_endcaps = new TH1F("h_ele_PoPtrue_golden_endcaps", - "ele momentum / gen momentum, golden, endcaps", - nbinpoptrue, - poptruemin, - poptruemax); - h_ele_PoPtrue_golden_endcaps->Sumw2(); - h_ele_PoPtrue_showering_barrel = new TH1F("h_ele_PoPtrue_showering_barrel", - "ele momentum / gen momentum, showering, barrel", - nbinpoptrue, - poptruemin, - poptruemax); - h_ele_PoPtrue_showering_barrel->Sumw2(); - h_ele_PoPtrue_showering_endcaps = new TH1F("h_ele_PoPtrue_showering_endcaps", - "ele momentum / gen momentum, showering, endcaps", - nbinpoptrue, - poptruemin, - poptruemax); - h_ele_PoPtrue_showering_endcaps->Sumw2(); - h_ele_PtoPttrue_barrel = new TH1F("h_ele_PtoPttrue_barrel", - "ele transverse momentum / gen transverse momentum, barrel", - nbinpoptrue, - poptruemin, - poptruemax); - h_ele_PtoPttrue_barrel->Sumw2(); - h_ele_PtoPttrue_endcaps = new TH1F("h_ele_PtoPttrue_endcaps", - "ele transverse momentum / gen transverse momentum, endcaps", - nbinpoptrue, - poptruemin, - poptruemax); - h_ele_PtoPttrue_endcaps->Sumw2(); - h_ele_EtaMnEtaTrue = new TH1F("h_ele_EtaMnEtaTrue", "ele momentum eta - gen eta", nbindeta, detamin, detamax); - h_ele_EtaMnEtaTrue->Sumw2(); - h_ele_EtaMnEtaTrue_barrel = - new TH1F("h_ele_EtaMnEtaTrue_barrel", "ele momentum eta - gen eta barrel", nbindeta, detamin, detamax); - h_ele_EtaMnEtaTrue_barrel->Sumw2(); - h_ele_EtaMnEtaTrue_endcaps = - new TH1F("h_ele_EtaMnEtaTrue_endcaps", "ele momentum eta - gen eta endcaps", nbindeta, detamin, detamax); - h_ele_EtaMnEtaTrue_endcaps->Sumw2(); - h_ele_EtaMnEtaTrueVsEta = new TH2F("h_ele_EtaMnEtaTrueVsEta", - "ele momentum eta - gen eta vs eta", - nbineta2D, - etamin, - etamax, - nbindeta / 2, - detamin, - detamax); - h_ele_EtaMnEtaTrueVsPhi = new TH2F("h_ele_EtaMnEtaTrueVsPhi", - "ele momentum eta - gen eta vs phi", - nbinphi2D, - phimin, - phimax, - nbindeta / 2, - detamin, - detamax); - h_ele_EtaMnEtaTrueVsPt = new TH2F( - "h_ele_EtaMnEtaTrueVsPt", "ele momentum eta - gen eta vs pt", nbinpt, 0., ptmax, nbindeta / 2, detamin, detamax); - h_ele_PhiMnPhiTrue = new TH1F("h_ele_PhiMnPhiTrue", "ele momentum phi - gen phi", nbindphi, dphimin, dphimax); - h_ele_PhiMnPhiTrue->Sumw2(); - h_ele_PhiMnPhiTrue_barrel = - new TH1F("h_ele_PhiMnPhiTrue_barrel", "ele momentum phi - gen phi barrel", nbindphi, dphimin, dphimax); - h_ele_PhiMnPhiTrue_barrel->Sumw2(); - h_ele_PhiMnPhiTrue_endcaps = - new TH1F("h_ele_PhiMnPhiTrue_endcaps", "ele momentum phi - gen phi endcaps", nbindphi, dphimin, dphimax); - h_ele_PhiMnPhiTrue_endcaps->Sumw2(); - h_ele_PhiMnPhiTrue2 = - new TH1F("h_ele_PhiMnPhiTrue2", "ele momentum phi - gen phi", nbindphimatch2D, dphimatchmin, dphimatchmax); - h_ele_PhiMnPhiTrueVsEta = new TH2F("h_ele_PhiMnPhiTrueVsEta", - "ele momentum phi - gen phi vs eta", - nbineta2D, - etamin, - etamax, - nbindphi / 2, - dphimin, - dphimax); - h_ele_PhiMnPhiTrueVsPhi = new TH2F("h_ele_PhiMnPhiTrueVsPhi", - "ele momentum phi - gen phi vs phi", - nbinphi2D, - phimin, - phimax, - nbindphi / 2, - dphimin, - dphimax); - h_ele_PhiMnPhiTrueVsPt = new TH2F("h_ele_PhiMnPhiTrueVsPt", - "ele momentum phi - gen phi vs pt", - nbinpt2D, - 0., - ptmax, - nbindphi / 2, - dphimin, - dphimax); - - // matched electron, superclusters - histSclEn_ = new TH1F("h_scl_energy", "ele supercluster energy", nbinp, 0., pmax); - histSclEn_->Sumw2(); - histSclEoEtrue_barrel = - new TH1F("h_scl_EoEtrue_barrel", "ele supercluster energy / gen energy, barrel", 50, 0.2, 1.2); - histSclEoEtrue_barrel->Sumw2(); - histSclEoEtrue_barrel_eg = - new TH1F("h_scl_EoEtrue_barrel_eg", "ele supercluster energy / gen energy, barrel, ecal driven", 50, 0.2, 1.2); - histSclEoEtrue_barrel_eg->Sumw2(); - histSclEoEtrue_barrel_etagap = - new TH1F("h_scl_EoEtrue_barrel_etagap", "ele supercluster energy / gen energy, barrel, etagap", 50, 0.2, 1.2); - histSclEoEtrue_barrel_etagap->Sumw2(); - histSclEoEtrue_barrel_phigap = - new TH1F("h_scl_EoEtrue_barrel_phigap", "ele supercluster energy / gen energy, barrel, phigap", 50, 0.2, 1.2); - histSclEoEtrue_barrel_phigap->Sumw2(); - histSclEoEtrue_ebeegap = - new TH1F("h_scl_EoEtrue_ebeegap", "ele supercluster energy / gen energy, ebeegap", 50, 0.2, 1.2); - histSclEoEtrue_ebeegap->Sumw2(); - histSclEoEtrue_endcaps = - new TH1F("h_scl_EoEtrue_endcaps", "ele supercluster energy / gen energy, endcaps", 50, 0.2, 1.2); - histSclEoEtrue_endcaps->Sumw2(); - histSclEoEtrue_endcaps_eg = - new TH1F("h_scl_EoEtrue_endcaps_eg", "ele supercluster energy / gen energy, endcaps, ecal driven", 50, 0.2, 1.2); - histSclEoEtrue_endcaps_eg->Sumw2(); - histSclEoEtrue_endcaps_deegap = - new TH1F("h_scl_EoEtrue_endcaps_deegap", "ele supercluster energy / gen energy, endcaps, deegap", 50, 0.2, 1.2); - histSclEoEtrue_endcaps_deegap->Sumw2(); - histSclEoEtrue_endcaps_ringgap = - new TH1F("h_scl_EoEtrue_endcaps_ringgap", "ele supercluster energy / gen energy, endcaps, ringgap", 50, 0.2, 1.2); - histSclEoEtrue_endcaps_ringgap->Sumw2(); - histSclEoEtrue_barrel_new = new TH1F( - "h_scl_EoEtrue_barrel_new", "ele supercluster energy / gen energy, barrel", nbinpoptrue, poptruemin, poptruemax); - histSclEoEtrue_barrel_new->Sumw2(); - histSclEoEtrue_barrel_eg_new = new TH1F("h_scl_EoEtrue_barrel_eg_new", - "ele supercluster energy / gen energy, barrel, ecal driven", - nbinpoptrue, - poptruemin, - poptruemax); - histSclEoEtrue_barrel_eg_new->Sumw2(); - histSclEoEtrue_barrel_etagap_new = new TH1F("h_scl_EoEtrue_barrel_etagap_new", - "ele supercluster energy / gen energy, barrel, etagap", - nbinpoptrue, - poptruemin, - poptruemax); - histSclEoEtrue_barrel_etagap_new->Sumw2(); - histSclEoEtrue_barrel_phigap_new = new TH1F("h_scl_EoEtrue_barrel_phigap_new", - "ele supercluster energy / gen energy, barrel, phigap", - nbinpoptrue, - poptruemin, - poptruemax); - histSclEoEtrue_barrel_phigap_new->Sumw2(); - histSclEoEtrue_ebeegap_new = new TH1F( - "h_scl_EoEtrue_ebeegap_new", "ele supercluster energy / gen energy, ebeegap", nbinpoptrue, poptruemin, poptruemax); - histSclEoEtrue_ebeegap_new->Sumw2(); - histSclEoEtrue_endcaps_new = new TH1F( - "h_scl_EoEtrue_endcaps_new", "ele supercluster energy / gen energy, endcaps", nbinpoptrue, poptruemin, poptruemax); - histSclEoEtrue_endcaps_new->Sumw2(); - histSclEoEtrue_endcaps_eg_new = new TH1F("h_scl_EoEtrue_endcaps_eg_new", - "ele supercluster energy / gen energy, endcaps, ecal driven", - nbinpoptrue, - poptruemin, - poptruemax); - histSclEoEtrue_endcaps_eg_new->Sumw2(); - histSclEoEtrue_endcaps_deegap_new = new TH1F("h_scl_EoEtrue_endcaps_deegap_new", - "ele supercluster energy / gen energy, endcaps, deegap", - nbinpoptrue, - poptruemin, - poptruemax); - histSclEoEtrue_endcaps_deegap_new->Sumw2(); - histSclEoEtrue_endcaps_ringgap_new = new TH1F("h_scl_EoEtrue_endcaps_ringgap_new", - "ele supercluster energy / gen energy, endcaps, ringgap", - nbinpoptrue, - poptruemin, - poptruemax); - histSclEoEtrue_endcaps_ringgap_new->Sumw2(); - histSclEt_ = new TH1F("h_scl_et", "ele supercluster transverse energy", nbinpt, 0., ptmax); - histSclEt_->Sumw2(); - histSclEtVsEta_ = new TH2F( - "h_scl_etVsEta", "ele supercluster transverse energy vs eta", nbineta2D, etamin, etamax, nbinpt, 0., ptmax); - histSclEtVsPhi_ = new TH2F( - "h_scl_etVsPhi", "ele supercluster transverse energy vs phi", nbinphi2D, phimin, phimax, nbinpt, 0., ptmax); - histSclEtaVsPhi_ = - new TH2F("h_scl_etaVsPhi", "ele supercluster eta vs phi", nbinphi2D, phimin, phimax, nbineta2D, etamin, etamax); - histSclEta_ = new TH1F("h_scl_eta", "ele supercluster eta", nbineta, etamin, etamax); - histSclEta_->Sumw2(); - histSclPhi_ = new TH1F("h_scl_phi", "ele supercluster phi", nbinphi, phimin, phimax); - histSclPhi_->Sumw2(); - - histSclSigEtaEta_ = new TH1F("h_scl_sigetaeta", "ele supercluster sigma eta eta", 100, 0., 0.05); - histSclSigEtaEta_->Sumw2(); - histSclSigEtaEta_barrel_ = new TH1F("h_scl_sigetaeta_barrel", "ele supercluster sigma eta eta barrel", 100, 0., 0.05); - histSclSigEtaEta_barrel_->Sumw2(); - histSclSigEtaEta_endcaps_ = - new TH1F("h_scl_sigetaeta_endcaps", "ele supercluster sigma eta eta endcaps", 100, 0., 0.05); - histSclSigEtaEta_endcaps_->Sumw2(); - histSclSigIEtaIEta_ = new TH1F("h_scl_sigietaieta", "ele supercluster sigma ieta ieta", 100, 0., 0.05); - histSclSigIEtaIEta_->Sumw2(); - histSclSigIEtaIEta_barrel_ = - new TH1F("h_scl_sigietaieta_barrel", "ele supercluster sigma ieta ieta, barrel", 100, 0., 0.05); - histSclSigIEtaIEta_barrel_->Sumw2(); - histSclSigIEtaIEta_endcaps_ = - new TH1F("h_scl_sigietaieta_endcaps", "ele supercluster sigma ieta ieta, endcaps", 100, 0., 0.05); - histSclSigIEtaIEta_endcaps_->Sumw2(); - histSclE1x5_ = new TH1F("h_scl_E1x5", "ele supercluster energy in 1x5", nbinp, 0., pmax); - histSclE1x5_->Sumw2(); - histSclE1x5_barrel_ = new TH1F("h_scl_E1x5_barrel", "ele supercluster energy in 1x5 barrel", nbinp, 0., pmax); - histSclE1x5_barrel_->Sumw2(); - histSclE1x5_endcaps_ = new TH1F("h_scl_E1x5_endcaps", "ele supercluster energy in 1x5 endcaps", nbinp, 0., pmax); - histSclE1x5_endcaps_->Sumw2(); - histSclE2x5max_ = new TH1F("h_scl_E2x5max", "ele supercluster energy in 2x5 max", nbinp, 0., pmax); - histSclE2x5max_->Sumw2(); - histSclE2x5max_barrel_ = - new TH1F("h_scl_E2x5max_barrel", "ele supercluster energy in 2x5 max barrel", nbinp, 0., pmax); - histSclE2x5max_barrel_->Sumw2(); - histSclE2x5max_endcaps_ = - new TH1F("h_scl_E2x5max_endcaps", "ele supercluster energy in 2x5 max endcaps", nbinp, 0., pmax); - histSclE2x5max_endcaps_->Sumw2(); - histSclE5x5_ = new TH1F("h_scl_E5x5", "ele supercluster energy in 5x5", nbinp, 0., pmax); - histSclE5x5_->Sumw2(); - histSclE5x5_barrel_ = new TH1F("h_scl_E5x5_barrel", "ele supercluster energy in 5x5 barrel", nbinp, 0., pmax); - histSclE5x5_barrel_->Sumw2(); - histSclE5x5_endcaps_ = new TH1F("h_scl_E5x5_endcaps", "ele supercluster energy in 5x5 endcaps", nbinp, 0., pmax); - histSclE5x5_endcaps_->Sumw2(); - histSclSigEtaEta_eg_ = new TH1F("h_scl_sigetaeta_eg", "ele supercluster sigma eta eta, ecal driven", 100, 0., 0.05); - histSclSigEtaEta_eg_->Sumw2(); - histSclSigEtaEta_eg_barrel_ = - new TH1F("h_scl_sigetaeta_eg_barrel", "ele supercluster sigma eta eta, ecal driven barrel", 100, 0., 0.05); - histSclSigEtaEta_eg_barrel_->Sumw2(); - histSclSigEtaEta_eg_endcaps_ = - new TH1F("h_scl_sigetaeta_eg_endcaps", "ele supercluster sigma eta eta, ecal driven endcaps", 100, 0., 0.05); - histSclSigEtaEta_eg_endcaps_->Sumw2(); - histSclSigIEtaIEta_eg_ = - new TH1F("h_scl_sigietaieta_eg", "ele supercluster sigma ieta ieta, ecal driven", 100, 0., 0.05); - histSclSigIEtaIEta_eg_->Sumw2(); - histSclSigIEtaIEta_eg_barrel_ = - new TH1F("h_scl_sigietaieta_barrel_eg", "ele supercluster sigma ieta ieta, barrel, ecal driven", 100, 0., 0.05); - histSclSigIEtaIEta_eg_barrel_->Sumw2(); - histSclSigIEtaIEta_eg_endcaps_ = - new TH1F("h_scl_sigietaieta_endcaps_eg", "ele supercluster sigma ieta ieta, endcaps, ecal driven", 100, 0., 0.05); - histSclSigIEtaIEta_eg_endcaps_->Sumw2(); - histSclE1x5_eg_ = new TH1F("h_scl_E1x5_eg", "ele supercluster energy in 1x5, ecal driven", nbinp, 0., pmax); - histSclE1x5_eg_->Sumw2(); - histSclE1x5_eg_barrel_ = - new TH1F("h_scl_E1x5_eg_barrel", "ele supercluster energy in 1x5, ecal driven barrel", nbinp, 0., pmax); - histSclE1x5_eg_barrel_->Sumw2(); - histSclE1x5_eg_endcaps_ = - new TH1F("h_scl_E1x5_eg_endcaps", "ele supercluster energy in 1x5, ecal driven endcaps", nbinp, 0., pmax); - histSclE1x5_eg_endcaps_->Sumw2(); - histSclE2x5max_eg_ = new TH1F("h_scl_E2x5max_eg", "ele supercluster energy in 2x5 max, ecal driven", nbinp, 0., pmax); - histSclE2x5max_eg_->Sumw2(); - histSclE2x5max_eg_barrel_ = - new TH1F("h_scl_E2x5max_eg_barrel", "ele supercluster energy in 2x5 max, ecal driven barrel", nbinp, 0., pmax); - histSclE2x5max_eg_barrel_->Sumw2(); - histSclE2x5max_eg_endcaps_ = - new TH1F("h_scl_E2x5max_eg_endcaps", "ele supercluster energy in 2x5 max, ecal driven endcaps", nbinp, 0., pmax); - histSclE2x5max_eg_endcaps_->Sumw2(); - histSclE5x5_eg_ = new TH1F("h_scl_E5x5_eg", "ele supercluster energy in 5x5, ecal driven", nbinp, 0., pmax); - histSclE5x5_eg_->Sumw2(); - histSclE5x5_eg_barrel_ = - new TH1F("h_scl_E5x5_eg_barrel", "ele supercluster energy in 5x5, ecal driven barrel", nbinp, 0., pmax); - histSclE5x5_eg_barrel_->Sumw2(); - histSclE5x5_eg_endcaps_ = - new TH1F("h_scl_E5x5_eg_endcaps", "ele supercluster energy in 5x5, ecal driven endcaps", nbinp, 0., pmax); - histSclE5x5_eg_endcaps_->Sumw2(); - - histSclEoEtruePfVsEg = - new TH2F("h_scl_EoEtruePfVsEg", "ele supercluster energy / gen energy pflow vs eg", 75, -0.1, 1.4, 75, -0.1, 1.4); - - // matched electron, gsf tracks - h_ele_ambiguousTracks = new TH1F("h_ele_ambiguousTracks", "ele # ambiguous tracks", 5, 0., 5.); - h_ele_ambiguousTracks->Sumw2(); - h_ele_ambiguousTracksVsEta = - new TH2F("h_ele_ambiguousTracksVsEta", "ele # ambiguous tracks vs eta", nbineta2D, etamin, etamax, 5, 0., 5.); - h_ele_ambiguousTracksVsPhi = - new TH2F("h_ele_ambiguousTracksVsPhi", "ele # ambiguous tracks vs phi", nbinphi2D, phimin, phimax, 5, 0., 5.); - h_ele_ambiguousTracksVsPt = - new TH2F("h_ele_ambiguousTracksVsPt", "ele # ambiguous tracks vs pt", nbinpt2D, 0., ptmax, 5, 0., 5.); - h_ele_foundHits = new TH1F("h_ele_foundHits", "ele track # found hits", nbinfhits, 0., fhitsmax); - h_ele_foundHits->Sumw2(); - h_ele_foundHits_barrel = - new TH1F("h_ele_foundHits_barrel", "ele track # found hits, barrel", nbinfhits, 0., fhitsmax); - h_ele_foundHits_barrel->Sumw2(); - h_ele_foundHits_endcaps = - new TH1F("h_ele_foundHits_endcaps", "ele track # found hits, endcaps", nbinfhits, 0., fhitsmax); - h_ele_foundHits_endcaps->Sumw2(); - h_ele_foundHitsVsEta = new TH2F( - "h_ele_foundHitsVsEta", "ele track # found hits vs eta", nbineta2D, etamin, etamax, nbinfhits, 0., fhitsmax); - h_ele_foundHitsVsPhi = new TH2F( - "h_ele_foundHitsVsPhi", "ele track # found hits vs phi", nbinphi2D, phimin, phimax, nbinfhits, 0., fhitsmax); - h_ele_foundHitsVsPt = - new TH2F("h_ele_foundHitsVsPt", "ele track # found hits vs pt", nbinpt2D, 0., ptmax, nbinfhits, 0., fhitsmax); - h_ele_lostHits = new TH1F("h_ele_lostHits", "ele track # lost hits", 5, 0., 5.); - h_ele_lostHits->Sumw2(); - h_ele_lostHits_barrel = new TH1F("h_ele_lostHits_barrel", "ele track # lost hits, barrel", 5, 0., 5.); - h_ele_lostHits_barrel->Sumw2(); - h_ele_lostHits_endcaps = new TH1F("h_ele_lostHits_endcaps", "ele track # lost hits, endcaps", 5, 0., 5.); - h_ele_lostHits_endcaps->Sumw2(); - h_ele_lostHitsVsEta = new TH2F( - "h_ele_lostHitsVsEta", "ele track # lost hits vs eta", nbineta2D, etamin, etamax, nbinlhits, 0., lhitsmax); - h_ele_lostHitsVsPhi = new TH2F( - "h_ele_lostHitsVsPhi", "ele track # lost hits vs eta", nbinphi2D, phimin, phimax, nbinlhits, 0., lhitsmax); - h_ele_lostHitsVsPt = - new TH2F("h_ele_lostHitsVsPt", "ele track # lost hits vs eta", nbinpt2D, 0., ptmax, nbinlhits, 0., lhitsmax); - h_ele_chi2 = new TH1F("h_ele_chi2", "ele track #chi^{2}", 100, 0., 15.); - h_ele_chi2->Sumw2(); - h_ele_chi2_barrel = new TH1F("h_ele_chi2_barrel", "ele track #chi^{2}, barrel", 100, 0., 15.); - h_ele_chi2_barrel->Sumw2(); - h_ele_chi2_endcaps = new TH1F("h_ele_chi2_endcaps", "ele track #chi^{2}, endcaps", 100, 0., 15.); - h_ele_chi2_endcaps->Sumw2(); - h_ele_chi2VsEta = new TH2F("h_ele_chi2VsEta", "ele track #chi^{2} vs eta", nbineta2D, etamin, etamax, 50, 0., 15.); - h_ele_chi2VsPhi = new TH2F("h_ele_chi2VsPhi", "ele track #chi^{2} vs phi", nbinphi2D, phimin, phimax, 50, 0., 15.); - h_ele_chi2VsPt = new TH2F("h_ele_chi2VsPt", "ele track #chi^{2} vs pt", nbinpt2D, 0., ptmax, 50, 0., 15.); - h_ele_PinMnPout = new TH1F("h_ele_PinMnPout", "ele track inner p - outer p, mean of GSF components", nbinp, 0., 200.); - h_ele_PinMnPout->Sumw2(); - h_ele_PinMnPout_mode = - new TH1F("h_ele_PinMnPout_mode", "ele track inner p - outer p, mode of GSF components", nbinp, 0., 100.); - h_ele_PinMnPout_mode->Sumw2(); - h_ele_PinMnPoutVsEta_mode = new TH2F("h_ele_PinMnPoutVsEta_mode", - "ele track inner p - outer p vs eta, mode of GSF components", - nbineta2D, - etamin, - etamax, - nbinp2D, - 0., - 100.); - h_ele_PinMnPoutVsPhi_mode = new TH2F("h_ele_PinMnPoutVsPhi_mode", - "ele track inner p - outer p vs phi, mode of GSF components", - nbinphi2D, - phimin, - phimax, - nbinp2D, - 0., - 100.); - h_ele_PinMnPoutVsPt_mode = new TH2F("h_ele_PinMnPoutVsPt_mode", - "ele track inner p - outer p vs pt, mode of GSF components", - nbinpt2D, - 0., - ptmax, - nbinp2D, - 0., - 100.); - h_ele_PinMnPoutVsE_mode = new TH2F("h_ele_PinMnPoutVsE_mode", - "ele track inner p - outer p vs E, mode of GSF components", - nbinp2D, - 0., - 200., - nbinp2D, - 0., - 100.); - h_ele_PinMnPoutVsChi2_mode = new TH2F("h_ele_PinMnPoutVsChi2_mode", - "ele track inner p - outer p vs track chi2, mode of GSF components", - 50, - 0., - 20., - nbinp2D, - 0., - 100.); - h_ele_outerP = new TH1F("h_ele_outerP", "ele track outer p, mean of GSF components", nbinp, 0., pmax); - h_ele_outerP->Sumw2(); - h_ele_outerP_mode = new TH1F("h_ele_outerP_mode", "ele track outer p, mode of GSF components", nbinp, 0., pmax); - h_ele_outerP_mode->Sumw2(); - h_ele_outerPVsEta_mode = - new TH2F("h_ele_outerPVsEta_mode", "ele track outer p vs eta mode", nbineta2D, etamin, etamax, 50, 0., pmax); - h_ele_outerPt = new TH1F("h_ele_outerPt", "ele track outer p_{T}, mean of GSF components", nbinpt, 0., ptmax); - h_ele_outerPt->Sumw2(); - h_ele_outerPt_mode = - new TH1F("h_ele_outerPt_mode", "ele track outer p_{T}, mode of GSF components", nbinpt, 0., ptmax); - h_ele_outerPt_mode->Sumw2(); - h_ele_outerPtVsEta_mode = new TH2F("h_ele_outerPtVsEta_mode", - "ele track outer p_{T} vs eta, mode of GSF components", - nbineta2D, - etamin, - etamax, - nbinpt2D, - 0., - ptmax); - h_ele_outerPtVsPhi_mode = new TH2F("h_ele_outerPtVsPhi_mode", - "ele track outer p_{T} vs phi, mode of GSF components", - nbinphi2D, - phimin, - phimax, - nbinpt2D, - 0., - ptmax); - h_ele_outerPtVsPt_mode = new TH2F("h_ele_outerPtVsPt_mode", - "ele track outer p_{T} vs pt, mode of GSF components", - nbinpt2D, - 0., - 100., - nbinpt2D, - 0., - ptmax); - - // matched electrons, matching - h_ele_EoP = new TH1F("h_ele_EoP", "ele E/P_{vertex}", nbineop, 0., eopmax); - h_ele_EoP->Sumw2(); - h_ele_EoP_eg = new TH1F("h_ele_EoP_eg", "ele E/P_{vertex}, ecal driven", nbineop, 0., eopmax); - h_ele_EoP_eg->Sumw2(); - h_ele_EoP_barrel = new TH1F("h_ele_EoP_barrel", "ele E/P_{vertex} barrel", nbineop, 0., eopmax); - h_ele_EoP_barrel->Sumw2(); - h_ele_EoP_eg_barrel = new TH1F("h_ele_EoP_eg_barrel", "ele E/P_{vertex}, ecal driven barrel", nbineop, 0., eopmax); - h_ele_EoP_eg_barrel->Sumw2(); - h_ele_EoP_endcaps = new TH1F("h_ele_EoP_endcaps", "ele E/P_{vertex} endcaps", nbineop, 0., eopmax); - h_ele_EoP_endcaps->Sumw2(); - h_ele_EoP_eg_endcaps = new TH1F("h_ele_EoP_eg_endcaps", "ele E/P_{vertex}, ecal driven endcaps", nbineop, 0., eopmax); - h_ele_EoP_eg_endcaps->Sumw2(); - h_ele_EoPVsEta = - new TH2F("h_ele_EoPVsEta", "ele E/P_{vertex} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EoPVsPhi = - new TH2F("h_ele_EoPVsPhi", "ele E/P_{vertex} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EoPVsE = new TH2F("h_ele_EoPVsE", "ele E/P_{vertex} vs E", 50, 0., pmax, 50, 0., 5.); - h_ele_EseedOP = new TH1F("h_ele_EseedOP", "ele E_{seed}/P_{vertex}", nbineop, 0., eopmax); - h_ele_EseedOP->Sumw2(); - h_ele_EseedOP_eg = new TH1F("h_ele_EseedOP_eg", "ele E_{seed}/P_{vertex}, ecal driven", nbineop, 0., eopmax); - h_ele_EseedOP_eg->Sumw2(); - h_ele_EseedOP_barrel = new TH1F("h_ele_EseedOP_barrel", "ele E_{seed}/P_{vertex} barrel", nbineop, 0., eopmax); - h_ele_EseedOP_barrel->Sumw2(); - h_ele_EseedOP_eg_barrel = - new TH1F("h_ele_EseedOP_eg_barrel", "ele E_{seed}/P_{vertex}, ecal driven barrel", nbineop, 0., eopmax); - h_ele_EseedOP_eg_barrel->Sumw2(); - h_ele_EseedOP_endcaps = new TH1F("h_ele_EseedOP_endcaps", "ele E_{seed}/P_{vertex} endcaps", nbineop, 0., eopmax); - h_ele_EseedOP_endcaps->Sumw2(); - h_ele_EseedOP_eg_endcaps = - new TH1F("h_ele_EseedOP_eg_endcaps", "ele E_{seed}/P_{vertex}, ecal driven, endcaps", nbineop, 0., eopmax); - h_ele_EseedOP_eg_endcaps->Sumw2(); - h_ele_EseedOPVsEta = new TH2F( - "h_ele_EseedOPVsEta", "ele E_{seed}/P_{vertex} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EseedOPVsPhi = new TH2F( - "h_ele_EseedOPVsPhi", "ele E_{seed}/P_{vertex} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EseedOPVsE = new TH2F("h_ele_EseedOPVsE", "ele E_{seed}/P_{vertex} vs E", 50, 0., pmax, 50, 0., 5.); - h_ele_EoPout = new TH1F("h_ele_EoPout", "ele E_{seed}/P_{out}", nbineop, 0., eopmax); - h_ele_EoPout->Sumw2(); - h_ele_EoPout_eg = new TH1F("h_ele_EoPout_eg", "ele E_{seed}/P_{out}, ecal driven", nbineop, 0., eopmax); - h_ele_EoPout_eg->Sumw2(); - h_ele_EoPout_barrel = new TH1F("h_ele_EoPout_barrel", "ele E_{seed}/P_{out} barrel", nbineop, 0., eopmax); - h_ele_EoPout_barrel->Sumw2(); - h_ele_EoPout_eg_barrel = - new TH1F("h_ele_EoPout_eg_barrel", "ele E_{seed}/P_{out}, ecal driven, barrel", nbineop, 0., eopmax); - h_ele_EoPout_eg_barrel->Sumw2(); - h_ele_EoPout_endcaps = new TH1F("h_ele_EoPout_endcaps", "ele E_{seed}/P_{out} endcaps", nbineop, 0., eopmax); - h_ele_EoPout_endcaps->Sumw2(); - h_ele_EoPout_eg_endcaps = - new TH1F("h_ele_EoPout_eg_endcaps", "ele E_{seed}/P_{out}, ecal driven, endcaps", nbineop, 0., eopmax); - h_ele_EoPout_eg_endcaps->Sumw2(); - h_ele_EoPoutVsEta = - new TH2F("h_ele_EoPoutVsEta", "ele E_{seed}/P_{out} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EoPoutVsPhi = - new TH2F("h_ele_EoPoutVsPhi", "ele E_{seed}/P_{out} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EoPoutVsE = - new TH2F("h_ele_EoPoutVsE", "ele E_{seed}/P_{out} vs E", nbinp2D, 0., pmax, nbineop2D, 0., eopmaxsht); - h_ele_EeleOPout = new TH1F("h_ele_EeleOPout", "ele E_{ele}/P_{out}", nbineop, 0., eopmax); - h_ele_EeleOPout->Sumw2(); - h_ele_EeleOPout_eg = new TH1F("h_ele_EeleOPout_eg", "ele E_{ele}/P_{out}, ecal driven", nbineop, 0., eopmax); - h_ele_EeleOPout_eg->Sumw2(); - h_ele_EeleOPout_barrel = new TH1F("h_ele_EeleOPout_barrel", "ele E_{ele}/P_{out} barrel", nbineop, 0., eopmax); - h_ele_EeleOPout_barrel->Sumw2(); - h_ele_EeleOPout_eg_barrel = - new TH1F("h_ele_EeleOPout_eg_barrel", "ele E_{ele}/P_{out}, ecal driven, barrel", nbineop, 0., eopmax); - h_ele_EeleOPout_eg_barrel->Sumw2(); - h_ele_EeleOPout_endcaps = new TH1F("h_ele_EeleOPout_endcaps", "ele E_{ele}/P_{out} endcaps", nbineop, 0., eopmax); - h_ele_EeleOPout_endcaps->Sumw2(); - h_ele_EeleOPout_eg_endcaps = - new TH1F("h_ele_EeleOPout_eg_endcaps", "ele E_{ele}/P_{out}, ecal driven, endcaps", nbineop, 0., eopmax); - h_ele_EeleOPout_eg_endcaps->Sumw2(); - h_ele_EeleOPoutVsEta = new TH2F( - "h_ele_EeleOPoutVsEta", "ele E_{ele}/P_{out} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EeleOPoutVsPhi = new TH2F( - "h_ele_EeleOPoutVsPhi", "ele E_{ele}/P_{out} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EeleOPoutVsE = - new TH2F("h_ele_EeleOPoutVsE", "ele E_{ele}/P_{out} vs E", nbinp2D, 0., pmax, nbineop2D, 0., eopmaxsht); - h_ele_dEtaSc_propVtx = new TH1F( - "h_ele_dEtaSc_propVtx", "ele #eta_{sc} - #eta_{tr}, prop from vertex", nbindetamatch, detamatchmin, detamatchmax); - h_ele_dEtaSc_propVtx->Sumw2(); - h_ele_dEtaSc_propVtx_eg = new TH1F("h_ele_dEtaSc_propVtx_eg", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_eg->Sumw2(); - h_ele_dEtaSc_propVtx_barrel = new TH1F("h_ele_dEtaSc_propVtx_barrel", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_barrel->Sumw2(); - h_ele_dEtaSc_propVtx_eg_barrel = new TH1F("h_ele_dEtaSc_propVtx_eg_barrel", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_eg_barrel->Sumw2(); - h_ele_dEtaSc_propVtx_endcaps = new TH1F("h_ele_dEtaSc_propVtx_endcaps", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_endcaps->Sumw2(); - h_ele_dEtaSc_propVtx_eg_endcaps = new TH1F("h_ele_dEtaSc_propVtx_eg_endcaps", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_eg_endcaps->Sumw2(); - h_ele_dEtaScVsEta_propVtx = new TH2F("h_ele_dEtaScVsEta_propVtx", - "ele #eta_{sc} - #eta_{tr} vs eta, prop from vertex", - nbineta2D, - etamin, - etamax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaScVsPhi_propVtx = new TH2F("h_ele_dEtaScVsPhi_propVtx", - "ele #eta_{sc} - #eta_{tr} vs phi, prop from vertex", - nbinphi2D, - phimin, - phimax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaScVsPt_propVtx = new TH2F("h_ele_dEtaScVsPt_propVtx", - "ele #eta_{sc} - #eta_{tr} vs pt, prop from vertex", - nbinpt2D, - 0., - ptmax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dPhiSc_propVtx = new TH1F( - "h_ele_dPhiSc_propVtx", "ele #phi_{sc} - #phi_{tr}, prop from vertex", nbindphimatch, dphimatchmin, dphimatchmax); - h_ele_dPhiSc_propVtx->Sumw2(); - h_ele_dPhiSc_propVtx_eg = new TH1F("h_ele_dPhiSc_propVtx_eg", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_eg->Sumw2(); - h_ele_dPhiSc_propVtx_barrel = new TH1F("h_ele_dPhiSc_propVtx_barrel", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_barrel->Sumw2(); - h_ele_dPhiSc_propVtx_eg_barrel = new TH1F("h_ele_dPhiSc_propVtx_eg_barrel", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_eg_barrel->Sumw2(); - h_ele_dPhiSc_propVtx_endcaps = new TH1F("h_ele_dPhiSc_propVtx_endcaps", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_endcaps->Sumw2(); - h_ele_dPhiSc_propVtx_eg_endcaps = new TH1F("h_ele_dPhiSc_propVtx_eg_endcaps", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_eg_endcaps->Sumw2(); - h_ele_dPhiScVsEta_propVtx = new TH2F("h_ele_dPhiScVsEta_propVtx", - "ele #phi_{sc} - #phi_{tr} vs eta, prop from vertex", - nbineta2D, - etamin, - etamax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiScVsPhi_propVtx = new TH2F("h_ele_dPhiScVsPhi_propVtx", - "ele #phi_{sc} - #phi_{tr} vs phi, prop from vertex", - nbinphi2D, - phimin, - phimax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiScVsPt_propVtx = new TH2F("h_ele_dPhiScVsPt_propVtx", - "ele #phi_{sc} - #phi_{tr} vs pt, prop from vertex", - nbinpt2D, - 0., - ptmax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dEtaCl_propOut = new TH1F("h_ele_dEtaCl_propOut", - "ele #eta_{cl} - #eta_{tr}, prop from outermost", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut->Sumw2(); - h_ele_dEtaCl_propOut_eg = new TH1F("h_ele_dEtaCl_propOut_eg", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_eg->Sumw2(); - h_ele_dEtaCl_propOut_barrel = new TH1F("h_ele_dEtaCl_propOut_barrel", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_barrel->Sumw2(); - h_ele_dEtaCl_propOut_eg_barrel = new TH1F("h_ele_dEtaCl_propOut_eg_barrel", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_eg_barrel->Sumw2(); - h_ele_dEtaCl_propOut_endcaps = new TH1F("h_ele_dEtaCl_propOut_endcaps", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_endcaps->Sumw2(); - h_ele_dEtaCl_propOut_eg_endcaps = new TH1F("h_ele_dEtaCl_propOut_eg_endcaps", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_eg_endcaps->Sumw2(); - h_ele_dEtaClVsEta_propOut = new TH2F("h_ele_dEtaClVsEta_propOut", - "ele #eta_{cl} - #eta_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaClVsPhi_propOut = new TH2F("h_ele_dEtaClVsPhi_propOut", - "ele #eta_{cl} - #eta_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaClVsPt_propOut = new TH2F("h_ele_dEtaScVsPt_propOut", - "ele #eta_{cl} - #eta_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dPhiCl_propOut = new TH1F("h_ele_dPhiCl_propOut", - "ele #phi_{cl} - #phi_{tr}, prop from outermost", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut->Sumw2(); - h_ele_dPhiCl_propOut_eg = new TH1F("h_ele_dPhiCl_propOut_eg", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_eg->Sumw2(); - h_ele_dPhiCl_propOut_barrel = new TH1F("h_ele_dPhiCl_propOut_barrel", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_barrel->Sumw2(); - h_ele_dPhiCl_propOut_eg_barrel = new TH1F("h_ele_dPhiCl_propOut_eg_barrel", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_eg_barrel->Sumw2(); - h_ele_dPhiCl_propOut_endcaps = new TH1F("h_ele_dPhiCl_propOut_endcaps", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_endcaps->Sumw2(); - h_ele_dPhiCl_propOut_eg_endcaps = new TH1F("h_ele_dPhiCl_propOut_eg_endcaps", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_eg_endcaps->Sumw2(); - h_ele_dPhiClVsEta_propOut = new TH2F("h_ele_dPhiClVsEta_propOut", - "ele #phi_{cl} - #phi_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiClVsPhi_propOut = new TH2F("h_ele_dPhiClVsPhi_propOut", - "ele #phi_{cl} - #phi_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiClVsPt_propOut = new TH2F("h_ele_dPhiSClsPt_propOut", - "ele #phi_{cl} - #phi_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dEtaEleCl_propOut = new TH1F("h_ele_dEtaEleCl_propOut", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut->Sumw2(); - h_ele_dEtaEleCl_propOut_eg = new TH1F("h_ele_dEtaEleCl_propOut_eg", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_eg->Sumw2(); - h_ele_dEtaEleCl_propOut_barrel = new TH1F("h_ele_dEtaEleCl_propOut_barrel", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_barrel->Sumw2(); - h_ele_dEtaEleCl_propOut_eg_barrel = new TH1F("h_ele_dEtaEleCl_propOut_eg_barrel", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_eg_barrel->Sumw2(); - h_ele_dEtaEleCl_propOut_endcaps = new TH1F("h_ele_dEtaEleCl_propOut_endcaps", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_endcaps->Sumw2(); - h_ele_dEtaEleCl_propOut_eg_endcaps = - new TH1F("h_ele_dEtaEleCl_propOut_eg_endcaps", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_eg_endcaps->Sumw2(); - h_ele_dEtaEleClVsEta_propOut = new TH2F("h_ele_dEtaEleClVsEta_propOut", - "ele #eta_{EleCl} - #eta_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaEleClVsPhi_propOut = new TH2F("h_ele_dEtaEleClVsPhi_propOut", - "ele #eta_{EleCl} - #eta_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaEleClVsPt_propOut = new TH2F("h_ele_dEtaScVsPt_propOut", - "ele #eta_{EleCl} - #eta_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dPhiEleCl_propOut = new TH1F("h_ele_dPhiEleCl_propOut", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut->Sumw2(); - h_ele_dPhiEleCl_propOut_eg = new TH1F("h_ele_dPhiEleCl_propOut_eg", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_eg->Sumw2(); - h_ele_dPhiEleCl_propOut_barrel = new TH1F("h_ele_dPhiEleCl_propOut_barrel", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_barrel->Sumw2(); - h_ele_dPhiEleCl_propOut_eg_barrel = new TH1F("h_ele_dPhiEleCl_propOut_eg_barrel", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_eg_barrel->Sumw2(); - h_ele_dPhiEleCl_propOut_endcaps = new TH1F("h_ele_dPhiEleCl_propOut_endcaps", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_endcaps->Sumw2(); - h_ele_dPhiEleCl_propOut_eg_endcaps = - new TH1F("h_ele_dPhiEleCl_propOut_eg_endcaps", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_eg_endcaps->Sumw2(); - h_ele_dPhiEleClVsEta_propOut = new TH2F("h_ele_dPhiEleClVsEta_propOut", - "ele #phi_{EleCl} - #phi_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleClVsPhi_propOut = new TH2F("h_ele_dPhiEleClVsPhi_propOut", - "ele #phi_{EleCl} - #phi_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleClVsPt_propOut = new TH2F("h_ele_dPhiSEleClsPt_propOut", - "ele #phi_{EleCl} - #phi_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - - h_ele_HoE = new TH1F("h_ele_HoE", "ele hadronic energy / em energy", nbinhoe, hoemin, hoemax); - h_ele_HoE->Sumw2(); - h_ele_HoE_eg = new TH1F("h_ele_HoE_eg", "ele hadronic energy / em energy, ecal driven", nbinhoe, hoemin, hoemax); - h_ele_HoE_eg->Sumw2(); - h_ele_HoE_barrel = new TH1F("h_ele_HoE_barrel", "ele hadronic energy / em energy, barrel", nbinhoe, hoemin, hoemax); - h_ele_HoE_barrel->Sumw2(); - h_ele_HoE_eg_barrel = - new TH1F("h_ele_HoE_eg_barrel", "ele hadronic energy / em energy, ecal driven, barrel", nbinhoe, hoemin, hoemax); - h_ele_HoE_eg_barrel->Sumw2(); - h_ele_HoE_endcaps = - new TH1F("h_ele_HoE_endcaps", "ele hadronic energy / em energy, endcaps", nbinhoe, hoemin, hoemax); - h_ele_HoE_endcaps->Sumw2(); - h_ele_HoE_eg_endcaps = new TH1F( - "h_ele_HoE_eg_endcaps", "ele hadronic energy / em energy, ecal driven, endcaps", nbinhoe, hoemin, hoemax); - h_ele_HoE_eg_endcaps->Sumw2(); - h_ele_HoE_fiducial = - new TH1F("h_ele_HoE_fiducial", "ele hadronic energy / em energy, fiducial region", nbinhoe, hoemin, hoemax); - h_ele_HoE_fiducial->Sumw2(); - h_ele_HoEVsEta = new TH2F( - "h_ele_HoEVsEta", "ele hadronic energy / em energy vs eta", nbineta, etamin, etamax, nbinhoe, hoemin, hoemax); - h_ele_HoEVsPhi = new TH2F( - "h_ele_HoEVsPhi", "ele hadronic energy / em energy vs phi", nbinphi2D, phimin, phimax, nbinhoe, hoemin, hoemax); - h_ele_HoEVsE = - new TH2F("h_ele_HoEVsE", "ele hadronic energy / em energy vs E", nbinp, 0., 300., nbinhoe, hoemin, hoemax); - - h_ele_seed_dphi2_ = new TH1F("h_ele_seedDphi2", "ele seed dphi 2nd layer", 50, -0.003, +0.003); - h_ele_seed_dphi2_->Sumw2(); - h_ele_seed_dphi2VsEta_ = - new TH2F("h_ele_seedDphi2VsEta", "ele seed dphi 2nd layer vs eta", nbineta2D, etamin, etamax, 50, -0.003, +0.003); - h_ele_seed_dphi2VsPt_ = - new TH2F("h_ele_seedDphi2VsPt", "ele seed dphi 2nd layer vs pt", nbinpt2D, 0., ptmax, 50, -0.003, +0.003); - h_ele_seed_drz2_ = new TH1F("h_ele_seedDrz2", "ele seed dr (dz) 2nd layer", 50, -0.03, +0.03); - h_ele_seed_drz2_->Sumw2(); - h_ele_seed_drz2VsEta_ = - new TH2F("h_ele_seedDrz2VsEta", "ele seed dr/dz 2nd layer vs eta", nbineta2D, etamin, etamax, 50, -0.03, +0.03); - h_ele_seed_drz2VsPt_ = - new TH2F("h_ele_seedDrz2VsPt", "ele seed dr/dz 2nd layer vs pt", nbinpt2D, 0., ptmax, 50, -0.03, +0.03); - h_ele_seed_subdet2_ = new TH1F("h_ele_seedSubdet2", "ele seed subdet 2nd layer", 10, 0., 10.); - h_ele_seed_subdet2_->Sumw2(); - - // classes - h_ele_classes = new TH1F("h_ele_classes", "ele classes", 20, 0.0, 20.); - h_ele_classes->Sumw2(); - h_ele_eta = new TH1F("h_ele_eta", "ele electron eta", nbineta / 2, 0.0, etamax); - h_ele_eta->Sumw2(); - h_ele_eta_golden = new TH1F("h_ele_eta_golden", "ele electron eta golden", nbineta / 2, 0.0, etamax); - h_ele_eta_golden->Sumw2(); - h_ele_eta_bbrem = new TH1F("h_ele_eta_bbrem", "ele electron eta bbrem", nbineta / 2, 0.0, etamax); - h_ele_eta_bbrem->Sumw2(); - h_ele_eta_narrow = new TH1F("h_ele_eta_narrow", "ele electron eta narrow", nbineta / 2, 0.0, etamax); - h_ele_eta_narrow->Sumw2(); - h_ele_eta_shower = new TH1F("h_ele_eta_show", "ele electron eta showering", nbineta / 2, 0.0, etamax); - h_ele_eta_shower->Sumw2(); - h_ele_PinVsPoutGolden_mode = new TH2F("h_ele_PinVsPoutGolden_mode", - "ele track inner p vs outer p vs eta, golden, mode of GSF components", - nbinp2D, - 0., - pmax, - 50, - 0., - pmax); - h_ele_PinVsPoutShowering_mode = new TH2F("h_ele_PinVsPoutShowering_mode", - "ele track inner p vs outer p vs eta, showering, mode of GSF components", - nbinp2D, - 0., - pmax, - 50, - 0., - pmax); - h_ele_PinVsPoutGolden_mean = new TH2F("h_ele_PinVsPoutGolden_mean", - "ele track inner p vs outer p vs eta, golden, mean of GSF components", - nbinp2D, - 0., - pmax, - 50, - 0., - pmax); - h_ele_PinVsPoutShowering_mean = new TH2F("h_ele_PinVsPoutShowering_mean", - "ele track inner p vs outer p vs eta, showering, mean of GSF components", - nbinp2D, - 0., - pmax, - 50, - 0., - pmax); - h_ele_PtinVsPtoutGolden_mode = new TH2F("h_ele_PtinVsPtoutGolden_mode", - "ele track inner pt vs outer pt vs eta, golden, mode of GSF components", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - h_ele_PtinVsPtoutShowering_mode = new TH2F("h_ele_PtinVsPtoutShowering_mode", - "ele track inner pt vs outer pt vs eta, showering, mode of GSF components", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - h_ele_PtinVsPtoutGolden_mean = new TH2F("h_ele_PtinVsPtoutGolden_mean", - "ele track inner pt vs outer pt vs eta, golden, mean of GSF components", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - h_ele_PtinVsPtoutShowering_mean = new TH2F("h_ele_PtinVsPtoutShowering_mean", - "ele track inner pt vs outer pt vs eta, showering, mean of GSF components", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - histSclEoEtrueGolden_barrel = new TH1F("h_scl_EoEtrue_golden_barrel", - "ele supercluster energy / gen energy, golden, barrel", - nbinpoptrue, - poptruemin, - poptruemax); - histSclEoEtrueGolden_barrel->Sumw2(); - histSclEoEtrueGolden_endcaps = new TH1F("h_scl_EoEtrue_golden_endcaps", - "ele supercluster energy / gen energy, golden, endcaps", - nbinpoptrue, - poptruemin, - poptruemax); - histSclEoEtrueGolden_endcaps->Sumw2(); - histSclEoEtrueShowering_barrel = new TH1F("h_scl_EoEtrue_showering_barrel", - "ele supercluster energy / gen energy, showering, barrel", - nbinpoptrue, - poptruemin, - poptruemax); - histSclEoEtrueShowering_barrel->Sumw2(); - histSclEoEtrueShowering_endcaps = new TH1F("h_scl_EoEtrue_showering_endcaps", - "ele supercluster energy / gen energy, showering, endcaps", - nbinpoptrue, - poptruemin, - poptruemax); - histSclEoEtrueShowering_endcaps->Sumw2(); - - // isolation - h_ele_tkSumPt_dr03 = new TH1F("h_ele_tkSumPt_dr03", "tk isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_tkSumPt_dr03->Sumw2(); - h_ele_ecalRecHitSumEt_dr03 = new TH1F("h_ele_ecalRecHitSumEt_dr03", "ecal isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_ecalRecHitSumEt_dr03->Sumw2(); - h_ele_hcalDepth1TowerSumEt_dr03 = - new TH1F("h_ele_hcalDepth1TowerSumEt_dr03", "hcal depth1 isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_hcalDepth1TowerSumEt_dr03->Sumw2(); - h_ele_hcalDepth2TowerSumEt_dr03 = - new TH1F("h_ele_hcalDepth2TowerSumEt_dr03", "hcal depth2 isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_hcalDepth2TowerSumEt_dr03->Sumw2(); - h_ele_tkSumPt_dr04 = new TH1F("h_ele_tkSumPt_dr04", "tk isolation sum, dR=0.4", 100, 0.0, 20.); - h_ele_tkSumPt_dr04->Sumw2(); - h_ele_ecalRecHitSumEt_dr04 = new TH1F("h_ele_ecalRecHitSumEt_dr04", "ecal isolation sum, dR=0.4", 100, 0.0, 20.); - h_ele_ecalRecHitSumEt_dr04->Sumw2(); - h_ele_hcalDepth1TowerSumEt_dr04 = - new TH1F("h_ele_hcalDepth1TowerSumEt_dr04", "hcal depth1 isolation sum, dR=0.4", 100, 0.0, 20.); - h_ele_hcalDepth1TowerSumEt_dr04->Sumw2(); - h_ele_hcalDepth2TowerSumEt_dr04 = - new TH1F("h_ele_hcalDepth2TowerSumEt_dr04", "hcal depth2 isolation sum, dR=0.4", 100, 0.0, 20.); - h_ele_hcalDepth2TowerSumEt_dr04->Sumw2(); - - // fbrem - h_ele_fbrem = new TH1F("h_ele_fbrem", "ele brem fraction, mode of GSF components", 100, 0., 1.); - h_ele_fbrem->Sumw2(); - h_ele_fbrem_eg = new TH1F("h_ele_fbrem_eg", "ele brem fraction, mode of GSF components, ecal driven", 100, 0., 1.); - h_ele_fbrem_eg->Sumw2(); - h_ele_fbremVsEta_mode = new TProfile("h_ele_fbremvsEtamode", - "mean ele brem fraction vs eta, mode of GSF components", - nbineta2D, - etamin, - etamax, - 0., - 1.); - h_ele_fbremVsEta_mean = new TProfile("h_ele_fbremvsEtamean", - "mean ele brem fraction vs eta, mean of GSF components", - nbineta2D, - etamin, - etamax, - 0., - 1.); - - // e/g et pflow electrons - h_ele_mva = new TH1F("h_ele_mva", "ele identification mva", 100, -1., 1.); - h_ele_mva->Sumw2(); - h_ele_mva_eg = new TH1F("h_ele_mva_eg", "ele identification mva, ecal driven", 100, -1., 1.); - h_ele_mva_eg->Sumw2(); - h_ele_provenance = new TH1F("h_ele_provenance", "ele provenance", 5, -2., 3.); - h_ele_provenance->Sumw2(); - - // histos titles - h_mcNum->GetXaxis()->SetTitle("N_{gen}"); - h_mcNum->GetYaxis()->SetTitle("Events"); - h_eleNum->GetXaxis()->SetTitle("# gen ele"); - h_eleNum->GetYaxis()->SetTitle("Events"); - h_gamNum->GetXaxis()->SetTitle("N_{gen #gamma}"); - h_gamNum->GetYaxis()->SetTitle("Events"); - h_simEta->GetXaxis()->SetTitle("#eta"); - h_simEta->GetYaxis()->SetTitle("Events"); - h_simP->GetXaxis()->SetTitle("p (GeV/c)"); - h_simP->GetYaxis()->SetTitle("Events"); - h_ele_foundHits->GetXaxis()->SetTitle("N_{hits}"); - h_ele_foundHits->GetYaxis()->SetTitle("Events"); - h_ele_foundHits_barrel->GetXaxis()->SetTitle("N_{hits}"); - h_ele_foundHits_barrel->GetYaxis()->SetTitle("Events"); - h_ele_foundHits_endcaps->GetXaxis()->SetTitle("N_{hits}"); - h_ele_foundHits_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_ambiguousTracks->GetXaxis()->SetTitle("N_{ambiguous tracks}"); - h_ele_ambiguousTracks->GetYaxis()->SetTitle("Events"); - h_ele_lostHits->GetXaxis()->SetTitle("N_{lost hits}"); - h_ele_lostHits->GetYaxis()->SetTitle("Events"); - h_ele_lostHits_barrel->GetXaxis()->SetTitle("N_{lost hits}"); - h_ele_lostHits_barrel->GetYaxis()->SetTitle("Events"); - h_ele_lostHits_endcaps->GetXaxis()->SetTitle("N_{lost hits}"); - h_ele_lostHits_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_chi2->GetXaxis()->SetTitle("#Chi^{2}"); - h_ele_chi2->GetYaxis()->SetTitle("Events"); - h_ele_chi2_barrel->GetXaxis()->SetTitle("#Chi^{2}"); - h_ele_chi2_barrel->GetYaxis()->SetTitle("Events"); - h_ele_chi2_endcaps->GetXaxis()->SetTitle("#Chi^{2}"); - h_ele_chi2_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_charge->GetXaxis()->SetTitle("charge"); - h_ele_charge->GetYaxis()->SetTitle("Events"); - h_ele_vertexP->GetXaxis()->SetTitle("p_{vertex} (GeV/c)"); - h_ele_vertexP->GetYaxis()->SetTitle("Events"); - h_ele_vertexPt->GetXaxis()->SetTitle("p_{T vertex} (GeV/c)"); - h_ele_vertexPt->GetYaxis()->SetTitle("Events"); - h_ele_Et->GetXaxis()->SetTitle("E_{T} (GeV)"); - h_ele_Et->GetYaxis()->SetTitle("Events"); - h_ele_Et_all->GetXaxis()->SetTitle("E_{T} (GeV)"); - h_ele_Et_all->GetYaxis()->SetTitle("Events"); - h_ele_vertexEta->GetXaxis()->SetTitle("#eta"); - h_ele_vertexEta->GetYaxis()->SetTitle("Events"); - h_ele_vertexPhi->GetXaxis()->SetTitle("#phi (rad)"); - h_ele_vertexPhi->GetYaxis()->SetTitle("Events"); - h_ele_PoPtrue->GetXaxis()->SetTitle("P/P_{gen}"); - h_ele_PoPtrue->GetYaxis()->SetTitle("Events"); - h_ele_PoPtrue_barrel->GetXaxis()->SetTitle("P/P_{gen}"); - h_ele_PoPtrue_barrel->GetYaxis()->SetTitle("Events"); - h_ele_PoPtrue_endcaps->GetXaxis()->SetTitle("P/P_{gen}"); - h_ele_PoPtrue_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_PoPtrue_golden_barrel->GetXaxis()->SetTitle("P/P_{gen}"); - h_ele_PoPtrue_golden_barrel->GetYaxis()->SetTitle("Events"); - h_ele_PoPtrue_showering_barrel->GetXaxis()->SetTitle("P/P_{gen}"); - h_ele_PoPtrue_showering_barrel->GetYaxis()->SetTitle("Events"); - h_ele_PoPtrue_golden_endcaps->GetXaxis()->SetTitle("P/P_{gen}"); - h_ele_PoPtrue_golden_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_PoPtrue_showering_endcaps->GetXaxis()->SetTitle("P/P_{gen}"); - h_ele_PoPtrue_showering_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_PtoPttrue->GetXaxis()->SetTitle("P_{T}/P_{T}^{gen}"); - h_ele_PtoPttrue->GetYaxis()->SetTitle("Events"); - h_ele_PtoPttrue_barrel->GetXaxis()->SetTitle("P_{T}/P_{T}^{gen}"); - h_ele_PtoPttrue_barrel->GetYaxis()->SetTitle("Events"); - h_ele_PtoPttrue_endcaps->GetXaxis()->SetTitle("P_{T}/P_{T}^{gen}"); - h_ele_PtoPttrue_endcaps->GetYaxis()->SetTitle("Events"); - histSclEoEtrue_barrel->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrue_barrel->GetYaxis()->SetTitle("Events"); - histSclEoEtrue_endcaps->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrue_endcaps->GetYaxis()->SetTitle("Events"); - histSclEoEtrueGolden_barrel->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrueGolden_barrel->GetYaxis()->SetTitle("Events"); - histSclEoEtrueShowering_barrel->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrueShowering_barrel->GetYaxis()->SetTitle("Events"); - histSclEoEtrueGolden_endcaps->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrueGolden_endcaps->GetYaxis()->SetTitle("Events"); - histSclEoEtrueShowering_endcaps->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrueShowering_endcaps->GetYaxis()->SetTitle("Events"); - histSclEoEtrue_barrel_etagap->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrue_barrel_etagap->GetYaxis()->SetTitle("Events"); - histSclEoEtrue_barrel_phigap->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrue_barrel_phigap->GetYaxis()->SetTitle("Events"); - histSclEoEtrue_ebeegap->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrue_ebeegap->GetYaxis()->SetTitle("Events"); - histSclEoEtrue_endcaps_deegap->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrue_endcaps_deegap->GetYaxis()->SetTitle("Events"); - histSclEoEtrue_endcaps_ringgap->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrue_endcaps_ringgap->GetYaxis()->SetTitle("Events"); - histSclEoEtrue_barrel_new->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrue_barrel_new->GetYaxis()->SetTitle("Events"); - histSclEoEtrue_endcaps_new->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrue_endcaps_new->GetYaxis()->SetTitle("Events"); - histSclEoEtrue_barrel_etagap_new->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrue_barrel_etagap_new->GetYaxis()->SetTitle("Events"); - histSclEoEtrue_barrel_phigap_new->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrue_barrel_phigap_new->GetYaxis()->SetTitle("Events"); - histSclEoEtrue_ebeegap_new->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrue_ebeegap_new->GetYaxis()->SetTitle("Events"); - histSclEoEtrue_endcaps_deegap_new->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrue_endcaps_deegap_new->GetYaxis()->SetTitle("Events"); - histSclEoEtrue_endcaps_ringgap_new->GetXaxis()->SetTitle("E/E_{gen}"); - histSclEoEtrue_endcaps_ringgap_new->GetYaxis()->SetTitle("Events"); - histSclSigEtaEta_->GetXaxis()->SetTitle("#sigma_{#eta #eta}"); - histSclSigEtaEta_->GetYaxis()->SetTitle("Events"); - histSclSigEtaEta_barrel_->GetXaxis()->SetTitle("#sigma_{#eta #eta}"); - histSclSigEtaEta_barrel_->GetYaxis()->SetTitle("Events"); - histSclSigEtaEta_endcaps_->GetXaxis()->SetTitle("#sigma_{#eta #eta}"); - histSclSigEtaEta_endcaps_->GetYaxis()->SetTitle("Events"); - histSclSigIEtaIEta_->GetXaxis()->SetTitle("#sigma_{i#eta i#eta}"); - histSclSigIEtaIEta_->GetYaxis()->SetTitle("Events"); - histSclSigIEtaIEta_barrel_->GetXaxis()->SetTitle("#sigma_{i#eta i#eta}"); - histSclSigIEtaIEta_barrel_->GetYaxis()->SetTitle("Events"); - histSclSigIEtaIEta_endcaps_->GetXaxis()->SetTitle("#sigma_{i#eta i#eta}"); - histSclSigIEtaIEta_endcaps_->GetYaxis()->SetTitle("Events"); - histSclE1x5_->GetXaxis()->SetTitle("E1x5 (GeV)"); - histSclE1x5_->GetYaxis()->SetTitle("Events"); - histSclE1x5_barrel_->GetXaxis()->SetTitle("E1x5 (GeV)"); - histSclE1x5_barrel_->GetYaxis()->SetTitle("Events"); - histSclE1x5_endcaps_->GetXaxis()->SetTitle("E1x5 (GeV)"); - histSclE1x5_endcaps_->GetYaxis()->SetTitle("Events"); - histSclE2x5max_->GetXaxis()->SetTitle("E2x5 (GeV)"); - histSclE2x5max_->GetYaxis()->SetTitle("Events"); - histSclE2x5max_barrel_->GetXaxis()->SetTitle("E2x5 (GeV)"); - histSclE2x5max_barrel_->GetYaxis()->SetTitle("Events"); - histSclE2x5max_endcaps_->GetXaxis()->SetTitle("E2x5 (GeV)"); - histSclE2x5max_endcaps_->GetYaxis()->SetTitle("Events"); - histSclE5x5_->GetXaxis()->SetTitle("E5x5 (GeV)"); - histSclE5x5_->GetYaxis()->SetTitle("Events"); - histSclE5x5_barrel_->GetXaxis()->SetTitle("E5x5 (GeV)"); - histSclE5x5_barrel_->GetYaxis()->SetTitle("Events"); - histSclE5x5_endcaps_->GetXaxis()->SetTitle("E5x5 (GeV)"); - histSclE5x5_endcaps_->GetYaxis()->SetTitle("Events"); - histSclEoEtruePfVsEg->GetXaxis()->SetTitle("E/E_{gen} (e/g)"); - histSclEoEtruePfVsEg->GetYaxis()->SetTitle("E/E_{gen} (pflow)"); - h_ele_ChargeMnChargeTrue->GetXaxis()->SetTitle("q_{rec} - q_{gen}"); - h_ele_ChargeMnChargeTrue->GetYaxis()->SetTitle("Events"); - h_ele_EtaMnEtaTrue->GetXaxis()->SetTitle("#eta_{rec} - #eta_{gen}"); - h_ele_EtaMnEtaTrue->GetYaxis()->SetTitle("Events"); - h_ele_EtaMnEtaTrue_barrel->GetXaxis()->SetTitle("#eta_{rec} - #eta_{gen}"); - h_ele_EtaMnEtaTrue_barrel->GetYaxis()->SetTitle("Events"); - h_ele_EtaMnEtaTrue_endcaps->GetXaxis()->SetTitle("#eta_{rec} - #eta_{gen}"); - h_ele_EtaMnEtaTrue_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_PhiMnPhiTrue->GetXaxis()->SetTitle("#phi_{rec} - #phi_{gen} (rad)"); - h_ele_PhiMnPhiTrue->GetYaxis()->SetTitle("Events"); - h_ele_PhiMnPhiTrue_barrel->GetXaxis()->SetTitle("#phi_{rec} - #phi_{gen} (rad)"); - h_ele_PhiMnPhiTrue_barrel->GetYaxis()->SetTitle("Events"); - h_ele_PhiMnPhiTrue_endcaps->GetXaxis()->SetTitle("#phi_{rec} - #phi_{gen} (rad)"); - h_ele_PhiMnPhiTrue_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_PinMnPout->GetXaxis()->SetTitle("P_{vertex} - P_{out} (GeV/c)"); - h_ele_PinMnPout->GetYaxis()->SetTitle("Events"); - h_ele_PinMnPout_mode->GetXaxis()->SetTitle("P_{vertex} - P_{out}, mode of GSF components (GeV/c)"); - h_ele_PinMnPout_mode->GetYaxis()->SetTitle("Events"); - h_ele_outerP->GetXaxis()->SetTitle("P_{out} (GeV/c)"); - h_ele_outerP->GetYaxis()->SetTitle("Events"); - h_ele_outerP_mode->GetXaxis()->SetTitle("P_{out} (GeV/c)"); - h_ele_outerP_mode->GetYaxis()->SetTitle("Events"); - h_ele_outerPt->GetXaxis()->SetTitle("P_{T out} (GeV/c)"); - h_ele_outerPt->GetYaxis()->SetTitle("Events"); - h_ele_outerPt_mode->GetXaxis()->SetTitle("P_{T out} (GeV/c)"); - h_ele_outerPt_mode->GetYaxis()->SetTitle("Events"); - h_ele_EoP->GetXaxis()->SetTitle("E/P_{vertex}"); - h_ele_EoP->GetYaxis()->SetTitle("Events"); - h_ele_EseedOP->GetXaxis()->SetTitle("E_{seed}/P_{vertex}"); - h_ele_EseedOP->GetYaxis()->SetTitle("Events"); - h_ele_EoPout->GetXaxis()->SetTitle("E_{seed}/P_{out}"); - h_ele_EoPout->GetYaxis()->SetTitle("Events"); - h_ele_EeleOPout->GetXaxis()->SetTitle("E_{ele}/P_{out}"); - h_ele_EeleOPout->GetYaxis()->SetTitle("Events"); - h_ele_EoP_barrel->GetXaxis()->SetTitle("E/P_{vertex}"); - h_ele_EoP_barrel->GetYaxis()->SetTitle("Events"); - h_ele_EseedOP_barrel->GetXaxis()->SetTitle("E_{seed}/P_{vertex}"); - h_ele_EseedOP_barrel->GetYaxis()->SetTitle("Events"); - h_ele_EoPout_barrel->GetXaxis()->SetTitle("E_{seed}/P_{out}"); - h_ele_EoPout_barrel->GetYaxis()->SetTitle("Events"); - h_ele_EeleOPout_barrel->GetXaxis()->SetTitle("E_{ele}/P_{out}"); - h_ele_EeleOPout_barrel->GetYaxis()->SetTitle("Events"); - h_ele_EoP_endcaps->GetXaxis()->SetTitle("E/P_{vertex}"); - h_ele_EoP_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_EseedOP_endcaps->GetXaxis()->SetTitle("E_{seed}/P_{vertex}"); - h_ele_EseedOP_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_EoPout_endcaps->GetXaxis()->SetTitle("E_{seed}/P_{out}"); - h_ele_EoPout_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_EeleOPout_endcaps->GetXaxis()->SetTitle("E_{ele}/P_{out}"); - h_ele_EeleOPout_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_vertexX->GetXaxis()->SetTitle("x (cm)"); - h_ele_vertexX->GetYaxis()->SetTitle("Events"); - h_ele_vertexY->GetXaxis()->SetTitle("y (cm)"); - h_ele_vertexY->GetYaxis()->SetTitle("Events"); - h_ele_vertexZ->GetXaxis()->SetTitle("z (cm)"); - h_ele_vertexZ->GetYaxis()->SetTitle("Events"); - h_ele_vertexTIP->GetXaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIP->GetYaxis()->SetTitle("Events"); - h_ele_TIP_all->GetXaxis()->SetTitle("r_{T} (cm)"); - h_ele_TIP_all->GetYaxis()->SetTitle("Events"); - h_ele_vertexTIPVsEta->GetYaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIPVsEta->GetXaxis()->SetTitle("#eta"); - h_ele_vertexTIPVsPhi->GetYaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIPVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - h_ele_vertexTIPVsPt->GetYaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIPVsPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_dEtaSc_propVtx->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx->GetYaxis()->SetTitle("Events"); - h_ele_dEtaCl_propOut->GetXaxis()->SetTitle("#eta_{seedcl} - #eta_{tr}"); - h_ele_dEtaCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dEtaEleCl_propOut->GetXaxis()->SetTitle("#eta_{elecl} - #eta_{tr}"); - h_ele_dEtaEleCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dPhiSc_propVtx->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiSc_propVtx->GetYaxis()->SetTitle("Events"); - h_ele_dPhiCl_propOut->GetXaxis()->SetTitle("#phi_{seedcl} - #phi_{tr} (rad)"); - h_ele_dPhiCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dPhiEleCl_propOut->GetXaxis()->SetTitle("#phi_{elecl} - #phi_{tr} (rad)"); - h_ele_dPhiEleCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dEtaSc_propVtx_barrel->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dEtaCl_propOut_barrel->GetXaxis()->SetTitle("#eta_{seedcl} - #eta_{tr}"); - h_ele_dEtaCl_propOut_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dEtaEleCl_propOut_barrel->GetXaxis()->SetTitle("#eta_{elecl} - #eta_{tr}"); - h_ele_dEtaEleCl_propOut_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dPhiSc_propVtx_barrel->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiSc_propVtx_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dPhiCl_propOut_barrel->GetXaxis()->SetTitle("#phi_{seedcl} - #phi_{tr} (rad)"); - h_ele_dPhiCl_propOut_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dPhiEleCl_propOut_barrel->GetXaxis()->SetTitle("#phi_{elecl} - #phi_{tr} (rad)"); - h_ele_dPhiEleCl_propOut_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dEtaSc_propVtx_endcaps->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dEtaCl_propOut_endcaps->GetXaxis()->SetTitle("#eta_{seedcl} - #eta_{tr}"); - h_ele_dEtaCl_propOut_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dEtaEleCl_propOut_endcaps->GetXaxis()->SetTitle("#eta_{elecl} - #eta_{tr}"); - h_ele_dEtaEleCl_propOut_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dPhiSc_propVtx_endcaps->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiSc_propVtx_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dPhiCl_propOut_endcaps->GetXaxis()->SetTitle("#phi_{seedcl} - #phi_{tr} (rad)"); - h_ele_dPhiCl_propOut_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dPhiEleCl_propOut_endcaps->GetXaxis()->SetTitle("#phi_{elecl} - #phi_{tr} (rad)"); - h_ele_dPhiEleCl_propOut_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_HoE->GetXaxis()->SetTitle("H/E"); - h_ele_HoE->GetYaxis()->SetTitle("Events"); - h_ele_HoE_barrel->GetXaxis()->SetTitle("H/E"); - h_ele_HoE_barrel->GetYaxis()->SetTitle("Events"); - h_ele_HoE_endcaps->GetXaxis()->SetTitle("H/E"); - h_ele_HoE_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_HoE_fiducial->GetXaxis()->SetTitle("H/E"); - h_ele_HoE_fiducial->GetYaxis()->SetTitle("Events"); - h_ele_fbrem->GetXaxis()->SetTitle("P_{in} - P_{out} / P_{in}"); - h_ele_fbrem->GetYaxis()->SetTitle("Events"); - h_ele_seed_dphi2_->GetXaxis()->SetTitle("#phi_{hit}-#phi_{pred} (rad)"); - h_ele_seed_dphi2_->GetYaxis()->SetTitle("Events"); - h_ele_seed_drz2_->GetXaxis()->SetTitle("r(z)_{hit}-r(z)_{pred} (cm)"); - h_ele_seed_drz2_->GetYaxis()->SetTitle("Events"); - h_ele_seed_subdet2_->GetXaxis()->SetTitle("2nd hit subdet Id"); - h_ele_seed_subdet2_->GetYaxis()->SetTitle("Events"); - h_ele_classes->GetXaxis()->SetTitle("class Id"); - h_ele_classes->GetYaxis()->SetTitle("Events"); - h_ele_EoverP_all->GetXaxis()->SetTitle("E/P_{vertex}"); - h_ele_EoverP_all->GetYaxis()->SetTitle("Events"); - h_ele_EseedOP_all->GetXaxis()->SetTitle("E_{seed}/P_{vertex}"); - h_ele_EseedOP_all->GetYaxis()->SetTitle("Events"); - h_ele_EoPout_all->GetXaxis()->SetTitle("E_{seed}/P_{out}"); - h_ele_EoPout_all->GetYaxis()->SetTitle("Events"); - h_ele_EeleOPout_all->GetXaxis()->SetTitle("E_{ele}/P_{out}"); - h_ele_EeleOPout_all->GetYaxis()->SetTitle("Events"); - h_ele_dEtaSc_propVtx_all->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx_all->GetYaxis()->SetTitle("Events"); - h_ele_dPhiSc_propVtx_all->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiSc_propVtx_all->GetYaxis()->SetTitle("Events"); - h_ele_dEtaCl_propOut_all->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaCl_propOut_all->GetYaxis()->SetTitle("Events"); - h_ele_dPhiCl_propOut_all->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiCl_propOut_all->GetYaxis()->SetTitle("Events"); - h_ele_HoE_all->GetXaxis()->SetTitle("H/E"); - h_ele_HoE_all->GetYaxis()->SetTitle("Events"); - h_ele_mee_all->GetXaxis()->SetTitle("m_{ee} (GeV/c^{2})"); - h_ele_mee_all->GetYaxis()->SetTitle("Events"); - h_ele_mee_os->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os->GetYaxis()->SetTitle("Events"); - h_ele_mee_os_ebeb->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os_ebeb->GetYaxis()->SetTitle("Events"); - h_ele_mee_os_ebee->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os_ebee->GetYaxis()->SetTitle("Events"); - h_ele_mee_os_eeee->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os_eeee->GetYaxis()->SetTitle("Events"); - h_ele_mee_os_gg->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os_gg->GetYaxis()->SetTitle("Events"); - h_ele_mee_os_gb->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os_gb->GetYaxis()->SetTitle("Events"); - h_ele_mee_os_bb->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os_bb->GetYaxis()->SetTitle("Events"); - h_ele_E2mnE1vsMee_all->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_E2mnE1vsMee_all->GetYaxis()->SetTitle("E2 - E1 (GeV)"); - h_ele_E2mnE1vsMee_egeg_all->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_E2mnE1vsMee_egeg_all->GetYaxis()->SetTitle("E2 - E1 (GeV)"); - histNum_->GetXaxis()->SetTitle("N_{ele}"); - histNum_->GetYaxis()->SetTitle("Events"); - h_ele_fbremVsEta_mode->GetXaxis()->SetTitle("#eta"); - h_ele_fbremVsEta_mean->GetXaxis()->SetTitle("#eta"); -} - -void GsfElectronMCAnalyzer::endJob() { - histfile_->cd(); - - std::cout << "[GsfElectronMCAnalyzer] efficiency calculation " << std::endl; - // efficiency vs eta - TH1F *h_ele_etaEff = (TH1F *)h_ele_simEta_matched->Clone("h_ele_etaEff"); - h_ele_etaEff->Reset(); - h_ele_etaEff->Divide(h_ele_simEta_matched, h_simEta, 1, 1, "b"); - h_ele_etaEff->Print(); - h_ele_etaEff->GetXaxis()->SetTitle("#eta"); - h_ele_etaEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs z - TH1F *h_ele_zEff = (TH1F *)h_ele_simZ_matched->Clone("h_ele_zEff"); - h_ele_zEff->Reset(); - h_ele_zEff->Divide(h_ele_simZ_matched, h_simZ, 1, 1, "b"); - h_ele_zEff->Print(); - h_ele_zEff->GetXaxis()->SetTitle("z (cm)"); - h_ele_zEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs |eta| - TH1F *h_ele_absetaEff = (TH1F *)h_ele_simAbsEta_matched->Clone("h_ele_absetaEff"); - h_ele_absetaEff->Reset(); - h_ele_absetaEff->Divide(h_ele_simAbsEta_matched, h_simAbsEta, 1, 1, "b"); - h_ele_absetaEff->GetXaxis()->SetTitle("|#eta|"); - h_ele_absetaEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs pt - TH1F *h_ele_ptEff = (TH1F *)h_ele_simPt_matched->Clone("h_ele_ptEff"); - h_ele_ptEff->Reset(); - h_ele_ptEff->Divide(h_ele_simPt_matched, h_simPt, 1, 1, "b"); - h_ele_ptEff->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_ptEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs phi - TH1F *h_ele_phiEff = (TH1F *)h_ele_simPhi_matched->Clone("h_ele_phiEff"); - h_ele_phiEff->Reset(); - h_ele_phiEff->Divide(h_ele_simPhi_matched, h_simPhi, 1, 1, "b"); - h_ele_phiEff->GetXaxis()->SetTitle("#phi (rad)"); - h_ele_phiEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs pt eta - TH2F *h_ele_ptEtaEff = (TH2F *)h_ele_simPtEta_matched->Clone("h_ele_ptEtaEff"); - h_ele_ptEtaEff->Reset(); - h_ele_ptEtaEff->Divide(h_ele_simPtEta_matched, h_simPtEta, 1, 1, "b"); - h_ele_ptEtaEff->GetYaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_ptEtaEff->GetXaxis()->SetTitle("#eta"); - - std::cout << "[GsfElectronMCAnalyzer] q-misid calculation " << std::endl; - // misid vs eta - TH1F *h_ele_etaQmisid = (TH1F *)h_ele_simEta_matched_qmisid->Clone("h_ele_etaQmisid"); - h_ele_etaQmisid->Reset(); - h_ele_etaQmisid->Divide(h_ele_simEta_matched_qmisid, h_simEta, 1, 1, "b"); - h_ele_etaQmisid->Print(); - h_ele_etaQmisid->GetXaxis()->SetTitle("#eta"); - h_ele_etaQmisid->GetYaxis()->SetTitle("q misId"); - - // misid vs z - TH1F *h_ele_zQmisid = (TH1F *)h_ele_simZ_matched_qmisid->Clone("h_ele_zQmisid"); - h_ele_zQmisid->Reset(); - h_ele_zQmisid->Divide(h_ele_simZ_matched_qmisid, h_simZ, 1, 1, "b"); - h_ele_zQmisid->Print(); - h_ele_zQmisid->GetXaxis()->SetTitle("z (cm)"); - h_ele_zQmisid->GetYaxis()->SetTitle("q misId"); - - // misid vs |eta| - TH1F *h_ele_absetaQmisid = (TH1F *)h_ele_simAbsEta_matched_qmisid->Clone("h_ele_absetaQmisid"); - h_ele_absetaQmisid->Reset(); - h_ele_absetaQmisid->Divide(h_ele_simAbsEta_matched_qmisid, h_simAbsEta, 1, 1, "b"); - h_ele_absetaQmisid->GetXaxis()->SetTitle("|#eta|"); - h_ele_absetaQmisid->GetYaxis()->SetTitle("q misId"); - - // misid vs pt - TH1F *h_ele_ptQmisid = (TH1F *)h_ele_simPt_matched_qmisid->Clone("h_ele_ptQmisid"); - h_ele_ptQmisid->Reset(); - h_ele_ptQmisid->Divide(h_ele_simPt_matched_qmisid, h_simPt, 1, 1, "b"); - h_ele_ptQmisid->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_ptQmisid->GetYaxis()->SetTitle("q misId"); - - std::cout << "[GsfElectronMCAnalyzer] all reco electrons " << std::endl; - // rec/gen all electrons - TH1F *h_ele_etaEff_all = (TH1F *)h_ele_vertexEta_all->Clone("h_ele_etaEff_all"); - h_ele_etaEff_all->Reset(); - h_ele_etaEff_all->Divide(h_ele_vertexEta_all, h_simEta, 1, 1, "b"); - h_ele_etaEff_all->Print(); - h_ele_etaEff_all->GetXaxis()->SetTitle("#eta"); - h_ele_etaEff_all->GetYaxis()->SetTitle("N_{rec}/N_{gen}"); - TH1F *h_ele_ptEff_all = (TH1F *)h_ele_vertexPt_all->Clone("h_ele_ptEff_all"); - h_ele_ptEff_all->Reset(); - h_ele_ptEff_all->Divide(h_ele_vertexPt_all, h_simPt, 1, 1, "b"); - h_ele_ptEff_all->Print(); - h_ele_ptEff_all->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_ptEff_all->GetYaxis()->SetTitle("N_{rec}/N_{gen}"); - - // classes - TH1F *h_ele_eta_goldenFrac = (TH1F *)h_ele_eta_golden->Clone("h_ele_eta_goldenFrac"); - h_ele_eta_goldenFrac->Reset(); - h_ele_eta_goldenFrac->Divide(h_ele_eta_golden, h_ele_eta, 1, 1, "b"); - h_ele_eta_goldenFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_goldenFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_goldenFrac->SetTitle("fraction of golden electrons vs eta"); - TH1F *h_ele_eta_bbremFrac = (TH1F *)h_ele_eta_bbrem->Clone("h_ele_eta_bbremFrac"); - h_ele_eta_bbremFrac->Reset(); - h_ele_eta_bbremFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_bbremFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_bbremFrac->Divide(h_ele_eta_bbrem, h_ele_eta, 1, 1, "b"); - h_ele_eta_bbremFrac->SetTitle("fraction of big brem electrons vs eta"); - TH1F *h_ele_eta_narrowFrac = (TH1F *)h_ele_eta_narrow->Clone("h_ele_eta_narrowFrac"); - h_ele_eta_narrowFrac->Reset(); - h_ele_eta_narrowFrac->Divide(h_ele_eta_narrow, h_ele_eta, 1, 1, "b"); - h_ele_eta_narrowFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_narrowFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_narrowFrac->SetTitle("fraction of narrow electrons vs eta"); - TH1F *h_ele_eta_showerFrac = (TH1F *)h_ele_eta_shower->Clone("h_ele_eta_showerFrac"); - h_ele_eta_showerFrac->Reset(); - h_ele_eta_showerFrac->Divide(h_ele_eta_shower, h_ele_eta, 1, 1, "b"); - h_ele_eta_showerFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_showerFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_showerFrac->SetTitle("fraction of showering electrons vs eta"); - - // fbrem - TH1F *h_ele_xOverX0VsEta = new TH1F("h_ele_xOverx0VsEta", "mean X/X_0 vs eta", nbineta / 2, 0.0, 2.5); - for (int ibin = 1; ibin < h_ele_fbremVsEta_mean->GetNbinsX() + 1; ibin++) { - double xOverX0 = 0.; - if (h_ele_fbremVsEta_mean->GetBinContent(ibin) > 0.) - xOverX0 = -log(h_ele_fbremVsEta_mean->GetBinContent(ibin)); - h_ele_xOverX0VsEta->SetBinContent(ibin, xOverX0); - } - - //profiles from 2D histos - TProfile *p_ele_PoPtrueVsEta = h_ele_PoPtrueVsEta->ProfileX(); - p_ele_PoPtrueVsEta->SetTitle("mean ele momentum / gen momentum vs eta"); - p_ele_PoPtrueVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_PoPtrueVsEta->GetYaxis()->SetTitle("

"); - p_ele_PoPtrueVsEta->Write(); - TProfile *p_ele_PoPtrueVsPhi = h_ele_PoPtrueVsPhi->ProfileX(); - p_ele_PoPtrueVsPhi->SetTitle("mean ele momentum / gen momentum vs phi"); - p_ele_PoPtrueVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_PoPtrueVsPhi->GetYaxis()->SetTitle("

"); - p_ele_PoPtrueVsPhi->Write(); - TProfile *p_ele_EoEtruePfVsEg_x = histSclEoEtruePfVsEg->ProfileX(); - p_ele_EoEtruePfVsEg_x->SetTitle("mean pflow sc energy / true energy vs e/g sc energy"); - p_ele_EoEtruePfVsEg_x->GetXaxis()->SetTitle("E/E_{gen} (e/g)"); - p_ele_EoEtruePfVsEg_x->GetYaxis()->SetTitle(" (pflow)"); - p_ele_EoEtruePfVsEg_x->Write(); - TProfile *p_ele_EoEtruePfVsEg_y = histSclEoEtruePfVsEg->ProfileY(); - p_ele_EoEtruePfVsEg_y->SetTitle("mean e/g sc energy / true energy vs pflow sc energy"); - p_ele_EoEtruePfVsEg_y->GetXaxis()->SetTitle("E/E_{gen} (pflow)"); - p_ele_EoEtruePfVsEg_y->GetYaxis()->SetTitle(" (eg)"); - p_ele_EoEtruePfVsEg_y->Write(); - TProfile *p_ele_EtaMnEtaTrueVsEta = h_ele_EtaMnEtaTrueVsEta->ProfileX(); - p_ele_EtaMnEtaTrueVsEta->SetTitle("mean ele eta - gen eta vs eta"); - p_ele_EtaMnEtaTrueVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EtaMnEtaTrueVsEta->GetYaxis()->SetTitle("<#eta_{rec} - #eta_{gen}>"); - p_ele_EtaMnEtaTrueVsEta->Write(); - TProfile *p_ele_EtaMnEtaTrueVsPhi = h_ele_EtaMnEtaTrueVsPhi->ProfileX(); - p_ele_EtaMnEtaTrueVsPhi->SetTitle("mean ele eta - gen eta vs phi"); - p_ele_EtaMnEtaTrueVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_EtaMnEtaTrueVsPhi->GetYaxis()->SetTitle("<#eta_{rec} - #eta_{gen}>"); - p_ele_EtaMnEtaTrueVsPhi->Write(); - TProfile *p_ele_PhiMnPhiTrueVsEta = h_ele_PhiMnPhiTrueVsEta->ProfileX(); - p_ele_PhiMnPhiTrueVsEta->SetTitle("mean ele phi - gen phi vs eta"); - p_ele_PhiMnPhiTrueVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_PhiMnPhiTrueVsEta->GetYaxis()->SetTitle("<#phi_{rec} - #phi_{gen}> (rad)"); - p_ele_PhiMnPhiTrueVsEta->Write(); - TProfile *p_ele_PhiMnPhiTrueVsPhi = h_ele_PhiMnPhiTrueVsPhi->ProfileX(); - p_ele_PhiMnPhiTrueVsPhi->SetTitle("mean ele phi - gen phi vs phi"); - p_ele_PhiMnPhiTrueVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_PhiMnPhiTrueVsPhi->Write(); - TProfile *p_ele_vertexPtVsEta = h_ele_vertexPtVsEta->ProfileX(); - p_ele_vertexPtVsEta->SetTitle("mean ele transverse momentum vs eta"); - p_ele_vertexPtVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_vertexPtVsEta->GetYaxis()->SetTitle(" (GeV/c)"); - p_ele_vertexPtVsEta->Write(); - TProfile *p_ele_vertexPtVsPhi = h_ele_vertexPtVsPhi->ProfileX(); - p_ele_vertexPtVsPhi->SetTitle("mean ele transverse momentum vs phi"); - p_ele_vertexPtVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_vertexPtVsPhi->GetYaxis()->SetTitle(" (GeV/c)"); - p_ele_vertexPtVsPhi->Write(); - TProfile *p_ele_EoPVsEta = h_ele_EoPVsEta->ProfileX(); - p_ele_EoPVsEta->SetTitle("mean ele E/p vs eta"); - p_ele_EoPVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EoPVsEta->GetYaxis()->SetTitle(""); - p_ele_EoPVsEta->Write(); - TProfile *p_ele_EoPVsPhi = h_ele_EoPVsPhi->ProfileX(); - p_ele_EoPVsPhi->SetTitle("mean ele E/p vs phi"); - p_ele_EoPVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_EoPVsPhi->GetYaxis()->SetTitle(""); - p_ele_EoPVsPhi->Write(); - TProfile *p_ele_EoPoutVsEta = h_ele_EoPoutVsEta->ProfileX(); - p_ele_EoPoutVsEta->SetTitle("mean ele E/pout vs eta"); - p_ele_EoPoutVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EoPoutVsEta->GetYaxis()->SetTitle(""); - p_ele_EoPoutVsEta->Write(); - TProfile *p_ele_EoPoutVsPhi = h_ele_EoPoutVsPhi->ProfileX(); - p_ele_EoPoutVsPhi->SetTitle("mean ele E/pout vs phi"); - p_ele_EoPoutVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_EoPoutVsPhi->GetYaxis()->SetTitle(""); - p_ele_EoPoutVsPhi->Write(); - TProfile *p_ele_EeleOPoutVsEta = h_ele_EeleOPoutVsEta->ProfileX(); - p_ele_EeleOPoutVsEta->SetTitle("mean ele Eele/pout vs eta"); - p_ele_EeleOPoutVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EeleOPoutVsEta->GetYaxis()->SetTitle(""); - p_ele_EeleOPoutVsEta->Write(); - TProfile *p_ele_EeleOPoutVsPhi = h_ele_EeleOPoutVsPhi->ProfileX(); - p_ele_EeleOPoutVsPhi->SetTitle("mean ele Eele/pout vs phi"); - p_ele_EeleOPoutVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_EeleOPoutVsPhi->GetYaxis()->SetTitle(""); - p_ele_EeleOPoutVsPhi->Write(); - TProfile *p_ele_HoEVsEta = h_ele_HoEVsEta->ProfileX(); - p_ele_HoEVsEta->SetTitle("mean ele H/E vs eta"); - p_ele_HoEVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_HoEVsEta->GetYaxis()->SetTitle(""); - p_ele_HoEVsEta->Write(); - TProfile *p_ele_HoEVsPhi = h_ele_HoEVsPhi->ProfileX(); - p_ele_HoEVsPhi->SetTitle("mean ele H/E vs phi"); - p_ele_HoEVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_HoEVsPhi->GetYaxis()->SetTitle(""); - p_ele_HoEVsPhi->Write(); - TProfile *p_ele_chi2VsEta = h_ele_chi2VsEta->ProfileX(); - p_ele_chi2VsEta->SetTitle("mean ele track chi2 vs eta"); - p_ele_chi2VsEta->GetXaxis()->SetTitle("#eta"); - p_ele_chi2VsEta->GetYaxis()->SetTitle("<#Chi^{2}>"); - p_ele_chi2VsEta->Write(); - TProfile *p_ele_chi2VsPhi = h_ele_chi2VsPhi->ProfileX(); - p_ele_chi2VsPhi->SetTitle("mean ele track chi2 vs phi"); - p_ele_chi2VsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_chi2VsPhi->GetYaxis()->SetTitle("<#Chi^{2}>"); - p_ele_chi2VsPhi->Write(); - TProfile *p_ele_foundHitsVsEta = h_ele_foundHitsVsEta->ProfileX(); - p_ele_foundHitsVsEta->SetTitle("mean ele track # found hits vs eta"); - p_ele_foundHitsVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_foundHitsVsEta->GetYaxis()->SetTitle(""); - p_ele_foundHitsVsEta->Write(); - TProfile *p_ele_foundHitsVsPhi = h_ele_foundHitsVsPhi->ProfileX(); - p_ele_foundHitsVsPhi->SetTitle("mean ele track # found hits vs phi"); - p_ele_foundHitsVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_foundHitsVsPhi->GetYaxis()->SetTitle(""); - p_ele_foundHitsVsPhi->Write(); - TProfile *p_ele_lostHitsVsEta = h_ele_lostHitsVsEta->ProfileX(); - p_ele_lostHitsVsEta->SetTitle("mean ele track # lost hits vs eta"); - p_ele_lostHitsVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_lostHitsVsEta->GetYaxis()->SetTitle(""); - p_ele_lostHitsVsEta->Write(); - TProfile *p_ele_lostHitsVsPhi = h_ele_lostHitsVsPhi->ProfileX(); - p_ele_lostHitsVsPhi->SetTitle("mean ele track # lost hits vs phi"); - p_ele_lostHitsVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_lostHitsVsPhi->GetYaxis()->SetTitle(""); - p_ele_lostHitsVsPhi->Write(); - TProfile *p_ele_vertexTIPVsEta = h_ele_vertexTIPVsEta->ProfileX(); - p_ele_vertexTIPVsEta->SetTitle("mean tip (wrt gen vtx) vs eta"); - p_ele_vertexTIPVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_vertexTIPVsEta->GetYaxis()->SetTitle(" (cm)"); - p_ele_vertexTIPVsEta->Write(); - TProfile *p_ele_vertexTIPVsPhi = h_ele_vertexTIPVsPhi->ProfileX(); - p_ele_vertexTIPVsPhi->SetTitle("mean tip (wrt gen vtx) vs phi"); - p_ele_vertexTIPVsPhi->GetXaxis()->SetTitle("#phi"); - p_ele_vertexTIPVsPhi->GetYaxis()->SetTitle(" (cm)"); - p_ele_vertexTIPVsPhi->Write(); - TProfile *p_ele_vertexTIPVsPt = h_ele_vertexTIPVsPt->ProfileX(); - p_ele_vertexTIPVsPt->SetTitle("mean tip (wrt gen vtx) vs phi"); - p_ele_vertexTIPVsPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - p_ele_vertexTIPVsPt->GetYaxis()->SetTitle(" (cm)"); - p_ele_vertexTIPVsPt->Write(); - - // mc truth - h_mcNum->Write(); - h_eleNum->Write(); - h_gamNum->Write(); - - // rec event - histNum_->Write(); - - // mc - h_simEta->Write(); - h_simAbsEta->Write(); - h_simP->Write(); - h_simPt->Write(); - h_simZ->Write(); - h_simPhi->Write(); - h_simPtEta->Write(); - - // all electrons - h_ele_EoverP_all->Write(); - h_ele_EseedOP_all->Write(); - h_ele_EoPout_all->Write(); - h_ele_EeleOPout_all->Write(); - h_ele_dEtaSc_propVtx_all->Write(); - h_ele_dPhiSc_propVtx_all->Write(); - h_ele_dEtaCl_propOut_all->Write(); - h_ele_dPhiCl_propOut_all->Write(); - h_ele_HoE_all->Write(); - h_ele_TIP_all->Write(); - h_ele_vertexPt_all->Write(); - h_ele_Et_all->Write(); - h_ele_vertexEta_all->Write(); - h_ele_mee_all->Write(); - h_ele_mee_os->Write(); - h_ele_mee_os_ebeb->Write(); - h_ele_mee_os_ebee->Write(); - h_ele_mee_os_eeee->Write(); - h_ele_mee_os_gg->Write(); - h_ele_mee_os_gb->Write(); - h_ele_mee_os_bb->Write(); - h_ele_E2mnE1vsMee_all->Write(); - h_ele_E2mnE1vsMee_egeg_all->Write(); - - // charge ID - h_ele_charge->Write(); - h_ele_simEta_matched_qmisid->Write(); - h_ele_simAbsEta_matched_qmisid->Write(); - h_ele_simPt_matched_qmisid->Write(); - h_ele_simPhi_matched_qmisid->Write(); - h_ele_simZ_matched_qmisid->Write(); - - // matched electrons - h_ele_vertexP->Write(); - h_ele_vertexPt->Write(); - h_ele_Et->Write(); - h_ele_vertexPtVsEta->Write(); - h_ele_vertexPtVsPhi->Write(); - h_ele_simPt_matched->Write(); - h_ele_vertexEta->Write(); - h_ele_vertexEtaVsPhi->Write(); - h_ele_simAbsEta_matched->Write(); - h_ele_simEta_matched->Write(); - h_ele_simPhi_matched->Write(); - h_ele_simPtEta_matched->Write(); - h_ele_vertexPhi->Write(); - h_ele_vertexX->Write(); - h_ele_vertexY->Write(); - h_ele_vertexZ->Write(); - h_ele_vertexTIP->Write(); - h_ele_simZ_matched->Write(); - h_ele_vertexTIPVsEta->Write(); - h_ele_vertexTIPVsPhi->Write(); - h_ele_vertexTIPVsPt->Write(); - h_ele_PoPtrue->Write(); - h_ele_PoPtrueVsEta->Write(); - h_ele_PoPtrueVsPhi->Write(); - h_ele_PoPtrueVsPt->Write(); - h_ele_PoPtrue_barrel->Write(); - h_ele_PoPtrue_endcaps->Write(); - h_ele_PoPtrue_golden_barrel->Write(); - h_ele_PoPtrue_golden_endcaps->Write(); - h_ele_PoPtrue_showering_barrel->Write(); - h_ele_PoPtrue_showering_endcaps->Write(); - h_ele_PtoPttrue->Write(); - h_ele_PtoPttrue_barrel->Write(); - h_ele_PtoPttrue_endcaps->Write(); - h_ele_ChargeMnChargeTrue->Write(); - h_ele_EtaMnEtaTrue->Write(); - h_ele_EtaMnEtaTrue_barrel->Write(); - h_ele_EtaMnEtaTrue_endcaps->Write(); - h_ele_EtaMnEtaTrueVsEta->Write(); - h_ele_EtaMnEtaTrueVsPhi->Write(); - h_ele_EtaMnEtaTrueVsPt->Write(); - h_ele_PhiMnPhiTrue->Write(); - h_ele_PhiMnPhiTrue_barrel->Write(); - h_ele_PhiMnPhiTrue_endcaps->Write(); - h_ele_PhiMnPhiTrue2->Write(); - h_ele_PhiMnPhiTrueVsEta->Write(); - h_ele_PhiMnPhiTrueVsPhi->Write(); - h_ele_PhiMnPhiTrueVsPt->Write(); - - // matched electron, superclusters - histSclEn_->Write(); - histSclEoEtrue_barrel->Write(); - histSclEoEtrue_endcaps->Write(); - histSclEoEtrue_barrel_eg->Write(); - histSclEoEtrue_endcaps_eg->Write(); - histSclEoEtrue_barrel_etagap->Write(); - histSclEoEtrue_barrel_phigap->Write(); - histSclEoEtrue_ebeegap->Write(); - histSclEoEtrue_endcaps->Write(); - histSclEoEtrue_endcaps_deegap->Write(); - histSclEoEtrue_endcaps_ringgap->Write(); - histSclEoEtruePfVsEg->Write(); - histSclEoEtrue_barrel_new->Write(); - histSclEoEtrue_endcaps_new->Write(); - histSclEoEtrue_barrel_eg_new->Write(); - histSclEoEtrue_endcaps_eg_new->Write(); - histSclEoEtrue_barrel_etagap_new->Write(); - histSclEoEtrue_barrel_phigap_new->Write(); - histSclEoEtrue_ebeegap_new->Write(); - histSclEoEtrue_endcaps_new->Write(); - histSclEoEtrue_endcaps_deegap_new->Write(); - histSclEoEtrue_endcaps_ringgap_new->Write(); - histSclEoEtruePfVsEg->Write(); - histSclEt_->Write(); - histSclEtVsEta_->Write(); - histSclEtVsPhi_->Write(); - histSclEtaVsPhi_->Write(); - histSclEta_->Write(); - histSclPhi_->Write(); - histSclSigEtaEta_->Write(); - histSclSigEtaEta_barrel_->Write(); - histSclSigEtaEta_endcaps_->Write(); - histSclSigIEtaIEta_->Write(); - histSclSigIEtaIEta_barrel_->Write(); - histSclSigIEtaIEta_endcaps_->Write(); - histSclE1x5_->Write(); - histSclE1x5_barrel_->Write(); - histSclE1x5_endcaps_->Write(); - histSclE2x5max_->Write(); - histSclE2x5max_barrel_->Write(); - histSclE2x5max_endcaps_->Write(); - histSclE5x5_->Write(); - histSclE5x5_barrel_->Write(); - histSclE5x5_endcaps_->Write(); - histSclSigEtaEta_eg_->Write(); - histSclSigEtaEta_eg_barrel_->Write(); - histSclSigEtaEta_eg_endcaps_->Write(); - histSclSigIEtaIEta_eg_->Write(); - histSclSigIEtaIEta_eg_barrel_->Write(); - histSclSigIEtaIEta_eg_endcaps_->Write(); - histSclE1x5_eg_->Write(); - histSclE1x5_eg_barrel_->Write(); - histSclE1x5_eg_endcaps_->Write(); - histSclE2x5max_eg_->Write(); - histSclE2x5max_eg_barrel_->Write(); - histSclE2x5max_eg_endcaps_->Write(); - histSclE5x5_eg_->Write(); - histSclE5x5_eg_barrel_->Write(); - histSclE5x5_eg_endcaps_->Write(); - - // matched electron, gsf tracks - h_ele_ambiguousTracks->Write(); - h_ele_ambiguousTracksVsEta->Write(); - h_ele_ambiguousTracksVsPhi->Write(); - h_ele_ambiguousTracksVsPt->Write(); - h_ele_foundHits->Write(); - h_ele_foundHits_barrel->Write(); - h_ele_foundHits_endcaps->Write(); - h_ele_foundHitsVsEta->Write(); - h_ele_foundHitsVsPhi->Write(); - h_ele_foundHitsVsPt->Write(); - h_ele_lostHits->Write(); - h_ele_lostHits_barrel->Write(); - h_ele_lostHits_endcaps->Write(); - h_ele_lostHitsVsEta->Write(); - h_ele_lostHitsVsPhi->Write(); - h_ele_lostHitsVsPt->Write(); - h_ele_chi2->Write(); - h_ele_chi2_barrel->Write(); - h_ele_chi2_endcaps->Write(); - h_ele_chi2VsEta->Write(); - h_ele_chi2VsPhi->Write(); - h_ele_chi2VsPt->Write(); - h_ele_PinMnPout->Write(); - h_ele_PinMnPout_mode->Write(); - h_ele_PinMnPoutVsEta_mode->Write(); - h_ele_PinMnPoutVsPhi_mode->Write(); - h_ele_PinMnPoutVsPt_mode->Write(); - h_ele_PinMnPoutVsE_mode->Write(); - h_ele_PinMnPoutVsChi2_mode->Write(); - h_ele_outerP->Write(); - h_ele_outerP_mode->Write(); - h_ele_outerPVsEta_mode->Write(); - h_ele_outerPt->Write(); - h_ele_outerPt_mode->Write(); - h_ele_outerPtVsEta_mode->Write(); - h_ele_outerPtVsPhi_mode->Write(); - h_ele_outerPtVsPt_mode->Write(); - - // matched electrons, matching - h_ele_EoP->Write(); - h_ele_EoP_eg->Write(); - h_ele_EoP_barrel->Write(); - h_ele_EoP_eg_barrel->Write(); - h_ele_EoP_endcaps->Write(); - h_ele_EoP_eg_endcaps->Write(); - h_ele_EoPVsEta->Write(); - h_ele_EoPVsPhi->Write(); - h_ele_EoPVsE->Write(); - h_ele_EseedOP->Write(); - h_ele_EseedOP_eg->Write(); - h_ele_EseedOP_barrel->Write(); - h_ele_EseedOP_eg_barrel->Write(); - h_ele_EseedOP_endcaps->Write(); - h_ele_EseedOP_eg_endcaps->Write(); - h_ele_EseedOPVsEta->Write(); - h_ele_EseedOPVsPhi->Write(); - h_ele_EseedOPVsE->Write(); - h_ele_EoPout->Write(); - h_ele_EoPout_eg->Write(); - h_ele_EoPout_barrel->Write(); - h_ele_EoPout_eg_barrel->Write(); - h_ele_EoPout_endcaps->Write(); - h_ele_EoPout_eg_endcaps->Write(); - h_ele_EoPoutVsEta->Write(); - h_ele_EoPoutVsPhi->Write(); - h_ele_EoPoutVsE->Write(); - h_ele_EeleOPout->Write(); - h_ele_EeleOPout_eg->Write(); - h_ele_EeleOPout_barrel->Write(); - h_ele_EeleOPout_eg_barrel->Write(); - h_ele_EeleOPout_endcaps->Write(); - h_ele_EeleOPout_eg_endcaps->Write(); - h_ele_EeleOPoutVsEta->Write(); - h_ele_EeleOPoutVsPhi->Write(); - h_ele_EeleOPoutVsE->Write(); - h_ele_dEtaSc_propVtx->Write(); - h_ele_dEtaSc_propVtx_eg->Write(); - h_ele_dEtaSc_propVtx_barrel->Write(); - h_ele_dEtaSc_propVtx_eg_barrel->Write(); - h_ele_dEtaSc_propVtx_endcaps->Write(); - h_ele_dEtaSc_propVtx_eg_endcaps->Write(); - h_ele_dEtaScVsEta_propVtx->Write(); - h_ele_dEtaScVsPhi_propVtx->Write(); - h_ele_dEtaScVsPt_propVtx->Write(); - h_ele_dPhiSc_propVtx->Write(); - h_ele_dPhiSc_propVtx_eg->Write(); - h_ele_dPhiSc_propVtx_barrel->Write(); - h_ele_dPhiSc_propVtx_eg_barrel->Write(); - h_ele_dPhiSc_propVtx_endcaps->Write(); - h_ele_dPhiSc_propVtx_eg_endcaps->Write(); - h_ele_dPhiScVsEta_propVtx->Write(); - h_ele_dPhiScVsPhi_propVtx->Write(); - h_ele_dPhiScVsPt_propVtx->Write(); - h_ele_dEtaCl_propOut->Write(); - h_ele_dEtaCl_propOut_eg->Write(); - h_ele_dEtaCl_propOut_barrel->Write(); - h_ele_dEtaCl_propOut_eg_barrel->Write(); - h_ele_dEtaCl_propOut_endcaps->Write(); - h_ele_dEtaCl_propOut_eg_endcaps->Write(); - h_ele_dEtaClVsEta_propOut->Write(); - h_ele_dEtaClVsPhi_propOut->Write(); - h_ele_dEtaClVsPt_propOut->Write(); - h_ele_dPhiCl_propOut->Write(); - h_ele_dPhiCl_propOut_eg->Write(); - h_ele_dPhiCl_propOut_barrel->Write(); - h_ele_dPhiCl_propOut_eg_barrel->Write(); - h_ele_dPhiCl_propOut_endcaps->Write(); - h_ele_dPhiCl_propOut_eg_endcaps->Write(); - h_ele_dPhiClVsEta_propOut->Write(); - h_ele_dPhiClVsPhi_propOut->Write(); - h_ele_dPhiClVsPt_propOut->Write(); - h_ele_dEtaEleCl_propOut->Write(); - h_ele_dEtaEleCl_propOut_eg->Write(); - h_ele_dEtaEleCl_propOut_barrel->Write(); - h_ele_dEtaEleCl_propOut_eg_barrel->Write(); - h_ele_dEtaEleCl_propOut_endcaps->Write(); - h_ele_dEtaEleCl_propOut_eg_endcaps->Write(); - h_ele_dEtaEleClVsEta_propOut->Write(); - h_ele_dEtaEleClVsPhi_propOut->Write(); - h_ele_dEtaEleClVsPt_propOut->Write(); - h_ele_dPhiEleCl_propOut->Write(); - h_ele_dPhiEleCl_propOut_eg->Write(); - h_ele_dPhiEleCl_propOut_barrel->Write(); - h_ele_dPhiEleCl_propOut_eg_barrel->Write(); - h_ele_dPhiEleCl_propOut_endcaps->Write(); - h_ele_dPhiEleCl_propOut_eg_endcaps->Write(); - h_ele_dPhiEleClVsEta_propOut->Write(); - h_ele_dPhiEleClVsPhi_propOut->Write(); - h_ele_dPhiEleClVsPt_propOut->Write(); - h_ele_HoE->Write(); - h_ele_HoE_eg->Write(); - h_ele_HoE_barrel->Write(); - h_ele_HoE_eg_barrel->Write(); - h_ele_HoE_endcaps->Write(); - h_ele_HoE_eg_endcaps->Write(); - h_ele_HoE_fiducial->Write(); - h_ele_HoEVsEta->Write(); - h_ele_HoEVsPhi->Write(); - h_ele_HoEVsE->Write(); - - h_ele_seed_dphi2_->Write(); - h_ele_seed_subdet2_->Write(); - TProfile *p_ele_seed_dphi2VsEta_ = h_ele_seed_dphi2VsEta_->ProfileX(); - p_ele_seed_dphi2VsEta_->SetTitle("mean ele seed dphi 2nd layer vs eta"); - p_ele_seed_dphi2VsEta_->GetXaxis()->SetTitle("#eta"); - p_ele_seed_dphi2VsEta_->GetYaxis()->SetTitle("<#phi_{pred} - #phi_{hit}, 2nd layer> (rad)"); - p_ele_seed_dphi2VsEta_->SetMinimum(-0.004); - p_ele_seed_dphi2VsEta_->SetMaximum(0.004); - p_ele_seed_dphi2VsEta_->Write(); - TProfile *p_ele_seed_dphi2VsPt_ = h_ele_seed_dphi2VsPt_->ProfileX(); - p_ele_seed_dphi2VsPt_->SetTitle("mean ele seed dphi 2nd layer vs pt"); - p_ele_seed_dphi2VsPt_->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - p_ele_seed_dphi2VsPt_->GetYaxis()->SetTitle("<#phi_{pred} - #phi_{hit}, 2nd layer> (rad)"); - p_ele_seed_dphi2VsPt_->SetMinimum(-0.004); - p_ele_seed_dphi2VsPt_->SetMaximum(0.004); - p_ele_seed_dphi2VsPt_->Write(); - h_ele_seed_drz2_->Write(); - TProfile *p_ele_seed_drz2VsEta_ = h_ele_seed_drz2VsEta_->ProfileX(); - p_ele_seed_drz2VsEta_->SetTitle("mean ele seed dr(dz) 2nd layer vs eta"); - p_ele_seed_drz2VsEta_->GetXaxis()->SetTitle("#eta"); - p_ele_seed_drz2VsEta_->GetYaxis()->SetTitle(" (cm)"); - p_ele_seed_drz2VsEta_->SetMinimum(-0.15); - p_ele_seed_drz2VsEta_->SetMaximum(0.15); - p_ele_seed_drz2VsEta_->Write(); - TProfile *p_ele_seed_drz2VsPt_ = h_ele_seed_drz2VsPt_->ProfileX(); - p_ele_seed_drz2VsPt_->SetTitle("mean ele seed dr(dz) 2nd layer vs pt"); - p_ele_seed_drz2VsPt_->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - p_ele_seed_drz2VsPt_->GetYaxis()->SetTitle(" (cm)"); - p_ele_seed_drz2VsPt_->SetMinimum(-0.15); - p_ele_seed_drz2VsPt_->SetMaximum(0.15); - p_ele_seed_drz2VsPt_->Write(); - - // classes - h_ele_classes->Write(); - h_ele_eta->Write(); - h_ele_eta_golden->Write(); - h_ele_eta_bbrem->Write(); - h_ele_eta_narrow->Write(); - h_ele_eta_shower->Write(); - h_ele_PinVsPoutGolden_mode->Write(); - h_ele_PinVsPoutShowering_mode->Write(); - h_ele_PinVsPoutGolden_mean->Write(); - h_ele_PinVsPoutShowering_mean->Write(); - h_ele_PtinVsPtoutGolden_mode->Write(); - h_ele_PtinVsPtoutShowering_mode->Write(); - h_ele_PtinVsPtoutGolden_mean->Write(); - h_ele_PtinVsPtoutShowering_mean->Write(); - histSclEoEtrueGolden_barrel->Write(); - histSclEoEtrueGolden_endcaps->Write(); - histSclEoEtrueShowering_barrel->Write(); - histSclEoEtrueShowering_endcaps->Write(); - - // fbrem - h_ele_fbrem->Write(); - h_ele_fbrem_eg->Write(); - h_ele_fbremVsEta_mode->GetXaxis()->SetTitle("#eta"); - h_ele_fbremVsEta_mode->GetYaxis()->SetTitle(""); - h_ele_fbremVsEta_mode->Write(); - h_ele_fbremVsEta_mean->GetXaxis()->SetTitle("#eta"); - h_ele_fbremVsEta_mean->GetYaxis()->SetTitle(""); - h_ele_fbremVsEta_mean->Write(); - h_ele_eta_goldenFrac->Write(); - h_ele_eta_bbremFrac->Write(); - h_ele_eta_narrowFrac->Write(); - h_ele_eta_showerFrac->Write(); - h_ele_xOverX0VsEta->Write(); - - // efficiencies - h_ele_etaEff->Write(); - h_ele_zEff->Write(); - h_ele_phiEff->Write(); - h_ele_absetaEff->Write(); - h_ele_ptEff->Write(); - h_ele_ptEtaEff->Write(); - h_ele_etaEff_all->Write(); - h_ele_ptEff_all->Write(); - - // q misid - h_ele_etaQmisid->Write(); - h_ele_zQmisid->Write(); - h_ele_absetaQmisid->Write(); - h_ele_ptQmisid->Write(); - - // e/g et pflow electrons - h_ele_mva->Write(); - h_ele_mva_eg->Write(); - h_ele_provenance->Write(); - - // isolation - h_ele_tkSumPt_dr03->GetXaxis()->SetTitle("TkIsoSum, cone 0.3 (GeV/c)"); - h_ele_tkSumPt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_tkSumPt_dr03->Write(); - h_ele_ecalRecHitSumEt_dr03->GetXaxis()->SetTitle("EcalIsoSum, cone 0.3 (GeV)"); - h_ele_ecalRecHitSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_ecalRecHitSumEt_dr03->Write(); - h_ele_hcalDepth1TowerSumEt_dr03->GetXaxis()->SetTitle("Hcal1IsoSum, cone 0.3 (GeV)"); - h_ele_hcalDepth1TowerSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth1TowerSumEt_dr03->Write(); - h_ele_hcalDepth2TowerSumEt_dr03->GetXaxis()->SetTitle("Hcal2IsoSum, cone 0.3 (GeV)"); - h_ele_hcalDepth2TowerSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth2TowerSumEt_dr03->Write(); - h_ele_tkSumPt_dr04->GetXaxis()->SetTitle("TkIsoSum, cone 0.4 (GeV/c)"); - h_ele_tkSumPt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_tkSumPt_dr04->Write(); - h_ele_ecalRecHitSumEt_dr04->GetXaxis()->SetTitle("EcalIsoSum, cone 0.4 (GeV)"); - h_ele_ecalRecHitSumEt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_ecalRecHitSumEt_dr04->Write(); - h_ele_hcalDepth1TowerSumEt_dr04->GetXaxis()->SetTitle("Hcal1IsoSum, cone 0.4 (GeV)"); - h_ele_hcalDepth1TowerSumEt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth1TowerSumEt_dr04->Write(); - h_ele_hcalDepth2TowerSumEt_dr04->GetXaxis()->SetTitle("Hcal2IsoSum, cone 0.4 (GeV)"); - h_ele_hcalDepth2TowerSumEt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth2TowerSumEt_dr04->Write(); -} - -GsfElectronMCAnalyzer::~GsfElectronMCAnalyzer() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) - histfile_->Write(); - histfile_->Close(); -} - -//========================================================================= -// Main method -//========================================================================= - -void GsfElectronMCAnalyzer::analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) { - std::cout << "analyzing new event " << std::endl; - // get electrons - - edm::Handle gsfElectrons; - iEvent.getByLabel(electronCollection_, gsfElectrons); - edm::LogInfo("") << "\n\n =================> Treating event " << iEvent.id() << " Number of electrons " - << gsfElectrons.product()->size(); - - edm::Handle genParticles; - iEvent.getByLabel(mcTruthCollection_, genParticles); - - histNum_->Fill((*gsfElectrons).size()); - - // all rec electrons - for (reco::GsfElectronCollection::const_iterator gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); - gsfIter++) { - // preselect electrons - if (gsfIter->pt() > maxPt_ || std::abs(gsfIter->eta()) > maxAbsEta_) - continue; - h_ele_EoverP_all->Fill(gsfIter->eSuperClusterOverP()); - h_ele_EseedOP_all->Fill(gsfIter->eSeedClusterOverP()); - h_ele_EoPout_all->Fill(gsfIter->eSeedClusterOverPout()); - h_ele_EeleOPout_all->Fill(gsfIter->eEleClusterOverPout()); - h_ele_dEtaSc_propVtx_all->Fill(gsfIter->deltaEtaSuperClusterTrackAtVtx()); - h_ele_dPhiSc_propVtx_all->Fill(gsfIter->deltaPhiSuperClusterTrackAtVtx()); - h_ele_dEtaCl_propOut_all->Fill(gsfIter->deltaEtaSeedClusterTrackAtCalo()); - h_ele_dPhiCl_propOut_all->Fill(gsfIter->deltaPhiSeedClusterTrackAtCalo()); - h_ele_HoE_all->Fill(gsfIter->hadronicOverEm()); - double d = gsfIter->vertex().x() * gsfIter->vertex().x() + gsfIter->vertex().y() * gsfIter->vertex().y(); - h_ele_TIP_all->Fill(sqrt(d)); - h_ele_vertexEta_all->Fill(gsfIter->eta()); - h_ele_vertexPt_all->Fill(gsfIter->pt()); - h_ele_Et_all->Fill(gsfIter->superCluster()->energy() / cosh(gsfIter->superCluster()->eta())); - float enrj1 = gsfIter->superCluster()->energy(); - // mee - for (reco::GsfElectronCollection::const_iterator gsfIter2 = gsfIter + 1; gsfIter2 != gsfElectrons->end(); - gsfIter2++) { - math::XYZTLorentzVector p12 = (*gsfIter).p4() + (*gsfIter2).p4(); - float mee2 = p12.Dot(p12); - float enrj2 = gsfIter2->superCluster()->energy(); - h_ele_mee_all->Fill(sqrt(mee2)); - h_ele_E2mnE1vsMee_all->Fill(sqrt(mee2), enrj2 - enrj1); - if (gsfIter->ecalDrivenSeed() && gsfIter2->ecalDrivenSeed()) - h_ele_E2mnE1vsMee_egeg_all->Fill(sqrt(mee2), enrj2 - enrj1); - if (gsfIter->charge() * gsfIter2->charge() < 0.) { - h_ele_mee_os->Fill(sqrt(mee2)); - if (gsfIter->isEB() && gsfIter2->isEB()) - h_ele_mee_os_ebeb->Fill(sqrt(mee2)); - if ((gsfIter->isEB() && gsfIter2->isEE()) || (gsfIter->isEE() && gsfIter2->isEB())) - h_ele_mee_os_ebee->Fill(sqrt(mee2)); - if (gsfIter->isEE() && gsfIter2->isEE()) - h_ele_mee_os_eeee->Fill(sqrt(mee2)); - if ((gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::GOLDEN) || - (gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::BIGBREM) || - //(gsfIter->classification()==GsfElectron::GOLDEN && gsfIter2->classification()==GsfElectron::OLDNARROW) || - (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::GOLDEN) || - (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::BIGBREM)/* || - (gsfIter->classification()==GsfElectron::BIGBREM && gsfIter2->classification()==GsfElectron::OLDNARROW) || - (gsfIter->classification()==GsfElectron::OLDNARROW && gsfIter2->classification()==GsfElectron::GOLDEN) || - (gsfIter->classification()==GsfElectron::OLDNARROW && gsfIter2->classification()==GsfElectron::BIGBREM) || - (gsfIter->classification()==GsfElectron::OLDNARROW && gsfIter2->classification()==GsfElectron::OLDNARROW)*/ ) - { - h_ele_mee_os_gg->Fill(sqrt(mee2)); - } else if ((gsfIter->classification() == GsfElectron::SHOWERING && - gsfIter2->classification() == GsfElectron::SHOWERING) || - (gsfIter->classification() == GsfElectron::SHOWERING && gsfIter2->isGap()) || - (gsfIter->isGap() && gsfIter2->classification() == GsfElectron::SHOWERING) || - (gsfIter->isGap() && gsfIter2->isGap())) { - h_ele_mee_os_bb->Fill(sqrt(mee2)); - } else { - h_ele_mee_os_gb->Fill(sqrt(mee2)); - } - } - } - } - - int mcNum = 0, gamNum = 0, eleNum = 0; - bool matchingID, matchingMotherID; - - // charge mis-ID - for (reco::GenParticleCollection::const_iterator mcIter = genParticles->begin(); mcIter != genParticles->end(); - mcIter++) { - // select requested matching gen particle - matchingID = false; - for (unsigned int i = 0; i < matchingIDs_.size(); i++) - if (mcIter->pdgId() == matchingIDs_[i]) - matchingID = true; - - if (matchingID) { - // select requested mother matching gen particle - // always include single particle with no mother - const Candidate *mother = mcIter->mother(); - matchingMotherID = false; - for (unsigned int i = 0; i < matchingMotherIDs_.size(); i++) - if ((mother == nullptr) || ((mother != nullptr) && mother->pdgId() == matchingMotherIDs_[i])) - matchingMotherID = true; - - if (matchingMotherID) { - if (mcIter->pt() > maxPt_ || std::abs(mcIter->eta()) > maxAbsEta_) - continue; - - // suppress the endcaps - //if (std::abs(mcIter->eta()) > 1.5) continue; - // select central z - //if ( std::abs(mcIter->production_vertex()->position().z())>50.) continue; - - // looking for the best matching gsf electron - bool okGsfFound = false; - double gsfOkRatio = 999999.; - - // find best matched electron - reco::GsfElectron bestGsfElectron; - for (reco::GsfElectronCollection::const_iterator gsfIter = gsfElectrons->begin(); - gsfIter != gsfElectrons->end(); - gsfIter++) { - double dphi = gsfIter->phi() - mcIter->phi(); - if (std::abs(dphi) > CLHEP::pi) - dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi; - double deltaR = sqrt(std::pow((gsfIter->eta() - mcIter->eta()), 2) + std::pow(dphi, 2)); - if (deltaR < deltaR_) { - double mc_charge = mcIter->pdgId() == 11 ? -1. : 1.; - h_ele_ChargeMnChargeTrue->Fill(std::abs(gsfIter->charge() - mc_charge)); - // require here a charge mismatch - if (((mcIter->pdgId() == 11) && (gsfIter->charge() > 0.)) || - ((mcIter->pdgId() == -11) && (gsfIter->charge() < 0.))) { - double tmpGsfRatio = gsfIter->p() / mcIter->p(); - if (std::abs(tmpGsfRatio - 1) < std::abs(gsfOkRatio - 1)) { - gsfOkRatio = tmpGsfRatio; - bestGsfElectron = *gsfIter; - okGsfFound = true; - } - } - } - } // loop over rec ele to look for the best one - - // analysis when the mc track is found - if (okGsfFound) { - // generated distributions for matched electrons - h_ele_simPt_matched_qmisid->Fill(mcIter->pt()); - h_ele_simPhi_matched_qmisid->Fill(mcIter->phi()); - h_ele_simAbsEta_matched_qmisid->Fill(std::abs(mcIter->eta())); - h_ele_simEta_matched_qmisid->Fill(mcIter->eta()); - h_ele_simZ_matched_qmisid->Fill(mcIter->vz()); - } - } - } - } - - // association mc-reco - for (reco::GenParticleCollection::const_iterator mcIter = genParticles->begin(); mcIter != genParticles->end(); - mcIter++) { - // number of mc particles - mcNum++; - - // counts photons - if (mcIter->pdgId() == 22) { - gamNum++; - } - - // select requested matching gen particle - matchingID = false; - for (unsigned int i = 0; i < matchingIDs_.size(); i++) - if (mcIter->pdgId() == matchingIDs_[i]) - matchingID = true; - - if (matchingID) { - // select requested mother matching gen particle - // always include single particle with no mother - const Candidate *mother = mcIter->mother(); - matchingMotherID = false; - for (unsigned int i = 0; i < matchingMotherIDs_.size(); i++) - if ((mother == nullptr) || ((mother != nullptr) && mother->pdgId() == matchingMotherIDs_[i])) - matchingMotherID = true; - - if (matchingMotherID) { - if (mcIter->pt() > maxPt_ || std::abs(mcIter->eta()) > maxAbsEta_) - continue; - - // suppress the endcaps - //if (std::abs(mcIter->eta()) > 1.5) continue; - // select central z - //if ( std::abs(mcIter->production_vertex()->position().z())>50.) continue; - - eleNum++; - h_simEta->Fill(mcIter->eta()); - h_simAbsEta->Fill(std::abs(mcIter->eta())); - h_simP->Fill(mcIter->p()); - h_simPt->Fill(mcIter->pt()); - h_simPhi->Fill(mcIter->phi()); - h_simZ->Fill(mcIter->vz()); - h_simPtEta->Fill(mcIter->eta(), mcIter->pt()); - - // looking for the best matching gsf electron - bool okGsfFound = false; - double gsfOkRatio = 999999.; - - // find best matched electron - reco::GsfElectron bestGsfElectron; - for (reco::GsfElectronCollection::const_iterator gsfIter = gsfElectrons->begin(); - gsfIter != gsfElectrons->end(); - gsfIter++) { - double dphi = gsfIter->phi() - mcIter->phi(); - if (std::abs(dphi) > CLHEP::pi) - dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi; - double deltaR = sqrt(std::pow((gsfIter->eta() - mcIter->eta()), 2) + std::pow(dphi, 2)); - if (deltaR < deltaR_) { - if (((mcIter->pdgId() == 11) && (gsfIter->charge() < 0.)) || - ((mcIter->pdgId() == -11) && (gsfIter->charge() > 0.))) { - double tmpGsfRatio = gsfIter->p() / mcIter->p(); - if (std::abs(tmpGsfRatio - 1) < std::abs(gsfOkRatio - 1)) { - gsfOkRatio = tmpGsfRatio; - bestGsfElectron = *gsfIter; - okGsfFound = true; - } - } - } - } // loop over rec ele to look for the best one - - // analysis when the mc track is found - if (okGsfFound) { - // electron related distributions - h_ele_charge->Fill(bestGsfElectron.charge()); - h_ele_chargeVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.charge()); - h_ele_chargeVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.charge()); - h_ele_chargeVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.charge()); - h_ele_vertexP->Fill(bestGsfElectron.p()); - h_ele_vertexPt->Fill(bestGsfElectron.pt()); - h_ele_Et->Fill(bestGsfElectron.superCluster()->energy() / cosh(bestGsfElectron.superCluster()->eta())); - h_ele_vertexPtVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.pt()); - h_ele_vertexPtVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.pt()); - h_ele_vertexEta->Fill(bestGsfElectron.eta()); - // generated distributions for matched electrons - h_ele_simPt_matched->Fill(mcIter->pt()); - h_ele_simPhi_matched->Fill(mcIter->phi()); - h_ele_simAbsEta_matched->Fill(std::abs(mcIter->eta())); - h_ele_simEta_matched->Fill(mcIter->eta()); - h_ele_simPtEta_matched->Fill(mcIter->eta(), mcIter->pt()); - h_ele_vertexEtaVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta()); - h_ele_vertexPhi->Fill(bestGsfElectron.phi()); - h_ele_vertexX->Fill(bestGsfElectron.vertex().x()); - h_ele_vertexY->Fill(bestGsfElectron.vertex().y()); - h_ele_vertexZ->Fill(bestGsfElectron.vertex().z()); - h_ele_simZ_matched->Fill(mcIter->vz()); - double d = (bestGsfElectron.vertex().x() - mcIter->vx()) * (bestGsfElectron.vertex().x() - mcIter->vx()) + - (bestGsfElectron.vertex().y() - mcIter->vy()) * (bestGsfElectron.vertex().y() - mcIter->vy()); - d = sqrt(d); - h_ele_vertexTIP->Fill(d); - h_ele_vertexTIPVsEta->Fill(bestGsfElectron.eta(), d); - h_ele_vertexTIPVsPhi->Fill(bestGsfElectron.phi(), d); - h_ele_vertexTIPVsPt->Fill(bestGsfElectron.pt(), d); - h_ele_EtaMnEtaTrue->Fill(bestGsfElectron.eta() - mcIter->eta()); - if (bestGsfElectron.isEB()) - h_ele_EtaMnEtaTrue_barrel->Fill(bestGsfElectron.eta() - mcIter->eta()); - if (bestGsfElectron.isEE()) - h_ele_EtaMnEtaTrue_endcaps->Fill(bestGsfElectron.eta() - mcIter->eta()); - h_ele_EtaMnEtaTrueVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eta() - mcIter->eta()); - h_ele_EtaMnEtaTrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta() - mcIter->eta()); - h_ele_EtaMnEtaTrueVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.eta() - mcIter->eta()); - h_ele_PhiMnPhiTrue->Fill(bestGsfElectron.phi() - mcIter->phi()); - if (bestGsfElectron.isEB()) - h_ele_PhiMnPhiTrue_barrel->Fill(bestGsfElectron.phi() - mcIter->phi()); - if (bestGsfElectron.isEE()) - h_ele_PhiMnPhiTrue_endcaps->Fill(bestGsfElectron.phi() - mcIter->phi()); - h_ele_PhiMnPhiTrue2->Fill(bestGsfElectron.phi() - mcIter->phi()); - h_ele_PhiMnPhiTrueVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.phi() - mcIter->phi()); - h_ele_PhiMnPhiTrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.phi() - mcIter->phi()); - h_ele_PhiMnPhiTrueVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.phi() - mcIter->phi()); - h_ele_PoPtrue->Fill(bestGsfElectron.p() / mcIter->p()); - h_ele_PtoPttrue->Fill(bestGsfElectron.pt() / mcIter->pt()); - h_ele_PoPtrueVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.p() / mcIter->p()); - h_ele_PoPtrueVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.p() / mcIter->p()); - h_ele_PoPtrueVsPt->Fill(bestGsfElectron.py(), bestGsfElectron.p() / mcIter->p()); - if (bestGsfElectron.isEB()) - h_ele_PoPtrue_barrel->Fill(bestGsfElectron.p() / mcIter->p()); - if (bestGsfElectron.isEE()) - h_ele_PoPtrue_endcaps->Fill(bestGsfElectron.p() / mcIter->p()); - if (bestGsfElectron.isEB() && bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_PoPtrue_golden_barrel->Fill(bestGsfElectron.p() / mcIter->p()); - if (bestGsfElectron.isEE() && bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_PoPtrue_golden_endcaps->Fill(bestGsfElectron.p() / mcIter->p()); - if (bestGsfElectron.isEB() && bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_PoPtrue_showering_barrel->Fill(bestGsfElectron.p() / mcIter->p()); - if (bestGsfElectron.isEE() && bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_PoPtrue_showering_endcaps->Fill(bestGsfElectron.p() / mcIter->p()); - if (bestGsfElectron.isEB()) - h_ele_PtoPttrue_barrel->Fill(bestGsfElectron.pt() / mcIter->pt()); - if (bestGsfElectron.isEE()) - h_ele_PtoPttrue_endcaps->Fill(bestGsfElectron.pt() / mcIter->pt()); - - // supercluster related distributions - reco::SuperClusterRef sclRef = bestGsfElectron.superCluster(); - if (!bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.trackerDrivenSeed()) - sclRef = bestGsfElectron.parentSuperCluster(); - histSclEn_->Fill(sclRef->energy()); - double R = std::sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y() + sclRef->z() * sclRef->z()); - double Rt = std::sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y()); - histSclEt_->Fill(sclRef->energy() * (Rt / R)); - histSclEtVsEta_->Fill(sclRef->eta(), sclRef->energy() * (Rt / R)); - histSclEtVsPhi_->Fill(sclRef->phi(), sclRef->energy() * (Rt / R)); - if (bestGsfElectron.isEB()) - histSclEoEtrue_barrel->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEE()) - histSclEoEtrue_endcaps->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - histSclEoEtrue_barrel_eg->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - histSclEoEtrue_endcaps_eg->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEB() && bestGsfElectron.isEBEtaGap()) - histSclEoEtrue_barrel_etagap->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEB() && bestGsfElectron.isEBPhiGap()) - histSclEoEtrue_barrel_phigap->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEBEEGap()) - histSclEoEtrue_ebeegap->Fill(sclRef->energy() / mcIter->p()); - //if (bestGsfElectron.isEE()) histSclEoEtrue_endcaps->Fill(sclRef->energy()/mcIter->p()); - if (bestGsfElectron.isEE() && bestGsfElectron.isEEDeeGap()) - histSclEoEtrue_endcaps_deegap->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEE() && bestGsfElectron.isEERingGap()) - histSclEoEtrue_endcaps_ringgap->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEB()) - histSclEoEtrue_barrel_new->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEE()) - histSclEoEtrue_endcaps_new->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - histSclEoEtrue_barrel_eg_new->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - histSclEoEtrue_endcaps_eg_new->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEB() && bestGsfElectron.isEBEtaGap()) - histSclEoEtrue_barrel_etagap_new->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEB() && bestGsfElectron.isEBPhiGap()) - histSclEoEtrue_barrel_phigap_new->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEBEEGap()) - histSclEoEtrue_ebeegap_new->Fill(sclRef->energy() / mcIter->p()); - //if (bestGsfElectron.isEE()) histSclEoEtrue_endcaps_new->Fill(sclRef->energy()/mcIter->p()); - if (bestGsfElectron.isEE() && bestGsfElectron.isEEDeeGap()) - histSclEoEtrue_endcaps_deegap_new->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.isEE() && bestGsfElectron.isEERingGap()) - histSclEoEtrue_endcaps_ringgap_new->Fill(sclRef->energy() / mcIter->p()); - histSclEta_->Fill(sclRef->eta()); - histSclEtaVsPhi_->Fill(sclRef->phi(), sclRef->eta()); - histSclPhi_->Fill(sclRef->phi()); - histSclSigEtaEta_->Fill(bestGsfElectron.scSigmaEtaEta()); - if (bestGsfElectron.isEB()) - histSclSigEtaEta_barrel_->Fill(bestGsfElectron.scSigmaEtaEta()); - if (bestGsfElectron.isEE()) - histSclSigEtaEta_endcaps_->Fill(bestGsfElectron.scSigmaEtaEta()); - histSclSigIEtaIEta_->Fill(bestGsfElectron.scSigmaIEtaIEta()); - if (bestGsfElectron.isEB()) - histSclSigIEtaIEta_barrel_->Fill(bestGsfElectron.scSigmaIEtaIEta()); - if (bestGsfElectron.isEE()) - histSclSigIEtaIEta_endcaps_->Fill(bestGsfElectron.scSigmaIEtaIEta()); - histSclE1x5_->Fill(bestGsfElectron.scE1x5()); - if (bestGsfElectron.isEB()) - histSclE1x5_barrel_->Fill(bestGsfElectron.scE1x5()); - if (bestGsfElectron.isEE()) - histSclE1x5_endcaps_->Fill(bestGsfElectron.scE1x5()); - histSclE2x5max_->Fill(bestGsfElectron.scE2x5Max()); - if (bestGsfElectron.isEB()) - histSclE2x5max_barrel_->Fill(bestGsfElectron.scE2x5Max()); - if (bestGsfElectron.isEE()) - histSclE2x5max_endcaps_->Fill(bestGsfElectron.scE2x5Max()); - histSclE5x5_->Fill(bestGsfElectron.scE5x5()); - if (bestGsfElectron.isEB()) - histSclE5x5_barrel_->Fill(bestGsfElectron.scE5x5()); - if (bestGsfElectron.isEE()) - histSclE5x5_endcaps_->Fill(bestGsfElectron.scE5x5()); - if (bestGsfElectron.ecalDrivenSeed()) - histSclSigIEtaIEta_eg_->Fill(bestGsfElectron.scSigmaIEtaIEta()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - histSclSigIEtaIEta_eg_barrel_->Fill(bestGsfElectron.scSigmaIEtaIEta()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - histSclSigIEtaIEta_eg_endcaps_->Fill(bestGsfElectron.scSigmaIEtaIEta()); - if (bestGsfElectron.ecalDrivenSeed()) - histSclE1x5_eg_->Fill(bestGsfElectron.scE1x5()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - histSclE1x5_eg_barrel_->Fill(bestGsfElectron.scE1x5()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - histSclE1x5_eg_endcaps_->Fill(bestGsfElectron.scE1x5()); - if (bestGsfElectron.ecalDrivenSeed()) - histSclE2x5max_eg_->Fill(bestGsfElectron.scE2x5Max()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - histSclE2x5max_eg_barrel_->Fill(bestGsfElectron.scE2x5Max()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - histSclE2x5max_eg_endcaps_->Fill(bestGsfElectron.scE2x5Max()); - if (bestGsfElectron.ecalDrivenSeed()) - histSclE5x5_eg_->Fill(bestGsfElectron.scE5x5()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - histSclE5x5_eg_barrel_->Fill(bestGsfElectron.scE5x5()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - histSclE5x5_eg_endcaps_->Fill(bestGsfElectron.scE5x5()); - float pfEnergy = 0., egEnergy = 0.; - if (!bestGsfElectron.superCluster().isNull()) - egEnergy = bestGsfElectron.superCluster()->energy(); - if (!bestGsfElectron.parentSuperCluster().isNull()) - pfEnergy = bestGsfElectron.parentSuperCluster()->energy(); - histSclEoEtruePfVsEg->Fill(egEnergy / mcIter->p(), pfEnergy / mcIter->p()); - - // track related distributions - h_ele_ambiguousTracks->Fill(bestGsfElectron.ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.ambiguousGsfTracksSize()); - if (!readAOD_) { // track extra does not exist in AOD - h_ele_foundHits->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits()); - if (bestGsfElectron.isEB()) - h_ele_foundHits_barrel->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits()); - if (bestGsfElectron.isEE()) - h_ele_foundHits_endcaps->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfValidHits()); - h_ele_lostHits->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits()); - if (bestGsfElectron.isEB()) - h_ele_lostHits_barrel->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits()); - if (bestGsfElectron.isEE()) - h_ele_lostHits_endcaps->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfLostHits()); - h_ele_chi2->Fill(bestGsfElectron.gsfTrack()->normalizedChi2()); - if (bestGsfElectron.isEB()) - h_ele_chi2_barrel->Fill(bestGsfElectron.gsfTrack()->normalizedChi2()); - if (bestGsfElectron.isEE()) - h_ele_chi2_endcaps->Fill(bestGsfElectron.gsfTrack()->normalizedChi2()); - h_ele_chi2VsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->normalizedChi2()); - h_ele_chi2VsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->normalizedChi2()); - h_ele_chi2VsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->normalizedChi2()); - } - // from gsf track interface, hence using mean - if (!readAOD_) { // track extra does not exist in AOD - h_ele_PinMnPout->Fill(bestGsfElectron.gsfTrack()->innerMomentum().R() - - bestGsfElectron.gsfTrack()->outerMomentum().R()); - h_ele_outerP->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R()); - h_ele_outerPt->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho()); - } - // from electron interface, hence using mode - h_ele_PinMnPout_mode->Fill(bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_PinMnPoutVsEta_mode->Fill( - bestGsfElectron.eta(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_PinMnPoutVsPhi_mode->Fill( - bestGsfElectron.phi(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_PinMnPoutVsPt_mode->Fill( - bestGsfElectron.pt(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_PinMnPoutVsE_mode->Fill( - bestGsfElectron.caloEnergy(), - bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - if (!readAOD_) // track extra does not exist in AOD - h_ele_PinMnPoutVsChi2_mode->Fill( - bestGsfElectron.gsfTrack()->normalizedChi2(), - bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_outerP_mode->Fill(bestGsfElectron.trackMomentumOut().R()); - h_ele_outerPVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().R()); - h_ele_outerPt_mode->Fill(bestGsfElectron.trackMomentumOut().Rho()); - h_ele_outerPtVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().Rho()); - h_ele_outerPtVsPhi_mode->Fill(bestGsfElectron.phi(), bestGsfElectron.trackMomentumOut().Rho()); - h_ele_outerPtVsPt_mode->Fill(bestGsfElectron.pt(), bestGsfElectron.trackMomentumOut().Rho()); - - if (!readAOD_) { // track extra does not exist in AOD - edm::RefToBase seed = bestGsfElectron.gsfTrack()->extra()->seedRef(); - ElectronSeedRef elseed = seed.castTo(); - h_ele_seed_dphi2_->Fill(elseed->dPhiNeg(1)); - h_ele_seed_dphi2VsEta_->Fill(bestGsfElectron.eta(), elseed->dPhiNeg(1)); - h_ele_seed_dphi2VsPt_->Fill(bestGsfElectron.pt(), elseed->dPhiNeg(1)); - h_ele_seed_drz2_->Fill(elseed->dRZNeg(1)); - h_ele_seed_drz2VsEta_->Fill(bestGsfElectron.eta(), elseed->dRZNeg(1)); - h_ele_seed_drz2VsPt_->Fill(bestGsfElectron.pt(), elseed->dRZNeg(1)); - h_ele_seed_subdet2_->Fill(elseed->subDet(1)); - } - // match distributions - h_ele_EoP->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_EoP_eg->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.isEB()) - h_ele_EoP_barrel->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EoP_eg_barrel->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.isEE()) - h_ele_EoP_endcaps->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EoP_eg_endcaps->Fill(bestGsfElectron.eSuperClusterOverP()); - h_ele_EoPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSuperClusterOverP()); - h_ele_EoPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSuperClusterOverP()); - h_ele_EoPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSuperClusterOverP()); - h_ele_EseedOP->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_EseedOP_eg->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.isEB()) - h_ele_EseedOP_barrel->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EseedOP_eg_barrel->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.isEE()) - h_ele_EseedOP_endcaps->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EseedOP_eg_endcaps->Fill(bestGsfElectron.eSeedClusterOverP()); - h_ele_EseedOPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverP()); - h_ele_EseedOPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverP()); - h_ele_EseedOPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverP()); - h_ele_EoPout->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_EoPout_eg->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.isEB()) - h_ele_EoPout_barrel->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EoPout_eg_barrel->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.isEE()) - h_ele_EoPout_endcaps->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EoPout_eg_endcaps->Fill(bestGsfElectron.eSeedClusterOverPout()); - h_ele_EoPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverPout()); - h_ele_EoPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverPout()); - h_ele_EoPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverPout()); - h_ele_EeleOPout->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_EeleOPout_eg->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.isEB()) - h_ele_EeleOPout_barrel->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EeleOPout_eg_barrel->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.isEE()) - h_ele_EeleOPout_endcaps->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EeleOPout_eg_endcaps->Fill(bestGsfElectron.eEleClusterOverPout()); - h_ele_EeleOPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eEleClusterOverPout()); - h_ele_EeleOPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eEleClusterOverPout()); - h_ele_EeleOPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eEleClusterOverPout()); - h_ele_dEtaSc_propVtx->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaSc_propVtx_eg->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEB()) - h_ele_dEtaSc_propVtx_barrel->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaSc_propVtx_eg_barrel->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEE()) - h_ele_dEtaSc_propVtx_endcaps->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaSc_propVtx_eg_endcaps->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - h_ele_dEtaScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - h_ele_dEtaScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - h_ele_dEtaScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - h_ele_dPhiSc_propVtx->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiSc_propVtx_eg->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEB()) - h_ele_dPhiSc_propVtx_barrel->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiSc_propVtx_eg_barrel->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEE()) - h_ele_dPhiSc_propVtx_endcaps->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiSc_propVtx_eg_endcaps->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - h_ele_dPhiScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - h_ele_dPhiScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - h_ele_dPhiScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - h_ele_dEtaCl_propOut->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaCl_propOut_eg->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEB()) - h_ele_dEtaCl_propOut_barrel->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEE()) - h_ele_dEtaCl_propOut_endcaps->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - h_ele_dEtaClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - h_ele_dEtaClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - h_ele_dEtaClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - h_ele_dPhiCl_propOut->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiCl_propOut_eg->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEB()) - h_ele_dPhiCl_propOut_barrel->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEE()) - h_ele_dPhiCl_propOut_endcaps->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - h_ele_dPhiClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - h_ele_dPhiClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - h_ele_dPhiClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - h_ele_dEtaEleCl_propOut->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaEleCl_propOut_eg->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.isEB()) - h_ele_dEtaEleCl_propOut_barrel->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaEleCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.isEE()) - h_ele_dEtaEleCl_propOut_endcaps->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaEleCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - h_ele_dEtaEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - h_ele_dEtaEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - h_ele_dEtaEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - h_ele_dPhiEleCl_propOut->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiEleCl_propOut_eg->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.isEB()) - h_ele_dPhiEleCl_propOut_barrel->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiEleCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.isEE()) - h_ele_dPhiEleCl_propOut_endcaps->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiEleCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - h_ele_dPhiEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - h_ele_dPhiEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - h_ele_dPhiEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - h_ele_HoE->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_HoE_eg->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.isEB()) - h_ele_HoE_barrel->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_HoE_eg_barrel->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.isEE()) - h_ele_HoE_endcaps->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_HoE_eg_endcaps->Fill(bestGsfElectron.hadronicOverEm()); - if (!bestGsfElectron.isEBEtaGap() && !bestGsfElectron.isEBPhiGap() && !bestGsfElectron.isEBEEGap() && - !bestGsfElectron.isEERingGap() && !bestGsfElectron.isEEDeeGap()) - h_ele_HoE_fiducial->Fill(bestGsfElectron.hadronicOverEm()); - h_ele_HoEVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.hadronicOverEm()); - h_ele_HoEVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.hadronicOverEm()); - h_ele_HoEVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.hadronicOverEm()); - - //classes - int eleClass = bestGsfElectron.classification(); - if (bestGsfElectron.isEE()) - eleClass += 10; - h_ele_classes->Fill(eleClass); - - if (bestGsfElectron.classification() == GsfElectron::GOLDEN && bestGsfElectron.isEB()) - histSclEoEtrueGolden_barrel->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.classification() == GsfElectron::GOLDEN && bestGsfElectron.isEE()) - histSclEoEtrueGolden_endcaps->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.classification() == GsfElectron::SHOWERING && bestGsfElectron.isEB()) - histSclEoEtrueShowering_barrel->Fill(sclRef->energy() / mcIter->p()); - if (bestGsfElectron.classification() == GsfElectron::SHOWERING && bestGsfElectron.isEE()) - histSclEoEtrueShowering_endcaps->Fill(sclRef->energy() / mcIter->p()); - - //eleClass = eleClass%100; // get rid of barrel/endcap distinction - h_ele_eta->Fill(std::abs(bestGsfElectron.eta())); - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_eta_golden->Fill(std::abs(bestGsfElectron.eta())); - if (bestGsfElectron.classification() == GsfElectron::BIGBREM) - h_ele_eta_bbrem->Fill(std::abs(bestGsfElectron.eta())); - //if (bestGsfElectron.classification() == GsfElectron::NARROW) h_ele_eta_narrow ->Fill(std::abs(bestGsfElectron.eta())); - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_eta_shower->Fill(std::abs(bestGsfElectron.eta())); - - //fbrem - double fbrem_mean = 0.; - if (!readAOD_) // track extra does not exist in AOD - fbrem_mean = - 1. - bestGsfElectron.gsfTrack()->outerMomentum().R() / bestGsfElectron.gsfTrack()->innerMomentum().R(); - double fbrem_mode = bestGsfElectron.fbrem(); - h_ele_fbrem->Fill(fbrem_mode); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_fbrem_eg->Fill(fbrem_mode); - h_ele_fbremVsEta_mode->Fill(bestGsfElectron.eta(), fbrem_mode); - if (!readAOD_) // track extra does not exist in AOD - h_ele_fbremVsEta_mean->Fill(bestGsfElectron.eta(), fbrem_mean); - - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_PinVsPoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().R(), - bestGsfElectron.trackMomentumAtVtx().R()); - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_PinVsPoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().R(), - bestGsfElectron.trackMomentumAtVtx().R()); - if (!readAOD_) { // track extra not available in AOD - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_PinVsPoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(), - bestGsfElectron.gsfTrack()->innerMomentum().R()); - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_PinVsPoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(), - bestGsfElectron.gsfTrack()->innerMomentum().R()); - } - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_PtinVsPtoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(), - bestGsfElectron.trackMomentumAtVtx().Rho()); - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_PtinVsPtoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(), - bestGsfElectron.trackMomentumAtVtx().Rho()); - if (!readAOD_) { // track extra not available in AOD - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_PtinVsPtoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(), - bestGsfElectron.gsfTrack()->innerMomentum().Rho()); - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_PtinVsPtoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(), - bestGsfElectron.gsfTrack()->innerMomentum().Rho()); - } - - h_ele_mva->Fill(bestGsfElectron.mva_e_pi()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_mva_eg->Fill(bestGsfElectron.mva_e_pi()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_provenance->Fill(1.); - if (bestGsfElectron.trackerDrivenSeed()) - h_ele_provenance->Fill(-1.); - if (bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) - h_ele_provenance->Fill(0.); - if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed()) - h_ele_provenance->Fill(-2.); - if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed()) - h_ele_provenance->Fill(2.); - - h_ele_tkSumPt_dr03->Fill(bestGsfElectron.dr03TkSumPt()); - h_ele_ecalRecHitSumEt_dr03->Fill(bestGsfElectron.dr03EcalRecHitSumEt()); - h_ele_hcalDepth1TowerSumEt_dr03->Fill(bestGsfElectron.dr03HcalTowerSumEt(1)); - h_ele_hcalDepth2TowerSumEt_dr03->Fill(bestGsfElectron.dr03HcalTowerSumEt(2)); - h_ele_tkSumPt_dr04->Fill(bestGsfElectron.dr04TkSumPt()); - h_ele_ecalRecHitSumEt_dr04->Fill(bestGsfElectron.dr04EcalRecHitSumEt()); - h_ele_hcalDepth1TowerSumEt_dr04->Fill(bestGsfElectron.dr04HcalTowerSumEt(1)); - h_ele_hcalDepth2TowerSumEt_dr04->Fill(bestGsfElectron.dr04HcalTowerSumEt(2)); - - } // gsf electron found - - } // mc particle found - } - - } // loop over mc particle - - h_mcNum->Fill(mcNum); - h_eleNum->Fill(eleNum); -} diff --git a/RecoEgamma/Examples/plugins/GsfElectronMCFakeAnalyzer.cc b/RecoEgamma/Examples/plugins/GsfElectronMCFakeAnalyzer.cc deleted file mode 100644 index b87e7aef64332..0000000000000 --- a/RecoEgamma/Examples/plugins/GsfElectronMCFakeAnalyzer.cc +++ /dev/null @@ -1,2593 +0,0 @@ -// -*- C++ -*- -// -// Package: RecoEgamma/Examples -// Class: GsfElectronMCFakeAnalyzer -// -/**\class GsfElectronMCFakeAnalyzer RecoEgamma/Examples/src/GsfElectronMCFakeAnalyzer.cc - - Description: GsfElectrons fake electrons analyzer using mc info - - Implementation: - -*/ -// -// Original Author: Ursula Berthon, Claude Charlot -// Created: Mon Mar 27 13:22:06 CEST 2006 -// -// - -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectron.h" -#include "DataFormats/EgammaCandidates/interface/GsfElectronFwd.h" -#include "DataFormats/EgammaReco/interface/ElectronSeed.h" -#include "DataFormats/EgammaReco/interface/ElectronSeedFwd.h" -#include "DataFormats/EgammaReco/interface/SuperClusterFwd.h" -#include "DataFormats/GsfTrackReco/interface/GsfTrack.h" -#include "DataFormats/JetReco/interface/GenJetCollection.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Utilities/interface/InputTag.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" - -#include "CLHEP/Units/GlobalPhysicalConstants.h" - -#include "TFile.h" -#include "TH1F.h" -#include "TH1I.h" -#include "TH2F.h" -#include "TProfile.h" -#include "TTree.h" - -#include - -class GsfElectronMCFakeAnalyzer : public edm::one::EDAnalyzer<> { -public: - explicit GsfElectronMCFakeAnalyzer(const edm::ParameterSet &conf); - - ~GsfElectronMCFakeAnalyzer() override; - - void beginJob() override; - void endJob() override; - void analyze(const edm::Event &e, const edm::EventSetup &c) override; - -private: - edm::InputTag electronCollection_; - edm::InputTag matchingObjectCollection_; - edm::InputTag beamSpot_; - bool readAOD_; - std::string outputFile_; - - TrajectoryStateTransform transformer_; - - float mcEnergy[10], mcEta[10], mcPhi[10], mcPt[10], mcQ[10]; - float superclusterEnergy[10], superclusterEta[10], superclusterPhi[10], superclusterEt[10]; - float seedMomentum[10], seedEta[10], seedPhi[10], seedPt[10], seedQ[10]; - - double maxPt_; - double maxAbsEta_; - double deltaR_; - - TFile *histfile_; - TTree *tree_; - - // histos limits and binning - - int nbinxyz; - int nbinp; - int nbinp2D; - double pmax; - int nbinpt; - int nbinpt2D; - int nbinpteff; - double ptmax; - int nbinfhits; - double fhitsmax; - int nbinlhits; - double lhitsmax; - int nbineta; - int nbineta2D; - double etamin; - double etamax; - int nbindeta; - double detamin; - double detamax; - int nbindetamatch; - int nbindetamatch2D; - double detamatchmin; - double detamatchmax; - int nbinphi; - int nbinphi2D; - double phimin; - double phimax; - int nbindphi; - double dphimin; - double dphimax; - int nbindphimatch; - int nbindphimatch2D; - double dphimatchmin; - double dphimatchmax; - int nbineop; - int nbineop2D; - double eopmax; - double eopmaxsht; - int nbinmee; - double meemin; - double meemax; - int nbinhoe; - double hoemin; - double hoemax; - - // histos - - TH1F *h_matchingObjectNum; - - TH1F *h_matchingObjectEta; - TH1F *h_matchingObjectAbsEta; - TH1F *h_matchingObjectP; - TH1F *h_matchingObjectPt; - TH1F *h_matchingObjectPhi; - TH1F *h_matchingObjectZ; - - TH1F *h_ele_EoverP_all; - TH1F *h_ele_EseedOP_all; - TH1F *h_ele_EoPout_all; - TH1F *h_ele_EeleOPout_all; - TH1F *h_ele_dEtaSc_propVtx_all; - TH1F *h_ele_dPhiSc_propVtx_all; - TH1F *h_ele_dEtaCl_propOut_all; - TH1F *h_ele_dPhiCl_propOut_all; - TH1F *h_ele_TIP_all; - TH1F *h_ele_HoE_all; - TH1F *h_ele_vertexEta_all; - TH1F *h_ele_vertexPt_all; - TH1F *h_ele_mee_all; - TH1F *h_ele_mee_os; - - TH2F *h_ele_E2mnE1vsMee_all; - TH2F *h_ele_E2mnE1vsMee_egeg_all; - - TH1F *h_ele_matchingObjectEta_matched; - TH1F *h_ele_matchingObjectAbsEta_matched; - TH1F *h_ele_matchingObjectPt_matched; - TH1F *h_ele_matchingObjectPhi_matched; - TH1F *h_ele_matchingObjectZ_matched; - - TH1F *h_ele_charge; - TH2F *h_ele_chargeVsEta; - TH2F *h_ele_chargeVsPhi; - TH2F *h_ele_chargeVsPt; - TH1F *h_ele_vertexP; - TH1F *h_ele_vertexPt; - TH2F *h_ele_vertexPtVsEta; - TH2F *h_ele_vertexPtVsPhi; - TH1F *h_ele_vertexEta; - TH2F *h_ele_vertexEtaVsPhi; - TH1F *h_ele_vertexAbsEta; - TH1F *h_ele_vertexPhi; - TH1F *h_ele_vertexX; - TH1F *h_ele_vertexY; - TH1F *h_ele_vertexZ; - TH1F *h_ele_vertexTIP; - TH2F *h_ele_vertexTIPVsEta; - TH2F *h_ele_vertexTIPVsPhi; - TH2F *h_ele_vertexTIPVsPt; - - TH1F *histNum_; - - TH1F *histSclEn_; - TH1F *histSclEoEmatchingObject_barrel; - TH1F *histSclEoEmatchingObject_endcaps; - TH1F *histSclEt_; - TH2F *histSclEtVsEta_; - TH2F *histSclEtVsPhi_; - TH2F *histSclEtaVsPhi_; - TH1F *histSclEta_; - TH1F *histSclPhi_; - TH1F *histSclSigEtaEta_; - TH1F *histSclSigEtaEta_barrel_; - TH1F *histSclSigEtaEta_endcaps_; - TH1F *histSclSigIEtaIEta_; - TH1F *histSclSigIEtaIEta_barrel_; - TH1F *histSclSigIEtaIEta_endcaps_; - TH1F *histSclE1x5_; - TH1F *histSclE1x5_barrel_; - TH1F *histSclE1x5_endcaps_; - TH1F *histSclE2x5max_; - TH1F *histSclE2x5max_barrel_; - TH1F *histSclE2x5max_endcaps_; - TH1F *histSclE5x5_; - TH1F *histSclE5x5_barrel_; - TH1F *histSclE5x5_endcaps_; - - TH1F *h_ele_ambiguousTracks; - TH2F *h_ele_ambiguousTracksVsEta; - TH2F *h_ele_ambiguousTracksVsPhi; - TH2F *h_ele_ambiguousTracksVsPt; - TH1F *h_ele_foundHits; - TH1F *h_ele_foundHits_barrel; - TH1F *h_ele_foundHits_endcaps; - TH2F *h_ele_foundHitsVsEta; - TH2F *h_ele_foundHitsVsPhi; - TH2F *h_ele_foundHitsVsPt; - TH1F *h_ele_lostHits; - TH1F *h_ele_lostHits_barrel; - TH1F *h_ele_lostHits_endcaps; - TH2F *h_ele_lostHitsVsEta; - TH2F *h_ele_lostHitsVsPhi; - TH2F *h_ele_lostHitsVsPt; - TH1F *h_ele_chi2; - TH1F *h_ele_chi2_barrel; - TH1F *h_ele_chi2_endcaps; - TH2F *h_ele_chi2VsEta; - TH2F *h_ele_chi2VsPhi; - TH2F *h_ele_chi2VsPt; - - TH1F *h_ele_PoPmatchingObject; - TH2F *h_ele_PoPmatchingObjectVsEta; - TH2F *h_ele_PoPmatchingObjectVsPhi; - TH2F *h_ele_PoPmatchingObjectVsPt; - TH1F *h_ele_PoPmatchingObject_barrel; - TH1F *h_ele_PoPmatchingObject_endcaps; - TH1F *h_ele_EtaMnEtamatchingObject; - TH2F *h_ele_EtaMnEtamatchingObjectVsEta; - TH2F *h_ele_EtaMnEtamatchingObjectVsPhi; - TH2F *h_ele_EtaMnEtamatchingObjectVsPt; - TH1F *h_ele_PhiMnPhimatchingObject; - TH1F *h_ele_PhiMnPhimatchingObject2; - TH2F *h_ele_PhiMnPhimatchingObjectVsEta; - TH2F *h_ele_PhiMnPhimatchingObjectVsPhi; - TH2F *h_ele_PhiMnPhimatchingObjectVsPt; - - TH1F *h_ele_PinMnPout; - TH1F *h_ele_PinMnPout_mode; - TH2F *h_ele_PinMnPoutVsEta_mode; - TH2F *h_ele_PinMnPoutVsPhi_mode; - TH2F *h_ele_PinMnPoutVsPt_mode; - TH2F *h_ele_PinMnPoutVsE_mode; - TH2F *h_ele_PinMnPoutVsChi2_mode; - - TH1F *h_ele_outerP; - TH1F *h_ele_outerP_mode; - TH2F *h_ele_outerPVsEta_mode; - TH1F *h_ele_outerPt; - TH1F *h_ele_outerPt_mode; - TH2F *h_ele_outerPtVsEta_mode; - TH2F *h_ele_outerPtVsPhi_mode; - TH2F *h_ele_outerPtVsPt_mode; - TH1F *h_ele_EoP; - TH1F *h_ele_EoP_barrel; - TH1F *h_ele_EoP_endcaps; - TH1F *h_ele_EoP_eg; - TH1F *h_ele_EoP_eg_barrel; - TH1F *h_ele_EoP_eg_endcaps; - TH2F *h_ele_EoPVsEta; - TH2F *h_ele_EoPVsPhi; - TH2F *h_ele_EoPVsE; - TH1F *h_ele_EseedOP; - TH1F *h_ele_EseedOP_barrel; - TH1F *h_ele_EseedOP_endcaps; - TH1F *h_ele_EseedOP_eg; - TH1F *h_ele_EseedOP_eg_barrel; - TH1F *h_ele_EseedOP_eg_endcaps; - TH2F *h_ele_EseedOPVsEta; - TH2F *h_ele_EseedOPVsPhi; - TH2F *h_ele_EseedOPVsE; - TH1F *h_ele_EoPout; - TH1F *h_ele_EoPout_barrel; - TH1F *h_ele_EoPout_endcaps; - TH1F *h_ele_EoPout_eg; - TH1F *h_ele_EoPout_eg_barrel; - TH1F *h_ele_EoPout_eg_endcaps; - TH2F *h_ele_EoPoutVsEta; - TH2F *h_ele_EoPoutVsPhi; - TH2F *h_ele_EoPoutVsE; - TH1F *h_ele_EeleOPout; - TH1F *h_ele_EeleOPout_barrel; - TH1F *h_ele_EeleOPout_endcaps; - TH1F *h_ele_EeleOPout_eg; - TH1F *h_ele_EeleOPout_eg_barrel; - TH1F *h_ele_EeleOPout_eg_endcaps; - TH2F *h_ele_EeleOPoutVsEta; - TH2F *h_ele_EeleOPoutVsPhi; - TH2F *h_ele_EeleOPoutVsE; - - TH1F *h_ele_dEtaSc_propVtx; - TH1F *h_ele_dEtaSc_propVtx_barrel; - TH1F *h_ele_dEtaSc_propVtx_endcaps; - TH1F *h_ele_dEtaSc_propVtx_eg; - TH1F *h_ele_dEtaSc_propVtx_eg_barrel; - TH1F *h_ele_dEtaSc_propVtx_eg_endcaps; - TH2F *h_ele_dEtaScVsEta_propVtx; - TH2F *h_ele_dEtaScVsPhi_propVtx; - TH2F *h_ele_dEtaScVsPt_propVtx; - TH1F *h_ele_dPhiSc_propVtx; - TH1F *h_ele_dPhiSc_propVtx_barrel; - TH1F *h_ele_dPhiSc_propVtx_endcaps; - TH1F *h_ele_dPhiSc_propVtx_eg; - TH1F *h_ele_dPhiSc_propVtx_eg_barrel; - TH1F *h_ele_dPhiSc_propVtx_eg_endcaps; - TH2F *h_ele_dPhiScVsEta_propVtx; - TH2F *h_ele_dPhiScVsPhi_propVtx; - TH2F *h_ele_dPhiScVsPt_propVtx; - TH1F *h_ele_dEtaCl_propOut; - TH1F *h_ele_dEtaCl_propOut_barrel; - TH1F *h_ele_dEtaCl_propOut_endcaps; - TH1F *h_ele_dEtaCl_propOut_eg; - TH1F *h_ele_dEtaCl_propOut_eg_barrel; - TH1F *h_ele_dEtaCl_propOut_eg_endcaps; - TH2F *h_ele_dEtaClVsEta_propOut; - TH2F *h_ele_dEtaClVsPhi_propOut; - TH2F *h_ele_dEtaClVsPt_propOut; - TH1F *h_ele_dPhiCl_propOut; - TH1F *h_ele_dPhiCl_propOut_barrel; - TH1F *h_ele_dPhiCl_propOut_endcaps; - TH1F *h_ele_dPhiCl_propOut_eg; - TH1F *h_ele_dPhiCl_propOut_eg_barrel; - TH1F *h_ele_dPhiCl_propOut_eg_endcaps; - TH2F *h_ele_dPhiClVsEta_propOut; - TH2F *h_ele_dPhiClVsPhi_propOut; - TH2F *h_ele_dPhiClVsPt_propOut; - TH1F *h_ele_dEtaEleCl_propOut; - TH1F *h_ele_dEtaEleCl_propOut_barrel; - TH1F *h_ele_dEtaEleCl_propOut_endcaps; - TH1F *h_ele_dEtaEleCl_propOut_eg; - TH1F *h_ele_dEtaEleCl_propOut_eg_barrel; - TH1F *h_ele_dEtaEleCl_propOut_eg_endcaps; - TH2F *h_ele_dEtaEleClVsEta_propOut; - TH2F *h_ele_dEtaEleClVsPhi_propOut; - TH2F *h_ele_dEtaEleClVsPt_propOut; - TH1F *h_ele_dPhiEleCl_propOut; - TH1F *h_ele_dPhiEleCl_propOut_barrel; - TH1F *h_ele_dPhiEleCl_propOut_endcaps; - TH1F *h_ele_dPhiEleCl_propOut_eg; - TH1F *h_ele_dPhiEleCl_propOut_eg_barrel; - TH1F *h_ele_dPhiEleCl_propOut_eg_endcaps; - TH2F *h_ele_dPhiEleClVsEta_propOut; - TH2F *h_ele_dPhiEleClVsPhi_propOut; - TH2F *h_ele_dPhiEleClVsPt_propOut; - - TH1F *h_ele_seed_dphi2_; - TH2F *h_ele_seed_dphi2VsEta_; - TH2F *h_ele_seed_dphi2VsPt_; - TH1F *h_ele_seed_drz2_; - TH2F *h_ele_seed_drz2VsEta_; - TH2F *h_ele_seed_drz2VsPt_; - TH1F *h_ele_seed_subdet2_; - - TH1F *h_ele_classes; - TH1F *h_ele_eta; - TH1F *h_ele_eta_golden; - TH1F *h_ele_eta_bbrem; - TH1F *h_ele_eta_narrow; - TH1F *h_ele_eta_shower; - - TH1F *h_ele_HoE; - TH1F *h_ele_HoE_barrel; - TH1F *h_ele_HoE_endcaps; - TH1F *h_ele_HoE_eg; - TH1F *h_ele_HoE_eg_barrel; - TH1F *h_ele_HoE_eg_endcaps; - TH1F *h_ele_HoE_fiducial; - TH2F *h_ele_HoEVsEta; - TH2F *h_ele_HoEVsPhi; - TH2F *h_ele_HoEVsE; - - TH1F *h_ele_fbrem; - TProfile *h_ele_fbremVsEta_mode; - TProfile *h_ele_fbremVsEta_mean; - - TH2F *h_ele_PinVsPoutGolden_mode; - TH2F *h_ele_PinVsPoutShowering_mode; - TH2F *h_ele_PinVsPoutGolden_mean; - TH2F *h_ele_PinVsPoutShowering_mean; - TH2F *h_ele_PtinVsPtoutGolden_mode; - TH2F *h_ele_PtinVsPtoutShowering_mode; - TH2F *h_ele_PtinVsPtoutGolden_mean; - TH2F *h_ele_PtinVsPtoutShowering_mean; - TH1F *histSclEoEmatchingObjectGolden_barrel; - TH1F *histSclEoEmatchingObjectGolden_endcaps; - TH1F *histSclEoEmatchingObjectShowering_barrel; - TH1F *histSclEoEmatchingObjectShowering_endcaps; - - TH1F *h_ele_mva; - TH1F *h_ele_provenance; - - TH1F *h_ele_tkSumPt_dr03; - TH1F *h_ele_ecalRecHitSumEt_dr03; - TH1F *h_ele_hcalDepth1TowerSumEt_dr03; - TH1F *h_ele_hcalDepth2TowerSumEt_dr03; - TH1F *h_ele_tkSumPt_dr04; - TH1F *h_ele_ecalRecHitSumEt_dr04; - TH1F *h_ele_hcalDepth1TowerSumEt_dr04; - TH1F *h_ele_hcalDepth2TowerSumEt_dr04; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(GsfElectronMCFakeAnalyzer); - -using namespace reco; - -GsfElectronMCFakeAnalyzer::GsfElectronMCFakeAnalyzer(const edm::ParameterSet &conf) - : beamSpot_(conf.getParameter("beamSpot")) { - outputFile_ = conf.getParameter("outputFile"); - histfile_ = new TFile(outputFile_.c_str(), "RECREATE"); - electronCollection_ = conf.getParameter("electronCollection"); - matchingObjectCollection_ = conf.getParameter("matchingObjectCollection"); - readAOD_ = conf.getParameter("readAOD"); - maxPt_ = conf.getParameter("MaxPt"); - maxAbsEta_ = conf.getParameter("MaxAbsEta"); - deltaR_ = conf.getParameter("DeltaR"); - - edm::ParameterSet pset = conf.getParameter("HistosConfigurationFake"); - - etamin = pset.getParameter("Etamin"); - etamax = pset.getParameter("Etamax"); - phimin = pset.getParameter("Phimin"); - phimax = pset.getParameter("Phimax"); - ptmax = pset.getParameter("Ptmax"); - pmax = pset.getParameter("Pmax"); - eopmax = pset.getParameter("Eopmax"); - eopmaxsht = pset.getParameter("Eopmaxsht"); - detamin = pset.getParameter("Detamin"); - detamax = pset.getParameter("Detamax"); - dphimin = pset.getParameter("Dphimin"); - dphimax = pset.getParameter("Dphimax"); - detamatchmin = pset.getParameter("Detamatchmin"); - detamatchmax = pset.getParameter("Detamatchmax"); - dphimatchmin = pset.getParameter("Dphimatchmin"); - dphimatchmax = pset.getParameter("Dphimatchmax"); - fhitsmax = pset.getParameter("Fhitsmax"); - lhitsmax = pset.getParameter("Lhitsmax"); - nbineta = pset.getParameter("Nbineta"); - nbineta2D = pset.getParameter("Nbineta2D"); - nbinp = pset.getParameter("Nbinp"); - nbinpt = pset.getParameter("Nbinpt"); - nbinp2D = pset.getParameter("Nbinp2D"); - nbinpt2D = pset.getParameter("Nbinpt2D"); - nbinpteff = pset.getParameter("Nbinpteff"); - nbinphi = pset.getParameter("Nbinphi"); - nbinphi2D = pset.getParameter("Nbinphi2D"); - nbineop = pset.getParameter("Nbineop"); - nbineop2D = pset.getParameter("Nbineop2D"); - nbinfhits = pset.getParameter("Nbinfhits"); - nbinlhits = pset.getParameter("Nbinlhits"); - nbinxyz = pset.getParameter("Nbinxyz"); - nbindeta = pset.getParameter("Nbindeta"); - nbindphi = pset.getParameter("Nbindphi"); - nbindetamatch = pset.getParameter("Nbindetamatch"); - nbindphimatch = pset.getParameter("Nbindphimatch"); - nbindetamatch2D = pset.getParameter("Nbindetamatch2D"); - nbindphimatch2D = pset.getParameter("Nbindphimatch2D"); - nbinmee = pset.getParameter("Nbinmee"); - meemin = pset.getParameter("Meemin"); - meemax = pset.getParameter("Meemax"); - nbinhoe = pset.getParameter("Nbinhoe"); - hoemin = pset.getParameter("Hoemin"); - hoemax = pset.getParameter("Hoemax"); -} - -GsfElectronMCFakeAnalyzer::~GsfElectronMCFakeAnalyzer() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) - histfile_->Write(); - histfile_->Close(); -} - -void GsfElectronMCFakeAnalyzer::beginJob() { - histfile_->cd(); - - // matching object - std::string::size_type locJet = matchingObjectCollection_.label().find("ak4GenJets", 0); - std::string type_; - if (locJet != std::string::npos) { - std::cout << "Matching objects are GenJets " << std::endl; - type_ = "GenJet"; - } else { - std::cout << "Didn't recognize input matching objects!! " << std::endl; - } - - std::string htitle, hlabel; - hlabel = "h_" + type_ + "Num"; - htitle = "# " + type_ + "s"; - h_matchingObjectNum = new TH1F(hlabel.c_str(), htitle.c_str(), nbinfhits, 0., fhitsmax); - - // rec event - histNum_ = new TH1F("h_recEleNum", "# rec electrons", 20, 0., 20.); - - // matching object distributions - hlabel = "h_matchingObject_eta"; - htitle = type_ + " #eta"; - h_matchingObjectEta = new TH1F(hlabel.c_str(), htitle.c_str(), nbineta, etamin, etamax); - hlabel = "h_matchingObject_abseta"; - htitle = type_ + " |#eta|"; - h_matchingObjectAbsEta = new TH1F(hlabel.c_str(), htitle.c_str(), nbineta / 2, 0., etamax); - hlabel = "h_matchingObject_P"; - htitle = type_ + " p"; - h_matchingObjectP = new TH1F(hlabel.c_str(), htitle.c_str(), nbinp, 0., pmax); - hlabel = "h_matchingObject_Pt"; - htitle = type_ + " pt"; - h_matchingObjectPt = new TH1F(hlabel.c_str(), htitle.c_str(), nbinpteff, 5., ptmax); - hlabel = "h_matchingObject_phi"; - htitle = type_ + " phi"; - h_matchingObjectPhi = new TH1F(hlabel.c_str(), htitle.c_str(), nbinphi, phimin, phimax); - hlabel = "h_matchingObject_z"; - htitle = type_ + " z"; - h_matchingObjectZ = new TH1F(hlabel.c_str(), htitle.c_str(), nbinxyz, -25, 25); - - // all electrons - h_ele_EoverP_all = new TH1F("h_ele_EoverP_all", "ele E/P_{vertex}, all reco electrons", nbineop, 0., eopmax); - h_ele_EseedOP_all = new TH1F("h_ele_EseedOP_all", "ele E_{seed}/P_{vertex}, all reco electrons", nbineop, 0., eopmax); - h_ele_EoPout_all = new TH1F("h_ele_EoPout_all", "ele E_{seed}/P_{out}, all reco electrons", nbineop, 0., eopmax); - h_ele_EeleOPout_all = new TH1F("h_ele_EeleOPout_all", "ele E_{ele}/P_{out}, all reco electrons", nbineop, 0., eopmax); - h_ele_dEtaSc_propVtx_all = new TH1F("h_ele_dEtaSc_propVtx_all", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, all reco electrons", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dPhiSc_propVtx_all = new TH1F("h_ele_dPhiSc_propVtx_all", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, all reco electrons", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dEtaCl_propOut_all = new TH1F("h_ele_dEtaCl_propOut_all", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, all reco electrons", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dPhiCl_propOut_all = new TH1F("h_ele_dPhiCl_propOut_all", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, all reco electrons", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_TIP_all = new TH1F("h_ele_TIP_all", "ele vertex transverse radius, all reco electrons", 100, 0., 0.2); - h_ele_HoE_all = - new TH1F("h_ele_HoE_all", "ele hadronic energy / em energy, all reco electrons", nbinhoe, hoemin, hoemax); - h_ele_vertexEta_all = new TH1F("h_ele_vertexEta_all", "ele eta, all reco electrons", nbineta, etamin, etamax); - h_ele_vertexEta_all->Sumw2(); - h_ele_vertexPt_all = new TH1F("h_ele_vertexPt_all", "ele p_{T}, all reco electrons", nbinpteff, 5., ptmax); - h_ele_vertexPt_all->Sumw2(); - h_ele_mee_all = new TH1F("h_ele_mee_all", "ele pairs invariant mass, all reco electrons", nbinmee, meemin, meemax); - h_ele_mee_os = new TH1F("h_ele_mee_os", "ele pairs invariant mass, opp. sign", nbinmee, meemin, meemax); - - // duplicates - h_ele_E2mnE1vsMee_all = new TH2F("h_ele_E2mnE1vsMee_all", - "E2 - E1 vs ele pairs invariant mass, all electrons", - nbinmee, - meemin, - meemax, - 100, - -50., - 50.); - h_ele_E2mnE1vsMee_egeg_all = new TH2F("h_ele_E2mnE1vsMee_egeg_all", - "E2 - E1 vs ele pairs invariant mass, ecal driven pairs, all electrons", - nbinmee, - meemin, - meemax, - 100, - -50., - 50.); - - // matched electrons - - h_ele_matchingObjectPt_matched = - new TH1F("h_ele_matchingObjectPt_matched", "Efficiency vs matching jet p_{T}", nbinpteff, 5., ptmax); - h_ele_matchingObjectPt_matched->Sumw2(); - h_ele_matchingObjectAbsEta_matched = - new TH1F("h_ele_matchingObjectAbsEta_matched", "Efficiency vs matching jet |#eta|", nbineta / 2, 0., 2.5); - h_ele_matchingObjectAbsEta_matched->Sumw2(); - h_ele_matchingObjectEta_matched = - new TH1F("h_ele_matchingObjectEta_matched", "Efficiency vs matching jet #eta", nbineta, etamin, etamax); - h_ele_matchingObjectEta_matched->Sumw2(); - h_ele_matchingObjectPhi_matched = - new TH1F("h_ele_matchingObjectPhi_matched", "Efficiency vs matching jet phi", nbinphi, phimin, phimax); - h_ele_matchingObjectPhi_matched->Sumw2(); - h_ele_matchingObjectZ_matched = - new TH1F("h_ele_matchingObjectZ_matched", "Efficiency vs matching jet z", nbinxyz, -25, 25); - h_ele_matchingObjectZ_matched->Sumw2(); - - h_ele_charge = new TH1F("h_ele_charge", "ele charge", 5, -2., 2.); - h_ele_chargeVsEta = new TH2F("h_ele_chargeVsEta", "ele charge vs eta", nbineta2D, etamin, etamax, 5, -2., 2.); - h_ele_chargeVsPhi = new TH2F("h_ele_chargeVsPhi", "ele charge vs phi", nbinphi2D, phimin, phimax, 5, -2., 2.); - h_ele_chargeVsPt = new TH2F("h_ele_chargeVsPt", "ele charge vs pt", nbinpt, 0., 100., 5, -2., 2.); - h_ele_vertexP = new TH1F("h_ele_vertexP", "ele momentum", nbinp, 0., pmax); - h_ele_vertexPt = new TH1F("h_ele_vertexPt", "ele transverse momentum", nbinpt, 0., ptmax); - h_ele_vertexPtVsEta = - new TH2F("h_ele_vertexPtVsEta", "ele transverse momentum vs eta", nbineta2D, etamin, etamax, nbinpt2D, 0., ptmax); - h_ele_vertexPtVsPhi = - new TH2F("h_ele_vertexPtVsPhi", "ele transverse momentum vs phi", nbinphi2D, phimin, phimax, nbinpt2D, 0., ptmax); - h_ele_vertexEta = new TH1F("h_ele_vertexEta", "ele momentum eta", nbineta, etamin, etamax); - h_ele_vertexEtaVsPhi = - new TH2F("h_ele_vertexEtaVsPhi", "ele momentum eta vs phi", nbineta2D, etamin, etamax, nbinphi2D, phimin, phimax); - h_ele_vertexPhi = new TH1F("h_ele_vertexPhi", "ele momentum #phi", nbinphi, phimin, phimax); - h_ele_vertexX = new TH1F("h_ele_vertexX", "ele vertex x", nbinxyz, -0.1, 0.1); - h_ele_vertexY = new TH1F("h_ele_vertexY", "ele vertex y", nbinxyz, -0.1, 0.1); - h_ele_vertexZ = new TH1F("h_ele_vertexZ", "ele vertex z", nbinxyz, -25, 25); - h_ele_vertexTIP = new TH1F("h_ele_vertexTIP", "ele transverse impact parameter (wrt bs)", 90, 0., 0.15); - h_ele_vertexTIPVsEta = new TH2F("h_ele_vertexTIPVsEta", - "ele transverse impact parameter (wrt bs) vs eta", - nbineta2D, - etamin, - etamax, - 45, - 0., - 0.15); - h_ele_vertexTIPVsPhi = new TH2F("h_ele_vertexTIPVsPhi", - "ele transverse impact parameter (wrt bs) vs phi", - nbinphi2D, - phimin, - phimax, - 45, - 0., - 0.15); - h_ele_vertexTIPVsPt = new TH2F( - "h_ele_vertexTIPVsPt", "ele transverse impact parameter (wrt bs) vs Pt", nbinpt2D, 0., ptmax, 45, 0., 0.15); - - h_ele_PoPmatchingObject = new TH1F("h_ele_PoPmatchingObject", "ele momentum / matching jet momentum", 75, 0., 1.5); - h_ele_PoPmatchingObjectVsEta = new TH2F("h_ele_PoPmatchingObjectVsEta", - "ele momentum / matching jet momentum vs eta", - nbineta2D, - etamin, - etamax, - 50, - 0., - 1.5); - h_ele_PoPmatchingObjectVsPhi = new TH2F("h_ele_PoPmatchingObjectVsPhi", - "ele momentum / matching jet momentum vs phi", - nbinphi2D, - phimin, - phimax, - 50, - 0., - 1.5); - h_ele_PoPmatchingObjectVsPt = new TH2F( - "h_ele_PoPmatchingObjectVsPt", "ele momentum / matching jet momentum vs eta", nbinpt2D, 0., ptmax, 50, 0., 1.5); - h_ele_PoPmatchingObject_barrel = - new TH1F("h_ele_PoPmatchingObject_barrel", "ele momentum / matching jet momentum, barrel", 75, 0., 1.5); - h_ele_PoPmatchingObject_endcaps = - new TH1F("h_ele_PoPmatchingObject_endcaps", "ele momentum / matching jet momentum, endcaps", 75, 0., 1.5); - - h_ele_EtaMnEtamatchingObject = - new TH1F("h_ele_EtaMnEtamatchingObject", "ele momentum eta - matching jet eta", nbindeta, detamin, detamax); - h_ele_EtaMnEtamatchingObjectVsEta = new TH2F("h_ele_EtaMnEtamatchingObjectVsEta", - "ele momentum eta - matching jet eta vs eta", - nbineta2D, - etamin, - etamax, - nbindeta / 2, - detamin, - detamax); - h_ele_EtaMnEtamatchingObjectVsPhi = new TH2F("h_ele_EtaMnEtamatchingObjectVsPhi", - "ele momentum eta - matching jet eta vs phi", - nbinphi2D, - phimin, - phimax, - nbindeta / 2, - detamin, - detamax); - h_ele_EtaMnEtamatchingObjectVsPt = new TH2F("h_ele_EtaMnEtamatchingObjectVsPt", - "ele momentum eta - matching jet eta vs pt", - nbinpt, - 0., - ptmax, - nbindeta / 2, - detamin, - detamax); - h_ele_PhiMnPhimatchingObject = - new TH1F("h_ele_PhiMnPhimatchingObject", "ele momentum phi - matching jet phi", nbindphi, dphimin, dphimax); - h_ele_PhiMnPhimatchingObject2 = new TH1F("h_ele_PhiMnPhimatchingObject2", - "ele momentum phi - matching jet phi", - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_PhiMnPhimatchingObjectVsEta = new TH2F("h_ele_PhiMnPhimatchingObjectVsEta", - "ele momentum phi - matching SC phi vs eta", - nbineta2D, - etamin, - etamax, - nbindphi / 2, - dphimin, - dphimax); - h_ele_PhiMnPhimatchingObjectVsPhi = new TH2F("h_ele_PhiMnPhimatchingObjectVsPhi", - "ele momentum phi - matching SC phi vs phi", - nbinphi2D, - phimin, - phimax, - nbindphi / 2, - dphimin, - dphimax); - h_ele_PhiMnPhimatchingObjectVsPt = new TH2F("h_ele_PhiMnPhimatchingObjectVsPt", - "ele momentum phi - matching SC phi vs pt", - nbinpt2D, - 0., - ptmax, - nbindphi / 2, - dphimin, - dphimax); - - // matched electron, superclusters - histSclEn_ = new TH1F("h_scl_energy", "ele supercluster energy", nbinp, 0., pmax); - histSclEoEmatchingObject_barrel = - new TH1F("h_scl_EoEmatchingObject_barrel", "ele supercluster energy / matching jet energy, barrel", 50, 0.2, 1.2); - histSclEoEmatchingObject_endcaps = new TH1F( - "h_scl_EoEmatchingObject_endcaps", "ele supercluster energy / matching jet energy, endcaps", 50, 0.2, 1.2); - histSclEt_ = new TH1F("h_scl_et", "ele supercluster transverse energy", nbinpt, 0., ptmax); - histSclEtVsEta_ = new TH2F( - "h_scl_etVsEta", "ele supercluster transverse energy vs eta", nbineta2D, etamin, etamax, nbinpt, 0., ptmax); - histSclEtVsPhi_ = new TH2F( - "h_scl_etVsPhi", "ele supercluster transverse energy vs phi", nbinphi2D, phimin, phimax, nbinpt, 0., ptmax); - histSclEtaVsPhi_ = - new TH2F("h_scl_etaVsPhi", "ele supercluster eta vs phi", nbinphi2D, phimin, phimax, nbineta2D, etamin, etamax); - histSclEta_ = new TH1F("h_scl_eta", "ele supercluster eta", nbineta, etamin, etamax); - histSclPhi_ = new TH1F("h_scl_phi", "ele supercluster phi", nbinphi, phimin, phimax); - - histSclSigIEtaIEta_ = new TH1F("h_scl_sigietaieta", "ele supercluster sigma ieta ieta", 100, 0., 0.05); - histSclSigIEtaIEta_barrel_ = - new TH1F("h_scl_sigietaieta_barrel", "ele supercluster sigma ieta ieta, barrel", 100, 0., 0.05); - histSclSigIEtaIEta_endcaps_ = - new TH1F("h_scl_sigietaieta_endcaps", "ele supercluster sigma ieta ieta, endcaps", 100, 0., 0.05); - histSclE1x5_ = new TH1F("h_scl_E1x5", "ele supercluster energy in 1x5", nbinp, 0., pmax); - histSclE1x5_barrel_ = new TH1F("h_scl_E1x5_barrel", "ele supercluster energy in 1x5 barrel", nbinp, 0., pmax); - histSclE1x5_endcaps_ = new TH1F("h_scl_E1x5_endcaps", "ele supercluster energy in 1x5 endcaps", nbinp, 0., pmax); - histSclE2x5max_ = new TH1F("h_scl_E2x5max", "ele supercluster energy in 2x5 max", nbinp, 0., pmax); - histSclE2x5max_barrel_ = - new TH1F("h_scl_E2x5max_barrel", "ele supercluster energy in 2x5 max barrel", nbinp, 0., pmax); - histSclE2x5max_endcaps_ = - new TH1F("h_scl_E2x5max_endcaps", "ele supercluster energy in 2x5 max endcaps", nbinp, 0., pmax); - histSclE5x5_ = new TH1F("h_scl_E5x5", "ele supercluster energy in 5x5", nbinp, 0., pmax); - histSclE5x5_barrel_ = new TH1F("h_scl_E5x5_barrel", "ele supercluster energy in 5x5 barrel", nbinp, 0., pmax); - histSclE5x5_endcaps_ = new TH1F("h_scl_E5x5_endcaps", "ele supercluster energy in 5x5 endcaps", nbinp, 0., pmax); - - // matched electron, gsf tracks - h_ele_ambiguousTracks = new TH1F("h_ele_ambiguousTracks", "ele # ambiguous tracks", 5, 0., 5.); - h_ele_ambiguousTracksVsEta = - new TH2F("h_ele_ambiguousTracksVsEta", "ele # ambiguous tracks vs eta", nbineta2D, etamin, etamax, 5, 0., 5.); - h_ele_ambiguousTracksVsPhi = - new TH2F("h_ele_ambiguousTracksVsPhi", "ele # ambiguous tracks vs phi", nbinphi2D, phimin, phimax, 5, 0., 5.); - h_ele_ambiguousTracksVsPt = - new TH2F("h_ele_ambiguousTracksVsPt", "ele # ambiguous tracks vs pt", nbinpt2D, 0., ptmax, 5, 0., 5.); - h_ele_foundHits = new TH1F("h_ele_foundHits", "ele track # found hits", nbinfhits, 0., fhitsmax); - h_ele_foundHitsVsEta = new TH2F( - "h_ele_foundHitsVsEta", "ele track # found hits vs eta", nbineta2D, etamin, etamax, nbinfhits, 0., fhitsmax); - h_ele_foundHitsVsPhi = new TH2F( - "h_ele_foundHitsVsPhi", "ele track # found hits vs phi", nbinphi2D, phimin, phimax, nbinfhits, 0., fhitsmax); - h_ele_foundHitsVsPt = - new TH2F("h_ele_foundHitsVsPt", "ele track # found hits vs pt", nbinpt2D, 0., ptmax, nbinfhits, 0., fhitsmax); - h_ele_lostHits = new TH1F("h_ele_lostHits", "ele track # lost hits", 5, 0., 5.); - h_ele_lostHitsVsEta = new TH2F( - "h_ele_lostHitsVsEta", "ele track # lost hits vs eta", nbineta2D, etamin, etamax, nbinlhits, 0., lhitsmax); - h_ele_lostHitsVsPhi = new TH2F( - "h_ele_lostHitsVsPhi", "ele track # lost hits vs eta", nbinphi2D, phimin, phimax, nbinlhits, 0., lhitsmax); - h_ele_lostHitsVsPt = - new TH2F("h_ele_lostHitsVsPt", "ele track # lost hits vs eta", nbinpt2D, 0., ptmax, nbinlhits, 0., lhitsmax); - h_ele_chi2 = new TH1F("h_ele_chi2", "ele track #chi^{2}", 100, 0., 15.); - h_ele_chi2VsEta = new TH2F("h_ele_chi2VsEta", "ele track #chi^{2} vs eta", nbineta2D, etamin, etamax, 50, 0., 15.); - h_ele_chi2VsPhi = new TH2F("h_ele_chi2VsPhi", "ele track #chi^{2} vs phi", nbinphi2D, phimin, phimax, 50, 0., 15.); - h_ele_chi2VsPt = new TH2F("h_ele_chi2VsPt", "ele track #chi^{2} vs pt", nbinpt2D, 0., ptmax, 50, 0., 15.); - h_ele_PinMnPout = new TH1F("h_ele_PinMnPout", "ele track inner p - outer p, mean", nbinp, 0., 200.); - h_ele_PinMnPout_mode = new TH1F("h_ele_PinMnPout_mode", "ele track inner p - outer p, mode", nbinp, 0., 100.); - h_ele_PinMnPoutVsEta_mode = new TH2F("h_ele_PinMnPoutVsEta_mode", - "ele track inner p - outer p vs eta, mode", - nbineta2D, - etamin, - etamax, - nbinp2D, - 0., - 100.); - h_ele_PinMnPoutVsPhi_mode = new TH2F("h_ele_PinMnPoutVsPhi_mode", - "ele track inner p - outer p vs phi, mode", - nbinphi2D, - phimin, - phimax, - nbinp2D, - 0., - 100.); - h_ele_PinMnPoutVsPt_mode = new TH2F( - "h_ele_PinMnPoutVsPt_mode", "ele track inner p - outer p vs pt, mode", nbinpt2D, 0., ptmax, nbinp2D, 0., 100.); - h_ele_PinMnPoutVsE_mode = new TH2F( - "h_ele_PinMnPoutVsE_mode", "ele track inner p - outer p vs E, mode", nbinp2D, 0., 200., nbinp2D, 0., 100.); - h_ele_PinMnPoutVsChi2_mode = new TH2F( - "h_ele_PinMnPoutVsChi2_mode", "ele track inner p - outer p vs track chi2, mode", 50, 0., 20., nbinp2D, 0., 100.); - h_ele_outerP = new TH1F("h_ele_outerP", "ele track outer p, mean", nbinp, 0., pmax); - h_ele_outerP_mode = new TH1F("h_ele_outerP_mode", "ele track outer p, mode", nbinp, 0., pmax); - h_ele_outerPVsEta_mode = - new TH2F("h_ele_outerPVsEta_mode", "ele track outer p vs eta mode", nbineta2D, etamin, etamax, 50, 0., pmax); - h_ele_outerPt = new TH1F("h_ele_outerPt", "ele track outer p_{T}, mean", nbinpt, 0., ptmax); - h_ele_outerPt_mode = new TH1F("h_ele_outerPt_mode", "ele track outer p_{T}, mode", nbinpt, 0., ptmax); - h_ele_outerPtVsEta_mode = new TH2F( - "h_ele_outerPtVsEta_mode", "ele track outer p_{T} vs eta, mode", nbineta2D, etamin, etamax, nbinpt2D, 0., ptmax); - h_ele_outerPtVsPhi_mode = new TH2F( - "h_ele_outerPtVsPhi_mode", "ele track outer p_{T} vs phi, mode", nbinphi2D, phimin, phimax, nbinpt2D, 0., ptmax); - h_ele_outerPtVsPt_mode = - new TH2F("h_ele_outerPtVsPt_mode", "ele track outer p_{T} vs pt, mode", nbinpt2D, 0., 100., nbinpt2D, 0., ptmax); - - // matched electrons,cluster-track matching - h_ele_EoP = new TH1F("h_ele_EoP", "ele E/P_{vertex}", nbineop, 0., eopmax); - h_ele_EoP->Sumw2(); - h_ele_EoP_eg = new TH1F("h_ele_EoP_eg", "ele E/P_{vertex}, ecal driven", nbineop, 0., eopmax); - h_ele_EoP_eg->Sumw2(); - h_ele_EoP_barrel = new TH1F("h_ele_EoP_barrel", "ele E/P_{vertex} barrel", nbineop, 0., eopmax); - h_ele_EoP_barrel->Sumw2(); - h_ele_EoP_eg_barrel = new TH1F("h_ele_EoP_eg_barrel", "ele E/P_{vertex}, ecal driven barrel", nbineop, 0., eopmax); - h_ele_EoP_eg_barrel->Sumw2(); - h_ele_EoP_endcaps = new TH1F("h_ele_EoP_endcaps", "ele E/P_{vertex} endcaps", nbineop, 0., eopmax); - h_ele_EoP_endcaps->Sumw2(); - h_ele_EoP_eg_endcaps = new TH1F("h_ele_EoP_eg_endcaps", "ele E/P_{vertex}, ecal driven endcaps", nbineop, 0., eopmax); - h_ele_EoP_eg_endcaps->Sumw2(); - h_ele_EoPVsEta = - new TH2F("h_ele_EoPVsEta", "ele E/P_{vertex} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EoPVsPhi = - new TH2F("h_ele_EoPVsPhi", "ele E/P_{vertex} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EoPVsE = new TH2F("h_ele_EoPVsE", "ele E/P_{vertex} vs E", 50, 0., pmax, 50, 0., 5.); - h_ele_EseedOP = new TH1F("h_ele_EseedOP", "ele E_{seed}/P_{vertex}", nbineop, 0., eopmax); - h_ele_EseedOP->Sumw2(); - h_ele_EseedOP_eg = new TH1F("h_ele_EseedOP_eg", "ele E_{seed}/P_{vertex}, ecal driven", nbineop, 0., eopmax); - h_ele_EseedOP_eg->Sumw2(); - h_ele_EseedOP_barrel = new TH1F("h_ele_EseedOP_barrel", "ele E_{seed}/P_{vertex} barrel", nbineop, 0., eopmax); - h_ele_EseedOP_barrel->Sumw2(); - h_ele_EseedOP_eg_barrel = - new TH1F("h_ele_EseedOP_eg_barrel", "ele E_{seed}/P_{vertex}, ecal driven barrel", nbineop, 0., eopmax); - h_ele_EseedOP_eg_barrel->Sumw2(); - h_ele_EseedOP_endcaps = new TH1F("h_ele_EseedOP_endcaps", "ele E_{seed}/P_{vertex} endcaps", nbineop, 0., eopmax); - h_ele_EseedOP_endcaps->Sumw2(); - h_ele_EseedOP_eg_endcaps = - new TH1F("h_ele_EseedOP_eg_endcaps", "ele E_{seed}/P_{vertex}, ecal driven, endcaps", nbineop, 0., eopmax); - h_ele_EseedOP_eg_endcaps->Sumw2(); - h_ele_EseedOPVsEta = new TH2F( - "h_ele_EseedOPVsEta", "ele E_{seed}/P_{vertex} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EseedOPVsPhi = new TH2F( - "h_ele_EseedOPVsPhi", "ele E_{seed}/P_{vertex} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EseedOPVsE = new TH2F("h_ele_EseedOPVsE", "ele E_{seed}/P_{vertex} vs E", 50, 0., pmax, 50, 0., 5.); - h_ele_EoPout = new TH1F("h_ele_EoPout", "ele E_{seed}/P_{out}", nbineop, 0., eopmax); - h_ele_EoPout->Sumw2(); - h_ele_EoPout_eg = new TH1F("h_ele_EoPout_eg", "ele E_{seed}/P_{out}, ecal driven", nbineop, 0., eopmax); - h_ele_EoPout_eg->Sumw2(); - h_ele_EoPout_barrel = new TH1F("h_ele_EoPout_barrel", "ele E_{seed}/P_{out} barrel", nbineop, 0., eopmax); - h_ele_EoPout_barrel->Sumw2(); - h_ele_EoPout_eg_barrel = - new TH1F("h_ele_EoPout_eg_barrel", "ele E_{seed}/P_{out}, ecal driven, barrel", nbineop, 0., eopmax); - h_ele_EoPout_eg_barrel->Sumw2(); - h_ele_EoPout_endcaps = new TH1F("h_ele_EoPout_endcaps", "ele E_{seed}/P_{out} endcaps", nbineop, 0., eopmax); - h_ele_EoPout_endcaps->Sumw2(); - h_ele_EoPout_eg_endcaps = - new TH1F("h_ele_EoPout_eg_endcaps", "ele E_{seed}/P_{out}, ecal driven, endcaps", nbineop, 0., eopmax); - h_ele_EoPout_eg_endcaps->Sumw2(); - h_ele_EoPoutVsEta = - new TH2F("h_ele_EoPoutVsEta", "ele E/P_{out} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EoPoutVsPhi = - new TH2F("h_ele_EoPoutVsPhi", "ele E/P_{out} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EoPoutVsE = new TH2F("h_ele_EoPoutVsE", "ele E/P_{out} vs E", nbinp2D, 0., pmax, nbineop2D, 0., eopmaxsht); - h_ele_EeleOPout = new TH1F("h_ele_EeleOPout", "ele E_{ele}/P_{out}", nbineop, 0., eopmax); - h_ele_EeleOPout->Sumw2(); - h_ele_EeleOPout_eg = new TH1F("h_ele_EeleOPout_eg", "ele E_{ele}/P_{out}, ecal driven", nbineop, 0., eopmax); - h_ele_EeleOPout_eg->Sumw2(); - h_ele_EeleOPout_barrel = new TH1F("h_ele_EeleOPout_barrel", "ele E_{ele}/P_{out} barrel", nbineop, 0., eopmax); - h_ele_EeleOPout_barrel->Sumw2(); - h_ele_EeleOPout_eg_barrel = - new TH1F("h_ele_EeleOPout_eg_barrel", "ele E_{ele}/P_{out}, ecal driven, barrel", nbineop, 0., eopmax); - h_ele_EeleOPout_eg_barrel->Sumw2(); - h_ele_EeleOPout_endcaps = new TH1F("h_ele_EeleOPout_endcaps", "ele E_{ele}/P_{out} endcaps", nbineop, 0., eopmax); - h_ele_EeleOPout_endcaps->Sumw2(); - h_ele_EeleOPout_eg_endcaps = - new TH1F("h_ele_EeleOPout_eg_endcaps", "ele E_{ele}/P_{out}, ecal driven, endcaps", nbineop, 0., eopmax); - h_ele_EeleOPout_eg_endcaps->Sumw2(); - h_ele_EeleOPoutVsEta = new TH2F( - "h_ele_EeleOPoutVsEta", "ele E_{ele}/P_{out} vs eta", nbineta2D, etamin, etamax, nbineop2D, 0., eopmaxsht); - h_ele_EeleOPoutVsPhi = new TH2F( - "h_ele_EeleOPoutVsPhi", "ele E_{ele}/P_{out} vs phi", nbinphi2D, phimin, phimax, nbineop2D, 0., eopmaxsht); - h_ele_EeleOPoutVsE = - new TH2F("h_ele_EeleOPoutVsE", "ele E_{ele}/P_{out} vs E", nbinp2D, 0., pmax, nbineop2D, 0., eopmaxsht); - h_ele_dEtaSc_propVtx = new TH1F( - "h_ele_dEtaSc_propVtx", "ele #eta_{sc} - #eta_{tr}, prop from vertex", nbindetamatch, detamatchmin, detamatchmax); - h_ele_dEtaSc_propVtx->Sumw2(); - h_ele_dEtaSc_propVtx_eg = new TH1F("h_ele_dEtaSc_propVtx_eg", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_eg->Sumw2(); - h_ele_dEtaSc_propVtx_barrel = new TH1F("h_ele_dEtaSc_propVtx_barrel", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_barrel->Sumw2(); - h_ele_dEtaSc_propVtx_eg_barrel = new TH1F("h_ele_dEtaSc_propVtx_eg_barrel", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_eg_barrel->Sumw2(); - h_ele_dEtaSc_propVtx_endcaps = new TH1F("h_ele_dEtaSc_propVtx_endcaps", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_endcaps->Sumw2(); - h_ele_dEtaSc_propVtx_eg_endcaps = new TH1F("h_ele_dEtaSc_propVtx_eg_endcaps", - "ele #eta_{sc} - #eta_{tr}, prop from vertex, ecal driven, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaSc_propVtx_eg_endcaps->Sumw2(); - h_ele_dEtaScVsEta_propVtx = new TH2F("h_ele_dEtaScVsEta_propVtx", - "ele #eta_{sc} - #eta_{tr} vs eta, prop from vertex", - nbineta2D, - etamin, - etamax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaScVsPhi_propVtx = new TH2F("h_ele_dEtaScVsPhi_propVtx", - "ele #eta_{sc} - #eta_{tr} vs phi, prop from vertex", - nbinphi2D, - phimin, - phimax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaScVsPt_propVtx = new TH2F("h_ele_dEtaScVsPt_propVtx", - "ele #eta_{sc} - #eta_{tr} vs pt, prop from vertex", - nbinpt2D, - 0., - ptmax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dPhiSc_propVtx = new TH1F( - "h_ele_dPhiSc_propVtx", "ele #phi_{sc} - #phi_{tr}, prop from vertex", nbindphimatch, dphimatchmin, dphimatchmax); - h_ele_dPhiSc_propVtx->Sumw2(); - h_ele_dPhiSc_propVtx_eg = new TH1F("h_ele_dPhiSc_propVtx_eg", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_eg->Sumw2(); - h_ele_dPhiSc_propVtx_barrel = new TH1F("h_ele_dPhiSc_propVtx_barrel", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_barrel->Sumw2(); - h_ele_dPhiSc_propVtx_eg_barrel = new TH1F("h_ele_dPhiSc_propVtx_eg_barrel", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_eg_barrel->Sumw2(); - h_ele_dPhiSc_propVtx_endcaps = new TH1F("h_ele_dPhiSc_propVtx_endcaps", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_endcaps->Sumw2(); - h_ele_dPhiSc_propVtx_eg_endcaps = new TH1F("h_ele_dPhiSc_propVtx_eg_endcaps", - "ele #phi_{sc} - #phi_{tr}, prop from vertex, ecal driven, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiSc_propVtx_eg_endcaps->Sumw2(); - h_ele_dPhiScVsEta_propVtx = new TH2F("h_ele_dPhiScVsEta_propVtx", - "ele #phi_{sc} - #phi_{tr} vs eta, prop from vertex", - nbineta2D, - etamin, - etamax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiScVsPhi_propVtx = new TH2F("h_ele_dPhiScVsPhi_propVtx", - "ele #phi_{sc} - #phi_{tr} vs phi, prop from vertex", - nbinphi2D, - phimin, - phimax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiScVsPt_propVtx = new TH2F("h_ele_dPhiScVsPt_propVtx", - "ele #phi_{sc} - #phi_{tr} vs pt, prop from vertex", - nbinpt2D, - 0., - ptmax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dEtaCl_propOut = new TH1F("h_ele_dEtaCl_propOut", - "ele #eta_{cl} - #eta_{tr}, prop from outermost", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut->Sumw2(); - h_ele_dEtaCl_propOut_eg = new TH1F("h_ele_dEtaCl_propOut_eg", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_eg->Sumw2(); - h_ele_dEtaCl_propOut_barrel = new TH1F("h_ele_dEtaCl_propOut_barrel", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_barrel->Sumw2(); - h_ele_dEtaCl_propOut_eg_barrel = new TH1F("h_ele_dEtaCl_propOut_eg_barrel", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_eg_barrel->Sumw2(); - h_ele_dEtaCl_propOut_endcaps = new TH1F("h_ele_dEtaCl_propOut_endcaps", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_endcaps->Sumw2(); - h_ele_dEtaCl_propOut_eg_endcaps = new TH1F("h_ele_dEtaCl_propOut_eg_endcaps", - "ele #eta_{cl} - #eta_{tr}, prop from outermost, ecal driven, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaCl_propOut_eg_endcaps->Sumw2(); - h_ele_dEtaClVsEta_propOut = new TH2F("h_ele_dEtaClVsEta_propOut", - "ele #eta_{cl} - #eta_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaClVsPhi_propOut = new TH2F("h_ele_dEtaClVsPhi_propOut", - "ele #eta_{cl} - #eta_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaClVsPt_propOut = new TH2F("h_ele_dEtaScVsPt_propOut", - "ele #eta_{cl} - #eta_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dPhiCl_propOut = new TH1F("h_ele_dPhiCl_propOut", - "ele #phi_{cl} - #phi_{tr}, prop from outermost", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut->Sumw2(); - h_ele_dPhiCl_propOut_eg = new TH1F("h_ele_dPhiCl_propOut_eg", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_eg->Sumw2(); - h_ele_dPhiCl_propOut_barrel = new TH1F("h_ele_dPhiCl_propOut_barrel", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_barrel->Sumw2(); - h_ele_dPhiCl_propOut_eg_barrel = new TH1F("h_ele_dPhiCl_propOut_eg_barrel", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_eg_barrel->Sumw2(); - h_ele_dPhiCl_propOut_endcaps = new TH1F("h_ele_dPhiCl_propOut_endcaps", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_endcaps->Sumw2(); - h_ele_dPhiCl_propOut_eg_endcaps = new TH1F("h_ele_dPhiCl_propOut_eg_endcaps", - "ele #phi_{cl} - #phi_{tr}, prop from outermost, ecal driven, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiCl_propOut_eg_endcaps->Sumw2(); - h_ele_dPhiClVsEta_propOut = new TH2F("h_ele_dPhiClVsEta_propOut", - "ele #phi_{cl} - #phi_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiClVsPhi_propOut = new TH2F("h_ele_dPhiClVsPhi_propOut", - "ele #phi_{cl} - #phi_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiClVsPt_propOut = new TH2F("h_ele_dPhiSClsPt_propOut", - "ele #phi_{cl} - #phi_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dEtaEleCl_propOut = new TH1F("h_ele_dEtaEleCl_propOut", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut->Sumw2(); - h_ele_dEtaEleCl_propOut_eg = new TH1F("h_ele_dEtaEleCl_propOut_eg", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_eg->Sumw2(); - h_ele_dEtaEleCl_propOut_barrel = new TH1F("h_ele_dEtaEleCl_propOut_barrel", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_barrel->Sumw2(); - h_ele_dEtaEleCl_propOut_eg_barrel = new TH1F("h_ele_dEtaEleCl_propOut_eg_barrel", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven, barrel", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_eg_barrel->Sumw2(); - h_ele_dEtaEleCl_propOut_endcaps = new TH1F("h_ele_dEtaEleCl_propOut_endcaps", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_endcaps->Sumw2(); - h_ele_dEtaEleCl_propOut_eg_endcaps = - new TH1F("h_ele_dEtaEleCl_propOut_eg_endcaps", - "ele #eta_{EleCl} - #eta_{tr}, prop from outermost, ecal driven, endcaps", - nbindetamatch, - detamatchmin, - detamatchmax); - h_ele_dEtaEleCl_propOut_eg_endcaps->Sumw2(); - h_ele_dEtaEleClVsEta_propOut = new TH2F("h_ele_dEtaEleClVsEta_propOut", - "ele #eta_{EleCl} - #eta_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaEleClVsPhi_propOut = new TH2F("h_ele_dEtaEleClVsPhi_propOut", - "ele #eta_{EleCl} - #eta_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dEtaEleClVsPt_propOut = new TH2F("h_ele_dEtaScVsPt_propOut", - "ele #eta_{EleCl} - #eta_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindetamatch2D, - detamatchmin, - detamatchmax); - h_ele_dPhiEleCl_propOut = new TH1F("h_ele_dPhiEleCl_propOut", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut->Sumw2(); - h_ele_dPhiEleCl_propOut_eg = new TH1F("h_ele_dPhiEleCl_propOut_eg", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_eg->Sumw2(); - h_ele_dPhiEleCl_propOut_barrel = new TH1F("h_ele_dPhiEleCl_propOut_barrel", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_barrel->Sumw2(); - h_ele_dPhiEleCl_propOut_eg_barrel = new TH1F("h_ele_dPhiEleCl_propOut_eg_barrel", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven, barrel", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_eg_barrel->Sumw2(); - h_ele_dPhiEleCl_propOut_endcaps = new TH1F("h_ele_dPhiEleCl_propOut_endcaps", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_endcaps->Sumw2(); - h_ele_dPhiEleCl_propOut_eg_endcaps = - new TH1F("h_ele_dPhiEleCl_propOut_eg_endcaps", - "ele #phi_{EleCl} - #phi_{tr}, prop from outermost, ecal driven, endcaps", - nbindphimatch, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleCl_propOut_eg_endcaps->Sumw2(); - h_ele_dPhiEleClVsEta_propOut = new TH2F("h_ele_dPhiEleClVsEta_propOut", - "ele #phi_{EleCl} - #phi_{tr} vs eta, prop from out", - nbineta2D, - etamin, - etamax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleClVsPhi_propOut = new TH2F("h_ele_dPhiEleClVsPhi_propOut", - "ele #phi_{EleCl} - #phi_{tr} vs phi, prop from out", - nbinphi2D, - phimin, - phimax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - h_ele_dPhiEleClVsPt_propOut = new TH2F("h_ele_dPhiSEleClsPt_propOut", - "ele #phi_{EleCl} - #phi_{tr} vs pt, prop from out", - nbinpt2D, - 0., - ptmax, - nbindphimatch2D, - dphimatchmin, - dphimatchmax); - - h_ele_HoE = new TH1F("h_ele_HoE", "ele hadronic energy / em energy", nbinhoe, hoemin, hoemax); - h_ele_HoE->Sumw2(); - h_ele_HoE_eg = new TH1F("h_ele_HoE_eg", "ele hadronic energy / em energy, ecal driven", nbinhoe, hoemin, hoemax); - h_ele_HoE_eg->Sumw2(); - h_ele_HoE_barrel = new TH1F("h_ele_HoE_barrel", "ele hadronic energy / em energy, barrel", nbinhoe, hoemin, hoemax); - h_ele_HoE_barrel->Sumw2(); - h_ele_HoE_eg_barrel = - new TH1F("h_ele_HoE_eg_barrel", "ele hadronic energy / em energy, ecal driven, barrel", nbinhoe, hoemin, hoemax); - h_ele_HoE_eg_barrel->Sumw2(); - h_ele_HoE_endcaps = - new TH1F("h_ele_HoE_endcaps", "ele hadronic energy / em energy, endcaps", nbinhoe, hoemin, hoemax); - h_ele_HoE_endcaps->Sumw2(); - h_ele_HoE_eg_endcaps = new TH1F( - "h_ele_HoE_eg_endcaps", "ele hadronic energy / em energy, ecal driven, endcaps", nbinhoe, hoemin, hoemax); - h_ele_HoE_eg_endcaps->Sumw2(); - h_ele_HoE_fiducial = new TH1F("h_ele_HoE_fiducial", "ele hadronic energy / em energy", nbinhoe, hoemin, hoemax); - h_ele_HoEVsEta = new TH2F( - "h_ele_HoEVsEta", "ele hadronic energy / em energy vs eta", nbineta, etamin, etamax, nbinhoe, hoemin, hoemax); - h_ele_HoEVsPhi = new TH2F( - "h_ele_HoEVsPhi", "ele hadronic energy / em energy vs phi", nbinphi2D, phimin, phimax, nbinhoe, hoemin, hoemax); - h_ele_HoEVsE = - new TH2F("h_ele_HoEVsE", "ele hadronic energy / em energy vs E", nbinp, 0., 300., nbinhoe, hoemin, hoemax); - - h_ele_seed_dphi2_ = new TH1F("h_ele_seedDphi2", "ele seed dphi 2nd layer", 50, -0.003, +0.003); - h_ele_seed_dphi2VsEta_ = - new TH2F("h_ele_seedDphi2VsEta", "ele seed dphi 2nd layer vs eta", nbineta2D, etamin, etamax, 50, -0.003, +0.003); - h_ele_seed_dphi2VsPt_ = - new TH2F("h_ele_seedDphi2VsPt", "ele seed dphi 2nd layer vs pt", nbinpt2D, 0., ptmax, 50, -0.003, +0.003); - h_ele_seed_drz2_ = new TH1F("h_ele_seedDrz2", "ele seed dr/dz 2nd layer", 50, -0.03, +0.03); - h_ele_seed_drz2VsEta_ = - new TH2F("h_ele_seedDrz2VsEta", "ele seed dr/dz 2nd layer vs eta", nbineta2D, etamin, etamax, 50, -0.03, +0.03); - h_ele_seed_drz2VsPt_ = - new TH2F("h_ele_seedDrz2VsPt", "ele seed dr/dz 2nd layer vs pt", nbinpt2D, 0., ptmax, 50, -0.03, +0.03); - h_ele_seed_subdet2_ = new TH1F("h_ele_seedSubdet2", "ele seed subdet 2nd layer", 10, 0., 10.); - - // classes - h_ele_classes = new TH1F("h_ele_classes", "electron classes", 20, 0.0, 20.); - h_ele_eta = new TH1F("h_ele_eta", "ele electron eta", nbineta / 2, 0.0, etamax); - h_ele_eta_golden = new TH1F("h_ele_eta_golden", "ele electron eta golden", nbineta / 2, 0.0, etamax); - h_ele_eta_bbrem = new TH1F("h_ele_eta_bbrem", "ele electron eta bbrem", nbineta / 2, 0.0, etamax); - h_ele_eta_narrow = new TH1F("h_ele_eta_narrow", "ele electron eta narrow", nbineta / 2, 0.0, etamax); - h_ele_eta_shower = new TH1F("h_ele_eta_show", "el, electron eta showering", nbineta / 2, 0.0, etamax); - h_ele_PinVsPoutGolden_mode = new TH2F( - "h_ele_PinVsPoutGolden_mode", "ele track inner p vs outer p, golden, mode", nbinp2D, 0., pmax, 50, 0., pmax); - h_ele_PinVsPoutShowering_mode = new TH2F("h_ele_PinVsPoutShowering_mode", - "ele track inner p vs outer p vs eta, showering, mode", - nbinp2D, - 0., - pmax, - 50, - 0., - pmax); - h_ele_PinVsPoutGolden_mean = new TH2F( - "h_ele_PinVsPoutGolden_mean", "ele track inner p vs outer p, golden, mean", nbinp2D, 0., pmax, 50, 0., pmax); - h_ele_PinVsPoutShowering_mean = new TH2F( - "h_ele_PinVsPoutShowering_mean", "ele track inner p vs outer p, showering, mean", nbinp2D, 0., pmax, 50, 0., pmax); - h_ele_PtinVsPtoutGolden_mode = new TH2F("h_ele_PtinVsPtoutGolden_mode", - "ele track inner pt vs outer pt, golden, mode", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - h_ele_PtinVsPtoutShowering_mode = new TH2F("h_ele_PtinVsPtoutShowering_mode", - "ele track inner pt vs outer pt, showering, mode", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - h_ele_PtinVsPtoutGolden_mean = new TH2F("h_ele_PtinVsPtoutGolden_mean", - "ele track inner pt vs outer pt, golden, mean", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - h_ele_PtinVsPtoutShowering_mean = new TH2F("h_ele_PtinVsPtoutShowering_mean", - "ele track inner pt vs outer pt, showering, mean", - nbinpt2D, - 0., - ptmax, - 50, - 0., - ptmax); - histSclEoEmatchingObjectGolden_barrel = new TH1F( - "h_scl_EoEmatchingObject golden, barrel", "ele SC energy over matching jet energy, golden, barrel", 100, 0.2, 1.2); - histSclEoEmatchingObjectGolden_endcaps = new TH1F("h_scl_EoEmatchingObject golden, endcaps", - "ele SC energy over matching jet energy, golden, endcaps", - 100, - 0.2, - 1.2); - histSclEoEmatchingObjectShowering_barrel = new TH1F("h_scl_EoEmatchingObject showering, barrel", - "ele SC energy over matching jet energy, showering, barrel", - 100, - 0.2, - 1.2); - histSclEoEmatchingObjectShowering_endcaps = new TH1F("h_scl_EoEmatchingObject showering, endcaps", - "ele SC energy over matching jet energy, showering, endcaps", - 100, - 0.2, - 1.2); - - // isolation - h_ele_tkSumPt_dr03 = new TH1F("h_ele_tkSumPt_dr03", "tk isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_ecalRecHitSumEt_dr03 = new TH1F("h_ele_ecalRecHitSumEt_dr03", "ecal isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_hcalDepth1TowerSumEt_dr03 = - new TH1F("h_ele_hcalDepth1TowerSumEt_dr03", "hcal depth1 isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_hcalDepth2TowerSumEt_dr03 = - new TH1F("h_ele_hcalDepth2TowerSumEt_dr03", "hcal depth2 isolation sum, dR=0.3", 100, 0.0, 20.); - h_ele_tkSumPt_dr04 = new TH1F("h_ele_tkSumPt_dr04", "hcal isolation sum", 100, 0.0, 20.); - h_ele_ecalRecHitSumEt_dr04 = new TH1F("h_ele_ecalRecHitSumEt_dr04", "ecal isolation sum, dR=0.4", 100, 0.0, 20.); - h_ele_hcalDepth1TowerSumEt_dr04 = - new TH1F("h_ele_hcalDepth1TowerSumEt_dr04", "hcal depth1 isolation sum, dR=0.4", 100, 0.0, 20.); - h_ele_hcalDepth2TowerSumEt_dr04 = - new TH1F("h_ele_hcalDepth2TowerSumEt_dr04", "hcal depth2 isolation sum, dR=0.4", 100, 0.0, 20.); - - // fbrem - h_ele_fbrem = new TH1F("h_ele_fbrem", "ele brem fraction, mode", 100, 0., 1.); - h_ele_fbremVsEta_mode = - new TProfile("h_ele_fbremvsEtamode", "mean ele brem fraction vs eta, mode", nbineta2D, etamin, etamax, 0., 1.); - h_ele_fbremVsEta_mean = - new TProfile("h_ele_fbremvsEtamean", "mean ele brem fraction vs eta, mean", nbineta2D, etamin, etamax, 0., 1.); - - // e/g et pflow electrons - h_ele_mva = new TH1F("h_ele_mva", "ele mva", 100, -1., 1.); - h_ele_provenance = new TH1F("h_ele_provenance", "ele provenance", 5, -2., 3.); - - // histos titles - h_matchingObjectNum->GetXaxis()->SetTitle("N_{GenJet}"); - h_matchingObjectNum->GetYaxis()->SetTitle("Events"); - h_matchingObjectEta->GetXaxis()->SetTitle("#eta_{GenJet}"); - h_matchingObjectEta->GetYaxis()->SetTitle("Events"); - h_matchingObjectP->GetXaxis()->SetTitle("E_{GenJet} (GeV)"); - h_matchingObjectP->GetYaxis()->SetTitle("Events"); - h_ele_foundHits->GetXaxis()->SetTitle("N_{hits}"); - h_ele_foundHits->GetYaxis()->SetTitle("Events"); - h_ele_ambiguousTracks->GetXaxis()->SetTitle("N_{ambiguous tracks}"); - h_ele_ambiguousTracks->GetYaxis()->SetTitle("Events"); - h_ele_lostHits->GetXaxis()->SetTitle("N_{lost hits}"); - h_ele_lostHits->GetYaxis()->SetTitle("Events"); - h_ele_chi2->GetXaxis()->SetTitle("#Chi^{2}"); - h_ele_chi2->GetYaxis()->SetTitle("Events"); - h_ele_charge->GetXaxis()->SetTitle("charge"); - h_ele_charge->GetYaxis()->SetTitle("Events"); - h_ele_vertexP->GetXaxis()->SetTitle("p_{vertex} (GeV/c)"); - h_ele_vertexP->GetYaxis()->SetTitle("Events"); - h_ele_vertexPt->GetXaxis()->SetTitle("p_{T vertex} (GeV/c)"); - h_ele_vertexPt->GetYaxis()->SetTitle("Events"); - h_ele_vertexEta->GetXaxis()->SetTitle("#eta"); - h_ele_vertexEta->GetYaxis()->SetTitle("Events"); - h_ele_vertexPhi->GetXaxis()->SetTitle("#phi (rad)"); - h_ele_vertexPhi->GetYaxis()->SetTitle("Events"); - h_ele_PoPmatchingObject->GetXaxis()->SetTitle("P/P_{gen jet}"); - h_ele_PoPmatchingObject->GetYaxis()->SetTitle("Events"); - h_ele_PoPmatchingObject_barrel->GetXaxis()->SetTitle("P/P_{gen jet}"); - h_ele_PoPmatchingObject_barrel->GetYaxis()->SetTitle("Events"); - h_ele_PoPmatchingObject_endcaps->GetXaxis()->SetTitle("P/P_{gen jet}"); - h_ele_PoPmatchingObject_endcaps->GetYaxis()->SetTitle("Events"); - histSclSigIEtaIEta_->GetXaxis()->SetTitle("#sigma_{i#eta i#eta}"); - histSclSigIEtaIEta_->GetYaxis()->SetTitle("Events"); - histSclSigIEtaIEta_barrel_->GetXaxis()->SetTitle("#sigma_{i#eta i#eta}"); - histSclSigIEtaIEta_barrel_->GetYaxis()->SetTitle("Events"); - histSclSigIEtaIEta_endcaps_->GetXaxis()->SetTitle("#sigma_{i#eta i#eta}"); - histSclSigIEtaIEta_endcaps_->GetYaxis()->SetTitle("Events"); - histSclE1x5_->GetXaxis()->SetTitle("E1x5 (GeV)"); - histSclE1x5_->GetYaxis()->SetTitle("Events"); - histSclE1x5_barrel_->GetXaxis()->SetTitle("E1x5 (GeV)"); - histSclE1x5_barrel_->GetYaxis()->SetTitle("Events"); - histSclE1x5_endcaps_->GetXaxis()->SetTitle("E1x5 (GeV)"); - histSclE1x5_endcaps_->GetYaxis()->SetTitle("Events"); - histSclE2x5max_->GetXaxis()->SetTitle("E2x5 (GeV)"); - histSclE2x5max_->GetYaxis()->SetTitle("Events"); - histSclE2x5max_barrel_->GetXaxis()->SetTitle("E2x5 (GeV)"); - histSclE2x5max_barrel_->GetYaxis()->SetTitle("Events"); - histSclE2x5max_endcaps_->GetXaxis()->SetTitle("E2x5 (GeV)"); - histSclE2x5max_endcaps_->GetYaxis()->SetTitle("Events"); - histSclE5x5_->GetXaxis()->SetTitle("E5x5 (GeV)"); - histSclE5x5_->GetYaxis()->SetTitle("Events"); - histSclE5x5_barrel_->GetXaxis()->SetTitle("E5x5 (GeV)"); - histSclE5x5_barrel_->GetYaxis()->SetTitle("Events"); - histSclE5x5_endcaps_->GetXaxis()->SetTitle("E5x5 (GeV)"); - histSclE5x5_endcaps_->GetYaxis()->SetTitle("Events"); - h_ele_EtaMnEtamatchingObject->GetXaxis()->SetTitle("#eta_{rec} - #eta_{jet}"); - h_ele_EtaMnEtamatchingObject->GetYaxis()->SetTitle("Events"); - h_ele_PhiMnPhimatchingObject->GetXaxis()->SetTitle("#phi_{rec} - #phi_{jet} (rad)"); - h_ele_PhiMnPhimatchingObject->GetYaxis()->SetTitle("Events"); - h_ele_PinMnPout->GetXaxis()->SetTitle("P_{vertex} - P_{out} (GeV/c)"); - h_ele_PinMnPout->GetYaxis()->SetTitle("Events"); - h_ele_PinMnPout_mode->GetXaxis()->SetTitle("P_{vertex} - P_{out}, mode (GeV/c)"); - h_ele_PinMnPout_mode->GetYaxis()->SetTitle("Events"); - h_ele_outerP->GetXaxis()->SetTitle("P_{out} (GeV/c)"); - h_ele_outerP->GetYaxis()->SetTitle("Events"); - h_ele_outerP_mode->GetXaxis()->SetTitle("P_{out} (GeV/c)"); - h_ele_outerP_mode->GetYaxis()->SetTitle("Events"); - h_ele_outerPt->GetXaxis()->SetTitle("P_{T out} (GeV/c)"); - h_ele_outerPt->GetYaxis()->SetTitle("Events"); - h_ele_outerPt_mode->GetXaxis()->SetTitle("P_{T out} (GeV/c)"); - h_ele_outerPt_mode->GetYaxis()->SetTitle("Events"); - h_ele_EoP->GetXaxis()->SetTitle("E/P_{vertex}"); - h_ele_EoP->GetYaxis()->SetTitle("Events"); - h_ele_EseedOP->GetXaxis()->SetTitle("E_{seed}/P_{vertex}"); - h_ele_EseedOP->GetYaxis()->SetTitle("Events"); - h_ele_EoPout->GetXaxis()->SetTitle("E_{seed}/P_{out}"); - h_ele_EoPout->GetYaxis()->SetTitle("Events"); - h_ele_EeleOPout->GetXaxis()->SetTitle("E_{ele}/P_{out}"); - h_ele_EeleOPout->GetYaxis()->SetTitle("Events"); - h_ele_EoP_barrel->GetXaxis()->SetTitle("E/P_{vertex}"); - h_ele_EoP_barrel->GetYaxis()->SetTitle("Events"); - h_ele_EseedOP_barrel->GetXaxis()->SetTitle("E_{seed}/P_{vertex}"); - h_ele_EseedOP_barrel->GetYaxis()->SetTitle("Events"); - h_ele_EoPout_barrel->GetXaxis()->SetTitle("E_{seed}/P_{out}"); - h_ele_EoPout_barrel->GetYaxis()->SetTitle("Events"); - h_ele_EeleOPout_barrel->GetXaxis()->SetTitle("E_{ele}/P_{out}"); - h_ele_EeleOPout_barrel->GetYaxis()->SetTitle("Events"); - h_ele_EoP_endcaps->GetXaxis()->SetTitle("E/P_{vertex}"); - h_ele_EoP_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_EseedOP_endcaps->GetXaxis()->SetTitle("E_{seed}/P_{vertex}"); - h_ele_EseedOP_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_EoPout_endcaps->GetXaxis()->SetTitle("E_{seed}/P_{out}"); - h_ele_EoPout_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_EeleOPout_endcaps->GetXaxis()->SetTitle("E_{ele}/P_{out}"); - h_ele_EeleOPout_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_vertexX->GetXaxis()->SetTitle("x (cm)"); - h_ele_vertexX->GetYaxis()->SetTitle("Events"); - h_ele_vertexY->GetXaxis()->SetTitle("y (cm)"); - h_ele_vertexY->GetYaxis()->SetTitle("Events"); - h_ele_vertexZ->GetXaxis()->SetTitle("z (cm)"); - h_ele_vertexZ->GetYaxis()->SetTitle("Events"); - h_ele_vertexTIP->GetXaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIP->GetYaxis()->SetTitle("Events"); - h_ele_TIP_all->GetXaxis()->SetTitle("r_{T} (cm)"); - h_ele_TIP_all->GetYaxis()->SetTitle("Events"); - h_ele_vertexTIPVsEta->GetYaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIPVsEta->GetXaxis()->SetTitle("#eta"); - h_ele_vertexTIPVsPhi->GetYaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIPVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - h_ele_vertexTIPVsPt->GetYaxis()->SetTitle("TIP (cm)"); - h_ele_vertexTIPVsPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_dEtaSc_propVtx->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx->GetYaxis()->SetTitle("Events"); - h_ele_dEtaCl_propOut->GetXaxis()->SetTitle("#eta_{seedcl} - #eta_{tr}"); - h_ele_dEtaCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dEtaEleCl_propOut->GetXaxis()->SetTitle("#eta_{elecl} - #eta_{tr}"); - h_ele_dEtaEleCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dPhiSc_propVtx->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiSc_propVtx->GetYaxis()->SetTitle("Events"); - h_ele_dPhiCl_propOut->GetXaxis()->SetTitle("#phi_{seedcl} - #phi_{tr} (rad)"); - h_ele_dPhiCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dPhiEleCl_propOut->GetXaxis()->SetTitle("#phi_{elecl} - #phi_{tr} (rad)"); - h_ele_dPhiEleCl_propOut->GetYaxis()->SetTitle("Events"); - h_ele_dEtaSc_propVtx_barrel->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dEtaCl_propOut_barrel->GetXaxis()->SetTitle("#eta_{seedcl} - #eta_{tr}"); - h_ele_dEtaCl_propOut_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dEtaEleCl_propOut_barrel->GetXaxis()->SetTitle("#eta_{elecl} - #eta_{tr}"); - h_ele_dEtaEleCl_propOut_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dPhiSc_propVtx_barrel->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiSc_propVtx_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dPhiCl_propOut_barrel->GetXaxis()->SetTitle("#phi_{seedcl} - #phi_{tr} (rad)"); - h_ele_dPhiCl_propOut_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dPhiEleCl_propOut_barrel->GetXaxis()->SetTitle("#phi_{elecl} - #phi_{tr} (rad)"); - h_ele_dPhiEleCl_propOut_barrel->GetYaxis()->SetTitle("Events"); - h_ele_dEtaSc_propVtx_endcaps->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dEtaCl_propOut_endcaps->GetXaxis()->SetTitle("#eta_{seedcl} - #eta_{tr}"); - h_ele_dEtaCl_propOut_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dEtaEleCl_propOut_endcaps->GetXaxis()->SetTitle("#eta_{elecl} - #eta_{tr}"); - h_ele_dEtaEleCl_propOut_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dPhiSc_propVtx_endcaps->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiSc_propVtx_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dPhiCl_propOut_endcaps->GetXaxis()->SetTitle("#phi_{seedcl} - #phi_{tr} (rad)"); - h_ele_dPhiCl_propOut_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_dPhiEleCl_propOut_endcaps->GetXaxis()->SetTitle("#phi_{elecl} - #phi_{tr} (rad)"); - h_ele_dPhiEleCl_propOut_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_HoE->GetXaxis()->SetTitle("H/E"); - h_ele_HoE->GetYaxis()->SetTitle("Events"); - h_ele_HoE_barrel->GetXaxis()->SetTitle("H/E"); - h_ele_HoE_barrel->GetYaxis()->SetTitle("Events"); - h_ele_HoE_endcaps->GetXaxis()->SetTitle("H/E"); - h_ele_HoE_endcaps->GetYaxis()->SetTitle("Events"); - h_ele_HoE_fiducial->GetXaxis()->SetTitle("H/E"); - h_ele_HoE_fiducial->GetYaxis()->SetTitle("Events"); - h_ele_fbrem->GetXaxis()->SetTitle("P_{in} - P_{out} / P_{in}"); - h_ele_fbrem->GetYaxis()->SetTitle("Events"); - h_ele_seed_dphi2_->GetXaxis()->SetTitle("#phi_{hit}-#phi_{pred} (rad)"); - h_ele_seed_dphi2_->GetYaxis()->SetTitle("Events"); - h_ele_seed_drz2_->GetXaxis()->SetTitle("r(z)_{hit}-r(z)_{pred} (cm)"); - h_ele_seed_drz2_->GetYaxis()->SetTitle("Events"); - h_ele_seed_subdet2_->GetXaxis()->SetTitle("2nd hit subdet Id"); - h_ele_seed_subdet2_->GetYaxis()->SetTitle("Events"); - h_ele_classes->GetXaxis()->SetTitle("class Id"); - h_ele_classes->GetYaxis()->SetTitle("Events"); - h_ele_EoverP_all->GetXaxis()->SetTitle("E/P_{vertex}"); - h_ele_EoverP_all->GetYaxis()->SetTitle("Events"); - h_ele_EseedOP_all->GetXaxis()->SetTitle("E_{seed}/P_{vertex}"); - h_ele_EseedOP_all->GetYaxis()->SetTitle("Events"); - h_ele_EoPout_all->GetXaxis()->SetTitle("E_{seed}/P_{out}"); - h_ele_EoPout_all->GetYaxis()->SetTitle("Events"); - h_ele_EeleOPout_all->GetXaxis()->SetTitle("E_{ele}/P_{out}"); - h_ele_EeleOPout_all->GetYaxis()->SetTitle("Events"); - h_ele_dEtaSc_propVtx_all->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaSc_propVtx_all->GetYaxis()->SetTitle("Events"); - h_ele_dPhiSc_propVtx_all->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiSc_propVtx_all->GetYaxis()->SetTitle("Events"); - h_ele_dEtaCl_propOut_all->GetXaxis()->SetTitle("#eta_{sc} - #eta_{tr}"); - h_ele_dEtaCl_propOut_all->GetYaxis()->SetTitle("Events"); - h_ele_dPhiCl_propOut_all->GetXaxis()->SetTitle("#phi_{sc} - #phi_{tr} (rad)"); - h_ele_dPhiCl_propOut_all->GetYaxis()->SetTitle("Events"); - h_ele_HoE_all->GetXaxis()->SetTitle("H/E"); - h_ele_HoE_all->GetYaxis()->SetTitle("Events"); - h_ele_mee_all->GetXaxis()->SetTitle("m_{ee} (GeV/c^{2})"); - h_ele_mee_all->GetYaxis()->SetTitle("Events"); - h_ele_mee_os->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_mee_os->GetYaxis()->SetTitle("Events"); - h_ele_E2mnE1vsMee_all->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_E2mnE1vsMee_all->GetYaxis()->SetTitle("E2 - E1 (GeV)"); - h_ele_E2mnE1vsMee_egeg_all->GetXaxis()->SetTitle("m_{e^{+}e^{-}} (GeV/c^{2})"); - h_ele_E2mnE1vsMee_egeg_all->GetYaxis()->SetTitle("E2 - E1 (GeV)"); - histNum_->GetXaxis()->SetTitle("N_{ele}"); - histNum_->GetYaxis()->SetTitle("Events"); - h_ele_fbremVsEta_mode->GetXaxis()->SetTitle("#eta"); - h_ele_fbremVsEta_mean->GetXaxis()->SetTitle("#eta"); -} - -void GsfElectronMCFakeAnalyzer::endJob() { - histfile_->cd(); - std::cout << "efficiency calculation " << std::endl; - // efficiency vs eta - TH1F *h_ele_etaEff = (TH1F *)h_ele_matchingObjectEta_matched->Clone("h_ele_etaEff"); - h_ele_etaEff->Reset(); - h_ele_etaEff->Divide(h_ele_matchingObjectEta_matched, h_matchingObjectEta, 1, 1, "b"); - h_ele_etaEff->Print(); - h_ele_etaEff->GetXaxis()->SetTitle("#eta"); - h_ele_etaEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs z - TH1F *h_ele_zEff = (TH1F *)h_ele_matchingObjectZ_matched->Clone("h_ele_zEff"); - h_ele_zEff->Reset(); - h_ele_zEff->Divide(h_ele_matchingObjectZ_matched, h_matchingObjectZ, 1, 1, "b"); - h_ele_zEff->Print(); - h_ele_zEff->GetXaxis()->SetTitle("z (cm)"); - h_ele_zEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs |eta| - TH1F *h_ele_absetaEff = (TH1F *)h_ele_matchingObjectAbsEta_matched->Clone("h_ele_absetaEff"); - h_ele_absetaEff->Reset(); - h_ele_absetaEff->Divide(h_ele_matchingObjectAbsEta_matched, h_matchingObjectAbsEta, 1, 1, "b"); - h_ele_absetaEff->GetXaxis()->SetTitle("|#eta|"); - h_ele_absetaEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs pt - TH1F *h_ele_ptEff = (TH1F *)h_ele_matchingObjectPt_matched->Clone("h_ele_ptEff"); - h_ele_ptEff->Reset(); - h_ele_ptEff->Divide(h_ele_matchingObjectPt_matched, h_matchingObjectPt, 1, 1, "b"); - h_ele_ptEff->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_ptEff->GetYaxis()->SetTitle("Efficiency"); - - // efficiency vs phi - TH1F *h_ele_phiEff = (TH1F *)h_ele_matchingObjectPhi_matched->Clone("h_ele_phiEff"); - h_ele_phiEff->Reset(); - h_ele_phiEff->Divide(h_ele_matchingObjectPhi_matched, h_matchingObjectPhi, 1, 1, "b"); - h_ele_phiEff->GetXaxis()->SetTitle("#phi (rad)"); - h_ele_phiEff->GetYaxis()->SetTitle("Efficiency"); - - // rec/matching objects all electrons - TH1F *h_ele_etaEff_all = (TH1F *)h_ele_vertexEta_all->Clone("h_ele_etaEff_all"); - h_ele_etaEff_all->Reset(); - h_ele_etaEff_all->Divide(h_ele_vertexEta_all, h_matchingObjectEta, 1, 1, "b"); - h_ele_etaEff_all->Print(); - h_ele_etaEff_all->GetXaxis()->SetTitle("#eta"); - h_ele_etaEff_all->GetYaxis()->SetTitle("N_{rec}/N_{matching jet}"); - - TH1F *h_ele_ptEff_all = (TH1F *)h_ele_vertexPt_all->Clone("h_ele_ptEff_all"); - h_ele_ptEff_all->Reset(); - h_ele_ptEff_all->Divide(h_ele_vertexPt_all, h_matchingObjectPt, 1, 1, "b"); - h_ele_ptEff_all->Print(); - h_ele_ptEff_all->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_ptEff_all->GetYaxis()->SetTitle("N_{rec}/N_{matching gen jet}"); - - // classes - TH1F *h_ele_eta_goldenFrac = (TH1F *)h_ele_eta_golden->Clone("h_ele_eta_goldenFrac"); - h_ele_eta_goldenFrac->Reset(); - h_ele_eta_goldenFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_goldenFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_goldenFrac->Divide(h_ele_eta_golden, h_ele_eta, 1, 1); - h_ele_eta_goldenFrac->SetTitle("fraction of golden electrons vs eta"); - TH1F *h_ele_eta_bbremFrac = (TH1F *)h_ele_eta_bbrem->Clone("h_ele_eta_bbremFrac"); - h_ele_eta_bbremFrac->Reset(); - h_ele_eta_bbremFrac->Divide(h_ele_eta_bbrem, h_ele_eta, 1, 1); - h_ele_eta_bbremFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_bbremFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_bbremFrac->SetTitle("fraction of big brem electrons vs eta"); - TH1F *h_ele_eta_narrowFrac = (TH1F *)h_ele_eta_narrow->Clone("h_ele_eta_narrowFrac"); - h_ele_eta_narrowFrac->Reset(); - h_ele_eta_narrowFrac->Divide(h_ele_eta_narrow, h_ele_eta, 1, 1); - h_ele_eta_narrowFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_narrowFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_narrowFrac->SetTitle("fraction of narrow electrons vs eta"); - TH1F *h_ele_eta_showerFrac = (TH1F *)h_ele_eta_shower->Clone("h_ele_eta_showerFrac"); - h_ele_eta_showerFrac->Reset(); - h_ele_eta_showerFrac->Divide(h_ele_eta_shower, h_ele_eta, 1, 1); - h_ele_eta_showerFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_showerFrac->GetYaxis()->SetTitle("Fraction of electrons"); - h_ele_eta_showerFrac->SetTitle("fraction of showering electrons vs eta"); - - // fbrem - TH1F *h_ele_xOverX0VsEta = new TH1F("h_ele_xOverx0VsEta", "mean X/X_0 vs eta", nbineta / 2, 0.0, 2.5); - for (int ibin = 1; ibin < h_ele_fbremVsEta_mean->GetNbinsX() + 1; ibin++) { - double xOverX0 = 0.; - if (h_ele_fbremVsEta_mean->GetBinContent(ibin) > 0.) - xOverX0 = -log(h_ele_fbremVsEta_mean->GetBinContent(ibin)); - h_ele_xOverX0VsEta->SetBinContent(ibin, xOverX0); - } - - //profiles from 2D histos - TProfile *p_ele_PoPmatchingObjectVsEta = h_ele_PoPmatchingObjectVsEta->ProfileX(); - p_ele_PoPmatchingObjectVsEta->SetTitle("mean ele momentum / matching SC energy vs eta"); - p_ele_PoPmatchingObjectVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_PoPmatchingObjectVsEta->GetYaxis()->SetTitle("

"); - p_ele_PoPmatchingObjectVsEta->Write(); - TProfile *p_ele_PoPmatchingObjectVsPhi = h_ele_PoPmatchingObjectVsPhi->ProfileX(); - p_ele_PoPmatchingObjectVsPhi->SetTitle("mean ele momentum / gen momentum vs phi"); - p_ele_PoPmatchingObjectVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_PoPmatchingObjectVsPhi->GetYaxis()->SetTitle("

"); - p_ele_PoPmatchingObjectVsPhi->Write(); - TProfile *p_ele_EtaMnEtamatchingObjectVsEta = h_ele_EtaMnEtamatchingObjectVsEta->ProfileX(); - p_ele_EtaMnEtamatchingObjectVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EtaMnEtamatchingObjectVsEta->GetYaxis()->SetTitle("<#eta_{rec} - #eta_{matching gen jet}>"); - p_ele_EtaMnEtamatchingObjectVsEta->Write(); - TProfile *p_ele_EtaMnEtamatchingObjectVsPhi = h_ele_EtaMnEtamatchingObjectVsPhi->ProfileX(); - p_ele_EtaMnEtamatchingObjectVsPhi->GetXaxis()->SetTitle("#phi"); - p_ele_EtaMnEtamatchingObjectVsPhi->GetYaxis()->SetTitle("<#eta_{rec} - #eta_{matching gen jet}>"); - p_ele_EtaMnEtamatchingObjectVsPhi->Write(); - TProfile *p_ele_PhiMnPhimatchingObjectVsEta = h_ele_PhiMnPhimatchingObjectVsEta->ProfileX(); - p_ele_PhiMnPhimatchingObjectVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_PhiMnPhimatchingObjectVsEta->GetYaxis()->SetTitle("<#phi_{rec} - #phi_{matching gen jet}> (rad)"); - p_ele_PhiMnPhimatchingObjectVsEta->Write(); - TProfile *p_ele_PhiMnPhimatchingObjectVsPhi = h_ele_PhiMnPhimatchingObjectVsPhi->ProfileX(); - p_ele_PhiMnPhimatchingObjectVsPhi->GetXaxis()->SetTitle("#phi"); - p_ele_PhiMnPhimatchingObjectVsPhi->GetYaxis()->SetTitle("<#phi_{rec} - #phi_{matching gen jet}> (rad)"); - p_ele_PhiMnPhimatchingObjectVsPhi->Write(); - TProfile *p_ele_vertexPtVsEta = h_ele_vertexPtVsEta->ProfileX(); - p_ele_vertexPtVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_vertexPtVsEta->GetYaxis()->SetTitle(" (GeV/c)"); - p_ele_vertexPtVsEta->Write(); - TProfile *p_ele_vertexPtVsPhi = h_ele_vertexPtVsPhi->ProfileX(); - p_ele_vertexPtVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_vertexPtVsPhi->GetYaxis()->SetTitle(" (GeV/c)"); - p_ele_vertexPtVsPhi->Write(); - TProfile *p_ele_EoPVsEta = h_ele_EoPVsEta->ProfileX(); - p_ele_EoPVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EoPVsEta->GetYaxis()->SetTitle(""); - p_ele_EoPVsEta->Write(); - TProfile *p_ele_EoPVsPhi = h_ele_EoPVsPhi->ProfileX(); - p_ele_EoPVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_EoPVsPhi->GetYaxis()->SetTitle(""); - p_ele_EoPVsPhi->Write(); - TProfile *p_ele_EoPoutVsEta = h_ele_EoPoutVsEta->ProfileX(); - p_ele_EoPoutVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EoPoutVsEta->GetYaxis()->SetTitle(""); - p_ele_EoPoutVsEta->Write(); - TProfile *p_ele_EoPoutVsPhi = h_ele_EoPoutVsPhi->ProfileX(); - p_ele_EoPoutVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_EoPoutVsPhi->GetYaxis()->SetTitle(""); - p_ele_EoPoutVsPhi->Write(); - TProfile *p_ele_EeleOPoutVsEta = h_ele_EeleOPoutVsEta->ProfileX(); - p_ele_EeleOPoutVsEta->SetTitle("mean ele Eele/pout vs eta"); - p_ele_EeleOPoutVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_EeleOPoutVsEta->GetYaxis()->SetTitle(""); - p_ele_EeleOPoutVsEta->Write(); - TProfile *p_ele_EeleOPoutVsPhi = h_ele_EeleOPoutVsPhi->ProfileX(); - p_ele_EeleOPoutVsPhi->SetTitle("mean ele Eele/pout vs phi"); - p_ele_EeleOPoutVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_EeleOPoutVsPhi->GetYaxis()->SetTitle(""); - p_ele_EeleOPoutVsPhi->Write(); - TProfile *p_ele_HoEVsEta = h_ele_HoEVsEta->ProfileX(); - p_ele_HoEVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_HoEVsEta->GetYaxis()->SetTitle(""); - p_ele_HoEVsEta->Write(); - TProfile *p_ele_HoEVsPhi = h_ele_HoEVsPhi->ProfileX(); - p_ele_HoEVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_HoEVsPhi->GetYaxis()->SetTitle(""); - p_ele_HoEVsPhi->Write(); - TProfile *p_ele_chi2VsEta = h_ele_chi2VsEta->ProfileX(); - p_ele_chi2VsEta->GetXaxis()->SetTitle("#eta"); - p_ele_chi2VsEta->GetYaxis()->SetTitle("<#Chi^{2}>"); - p_ele_chi2VsEta->Write(); - TProfile *p_ele_chi2VsPhi = h_ele_chi2VsPhi->ProfileX(); - p_ele_chi2VsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_chi2VsPhi->GetYaxis()->SetTitle("<#Chi^{2}>"); - p_ele_chi2VsPhi->Write(); - TProfile *p_ele_foundHitsVsEta = h_ele_foundHitsVsEta->ProfileX(); - p_ele_foundHitsVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_foundHitsVsEta->GetYaxis()->SetTitle(""); - p_ele_foundHitsVsEta->Write(); - TProfile *p_ele_foundHitsVsPhi = h_ele_foundHitsVsPhi->ProfileX(); - p_ele_foundHitsVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_foundHitsVsPhi->GetYaxis()->SetTitle(""); - p_ele_foundHitsVsPhi->Write(); - TProfile *p_ele_lostHitsVsEta = h_ele_lostHitsVsEta->ProfileX(); - p_ele_lostHitsVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_lostHitsVsEta->GetYaxis()->SetTitle(""); - p_ele_lostHitsVsEta->Write(); - TProfile *p_ele_lostHitsVsPhi = h_ele_lostHitsVsPhi->ProfileX(); - p_ele_lostHitsVsPhi->GetXaxis()->SetTitle("#phi (rad)"); - p_ele_lostHitsVsPhi->GetYaxis()->SetTitle(""); - p_ele_lostHitsVsPhi->Write(); - TProfile *p_ele_vertexTIPVsEta = h_ele_vertexTIPVsEta->ProfileX(); - p_ele_vertexTIPVsEta->SetTitle("mean tip (wrt gen vtx) vs eta"); - p_ele_vertexTIPVsEta->GetXaxis()->SetTitle("#eta"); - p_ele_vertexTIPVsEta->GetYaxis()->SetTitle(" (cm)"); - p_ele_vertexTIPVsEta->Write(); - TProfile *p_ele_vertexTIPVsPhi = h_ele_vertexTIPVsPhi->ProfileX(); - p_ele_vertexTIPVsPhi->SetTitle("mean tip (wrt gen vtx) vs phi"); - p_ele_vertexTIPVsPhi->GetXaxis()->SetTitle("#phi"); - p_ele_vertexTIPVsPhi->GetYaxis()->SetTitle(" (cm)"); - p_ele_vertexTIPVsPhi->Write(); - TProfile *p_ele_vertexTIPVsPt = h_ele_vertexTIPVsPt->ProfileX(); - p_ele_vertexTIPVsPt->SetTitle("mean tip (wrt gen vtx) vs phi"); - p_ele_vertexTIPVsPt->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - p_ele_vertexTIPVsPt->GetYaxis()->SetTitle(" (cm)"); - p_ele_vertexTIPVsPt->Write(); - - // mc truth - - h_matchingObjectNum->Write(); - - // rec event - - histNum_->Write(); - - // mc - h_matchingObjectEta->Write(); - h_matchingObjectAbsEta->Write(); - h_matchingObjectP->Write(); - h_matchingObjectPt->Write(); - h_matchingObjectPhi->Write(); - h_matchingObjectZ->Write(); - - // all electrons - h_ele_EoverP_all->Write(); - h_ele_EseedOP_all->Write(); - h_ele_EoPout_all->Write(); - h_ele_EeleOPout_all->Write(); - h_ele_dEtaSc_propVtx_all->Write(); - h_ele_dPhiSc_propVtx_all->Write(); - h_ele_dEtaCl_propOut_all->Write(); - h_ele_dPhiCl_propOut_all->Write(); - h_ele_HoE_all->Write(); - h_ele_TIP_all->Write(); - h_ele_vertexPt_all->Write(); - h_ele_vertexEta_all->Write(); - h_ele_mee_all->Write(); - h_ele_mee_os->Write(); - h_ele_E2mnE1vsMee_all->Write(); - h_ele_E2mnE1vsMee_egeg_all->Write(); - - // matched electrons - h_ele_charge->Write(); - h_ele_chargeVsEta->Write(); - h_ele_chargeVsPhi->Write(); - h_ele_chargeVsPt->Write(); - h_ele_vertexP->Write(); - h_ele_vertexPt->Write(); - h_ele_vertexPtVsEta->Write(); - h_ele_vertexPtVsPhi->Write(); - h_ele_matchingObjectPt_matched->Write(); - h_ele_vertexEta->Write(); - h_ele_vertexEtaVsPhi->Write(); - h_ele_matchingObjectAbsEta_matched->Write(); - h_ele_matchingObjectEta_matched->Write(); - h_ele_vertexPhi->Write(); - h_ele_matchingObjectPhi_matched->Write(); - h_ele_vertexX->Write(); - h_ele_vertexY->Write(); - h_ele_vertexZ->Write(); - h_ele_vertexTIP->Write(); - h_ele_matchingObjectZ_matched->Write(); - h_ele_vertexTIPVsEta->Write(); - h_ele_vertexTIPVsPhi->Write(); - h_ele_vertexTIPVsPt->Write(); - h_ele_PoPmatchingObject->Write(); - h_ele_PoPmatchingObjectVsEta->Write(); - h_ele_PoPmatchingObjectVsPhi->Write(); - h_ele_PoPmatchingObjectVsPt->Write(); - h_ele_PoPmatchingObject_barrel->Write(); - h_ele_PoPmatchingObject_endcaps->Write(); - h_ele_EtaMnEtamatchingObject->Write(); - h_ele_EtaMnEtamatchingObjectVsEta->Write(); - h_ele_EtaMnEtamatchingObjectVsPhi->Write(); - h_ele_EtaMnEtamatchingObjectVsPt->Write(); - h_ele_PhiMnPhimatchingObject->Write(); - h_ele_PhiMnPhimatchingObject2->Write(); - h_ele_PhiMnPhimatchingObjectVsEta->Write(); - h_ele_PhiMnPhimatchingObjectVsPhi->Write(); - h_ele_PhiMnPhimatchingObjectVsPt->Write(); - - // matched electron, superclusters - histSclEn_->Write(); - histSclEoEmatchingObject_barrel->Write(); - histSclEoEmatchingObject_endcaps->Write(); - histSclEt_->Write(); - histSclEtVsEta_->Write(); - histSclEtVsPhi_->Write(); - histSclEtaVsPhi_->Write(); - histSclEta_->Write(); - histSclPhi_->Write(); - histSclSigIEtaIEta_->Write(); - histSclSigIEtaIEta_barrel_->Write(); - histSclSigIEtaIEta_endcaps_->Write(); - histSclE1x5_->Write(); - histSclE1x5_barrel_->Write(); - histSclE1x5_endcaps_->Write(); - histSclE2x5max_->Write(); - histSclE2x5max_barrel_->Write(); - histSclE2x5max_endcaps_->Write(); - histSclE5x5_->Write(); - histSclE5x5_barrel_->Write(); - histSclE5x5_endcaps_->Write(); - - // matched electron, gsf tracks - h_ele_ambiguousTracks->Write(); - h_ele_ambiguousTracksVsEta->Write(); - h_ele_ambiguousTracksVsPhi->Write(); - h_ele_ambiguousTracksVsPt->Write(); - h_ele_foundHits->Write(); - h_ele_foundHitsVsEta->Write(); - h_ele_foundHitsVsPhi->Write(); - h_ele_foundHitsVsPt->Write(); - h_ele_lostHits->Write(); - h_ele_lostHitsVsEta->Write(); - h_ele_lostHitsVsPhi->Write(); - h_ele_lostHitsVsPt->Write(); - h_ele_chi2->Write(); - h_ele_chi2VsEta->Write(); - h_ele_chi2VsPhi->Write(); - h_ele_chi2VsPt->Write(); - h_ele_PinMnPout->Write(); - h_ele_PinMnPout_mode->Write(); - h_ele_PinMnPoutVsEta_mode->Write(); - h_ele_PinMnPoutVsPhi_mode->Write(); - h_ele_PinMnPoutVsPt_mode->Write(); - h_ele_PinMnPoutVsE_mode->Write(); - h_ele_PinMnPoutVsChi2_mode->Write(); - h_ele_outerP->Write(); - h_ele_outerP_mode->Write(); - h_ele_outerPVsEta_mode->Write(); - h_ele_outerPt->Write(); - h_ele_outerPt_mode->Write(); - h_ele_outerPtVsEta_mode->Write(); - h_ele_outerPtVsPhi_mode->Write(); - h_ele_outerPtVsPt_mode->Write(); - - // matched electrons, matching - h_ele_EoP->Write(); - h_ele_EoP_eg->Write(); - h_ele_EoP_barrel->Write(); - h_ele_EoP_eg_barrel->Write(); - h_ele_EoP_endcaps->Write(); - h_ele_EoP_eg_endcaps->Write(); - h_ele_EoPVsEta->Write(); - h_ele_EoPVsPhi->Write(); - h_ele_EoPVsE->Write(); - h_ele_EseedOP->Write(); - h_ele_EseedOP_eg->Write(); - h_ele_EseedOP_barrel->Write(); - h_ele_EseedOP_eg_barrel->Write(); - h_ele_EseedOP_endcaps->Write(); - h_ele_EseedOP_eg_endcaps->Write(); - h_ele_EseedOPVsEta->Write(); - h_ele_EseedOPVsPhi->Write(); - h_ele_EseedOPVsE->Write(); - h_ele_EoPout->Write(); - h_ele_EoPout_eg->Write(); - h_ele_EoPout_barrel->Write(); - h_ele_EoPout_eg_barrel->Write(); - h_ele_EoPout_endcaps->Write(); - h_ele_EoPout_eg_endcaps->Write(); - h_ele_EoPoutVsEta->Write(); - h_ele_EoPoutVsPhi->Write(); - h_ele_EoPoutVsE->Write(); - h_ele_EeleOPout->Write(); - h_ele_EeleOPout_eg->Write(); - h_ele_EeleOPout_barrel->Write(); - h_ele_EeleOPout_eg_barrel->Write(); - h_ele_EeleOPout_endcaps->Write(); - h_ele_EeleOPout_eg_endcaps->Write(); - h_ele_EeleOPoutVsEta->Write(); - h_ele_EeleOPoutVsPhi->Write(); - h_ele_EeleOPoutVsE->Write(); - h_ele_dEtaSc_propVtx->Write(); - h_ele_dEtaSc_propVtx_eg->Write(); - h_ele_dEtaSc_propVtx_barrel->Write(); - h_ele_dEtaSc_propVtx_eg_barrel->Write(); - h_ele_dEtaSc_propVtx_endcaps->Write(); - h_ele_dEtaSc_propVtx_eg_endcaps->Write(); - h_ele_dEtaScVsEta_propVtx->Write(); - h_ele_dEtaScVsPhi_propVtx->Write(); - h_ele_dEtaScVsPt_propVtx->Write(); - h_ele_dPhiSc_propVtx->Write(); - h_ele_dPhiSc_propVtx_eg->Write(); - h_ele_dPhiSc_propVtx_barrel->Write(); - h_ele_dPhiSc_propVtx_eg_barrel->Write(); - h_ele_dPhiSc_propVtx_endcaps->Write(); - h_ele_dPhiSc_propVtx_eg_endcaps->Write(); - h_ele_dPhiScVsEta_propVtx->Write(); - h_ele_dPhiScVsPhi_propVtx->Write(); - h_ele_dPhiScVsPt_propVtx->Write(); - h_ele_dEtaCl_propOut->Write(); - h_ele_dEtaCl_propOut_eg->Write(); - h_ele_dEtaCl_propOut_barrel->Write(); - h_ele_dEtaCl_propOut_eg_barrel->Write(); - h_ele_dEtaCl_propOut_endcaps->Write(); - h_ele_dEtaCl_propOut_eg_endcaps->Write(); - h_ele_dEtaClVsEta_propOut->Write(); - h_ele_dEtaClVsPhi_propOut->Write(); - h_ele_dEtaClVsPt_propOut->Write(); - h_ele_dPhiCl_propOut->Write(); - h_ele_dPhiCl_propOut_eg->Write(); - h_ele_dPhiCl_propOut_barrel->Write(); - h_ele_dPhiCl_propOut_eg_barrel->Write(); - h_ele_dPhiCl_propOut_endcaps->Write(); - h_ele_dPhiCl_propOut_eg_endcaps->Write(); - h_ele_dPhiClVsEta_propOut->Write(); - h_ele_dPhiClVsPhi_propOut->Write(); - h_ele_dPhiClVsPt_propOut->Write(); - h_ele_dEtaEleCl_propOut->Write(); - h_ele_dEtaEleCl_propOut_eg->Write(); - h_ele_dEtaEleCl_propOut_barrel->Write(); - h_ele_dEtaEleCl_propOut_eg_barrel->Write(); - h_ele_dEtaEleCl_propOut_endcaps->Write(); - h_ele_dEtaEleCl_propOut_eg_endcaps->Write(); - h_ele_dEtaEleClVsEta_propOut->Write(); - h_ele_dEtaEleClVsPhi_propOut->Write(); - h_ele_dEtaEleClVsPt_propOut->Write(); - h_ele_dPhiEleCl_propOut->Write(); - h_ele_dPhiEleCl_propOut_eg->Write(); - h_ele_dPhiEleCl_propOut_barrel->Write(); - h_ele_dPhiEleCl_propOut_eg_barrel->Write(); - h_ele_dPhiEleCl_propOut_endcaps->Write(); - h_ele_dPhiEleCl_propOut_eg_endcaps->Write(); - h_ele_dPhiEleClVsEta_propOut->Write(); - h_ele_dPhiEleClVsPhi_propOut->Write(); - h_ele_dPhiEleClVsPt_propOut->Write(); - h_ele_HoE->Write(); - h_ele_HoE_eg->Write(); - h_ele_HoE_barrel->Write(); - h_ele_HoE_eg_barrel->Write(); - h_ele_HoE_endcaps->Write(); - h_ele_HoE_eg_endcaps->Write(); - h_ele_HoE_fiducial->Write(); - h_ele_HoEVsEta->Write(); - h_ele_HoEVsPhi->Write(); - h_ele_HoEVsE->Write(); - - h_ele_seed_dphi2_->Write(); - h_ele_seed_subdet2_->Write(); - TProfile *p_ele_seed_dphi2VsEta_ = h_ele_seed_dphi2VsEta_->ProfileX(); - p_ele_seed_dphi2VsEta_->SetTitle("mean ele seed dphi 2nd layer vs eta"); - p_ele_seed_dphi2VsEta_->GetXaxis()->SetTitle("#eta"); - p_ele_seed_dphi2VsEta_->GetYaxis()->SetTitle("<#phi_{pred} - #phi_{hit}, 2nd layer> (rad)"); - p_ele_seed_dphi2VsEta_->SetMinimum(-0.004); - p_ele_seed_dphi2VsEta_->SetMaximum(0.004); - p_ele_seed_dphi2VsEta_->Write(); - TProfile *p_ele_seed_dphi2VsPt_ = h_ele_seed_dphi2VsPt_->ProfileX(); - p_ele_seed_dphi2VsPt_->SetTitle("mean ele seed dphi 2nd layer vs pt"); - p_ele_seed_dphi2VsPt_->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - p_ele_seed_dphi2VsPt_->GetYaxis()->SetTitle("<#phi_{pred} - #phi_{hit}, 2nd layer> (rad)"); - p_ele_seed_dphi2VsPt_->SetMinimum(-0.004); - p_ele_seed_dphi2VsPt_->SetMaximum(0.004); - p_ele_seed_dphi2VsPt_->Write(); - h_ele_seed_drz2_->Write(); - TProfile *p_ele_seed_drz2VsEta_ = h_ele_seed_drz2VsEta_->ProfileX(); - p_ele_seed_drz2VsEta_->SetTitle("mean ele seed dr(dz) 2nd layer vs eta"); - p_ele_seed_drz2VsEta_->GetXaxis()->SetTitle("#eta"); - p_ele_seed_drz2VsEta_->GetYaxis()->SetTitle(" (cm)"); - p_ele_seed_drz2VsEta_->SetMinimum(-0.15); - p_ele_seed_drz2VsEta_->SetMaximum(0.15); - p_ele_seed_drz2VsEta_->Write(); - TProfile *p_ele_seed_drz2VsPt_ = h_ele_seed_drz2VsPt_->ProfileX(); - p_ele_seed_drz2VsPt_->SetTitle("mean ele seed dr(dz) 2nd layer vs pt"); - p_ele_seed_drz2VsPt_->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - p_ele_seed_drz2VsPt_->GetYaxis()->SetTitle(" (cm)"); - p_ele_seed_drz2VsPt_->SetMinimum(-0.15); - p_ele_seed_drz2VsPt_->SetMaximum(0.15); - p_ele_seed_drz2VsPt_->Write(); - - // classes - h_ele_classes->Write(); - h_ele_eta->Write(); - h_ele_eta_golden->Write(); - h_ele_eta_bbrem->Write(); - h_ele_eta_narrow->Write(); - h_ele_eta_shower->Write(); - h_ele_PinVsPoutGolden_mode->Write(); - h_ele_PinVsPoutShowering_mode->Write(); - h_ele_PinVsPoutGolden_mean->Write(); - h_ele_PinVsPoutShowering_mean->Write(); - h_ele_PtinVsPtoutGolden_mode->Write(); - h_ele_PtinVsPtoutShowering_mode->Write(); - h_ele_PtinVsPtoutGolden_mean->Write(); - h_ele_PtinVsPtoutShowering_mean->Write(); - histSclEoEmatchingObjectGolden_barrel->Write(); - histSclEoEmatchingObjectGolden_endcaps->Write(); - histSclEoEmatchingObjectShowering_barrel->Write(); - histSclEoEmatchingObjectShowering_endcaps->Write(); - - // fbrem - h_ele_fbrem->Write(); - h_ele_fbremVsEta_mode->Write(); - h_ele_fbremVsEta_mean->Write(); - h_ele_etaEff->Write(); - h_ele_zEff->Write(); - h_ele_phiEff->Write(); - h_ele_absetaEff->Write(); - h_ele_ptEff->Write(); - h_ele_etaEff_all->Write(); - h_ele_ptEff_all->Write(); - h_ele_eta_goldenFrac->Write(); - h_ele_eta_bbremFrac->Write(); - h_ele_eta_narrowFrac->Write(); - h_ele_eta_showerFrac->Write(); - h_ele_xOverX0VsEta->Write(); - - // e/g et pflow electrons - h_ele_mva->Write(); - h_ele_provenance->Write(); - - // isolation - h_ele_tkSumPt_dr03->GetXaxis()->SetTitle("TkIsoSum, cone 0.3 (GeV/c)"); - h_ele_tkSumPt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_tkSumPt_dr03->Write(); - h_ele_ecalRecHitSumEt_dr03->GetXaxis()->SetTitle("EcalIsoSum, cone 0.3 (GeV)"); - h_ele_ecalRecHitSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_ecalRecHitSumEt_dr03->Write(); - h_ele_hcalDepth1TowerSumEt_dr03->GetXaxis()->SetTitle("Hcal1IsoSum, cone 0.3 (GeV)"); - h_ele_hcalDepth1TowerSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth1TowerSumEt_dr03->Write(); - h_ele_hcalDepth2TowerSumEt_dr03->GetXaxis()->SetTitle("Hcal2IsoSum, cone 0.3 (GeV)"); - h_ele_hcalDepth2TowerSumEt_dr03->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth2TowerSumEt_dr03->Write(); - h_ele_tkSumPt_dr04->GetXaxis()->SetTitle("TkIsoSum, cone 0.4 (GeV/c)"); - h_ele_tkSumPt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_tkSumPt_dr04->Write(); - h_ele_ecalRecHitSumEt_dr04->GetXaxis()->SetTitle("EcalIsoSum, cone 0.4 (GeV)"); - h_ele_ecalRecHitSumEt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_ecalRecHitSumEt_dr04->Write(); - h_ele_hcalDepth1TowerSumEt_dr04->GetXaxis()->SetTitle("Hcal1IsoSum, cone 0.4 (GeV)"); - h_ele_hcalDepth1TowerSumEt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth1TowerSumEt_dr04->Write(); - h_ele_hcalDepth2TowerSumEt_dr04->GetXaxis()->SetTitle("Hcal2IsoSum, cone 0.4 (GeV)"); - h_ele_hcalDepth2TowerSumEt_dr04->GetYaxis()->SetTitle("Events"); - h_ele_hcalDepth2TowerSumEt_dr04->Write(); -} - -void GsfElectronMCFakeAnalyzer::analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup) { - std::cout << "analyzing new event " << std::endl; - - // get reco electrons - edm::Handle gsfElectrons; - iEvent.getByLabel(electronCollection_, gsfElectrons); - edm::LogInfo("") << "\n\n =================> Treating event " << iEvent.id() << " Number of electrons " - << gsfElectrons.product()->size(); - - // get gen jets - edm::Handle genJets; - iEvent.getByLabel(matchingObjectCollection_, genJets); - - // get the beamspot from the Event: - edm::Handle recoBeamSpotHandle; - iEvent.getByLabel(beamSpot_, recoBeamSpotHandle); - const BeamSpot bs = *recoBeamSpotHandle; - - histNum_->Fill((*gsfElectrons).size()); - - // all rec electrons - for (reco::GsfElectronCollection::const_iterator gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); - gsfIter++) { - // preselect electrons - if (gsfIter->pt() > maxPt_ || std::abs(gsfIter->eta()) > maxAbsEta_) - continue; - h_ele_EoverP_all->Fill(gsfIter->eSuperClusterOverP()); - h_ele_EseedOP_all->Fill(gsfIter->eSeedClusterOverP()); - h_ele_EoPout_all->Fill(gsfIter->eSeedClusterOverPout()); - h_ele_EeleOPout_all->Fill(gsfIter->eEleClusterOverPout()); - h_ele_dEtaSc_propVtx_all->Fill(gsfIter->deltaEtaSuperClusterTrackAtVtx()); - h_ele_dPhiSc_propVtx_all->Fill(gsfIter->deltaPhiSuperClusterTrackAtVtx()); - h_ele_dEtaCl_propOut_all->Fill(gsfIter->deltaEtaSeedClusterTrackAtCalo()); - h_ele_dPhiCl_propOut_all->Fill(gsfIter->deltaPhiSeedClusterTrackAtCalo()); - h_ele_HoE_all->Fill(gsfIter->hadronicOverEm()); - double d = gsfIter->vertex().x() * gsfIter->vertex().x() + gsfIter->vertex().y() * gsfIter->vertex().y(); - h_ele_TIP_all->Fill(sqrt(d)); - h_ele_vertexEta_all->Fill(gsfIter->eta()); - h_ele_vertexPt_all->Fill(gsfIter->pt()); - float enrj1 = gsfIter->superCluster()->energy(); - // mee - for (reco::GsfElectronCollection::const_iterator gsfIter2 = gsfIter + 1; gsfIter2 != gsfElectrons->end(); - gsfIter2++) { - math::XYZTLorentzVector p12 = (*gsfIter).p4() + (*gsfIter2).p4(); - float mee2 = p12.Dot(p12); - h_ele_mee_all->Fill(sqrt(mee2)); - float enrj2 = gsfIter2->superCluster()->energy(); - h_ele_E2mnE1vsMee_all->Fill(sqrt(mee2), enrj2 - enrj1); - if (gsfIter->ecalDrivenSeed() && gsfIter2->ecalDrivenSeed()) - h_ele_E2mnE1vsMee_egeg_all->Fill(sqrt(mee2), enrj2 - enrj1); - if (gsfIter->charge() * gsfIter2->charge() < 0.) - h_ele_mee_os->Fill(sqrt(mee2)); - } - } - - // association matching object-reco electrons - int matchingObjectNum = 0; - - for (reco::GenJetCollection::const_iterator moIter = genJets->begin(); moIter != genJets->end(); ++moIter) { - // number of matching objects - matchingObjectNum++; - - if (moIter->energy() / cosh(moIter->eta()) > maxPt_ || std::abs(moIter->eta()) > maxAbsEta_) - continue; - - // suppress the endcaps - //if (std::abs(moIter->eta()) > 1.5) continue; - // select central z - //if ( std::abs((*mcIter)->production_vertex()->position().z())>50.) continue; - - h_matchingObjectEta->Fill(moIter->eta()); - h_matchingObjectAbsEta->Fill(std::abs(moIter->eta())); - h_matchingObjectP->Fill(moIter->energy()); - h_matchingObjectPt->Fill(moIter->energy() / cosh(moIter->eta())); - h_matchingObjectPhi->Fill(moIter->phi()); - h_matchingObjectZ->Fill(moIter->vz()); - - // looking for the best matching gsf electron - bool okGsfFound = false; - double gsfOkRatio = 999999.; - - // find best matched electron - reco::GsfElectron bestGsfElectron; - for (reco::GsfElectronCollection::const_iterator gsfIter = gsfElectrons->begin(); gsfIter != gsfElectrons->end(); - gsfIter++) { - double dphi = gsfIter->phi() - moIter->phi(); - if (std::abs(dphi) > CLHEP::pi) - dphi = dphi < 0 ? (CLHEP::twopi) + dphi : dphi - CLHEP::twopi; - double deltaR = sqrt(std::pow((gsfIter->eta() - moIter->eta()), 2) + std::pow(dphi, 2)); - if (deltaR < deltaR_) { - //if ( (genPc->pdg_id() == 11) && (gsfIter->charge() < 0.) || (genPc->pdg_id() == -11) && - //(gsfIter->charge() > 0.) ){ - double tmpGsfRatio = gsfIter->p() / moIter->energy(); - if (std::abs(tmpGsfRatio - 1) < std::abs(gsfOkRatio - 1)) { - gsfOkRatio = tmpGsfRatio; - bestGsfElectron = *gsfIter; - okGsfFound = true; - } - //} - } - } // loop over rec ele to look for the best one - - // analysis when the matching object is matched by a rec electron - if (okGsfFound) { - // electron related distributions - h_ele_charge->Fill(bestGsfElectron.charge()); - h_ele_chargeVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.charge()); - h_ele_chargeVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.charge()); - h_ele_chargeVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.charge()); - h_ele_vertexP->Fill(bestGsfElectron.p()); - h_ele_vertexPt->Fill(bestGsfElectron.pt()); - h_ele_vertexPtVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.pt()); - h_ele_vertexPtVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.pt()); - h_ele_vertexEta->Fill(bestGsfElectron.eta()); - // generated distributions for matched electrons - h_ele_matchingObjectPt_matched->Fill(moIter->energy() / cosh(moIter->eta())); - h_ele_matchingObjectPhi_matched->Fill(moIter->phi()); - h_ele_matchingObjectAbsEta_matched->Fill(std::abs(moIter->eta())); - h_ele_matchingObjectEta_matched->Fill(moIter->eta()); - h_ele_vertexEtaVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta()); - h_ele_vertexPhi->Fill(bestGsfElectron.phi()); - h_ele_vertexX->Fill(bestGsfElectron.vertex().x()); - h_ele_vertexY->Fill(bestGsfElectron.vertex().y()); - h_ele_vertexZ->Fill(bestGsfElectron.vertex().z()); - h_ele_matchingObjectZ_matched->Fill(moIter->vz()); - double d = - (bestGsfElectron.vertex().x() - bs.position().x()) * (bestGsfElectron.vertex().x() - bs.position().x()) + - (bestGsfElectron.vertex().y() - bs.position().y()) * (bestGsfElectron.vertex().y() - bs.position().y()); - d = sqrt(d); - h_ele_vertexTIP->Fill(d); - h_ele_vertexTIPVsEta->Fill(bestGsfElectron.eta(), d); - h_ele_vertexTIPVsPhi->Fill(bestGsfElectron.phi(), d); - h_ele_vertexTIPVsPt->Fill(bestGsfElectron.pt(), d); - h_ele_EtaMnEtamatchingObject->Fill(bestGsfElectron.eta() - moIter->eta()); - h_ele_EtaMnEtamatchingObjectVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eta() - moIter->eta()); - h_ele_EtaMnEtamatchingObjectVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eta() - moIter->eta()); - h_ele_EtaMnEtamatchingObjectVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.eta() - moIter->eta()); - h_ele_PhiMnPhimatchingObject->Fill(bestGsfElectron.phi() - moIter->phi()); - h_ele_PhiMnPhimatchingObject2->Fill(bestGsfElectron.phi() - moIter->phi()); - h_ele_PhiMnPhimatchingObjectVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.phi() - moIter->phi()); - h_ele_PhiMnPhimatchingObjectVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.phi() - moIter->phi()); - h_ele_PhiMnPhimatchingObjectVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.phi() - moIter->phi()); - h_ele_PoPmatchingObject->Fill(bestGsfElectron.p() / moIter->energy()); - h_ele_PoPmatchingObjectVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.p() / moIter->energy()); - h_ele_PoPmatchingObjectVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.p() / moIter->energy()); - h_ele_PoPmatchingObjectVsPt->Fill(bestGsfElectron.py(), bestGsfElectron.p() / moIter->energy()); - if (bestGsfElectron.isEB()) - h_ele_PoPmatchingObject_barrel->Fill(bestGsfElectron.p() / moIter->energy()); - if (bestGsfElectron.isEE()) - h_ele_PoPmatchingObject_endcaps->Fill(bestGsfElectron.p() / moIter->energy()); - - // supercluster related distributions - reco::SuperClusterRef sclRef = bestGsfElectron.superCluster(); - if (!bestGsfElectron.ecalDrivenSeed() && bestGsfElectron.trackerDrivenSeed()) - sclRef = bestGsfElectron.parentSuperCluster(); - histSclEn_->Fill(sclRef->energy()); - double R = std::sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y() + sclRef->z() * sclRef->z()); - double Rt = std::sqrt(sclRef->x() * sclRef->x() + sclRef->y() * sclRef->y()); - histSclEt_->Fill(sclRef->energy() * (Rt / R)); - histSclEtVsEta_->Fill(sclRef->eta(), sclRef->energy() * (Rt / R)); - histSclEtVsPhi_->Fill(sclRef->phi(), sclRef->energy() * (Rt / R)); - if (bestGsfElectron.isEB()) - histSclEoEmatchingObject_barrel->Fill(sclRef->energy() / moIter->energy()); - if (bestGsfElectron.isEE()) - histSclEoEmatchingObject_endcaps->Fill(sclRef->energy() / moIter->energy()); - histSclEta_->Fill(sclRef->eta()); - histSclEtaVsPhi_->Fill(sclRef->phi(), sclRef->eta()); - histSclPhi_->Fill(sclRef->phi()); - histSclSigIEtaIEta_->Fill(bestGsfElectron.scSigmaIEtaIEta()); - if (bestGsfElectron.isEB()) - histSclSigIEtaIEta_barrel_->Fill(bestGsfElectron.scSigmaIEtaIEta()); - if (bestGsfElectron.isEE()) - histSclSigIEtaIEta_endcaps_->Fill(bestGsfElectron.scSigmaIEtaIEta()); - histSclE1x5_->Fill(bestGsfElectron.scE1x5()); - if (bestGsfElectron.isEB()) - histSclE1x5_barrel_->Fill(bestGsfElectron.scE1x5()); - if (bestGsfElectron.isEE()) - histSclE1x5_endcaps_->Fill(bestGsfElectron.scE1x5()); - histSclE2x5max_->Fill(bestGsfElectron.scE2x5Max()); - if (bestGsfElectron.isEB()) - histSclE2x5max_barrel_->Fill(bestGsfElectron.scE2x5Max()); - if (bestGsfElectron.isEE()) - histSclE2x5max_endcaps_->Fill(bestGsfElectron.scE2x5Max()); - histSclE5x5_->Fill(bestGsfElectron.scE5x5()); - if (bestGsfElectron.isEB()) - histSclE5x5_barrel_->Fill(bestGsfElectron.scE5x5()); - if (bestGsfElectron.isEE()) - histSclE5x5_endcaps_->Fill(bestGsfElectron.scE5x5()); - - // track related distributions - h_ele_ambiguousTracks->Fill(bestGsfElectron.ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.ambiguousGsfTracksSize()); - h_ele_ambiguousTracksVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.ambiguousGsfTracksSize()); - if (!readAOD_) { // track extra does not exist in AOD - h_ele_foundHits->Fill(bestGsfElectron.gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfValidHits()); - h_ele_foundHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfValidHits()); - h_ele_lostHits->Fill(bestGsfElectron.gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->numberOfLostHits()); - h_ele_lostHitsVsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->numberOfLostHits()); - h_ele_chi2->Fill(bestGsfElectron.gsfTrack()->normalizedChi2()); - h_ele_chi2VsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.gsfTrack()->normalizedChi2()); - h_ele_chi2VsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.gsfTrack()->normalizedChi2()); - h_ele_chi2VsPt->Fill(bestGsfElectron.pt(), bestGsfElectron.gsfTrack()->normalizedChi2()); - } - // from gsf track interface, hence using mean - if (!readAOD_) { // track extra does not exist in AOD - h_ele_PinMnPout->Fill(bestGsfElectron.gsfTrack()->innerMomentum().R() - - bestGsfElectron.gsfTrack()->outerMomentum().R()); - h_ele_outerP->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R()); - h_ele_outerPt->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho()); - } - // from electron interface, hence using mode - h_ele_PinMnPout_mode->Fill(bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_PinMnPoutVsEta_mode->Fill( - bestGsfElectron.eta(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_PinMnPoutVsPhi_mode->Fill( - bestGsfElectron.phi(), bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_PinMnPoutVsPt_mode->Fill(bestGsfElectron.pt(), - bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_PinMnPoutVsE_mode->Fill(bestGsfElectron.caloEnergy(), - bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - if (!readAOD_) // track extra does not exist in AOD - h_ele_PinMnPoutVsChi2_mode->Fill( - bestGsfElectron.gsfTrack()->normalizedChi2(), - bestGsfElectron.trackMomentumAtVtx().R() - bestGsfElectron.trackMomentumOut().R()); - h_ele_outerP_mode->Fill(bestGsfElectron.trackMomentumOut().R()); - h_ele_outerPVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().R()); - h_ele_outerPt_mode->Fill(bestGsfElectron.trackMomentumOut().Rho()); - h_ele_outerPtVsEta_mode->Fill(bestGsfElectron.eta(), bestGsfElectron.trackMomentumOut().Rho()); - h_ele_outerPtVsPhi_mode->Fill(bestGsfElectron.phi(), bestGsfElectron.trackMomentumOut().Rho()); - h_ele_outerPtVsPt_mode->Fill(bestGsfElectron.pt(), bestGsfElectron.trackMomentumOut().Rho()); - - if (!readAOD_) { // track extra does not exist in AOD - edm::RefToBase seed = bestGsfElectron.gsfTrack()->extra()->seedRef(); - ElectronSeedRef elseed = seed.castTo(); - h_ele_seed_dphi2_->Fill(elseed->dPhiNeg(1)); - h_ele_seed_dphi2VsEta_->Fill(bestGsfElectron.eta(), elseed->dPhiNeg(1)); - h_ele_seed_dphi2VsPt_->Fill(bestGsfElectron.pt(), elseed->dPhiNeg(1)); - h_ele_seed_drz2_->Fill(elseed->dRZNeg(1)); - h_ele_seed_drz2VsEta_->Fill(bestGsfElectron.eta(), elseed->dRZNeg(1)); - h_ele_seed_drz2VsPt_->Fill(bestGsfElectron.pt(), elseed->dRZNeg(1)); - h_ele_seed_subdet2_->Fill(elseed->subDet(1)); - } - // match distributions - h_ele_EoP->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_EoP_eg->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.isEB()) - h_ele_EoP_barrel->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EoP_eg_barrel->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.isEE()) - h_ele_EoP_endcaps->Fill(bestGsfElectron.eSuperClusterOverP()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EoP_eg_endcaps->Fill(bestGsfElectron.eSuperClusterOverP()); - h_ele_EoPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSuperClusterOverP()); - h_ele_EoPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSuperClusterOverP()); - h_ele_EoPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSuperClusterOverP()); - h_ele_EseedOP->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_EseedOP_eg->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.isEB()) - h_ele_EseedOP_barrel->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EseedOP_eg_barrel->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.isEE()) - h_ele_EseedOP_endcaps->Fill(bestGsfElectron.eSeedClusterOverP()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EseedOP_eg_endcaps->Fill(bestGsfElectron.eSeedClusterOverP()); - h_ele_EseedOPVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverP()); - h_ele_EseedOPVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverP()); - h_ele_EseedOPVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverP()); - h_ele_EoPout->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_EoPout_eg->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.isEB()) - h_ele_EoPout_barrel->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EoPout_eg_barrel->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.isEE()) - h_ele_EoPout_endcaps->Fill(bestGsfElectron.eSeedClusterOverPout()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EoPout_eg_endcaps->Fill(bestGsfElectron.eSeedClusterOverPout()); - h_ele_EoPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eSeedClusterOverPout()); - h_ele_EoPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eSeedClusterOverPout()); - h_ele_EoPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eSeedClusterOverPout()); - h_ele_EeleOPout->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_EeleOPout_eg->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.isEB()) - h_ele_EeleOPout_barrel->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EeleOPout_eg_barrel->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.isEE()) - h_ele_EeleOPout_endcaps->Fill(bestGsfElectron.eEleClusterOverPout()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_EeleOPout_eg_endcaps->Fill(bestGsfElectron.eEleClusterOverPout()); - h_ele_EeleOPoutVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.eEleClusterOverPout()); - h_ele_EeleOPoutVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.eEleClusterOverPout()); - h_ele_EeleOPoutVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.eEleClusterOverPout()); - h_ele_dEtaSc_propVtx->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaSc_propVtx_eg->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEB()) - h_ele_dEtaSc_propVtx_barrel->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaSc_propVtx_eg_barrel->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEE()) - h_ele_dEtaSc_propVtx_endcaps->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaSc_propVtx_eg_endcaps->Fill(bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - h_ele_dEtaScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - h_ele_dEtaScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - h_ele_dEtaScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSuperClusterTrackAtVtx()); - h_ele_dPhiSc_propVtx->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiSc_propVtx_eg->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEB()) - h_ele_dPhiSc_propVtx_barrel->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiSc_propVtx_eg_barrel->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEE()) - h_ele_dPhiSc_propVtx_endcaps->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiSc_propVtx_eg_endcaps->Fill(bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - h_ele_dPhiScVsEta_propVtx->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - h_ele_dPhiScVsPhi_propVtx->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - h_ele_dPhiScVsPt_propVtx->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSuperClusterTrackAtVtx()); - h_ele_dEtaCl_propOut->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaCl_propOut_eg->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEB()) - h_ele_dEtaCl_propOut_barrel->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEE()) - h_ele_dEtaCl_propOut_endcaps->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - h_ele_dEtaClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - h_ele_dEtaClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - h_ele_dEtaClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaSeedClusterTrackAtCalo()); - h_ele_dPhiCl_propOut->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiCl_propOut_eg->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEB()) - h_ele_dPhiCl_propOut_barrel->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEE()) - h_ele_dPhiCl_propOut_endcaps->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - h_ele_dPhiClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - h_ele_dPhiClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - h_ele_dPhiClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiSeedClusterTrackAtCalo()); - h_ele_dEtaEleCl_propOut->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaEleCl_propOut_eg->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.isEB()) - h_ele_dEtaEleCl_propOut_barrel->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaEleCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.isEE()) - h_ele_dEtaEleCl_propOut_endcaps->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dEtaEleCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - h_ele_dEtaEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - h_ele_dEtaEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - h_ele_dEtaEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaEtaEleClusterTrackAtCalo()); - h_ele_dPhiEleCl_propOut->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiEleCl_propOut_eg->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.isEB()) - h_ele_dPhiEleCl_propOut_barrel->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiEleCl_propOut_eg_barrel->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.isEE()) - h_ele_dPhiEleCl_propOut_endcaps->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_dPhiEleCl_propOut_eg_endcaps->Fill(bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - h_ele_dPhiEleClVsEta_propOut->Fill(bestGsfElectron.eta(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - h_ele_dPhiEleClVsPhi_propOut->Fill(bestGsfElectron.phi(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - h_ele_dPhiEleClVsPt_propOut->Fill(bestGsfElectron.pt(), bestGsfElectron.deltaPhiEleClusterTrackAtCalo()); - h_ele_HoE->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_HoE_eg->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.isEB()) - h_ele_HoE_barrel->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.isEB() && bestGsfElectron.ecalDrivenSeed()) - h_ele_HoE_eg_barrel->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.isEE()) - h_ele_HoE_endcaps->Fill(bestGsfElectron.hadronicOverEm()); - if (bestGsfElectron.isEE() && bestGsfElectron.ecalDrivenSeed()) - h_ele_HoE_eg_endcaps->Fill(bestGsfElectron.hadronicOverEm()); - if (!bestGsfElectron.isEBEtaGap() && !bestGsfElectron.isEBPhiGap() && !bestGsfElectron.isEBEEGap() && - !bestGsfElectron.isEERingGap() && !bestGsfElectron.isEEDeeGap()) - h_ele_HoE_fiducial->Fill(bestGsfElectron.hadronicOverEm()); - h_ele_HoEVsEta->Fill(bestGsfElectron.eta(), bestGsfElectron.hadronicOverEm()); - h_ele_HoEVsPhi->Fill(bestGsfElectron.phi(), bestGsfElectron.hadronicOverEm()); - h_ele_HoEVsE->Fill(bestGsfElectron.caloEnergy(), bestGsfElectron.hadronicOverEm()); - - //classes - int eleClass = bestGsfElectron.classification(); - if (bestGsfElectron.isEE()) - eleClass += 10; - h_ele_classes->Fill(eleClass); - - h_ele_eta->Fill(std::abs(bestGsfElectron.eta())); - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_eta_golden->Fill(std::abs(bestGsfElectron.eta())); - if (bestGsfElectron.classification() == GsfElectron::BIGBREM) - h_ele_eta_bbrem->Fill(std::abs(bestGsfElectron.eta())); - //if (bestGsfElectron.classification() == GsfElectron::OLDNARROW) h_ele_eta_narrow ->Fill(std::abs(bestGsfElectron.eta())); - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_eta_shower->Fill(std::abs(bestGsfElectron.eta())); - - //fbrem - double fbrem_mean = 0.; - if (!readAOD_) // track extra does not exist in AOD - fbrem_mean = - 1. - bestGsfElectron.gsfTrack()->outerMomentum().R() / bestGsfElectron.gsfTrack()->innerMomentum().R(); - double fbrem_mode = bestGsfElectron.fbrem(); - h_ele_fbrem->Fill(fbrem_mode); - h_ele_fbremVsEta_mode->Fill(bestGsfElectron.eta(), fbrem_mode); - if (!readAOD_) // track extra does not exist in AOD - h_ele_fbremVsEta_mean->Fill(bestGsfElectron.eta(), fbrem_mean); - - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_PinVsPoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().R(), - bestGsfElectron.trackMomentumAtVtx().R()); - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_PinVsPoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().R(), - bestGsfElectron.trackMomentumAtVtx().R()); - if (!readAOD_) // track extra does not exist in AOD - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_PinVsPoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(), - bestGsfElectron.gsfTrack()->innerMomentum().R()); - if (!readAOD_) // track extra does not exist in AOD - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_PinVsPoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().R(), - bestGsfElectron.gsfTrack()->innerMomentum().R()); - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_PtinVsPtoutGolden_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(), - bestGsfElectron.trackMomentumAtVtx().Rho()); - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_PtinVsPtoutShowering_mode->Fill(bestGsfElectron.trackMomentumOut().Rho(), - bestGsfElectron.trackMomentumAtVtx().Rho()); - if (!readAOD_) // track extra does not exist in AOD - if (bestGsfElectron.classification() == GsfElectron::GOLDEN) - h_ele_PtinVsPtoutGolden_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(), - bestGsfElectron.gsfTrack()->innerMomentum().Rho()); - if (!readAOD_) // track extra does not exist in AOD - if (bestGsfElectron.classification() == GsfElectron::SHOWERING) - h_ele_PtinVsPtoutShowering_mean->Fill(bestGsfElectron.gsfTrack()->outerMomentum().Rho(), - bestGsfElectron.gsfTrack()->innerMomentum().Rho()); - - h_ele_mva->Fill(bestGsfElectron.mva_e_pi()); - if (bestGsfElectron.ecalDrivenSeed()) - h_ele_provenance->Fill(1.); - if (bestGsfElectron.trackerDrivenSeed()) - h_ele_provenance->Fill(-1.); - if (bestGsfElectron.trackerDrivenSeed() || bestGsfElectron.ecalDrivenSeed()) - h_ele_provenance->Fill(0.); - if (bestGsfElectron.trackerDrivenSeed() && !bestGsfElectron.ecalDrivenSeed()) - h_ele_provenance->Fill(-2.); - if (!bestGsfElectron.trackerDrivenSeed() && bestGsfElectron.ecalDrivenSeed()) - h_ele_provenance->Fill(2.); - - h_ele_tkSumPt_dr03->Fill(bestGsfElectron.dr03TkSumPt()); - h_ele_ecalRecHitSumEt_dr03->Fill(bestGsfElectron.dr03EcalRecHitSumEt()); - h_ele_hcalDepth1TowerSumEt_dr03->Fill(bestGsfElectron.dr03HcalTowerSumEt(1)); - h_ele_hcalDepth2TowerSumEt_dr03->Fill(bestGsfElectron.dr03HcalTowerSumEt(2)); - h_ele_tkSumPt_dr04->Fill(bestGsfElectron.dr04TkSumPt()); - h_ele_ecalRecHitSumEt_dr04->Fill(bestGsfElectron.dr04EcalRecHitSumEt()); - h_ele_hcalDepth1TowerSumEt_dr04->Fill(bestGsfElectron.dr04HcalTowerSumEt(1)); - h_ele_hcalDepth2TowerSumEt_dr04->Fill(bestGsfElectron.dr04HcalTowerSumEt(2)); - - } // gsf electron found - - // } // matching object found - - // } - - } // loop overmatching object - - h_matchingObjectNum->Fill(matchingObjectNum); -} diff --git a/RecoEgamma/Examples/plugins/MCElectronAnalyzer.cc b/RecoEgamma/Examples/plugins/MCElectronAnalyzer.cc deleted file mode 100644 index 64d96f9ab99bf..0000000000000 --- a/RecoEgamma/Examples/plugins/MCElectronAnalyzer.cc +++ /dev/null @@ -1,230 +0,0 @@ -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Utilities/interface/Exception.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" -#include "RecoEgamma/EgammaMCTools/interface/ElectronMCTruth.h" -#include "RecoEgamma/EgammaMCTools/interface/ElectronMCTruthFinder.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" -#include "SimDataFormats/Track/interface/SimTrack.h" -#include "SimDataFormats/Track/interface/SimTrackContainer.h" -#include "SimDataFormats/Vertex/interface/SimVertex.h" -#include "SimDataFormats/Vertex/interface/SimVertexContainer.h" - -#include "TFile.h" -#include "TH1.h" -#include "TH2.h" -#include "TTree.h" -#include "TVector3.h" -#include "TProfile.h" - -#include -#include -#include - -class MCElectronAnalyzer : public edm::one::EDAnalyzer<> { -public: - // - explicit MCElectronAnalyzer(const edm::ParameterSet&); - ~MCElectronAnalyzer() override; - - void analyze(const edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - void endJob() override; - -private: - float etaTransformation(float a, float b); - float phiNormalization(float& a); - - // - ElectronMCTruthFinder* theElectronMCTruthFinder_; - - const TrackerGeometry* trackerGeom; - - std::string fOutputFileName_; - TFile* fOutputFile_; - - int nEvt_; - int nMatched_; - - /// global variable for the MC photon - double mcPhi_; - double mcEta_; - - std::string HepMCLabel; - std::string SimTkLabel; - std::string SimVtxLabel; - std::string SimHitLabel; - - TH1F* h_MCEleE_; - TH1F* h_MCEleEta_; - TH1F* h_MCElePhi_; - TH1F* h_BremFrac_; - TH1F* h_BremEnergy_; - - TProfile* p_BremVsR_; - TProfile* p_BremVsEta_; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(MCElectronAnalyzer); - -using namespace std; - -MCElectronAnalyzer::MCElectronAnalyzer(const edm::ParameterSet& pset) - : fOutputFileName_(pset.getUntrackedParameter("HistOutFile", std::string("TestConversions.root"))), - fOutputFile_(nullptr) {} - -MCElectronAnalyzer::~MCElectronAnalyzer() { delete theElectronMCTruthFinder_; } - -void MCElectronAnalyzer::beginJob() { - nEvt_ = 0; - - theElectronMCTruthFinder_ = new ElectronMCTruthFinder(); - - fOutputFile_ = new TFile(fOutputFileName_.c_str(), "RECREATE"); - - //// Primary electrons - h_MCEleE_ = new TH1F("MCEleE", "MC ele energy", 100, 0., 200.); - h_MCElePhi_ = new TH1F("MCElePhi", "MC ele phi", 40, -3.14, 3.14); - h_MCEleEta_ = new TH1F("MCEleEta", "MC ele eta", 40, -3., 3.); - h_BremFrac_ = new TH1F("bremFrac", "brem frac ", 100, 0., 1.); - h_BremEnergy_ = new TH1F("BremE", "Brem energy", 100, 0., 200.); - - p_BremVsR_ = new TProfile("BremVsR", " Mean Brem energy vs R ", 48, 0., 120.); - p_BremVsEta_ = new TProfile("BremVsEta", " Mean Brem energy vs Eta ", 50, -2.5, 2.5); - - return; -} - -float MCElectronAnalyzer::etaTransformation(float EtaParticle, float Zvertex) { - //---Definitions - const float PI = 3.1415927; - //const float TWOPI = 2.0*PI; - - //---Definitions for ECAL - const float R_ECAL = 136.5; - const float Z_Endcap = 328.0; - const float etaBarrelEndcap = 1.479; - - //---ETA correction - - float Theta = 0.0; - float ZEcal = R_ECAL * sinh(EtaParticle) + Zvertex; - - if (ZEcal != 0.0) - Theta = atan(R_ECAL / ZEcal); - if (Theta < 0.0) - Theta = Theta + PI; - float ETA = -log(tan(0.5 * Theta)); - - if (std::abs(ETA) > etaBarrelEndcap) { - float Zend = Z_Endcap; - if (EtaParticle < 0.0) - Zend = -Zend; - float Zlen = Zend - Zvertex; - float RR = Zlen / sinh(EtaParticle); - Theta = atan(RR / Zend); - if (Theta < 0.0) - Theta = Theta + PI; - ETA = -log(tan(0.5 * Theta)); - } - //---Return the result - return ETA; - //---end -} - -float MCElectronAnalyzer::phiNormalization(float& phi) { - //---Definitions - const float PI = 3.1415927; - const float TWOPI = 2.0 * PI; - - if (phi > PI) { - phi = phi - TWOPI; - } - if (phi < -PI) { - phi = phi + TWOPI; - } - - // cout << " Float_t PHInormalization out " << PHI << endl; - return phi; -} - -void MCElectronAnalyzer::analyze(const edm::Event& e, const edm::EventSetup&) { - using namespace edm; - //const float etaPhiDistance=0.01; - // Fiducial region - //const float TRK_BARL =0.9; - //const float BARL = 1.4442; // DAQ TDR p.290 - //const float END_LO = 1.566; - //const float END_HI = 2.5; - // Electron mass - //const Float_t mElec= 0.000511; - - nEvt_++; - LogInfo("MCElectronAnalyzer") << "MCElectronAnalyzer Analyzing event number: " << e.id() << " Global Counter " - << nEvt_ << "\n"; - // LogDebug("MCElectronAnalyzer") << "MCElectronAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ <<"\n"; - std::cout << "MCElectronAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ << "\n"; - - //////////////////// Get the MC truth: SimTracks - std::cout << " MCElectronAnalyzer Looking for MC truth " - << "\n"; - - //get simtrack info - std::vector theSimTracks; - std::vector theSimVertices; - - edm::Handle SimTk; - edm::Handle SimVtx; - e.getByLabel("g4SimHits", SimTk); - e.getByLabel("g4SimHits", SimVtx); - - theSimTracks.insert(theSimTracks.end(), SimTk->begin(), SimTk->end()); - theSimVertices.insert(theSimVertices.end(), SimVtx->begin(), SimVtx->end()); - std::cout << " MCElectronAnalyzer This Event has " << theSimTracks.size() << " sim tracks " << std::endl; - std::cout << " MCElectronAnalyzer This Event has " << theSimVertices.size() << " sim vertices " << std::endl; - if (theSimTracks.empty()) - std::cout << " Event number " << e.id() << " has NO sim tracks " << std::endl; - - std::vector MCElectronctrons = theElectronMCTruthFinder_->find(theSimTracks, theSimVertices); - std::cout << " MCElectronAnalyzer MCElectronctrons size " << MCElectronctrons.size() << std::endl; - - for (std::vector::const_iterator iEl = MCElectronctrons.begin(); iEl != MCElectronctrons.end(); - ++iEl) { - h_MCEleE_->Fill((*iEl).fourMomentum().e()); - h_MCEleEta_->Fill((*iEl).fourMomentum().pseudoRapidity()); - h_MCElePhi_->Fill((*iEl).fourMomentum().phi()); - - float totBrem = 0; - unsigned int iBrem; - for (iBrem = 0; iBrem < (*iEl).bremVertices().size(); ++iBrem) { - float rBrem = (*iEl).bremVertices()[iBrem].perp(); - float etaBrem = (*iEl).bremVertices()[iBrem].eta(); - if (rBrem < 120) { - totBrem += (*iEl).bremMomentum()[iBrem].e(); - p_BremVsR_->Fill(rBrem, (*iEl).bremMomentum()[iBrem].e()); - p_BremVsEta_->Fill(etaBrem, (*iEl).bremMomentum()[iBrem].e()); - } - } - - h_BremFrac_->Fill(totBrem / (*iEl).fourMomentum().e()); - h_BremEnergy_->Fill(totBrem); - } -} - -void MCElectronAnalyzer::endJob() { - fOutputFile_->Write(); - fOutputFile_->Close(); - - edm::LogInfo("MCElectronAnalyzer") << "Analyzed " << nEvt_ << "\n"; - std::cout << "MCElectronAnalyzer::endJob Analyzed " << nEvt_ << " events " - << "\n"; - - return; -} diff --git a/RecoEgamma/Examples/plugins/MCPhotonAnalyzer.cc b/RecoEgamma/Examples/plugins/MCPhotonAnalyzer.cc deleted file mode 100644 index 831439b060ce5..0000000000000 --- a/RecoEgamma/Examples/plugins/MCPhotonAnalyzer.cc +++ /dev/null @@ -1,385 +0,0 @@ -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" -#include "RecoEgamma/EgammaMCTools/interface/ElectronMCTruth.h" -#include "RecoEgamma/EgammaMCTools/interface/PhotonMCTruth.h" -#include "RecoEgamma/EgammaMCTools/interface/PhotonMCTruthFinder.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" -#include "SimDataFormats/Track/interface/SimTrack.h" -#include "SimDataFormats/Track/interface/SimTrackContainer.h" -#include "SimDataFormats/Vertex/interface/SimVertex.h" -#include "SimDataFormats/Vertex/interface/SimVertexContainer.h" - -#include "TFile.h" -#include "TH1.h" -#include "TH2.h" -#include "TTree.h" -#include "TVector3.h" -#include "TProfile.h" - -#include -#include -#include - -class MCPhotonAnalyzer : public edm::one::EDAnalyzer<> { -public: - // - explicit MCPhotonAnalyzer(const edm::ParameterSet&); - ~MCPhotonAnalyzer() override; - - void analyze(const edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - void endJob() override; - -private: - float etaTransformation(float a, float b); - float phiNormalization(float& a); - - // - PhotonMCTruthFinder* thePhotonMCTruthFinder_; - - const TrackerGeometry* trackerGeom; - - std::string fOutputFileName_; - TFile* fOutputFile_; - - int nEvt_; - int nMatched_; - - /// global variable for the MC photon - - double mcPhi_; - double mcEta_; - - std::string HepMCLabel; - std::string SimTkLabel; - std::string SimVtxLabel; - std::string SimHitLabel; - - // all photons - TH1F* h_MCPhoE_; - TH1F* h_MCPhoEta_; - TH1F* h_MCPhoEta1_; - TH1F* h_MCPhoEta2_; - TH1F* h_MCPhoEta3_; - TH1F* h_MCPhoEta4_; - TH1F* h_MCPhoPhi_; - // Conversion - TH1F* h_MCConvPhoE_; - TH1F* h_MCConvPhoEta_; - TH1F* h_MCConvPhoPhi_; - TH1F* h_MCConvPhoR_; - TH1F* h_MCConvPhoREta1_; - TH1F* h_MCConvPhoREta2_; - TH1F* h_MCConvPhoREta3_; - TH1F* h_MCConvPhoREta4_; - TH1F* h_convFracEta1_; - TH1F* h_convFracEta2_; - TH1F* h_convFracEta3_; - TH1F* h_convFracEta4_; - - /// Conversions with two tracks - TH1F* h_MCConvPhoTwoTracksE_; - TH1F* h_MCConvPhoTwoTracksEta_; - TH1F* h_MCConvPhoTwoTracksPhi_; - TH1F* h_MCConvPhoTwoTracksR_; - /// Conversions with one track - TH1F* h_MCConvPhoOneTrackE_; - TH1F* h_MCConvPhoOneTrackEta_; - TH1F* h_MCConvPhoOneTrackPhi_; - TH1F* h_MCConvPhoOneTrackR_; - - TH1F* h_MCEleE_; - TH1F* h_MCEleEta_; - TH1F* h_MCElePhi_; - TH1F* h_BremFrac_; - TH1F* h_BremEnergy_; - TH2F* h_EleEvsPhoE_; - TH2F* h_bremEvsEleE_; - - TProfile* p_BremVsR_; - TProfile* p_BremVsEta_; - - TProfile* p_BremVsConvR_; - TProfile* p_BremVsConvEta_; - - TH2F* h_bremFracVsConvR_; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(MCPhotonAnalyzer); - -using namespace std; - -MCPhotonAnalyzer::MCPhotonAnalyzer(const edm::ParameterSet& pset) {} - -MCPhotonAnalyzer::~MCPhotonAnalyzer() { delete thePhotonMCTruthFinder_; } - -void MCPhotonAnalyzer::beginJob() { - nEvt_ = 0; - - thePhotonMCTruthFinder_ = new PhotonMCTruthFinder(); - - edm::Service fs; - - //// All MC photons - h_MCPhoE_ = fs->make("MCPhoE", "MC photon energy", 100, 0., 100.); - h_MCPhoPhi_ = fs->make("MCPhoPhi", "MC photon phi", 40, -3.14, 3.14); - h_MCPhoEta_ = fs->make("MCPhoEta", "MC photon eta", 25, 0., 2.5); - h_MCPhoEta1_ = fs->make("MCPhoEta1", "MC photon eta", 40, -3., 3.); - h_MCPhoEta2_ = fs->make("MCPhoEta2", "MC photon eta", 40, -3., 3.); - h_MCPhoEta3_ = fs->make("MCPhoEta3", "MC photon eta", 40, -3., 3.); - h_MCPhoEta4_ = fs->make("MCPhoEta4", "MC photon eta", 40, -3., 3.); - /// conversions - h_MCConvPhoE_ = fs->make("MCConvPhoE", "MC converted photon energy", 100, 0., 100.); - h_MCConvPhoPhi_ = fs->make("MCConvPhoPhi", "MC converted photon phi", 40, -3.14, 3.14); - h_MCConvPhoEta_ = fs->make("MCConvPhoEta", "MC converted photon eta", 25, 0., 2.5); - h_MCConvPhoR_ = fs->make("MCConvPhoR", "MC converted photon R", 120, 0., 120.); - - h_MCConvPhoREta1_ = fs->make("MCConvPhoREta1", "MC converted photon R", 120, 0., 120.); - h_MCConvPhoREta2_ = fs->make("MCConvPhoREta2", "MC converted photon R", 120, 0., 120.); - h_MCConvPhoREta3_ = fs->make("MCConvPhoREta3", "MC converted photon R", 120, 0., 120.); - h_MCConvPhoREta4_ = fs->make("MCConvPhoREta4", "MC converted photon R", 120, 0., 120.); - - h_convFracEta1_ = fs->make("convFracEta1", "Integrated(R) fraction of conversion |eta|=0.2", 120, 0., 120.); - h_convFracEta2_ = fs->make("convFracEta2", "Integrated(R) fraction of conversion |eta|=0.9", 120, 0., 120.); - h_convFracEta3_ = fs->make("convFracEta3", "Integrated(R) fraction of conversion |eta|=1.5", 120, 0., 120.); - h_convFracEta4_ = fs->make("convFracEta4", "Integrated(R) fraction of conversion |eta|=2.0", 120, 0., 120.); - /// conversions with two tracks - h_MCConvPhoTwoTracksE_ = - fs->make("MCConvPhoTwoTracksE", "MC converted photon with 2 tracks energy", 100, 0., 100.); - h_MCConvPhoTwoTracksPhi_ = - fs->make("MCConvPhoTwoTracksPhi", "MC converted photon 2 tracks phi", 40, -3.14, 3.14); - h_MCConvPhoTwoTracksEta_ = fs->make("MCConvPhoTwoTracksEta", "MC converted photon 2 tracks eta", 40, -3., 3.); - h_MCConvPhoTwoTracksR_ = fs->make("MCConvPhoTwoTracksR", "MC converted photon 2 tracks eta", 48, 0., 120.); - // conversions with one track - h_MCConvPhoOneTrackE_ = - fs->make("MCConvPhoOneTrackE", "MC converted photon with 1 track energy", 100, 0., 100.); - h_MCConvPhoOneTrackPhi_ = fs->make("MCConvPhoOneTrackPhi", "MC converted photon 1 track phi", 40, -3.14, 3.14); - h_MCConvPhoOneTrackEta_ = fs->make("MCConvPhoOneTrackEta", "MC converted photon 1 track eta", 40, -3., 3.); - h_MCConvPhoOneTrackR_ = fs->make("MCConvPhoOneTrackR", "MC converted photon 1 track eta", 48, 0., 120.); - - /// electrons from conversions - h_MCEleE_ = fs->make("MCEleE", "MC ele energy", 100, 0., 200.); - h_MCElePhi_ = fs->make("MCElePhi", "MC ele phi", 40, -3.14, 3.14); - h_MCEleEta_ = fs->make("MCEleEta", "MC ele eta", 40, -3., 3.); - h_BremFrac_ = fs->make("bremFrac", "brem frac ", 100, 0., 1.); - h_BremEnergy_ = fs->make("BremE", "Brem energy", 100, 0., 200.); - h_EleEvsPhoE_ = fs->make("eleEvsPhoE", "eleEvsPhoE", 100, 0., 200., 100, 0., 200.); - h_bremEvsEleE_ = fs->make("bremEvsEleE", "bremEvsEleE", 100, 0., 200., 100, 0., 200.); - - p_BremVsR_ = fs->make("BremVsR", " Mean Brem Energy vs R ", 48, 0., 120.); - p_BremVsEta_ = fs->make("BremVsEta", " Mean Brem Energy vs Eta ", 50, -2.5, 2.5); - - p_BremVsConvR_ = fs->make("BremVsConvR", " Mean Brem Fraction vs conversion R ", 48, 0., 120.); - p_BremVsConvEta_ = fs->make("BremVsConvEta", " Mean Brem Fraction vs converion Eta ", 50, -2.5, 2.5); - - h_bremFracVsConvR_ = fs->make("bremFracVsConvR", "brem Fraction vs conversion R", 60, 0., 120., 100, 0., 1.); - - return; -} - -float MCPhotonAnalyzer::etaTransformation(float EtaParticle, float Zvertex) { - //---Definitions - const float PI = 3.1415927; - // const float TWOPI = 2.0*PI; - - //---Definitions for ECAL - const float R_ECAL = 136.5; - const float Z_Endcap = 328.0; - const float etaBarrelEndcap = 1.479; - - //---ETA correction - - float Theta = 0.0; - float ZEcal = R_ECAL * sinh(EtaParticle) + Zvertex; - - if (ZEcal != 0.0) - Theta = atan(R_ECAL / ZEcal); - if (Theta < 0.0) - Theta = Theta + PI; - float ETA = -log(tan(0.5 * Theta)); - - if (fabs(ETA) > etaBarrelEndcap) { - float Zend = Z_Endcap; - if (EtaParticle < 0.0) - Zend = -Zend; - float Zlen = Zend - Zvertex; - float RR = Zlen / sinh(EtaParticle); - Theta = atan(RR / Zend); - if (Theta < 0.0) - Theta = Theta + PI; - ETA = -log(tan(0.5 * Theta)); - } - //---Return the result - return ETA; - //---end -} - -float MCPhotonAnalyzer::phiNormalization(float& phi) { - //---Definitions - const float PI = 3.1415927; - const float TWOPI = 2.0 * PI; - - if (phi > PI) { - phi = phi - TWOPI; - } - if (phi < -PI) { - phi = phi + TWOPI; - } - - // cout << " Float_t PHInormalization out " << PHI << endl; - return phi; -} - -void MCPhotonAnalyzer::analyze(const edm::Event& e, const edm::EventSetup&) { - using namespace edm; - //UNUSED const float etaPhiDistance=0.01; - // Fiducial region - //UNUSED const float TRK_BARL =0.9; - //UNUSED const float BARL = 1.4442; // DAQ TDR p.290 - //UNUSED const float END_LO = 1.566; - //UNUSED const float END_HI = 2.5; - // Electron mass - //UNUSED const Float_t mElec= 0.000511; - - nEvt_++; - LogInfo("mcEleAnalyzer") << "MCPhotonAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ - << "\n"; - // LogDebug("MCPhotonAnalyzer") << "MCPhotonAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ <<"\n"; - std::cout << "MCPhotonAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ << "\n"; - - //////////////////// Get the MC truth: SimTracks - std::cout << " MCPhotonAnalyzer Looking for MC truth " - << "\n"; - - //get simtrack info - std::vector theSimTracks; - std::vector theSimVertices; - - edm::Handle SimTk; - edm::Handle SimVtx; - e.getByLabel("g4SimHits", SimTk); - e.getByLabel("g4SimHits", SimVtx); - - theSimTracks.insert(theSimTracks.end(), SimTk->begin(), SimTk->end()); - theSimVertices.insert(theSimVertices.end(), SimVtx->begin(), SimVtx->end()); - std::cout << " MCPhotonAnalyzer This Event has " << theSimTracks.size() << " sim tracks " << std::endl; - std::cout << " MCPhotonAnalyzer This Event has " << theSimVertices.size() << " sim vertices " << std::endl; - if (theSimTracks.empty()) - std::cout << " Event number " << e.id() << " has NO sim tracks " << std::endl; - - std::vector mcPhotons = thePhotonMCTruthFinder_->find(theSimTracks, theSimVertices); - std::cout << " MCPhotonAnalyzer mcPhotons size " << mcPhotons.size() << std::endl; - - for (std::vector::const_iterator iPho = mcPhotons.begin(); iPho != mcPhotons.end(); ++iPho) { - if ((*iPho).fourMomentum().e() < 35) - continue; - - h_MCPhoE_->Fill((*iPho).fourMomentum().e()); - // float correta = etaTransformation( (*iPho).fourMomentum().pseudoRapidity(), (*iPho).primaryVertex().z() ); - float Theta = (*iPho).fourMomentum().theta(); - float correta = -log(tan(0.5 * Theta)); - correta = etaTransformation(correta, (*iPho).primaryVertex().z()); - //h_MCPhoEta_->Fill ( (*iPho).fourMomentum().pseudoRapidity() ); - h_MCPhoEta_->Fill(fabs(correta) - 0.001); - h_MCPhoPhi_->Fill((*iPho).fourMomentum().phi()); - - /* - if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 0.25 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=0.15 ) - h_MCPhoEta1_->Fill ( (*iPho).fourMomentum().pseudoRapidity() ); - if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 0.95 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=0.85 ) - h_MCPhoEta2_->Fill ( (*iPho).fourMomentum().pseudoRapidity() ); - if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 1.65 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=1.55 ) - h_MCPhoEta3_->Fill ( (*iPho).fourMomentum().pseudoRapidity() ); - if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 2.05 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=1.95 ) - h_MCPhoEta4_->Fill ( (*iPho).fourMomentum().pseudoRapidity() ); - */ - - if (fabs(correta) <= 0.3 && fabs(correta) > 0.2) - h_MCPhoEta1_->Fill(correta); - if (fabs(correta) <= 1.00 && fabs(correta) > 0.9) - h_MCPhoEta2_->Fill(correta); - if (fabs(correta) <= 1.6 && fabs(correta) > 1.5) - h_MCPhoEta3_->Fill(correta); - if (fabs(correta) <= 2. && fabs(correta) > 1.9) - h_MCPhoEta4_->Fill(correta); - - // if ( (*iPho).isAConversion() && (*iPho).vertex().perp()< 10 ) { - if ((*iPho).isAConversion()) { - h_MCConvPhoE_->Fill((*iPho).fourMomentum().e()); - // h_MCConvPhoEta_->Fill ( (*iPho).fourMomentum().pseudoRapidity() ); - - h_MCConvPhoEta_->Fill(fabs(correta) - 0.001); - h_MCConvPhoPhi_->Fill((*iPho).fourMomentum().phi()); - h_MCConvPhoR_->Fill((*iPho).vertex().perp()); - - /* - if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 0.25 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=0.15 ) - h_MCConvPhoREta1_->Fill ( (*iPho).vertex().perp() ); - if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 0.95 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=0.85 ) - h_MCConvPhoREta2_->Fill ( (*iPho).vertex().perp() ); - if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 1.65 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=1.55 ) - h_MCConvPhoREta3_->Fill ( (*iPho).vertex().perp() ); - if ( fabs((*iPho).fourMomentum().pseudoRapidity() ) <= 2.05 && fabs((*iPho).fourMomentum().pseudoRapidity() ) >=1.95 ) - h_MCConvPhoREta4_->Fill ( (*iPho).vertex().perp() ); - */ - - if (fabs(correta) <= 0.3 && fabs(correta) > 0.2) - h_MCConvPhoREta1_->Fill((*iPho).vertex().perp()); - if (fabs(correta) <= 1. && fabs(correta) > 0.9) - h_MCConvPhoREta2_->Fill((*iPho).vertex().perp()); - if (fabs(correta) <= 1.6 && fabs(correta) > 1.5) - h_MCConvPhoREta3_->Fill((*iPho).vertex().perp()); - if (fabs(correta) <= 2 && fabs(correta) > 1.9) - h_MCConvPhoREta4_->Fill((*iPho).vertex().perp()); - - } // end conversions - - } /// Loop over all MC photons in the event -} - -void MCPhotonAnalyzer::endJob() { - double s1 = 0; - double s2 = 0; - double s3 = 0; - double s4 = 0; - int e1 = 0; - int e2 = 0; - int e3 = 0; - int e4 = 0; - - double nTotEta1 = h_MCPhoEta1_->GetEntries(); - double nTotEta2 = h_MCPhoEta2_->GetEntries(); - double nTotEta3 = h_MCPhoEta3_->GetEntries(); - double nTotEta4 = h_MCPhoEta4_->GetEntries(); - - for (int i = 1; i <= 120; ++i) { - e1 = (int)h_MCConvPhoREta1_->GetBinContent(i); - e2 = (int)h_MCConvPhoREta2_->GetBinContent(i); - e3 = (int)h_MCConvPhoREta3_->GetBinContent(i); - e4 = (int)h_MCConvPhoREta4_->GetBinContent(i); - s1 += e1; - s2 += e2; - s3 += e3; - s4 += e4; - h_convFracEta1_->SetBinContent(i, s1 * 100 / nTotEta1); - h_convFracEta2_->SetBinContent(i, s2 * 100 / nTotEta2); - h_convFracEta3_->SetBinContent(i, s3 * 100 / nTotEta3); - h_convFracEta4_->SetBinContent(i, s4 * 100 / nTotEta4); - } - - edm::LogInfo("MCPhotonAnalyzer") << "Analyzed " << nEvt_ << "\n"; - std::cout << "MCPhotonAnalyzer::endJob Analyzed " << nEvt_ << " events " - << "\n"; - - return; -} diff --git a/RecoEgamma/Examples/plugins/MCPizeroAnalyzer.cc b/RecoEgamma/Examples/plugins/MCPizeroAnalyzer.cc deleted file mode 100644 index 7d57032c32c9e..0000000000000 --- a/RecoEgamma/Examples/plugins/MCPizeroAnalyzer.cc +++ /dev/null @@ -1,301 +0,0 @@ -#include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Utilities/interface/Exception.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" -#include "RecoEgamma/EgammaMCTools/interface/ElectronMCTruth.h" -#include "RecoEgamma/EgammaMCTools/interface/PizeroMCTruth.h" -#include "RecoEgamma/EgammaMCTools/interface/PizeroMCTruthFinder.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" -#include "SimDataFormats/Track/interface/SimTrack.h" -#include "SimDataFormats/Track/interface/SimTrackContainer.h" -#include "SimDataFormats/Vertex/interface/SimVertex.h" -#include "SimDataFormats/Vertex/interface/SimVertexContainer.h" - -#include "TFile.h" -#include "TH1.h" -#include "TH2.h" -#include "TTree.h" -#include "TVector3.h" -#include "TProfile.h" - -#include -#include -#include - -class MCPizeroAnalyzer : public edm::one::EDAnalyzer<> { -public: - // - explicit MCPizeroAnalyzer(const edm::ParameterSet&); - ~MCPizeroAnalyzer() override; - - void analyze(const edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - void endJob() override; - -private: - float etaTransformation(float a, float b); - float phiNormalization(float& a); - - // - PizeroMCTruthFinder* thePizeroMCTruthFinder_; - - std::string fOutputFileName_; - TFile* fOutputFile_; - - int nEvt_; - int nMatched_; - - /// global variable for the MC photon - double mcPhi_; - double mcEta_; - - std::string HepMCLabel; - std::string SimTkLabel; - std::string SimVtxLabel; - std::string SimHitLabel; - - TH1F* h_MCPizE_; - TH1F* h_MCPizEta_; - TH1F* h_MCPizUnEta_; - TH1F* h_MCPiz1ConEta_; - TH1F* h_MCPiz2ConEta_; - TH1F* h_MCPizPhi_; - TH1F* h_MCPizMass1_; - TH1F* h_MCPizMass2_; - - TH1F* h_MCEleE_; - TH1F* h_MCEleEta_; - TH1F* h_MCElePhi_; - TH1F* h_BremFrac_; - TH1F* h_BremEnergy_; - - TH2F* h_EleEvsPhoE_; - - TH1F* h_MCPhoE_; - TH1F* h_MCPhoEta_; - TH1F* h_MCPhoPhi_; - TH1F* h_MCConvPhoE_; - TH1F* h_MCConvPhoEta_; - TH1F* h_MCConvPhoPhi_; - TH1F* h_MCConvPhoR_; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(MCPizeroAnalyzer); - -using namespace std; - -MCPizeroAnalyzer::MCPizeroAnalyzer(const edm::ParameterSet& pset) - : fOutputFileName_(pset.getUntrackedParameter("HistOutFile", std::string("TestConversions.root"))), - fOutputFile_(nullptr) {} - -MCPizeroAnalyzer::~MCPizeroAnalyzer() { delete thePizeroMCTruthFinder_; } - -void MCPizeroAnalyzer::beginJob() { - nEvt_ = 0; - - thePizeroMCTruthFinder_ = new PizeroMCTruthFinder(); - - fOutputFile_ = new TFile(fOutputFileName_.c_str(), "RECREATE"); - - //// Pizeros - h_MCPizE_ = new TH1F("MCPizE", "MC piz energy", 100, 0., 200.); - h_MCPizPhi_ = new TH1F("MCPizPhi", "MC piz phi", 40, -3.14, 3.14); - h_MCPizEta_ = new TH1F("MCPizEta", "MC piz eta", 40, -3., 3.); - h_MCPizUnEta_ = new TH1F("MCPizUnEta", "MC un piz eta", 40, -3., 3.); - h_MCPiz1ConEta_ = new TH1F("MCPiz1ConEta", "MC con piz eta: at least one converted photon", 40, -3., 3.); - h_MCPiz2ConEta_ = new TH1F("MCPiz2ConEta", "MC con piz eta: two converted photons", 40, -3., 3.); - h_MCPizMass1_ = new TH1F("MCPizMass1", "Piz mass unconverted ", 100, 0., 200); - h_MCPizMass2_ = new TH1F("MCPizMass2", "Piz mass converted ", 100, 0., 200); - - // All Photons from Pizeros - h_MCPhoE_ = new TH1F("MCPhoE", "MC photon energy", 100, 0., 200.); - h_MCPhoPhi_ = new TH1F("MCPhoPhi", "MC photon phi", 40, -3.14, 3.14); - h_MCPhoEta_ = new TH1F("MCPhoEta", "MC photon eta", 40, -3., 3.); - - // Converted photons - h_MCConvPhoE_ = new TH1F("MCConvPhoE", "MC converted photon energy", 100, 0., 200.); - h_MCConvPhoPhi_ = new TH1F("MCConvPhoPhi", "MC converted photon phi", 40, -3.14, 3.14); - h_MCConvPhoEta_ = new TH1F("MCConvPhoEta", "MC converted photon eta", 40, -3., 3.); - h_MCConvPhoR_ = new TH1F("MCConvPhoR", "MC converted photon R", 120, 0., 120.); - // Electrons from converted photons - h_MCEleE_ = new TH1F("MCEleE", "MC ele energy", 100, 0., 200.); - h_MCElePhi_ = new TH1F("MCElePhi", "MC ele phi", 40, -3.14, 3.14); - h_MCEleEta_ = new TH1F("MCEleEta", "MC ele eta", 40, -3., 3.); - h_BremFrac_ = new TH1F("bremFrac", "brem frac ", 50, 0., 1.); - h_BremEnergy_ = new TH1F("bremE", "Brem energy", 100, 0., 200.); - - h_EleEvsPhoE_ = new TH2F("eleEvsPhoE", "eleEvsPhoE", 100, 0., 200., 100, 0., 200.); - - return; -} - -float MCPizeroAnalyzer::etaTransformation(float EtaParticle, float Zvertex) { - //---Definitions - const float PI = 3.1415927; - //UNUSED const float TWOPI = 2.0*PI; - - //---Definitions for ECAL - const float R_ECAL = 136.5; - const float Z_Endcap = 328.0; - const float etaBarrelEndcap = 1.479; - - //---ETA correction - - float Theta = 0.0; - float ZEcal = R_ECAL * sinh(EtaParticle) + Zvertex; - - if (ZEcal != 0.0) - Theta = atan(R_ECAL / ZEcal); - if (Theta < 0.0) - Theta = Theta + PI; - float ETA = -log(tan(0.5 * Theta)); - - if (fabs(ETA) > etaBarrelEndcap) { - float Zend = Z_Endcap; - if (EtaParticle < 0.0) - Zend = -Zend; - float Zlen = Zend - Zvertex; - float RR = Zlen / sinh(EtaParticle); - Theta = atan(RR / Zend); - if (Theta < 0.0) - Theta = Theta + PI; - ETA = -log(tan(0.5 * Theta)); - } - //---Return the result - return ETA; - //---end -} - -float MCPizeroAnalyzer::phiNormalization(float& phi) { - //---Definitions - const float PI = 3.1415927; - const float TWOPI = 2.0 * PI; - - if (phi > PI) { - phi = phi - TWOPI; - } - if (phi < -PI) { - phi = phi + TWOPI; - } - - // cout << " Float_t PHInormalization out " << PHI << endl; - return phi; -} - -void MCPizeroAnalyzer::analyze(const edm::Event& e, const edm::EventSetup&) { - using namespace edm; - //UNUSED const float etaPhiDistance=0.01; - // Fiducial region - //UNUSED const float TRK_BARL =0.9; - //UNUSED const float BARL = 1.4442; // DAQ TDR p.290 - //UNUSED const float END_LO = 1.566; - //UNUSED const float END_HI = 2.5; - // Electron mass - //UNUSED const Float_t mElec= 0.000511; - - nEvt_++; - LogInfo("MCPizeroAnalyzer") << "MCPizeroAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ - << "\n"; - // LogDebug("MCPizeroAnalyzer") << "MCPizeroAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ <<"\n"; - std::cout << "MCPizeroAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ << "\n"; - - //////////////////// Get the MC truth: SimTracks - std::cout << " MCPizeroAnalyzer Looking for MC truth " - << "\n"; - - //get simtrack info - std::vector theSimTracks; - std::vector theSimVertices; - - edm::Handle SimTk; - edm::Handle SimVtx; - e.getByLabel("g4SimHits", SimTk); - e.getByLabel("g4SimHits", SimVtx); - - theSimTracks.insert(theSimTracks.end(), SimTk->begin(), SimTk->end()); - theSimVertices.insert(theSimVertices.end(), SimVtx->begin(), SimVtx->end()); - std::cout << " MCPizeroAnalyzer This Event has " << theSimTracks.size() << " sim tracks " << std::endl; - std::cout << " MCPizeroAnalyzer This Event has " << theSimVertices.size() << " sim vertices " << std::endl; - if (theSimTracks.empty()) - std::cout << " Event number " << e.id() << " has NO sim tracks " << std::endl; - - std::vector MCPizeroeros = thePizeroMCTruthFinder_->find(theSimTracks, theSimVertices); - std::cout << " MCPizeroAnalyzer MCPizeroeros size " << MCPizeroeros.size() << std::endl; - - for (std::vector::const_iterator iPiz = MCPizeroeros.begin(); iPiz != MCPizeroeros.end(); ++iPiz) { - h_MCPizE_->Fill((*iPiz).fourMomentum().e()); - h_MCPizEta_->Fill((*iPiz).fourMomentum().pseudoRapidity()); - h_MCPizPhi_->Fill((*iPiz).fourMomentum().phi()); - - std::vector mcPhotons = (*iPiz).photons(); - std::cout << " MCPizeroAnalyzer mcPhotons size " << mcPhotons.size() << std::endl; - - float px = mcPhotons[0].fourMomentum().x() + mcPhotons[1].fourMomentum().x(); - float py = mcPhotons[0].fourMomentum().y() + mcPhotons[1].fourMomentum().y(); - float pz = mcPhotons[0].fourMomentum().z() + mcPhotons[1].fourMomentum().z(); - float e = mcPhotons[0].fourMomentum().e() + mcPhotons[1].fourMomentum().e(); - float invM = sqrt(e * e - px * px - py * py - pz * pz) * 1000; - h_MCPizMass1_->Fill(invM); - - int converted = 0; - for (std::vector::const_iterator iPho = mcPhotons.begin(); iPho != mcPhotons.end(); ++iPho) { - h_MCPhoE_->Fill((*iPho).fourMomentum().e()); - h_MCPhoEta_->Fill((*iPho).fourMomentum().pseudoRapidity()); - h_MCPhoPhi_->Fill((*iPho).fourMomentum().phi()); - if ((*iPho).isAConversion()) { - converted++; - - h_MCConvPhoE_->Fill((*iPho).fourMomentum().e()); - h_MCConvPhoEta_->Fill((*iPho).fourMomentum().pseudoRapidity()); - h_MCConvPhoPhi_->Fill((*iPho).fourMomentum().phi()); - h_MCConvPhoR_->Fill((*iPho).vertex().perp()); - - std::vector mcElectrons = (*iPho).electrons(); - std::cout << " MCPizeroAnalyzer mcElectrons size " << mcElectrons.size() << std::endl; - - for (std::vector::const_iterator iEl = mcElectrons.begin(); iEl != mcElectrons.end(); ++iEl) { - if ((*iEl).fourMomentum().e() < 30) - continue; - h_MCEleE_->Fill((*iEl).fourMomentum().e()); - h_MCEleEta_->Fill((*iEl).fourMomentum().pseudoRapidity()); - h_MCElePhi_->Fill((*iEl).fourMomentum().phi()); - - h_EleEvsPhoE_->Fill((*iPho).fourMomentum().e(), (*iEl).fourMomentum().e()); - - float totBrem = 0; - for (unsigned int iBrem = 0; iBrem < (*iEl).bremVertices().size(); ++iBrem) - totBrem += (*iEl).bremMomentum()[iBrem].e(); - - h_BremFrac_->Fill(totBrem / (*iEl).fourMomentum().e()); - h_BremEnergy_->Fill(totBrem); - } - } - } - - if (converted > 0) { - h_MCPiz1ConEta_->Fill((*iPiz).fourMomentum().pseudoRapidity()); - if (converted == 2) - h_MCPiz2ConEta_->Fill((*iPiz).fourMomentum().pseudoRapidity()); - } else { - h_MCPizUnEta_->Fill((*iPiz).fourMomentum().pseudoRapidity()); - } - } -} - -void MCPizeroAnalyzer::endJob() { - fOutputFile_->Write(); - fOutputFile_->Close(); - - edm::LogInfo("MCPizeroAnalyzer") << "Analyzed " << nEvt_ << "\n"; - std::cout << "MCPizeroAnalyzer::endJob Analyzed " << nEvt_ << " events " - << "\n"; - - return; -} diff --git a/RecoEgamma/Examples/plugins/PatPhotonSimpleAnalyzer.cc b/RecoEgamma/Examples/plugins/PatPhotonSimpleAnalyzer.cc deleted file mode 100644 index 2aeb58ea284b6..0000000000000 --- a/RecoEgamma/Examples/plugins/PatPhotonSimpleAnalyzer.cc +++ /dev/null @@ -1,350 +0,0 @@ -// -*- C++ -*- -// -// Package: PatPhotonSimpleAnalyzer -// Class: PatPhotonSimpleAnalyzer -// -/**\class PatPhotonSimpleAnalyzer PatPhotonSimpleAnalyzer.cc RecoEgamma/PhotonIdentification/test/PatPhotonSimpleAnalyzer.cc - - Description: Generate various histograms for cuts and important - photon ID parameters using a data sample of photons in QCD events. - - Implementation: - -*/ -// -// Original Author: M.B. Anderson -// based on simple photon analyzer by: J. Stilley, A. Askew -// -// Created: Wed Sep 23 12:00:01 CDT 2008 -// - -#include "DataFormats/Common/interface/View.h" -#include "DataFormats/PatCandidates/interface/Photon.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "TFile.h" -#include "TH1.h" -#include "TTree.h" - -#include -#include - -class PatPhotonSimpleAnalyzer : public edm::one::EDAnalyzer<> { -public: - explicit PatPhotonSimpleAnalyzer(const edm::ParameterSet&); - ~PatPhotonSimpleAnalyzer() override; - - void analyze(const edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - void endJob() override; - -private: - std::string outputFile_; // output file - double minPhotonEt_; // minimum photon Et - double minPhotonAbsEta_; // min and - double maxPhotonAbsEta_; // max abs(eta) - double minPhotonR9_; // minimum R9 = E(3x3)/E(SuperCluster) - double maxPhotonHoverE_; // maximum HCAL / ECAL - bool createPhotonTTree_; // Create a TTree of photon variables - - // Will be used for creating TTree of photons. - // These names did not have to match those from a phtn->... - // but do match for clarity. - struct struct_recPhoton { - float isolationEcalRecHit; - float isolationHcalRecHit; - float isolationSolidTrkCone; - float isolationHollowTrkCone; - float nTrkSolidCone; - float nTrkHollowCone; - float isEBGap; - float isEEGap; - float isEBEEGap; - float r9; - float et; - float eta; - float phi; - float hadronicOverEm; - float ecalIso; - float hcalIso; - float trackIso; - }; - struct_recPhoton recPhoton; - - // root file to store histograms - TFile* rootFile_; - - // data members for histograms to be filled - - // PhotonID Histograms - TH1F* h_isoEcalRecHit_; - TH1F* h_isoHcalRecHit_; - TH1F* h_trk_pt_solid_; - TH1F* h_trk_pt_hollow_; - TH1F* h_ntrk_solid_; - TH1F* h_ntrk_hollow_; - TH1F* h_ebgap_; - TH1F* h_eeGap_; - TH1F* h_ebeeGap_; - TH1F* h_r9_; - - // Photon Histograms - TH1F* h_photonEt_; - TH1F* h_photonEta_; - TH1F* h_photonPhi_; - TH1F* h_hadoverem_; - - // Photon's SuperCluster Histograms - TH1F* h_photonScEt_; - TH1F* h_photonScEta_; - TH1F* h_photonScPhi_; - TH1F* h_photonScEtaWidth_; - - // Composite or Other Histograms - TH1F* h_photonInAnyGap_; - TH1F* h_nPassingPho_; - TH1F* h_nPho_; - - // TTree - TTree* tree_PhotonAll_; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(PatPhotonSimpleAnalyzer); - -using namespace std; - -/////////////////////////////////////////////////////////////////////// -// Constructor // -/////////////////////////////////////////////////////////////////////// -PatPhotonSimpleAnalyzer::PatPhotonSimpleAnalyzer(const edm::ParameterSet& ps) { - // Read Parameters from configuration file - - // output filename - outputFile_ = ps.getParameter("outputFile"); - // Read variables that must be passed to allow a - // supercluster to be placed in histograms as a photon. - minPhotonEt_ = ps.getParameter("minPhotonEt"); - minPhotonAbsEta_ = ps.getParameter("minPhotonAbsEta"); - maxPhotonAbsEta_ = ps.getParameter("maxPhotonAbsEta"); - minPhotonR9_ = ps.getParameter("minPhotonR9"); - maxPhotonHoverE_ = ps.getParameter("maxPhotonHoverE"); - - // Read variable to that decidedes whether - // a TTree of photons is created or not - createPhotonTTree_ = ps.getParameter("createPhotonTTree"); - - // open output file to store histograms - rootFile_ = TFile::Open(outputFile_.c_str(), "RECREATE"); -} - -/////////////////////////////////////////////////////////////////////// -// Destructor // -/////////////////////////////////////////////////////////////////////// -PatPhotonSimpleAnalyzer::~PatPhotonSimpleAnalyzer() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) - - delete rootFile_; -} - -/////////////////////////////////////////////////////////////////////// -// method called once each job just before starting event loop // -/////////////////////////////////////////////////////////////////////// -void PatPhotonSimpleAnalyzer::beginJob() { - // go to *OUR* rootfile - rootFile_->cd(); - - // Book Histograms - // PhotonID Histograms - h_isoEcalRecHit_ = new TH1F("photonEcalIso", "Ecal Rec Hit Isolation", 100, 0, 100); - h_isoHcalRecHit_ = new TH1F("photonHcalIso", "Hcal Rec Hit Isolation", 100, 0, 100); - h_trk_pt_solid_ = new TH1F("photonTrackSolidIso", "Sum of track pT in a cone of #DeltaR", 100, 0, 100); - h_trk_pt_hollow_ = new TH1F("photonTrackHollowIso", "Sum of track pT in a hollow cone", 100, 0, 100); - h_ntrk_solid_ = new TH1F("photonTrackCountSolid", "Number of tracks in a cone of #DeltaR", 100, 0, 100); - h_ntrk_hollow_ = new TH1F("photonTrackCountHollow", "Number of tracks in a hollow cone", 100, 0, 100); - h_ebgap_ = new TH1F("photonInEBgap", "Ecal Barrel gap flag", 2, -0.5, 1.5); - h_eeGap_ = new TH1F("photonInEEgap", "Ecal Endcap gap flag", 2, -0.5, 1.5); - h_ebeeGap_ = new TH1F("photonInEEgap", "Ecal Barrel/Endcap gap flag", 2, -0.5, 1.5); - h_r9_ = new TH1F("photonR9", "R9 = E(3x3) / E(SuperCluster)", 300, 0, 3); - - // Photon Histograms - h_photonEt_ = new TH1F("photonEt", "Photon E_{T}", 200, 0, 200); - h_photonEta_ = new TH1F("photonEta", "Photon #eta", 200, -4, 4); - h_photonPhi_ = new TH1F("photonPhi", "Photon #phi", 200, -1. * M_PI, M_PI); - h_hadoverem_ = new TH1F("photonHoverE", "Hadronic over EM", 200, 0, 1); - - // Photon's SuperCluster Histograms - h_photonScEt_ = new TH1F("photonScEt", "Photon SuperCluster E_{T}", 200, 0, 200); - h_photonScEta_ = new TH1F("photonScEta", "Photon #eta", 200, -4, 4); - h_photonScPhi_ = new TH1F("photonScPhi", "Photon #phi", 200, -1. * M_PI, M_PI); - h_photonScEtaWidth_ = new TH1F("photonScEtaWidth", "#eta-width", 100, 0, .1); - - // Composite or Other Histograms - h_photonInAnyGap_ = new TH1F("photonInAnyGap", "Photon in any gap flag", 2, -0.5, 1.5); - h_nPassingPho_ = new TH1F("photonPassingCount", "Total number photons (0=NotPassing, 1=Passing)", 2, -0.5, 1.5); - h_nPho_ = new TH1F("photonCount", "Number of photons passing cuts in event", 10, 0, 10); - - // Create a TTree of photons if set to 'True' in config file - if (createPhotonTTree_) { - tree_PhotonAll_ = new TTree("TreePhotonAll", "Reconstructed Photon"); - tree_PhotonAll_->Branch( - "recPhoton", - &recPhoton.isolationEcalRecHit, - "isolationEcalRecHit/" - "F:isolationHcalRecHit:isolationSolidTrkCone:isolationHollowTrkCone:nTrkSolidCone:nTrkHollowCone:isEBGap:" - "isEEGap:isEBEEGap:r9:et:eta:phi:hadronicOverEm:ecalIso:hcalIso:trackIso"); - } -} - -/////////////////////////////////////////////////////////////////////// -// method called to for each event // -/////////////////////////////////////////////////////////////////////// -void PatPhotonSimpleAnalyzer::analyze(const edm::Event& evt, const edm::EventSetup& es) { - using namespace std; - using namespace edm; - - // Grab pat::Photon - Handle > photonHandle; - evt.getByLabel("selectedLayer1Photons", photonHandle); - View photons = *photonHandle; - - int photonCounter = 0; - - for (int i = 0; i < int(photons.size()); i++) { - pat::Photon currentPhoton = photons.at(i); - - float photonEt = currentPhoton.et(); - float superClusterEt = - (currentPhoton.superCluster()->energy()) / (cosh(currentPhoton.superCluster()->position().eta())); - - // Only store photon candidates (SuperClusters) that pass some simple cuts - bool passCuts = (photonEt > minPhotonEt_) && (fabs(currentPhoton.eta()) > minPhotonAbsEta_) && - (fabs(currentPhoton.eta()) < maxPhotonAbsEta_) && (currentPhoton.r9() > minPhotonR9_) && - (currentPhoton.hadronicOverEm() < maxPhotonHoverE_); - - if (passCuts) { - /////////////////////////////////////////////////////// - // fill histograms // - /////////////////////////////////////////////////////// - // PhotonID Variables - h_isoEcalRecHit_->Fill(currentPhoton.ecalRecHitSumEtConeDR04()); - h_isoHcalRecHit_->Fill(currentPhoton.hcalTowerSumEtConeDR04()); - h_trk_pt_solid_->Fill(currentPhoton.trkSumPtSolidConeDR04()); - h_trk_pt_hollow_->Fill(currentPhoton.trkSumPtHollowConeDR04()); - h_ntrk_solid_->Fill(currentPhoton.nTrkSolidConeDR04()); - h_ntrk_hollow_->Fill(currentPhoton.nTrkHollowConeDR04()); - h_ebgap_->Fill(currentPhoton.isEBGap()); - h_eeGap_->Fill(currentPhoton.isEEGap()); - h_ebeeGap_->Fill(currentPhoton.isEBEEGap()); - h_r9_->Fill(currentPhoton.r9()); - - // Photon Variables - h_photonEt_->Fill(photonEt); - h_photonEta_->Fill(currentPhoton.eta()); - h_photonPhi_->Fill(currentPhoton.phi()); - h_hadoverem_->Fill(currentPhoton.hadronicOverEm()); - - // Photon's SuperCluster Variables - // eta is with respect to detector (not physics) vertex, - // thus Et and eta are different from photon. - h_photonScEt_->Fill(superClusterEt); - h_photonScEta_->Fill(currentPhoton.superCluster()->position().eta()); - h_photonScPhi_->Fill(currentPhoton.superCluster()->position().phi()); - h_photonScEtaWidth_->Fill(currentPhoton.superCluster()->etaWidth()); - - // It passed photon cuts, mark it - h_nPassingPho_->Fill(1.0); - - /////////////////////////////////////////////////////// - // fill TTree (optional) // - /////////////////////////////////////////////////////// - if (createPhotonTTree_) { - recPhoton.isolationEcalRecHit = currentPhoton.ecalRecHitSumEtConeDR04(); - recPhoton.isolationHcalRecHit = currentPhoton.hcalTowerSumEtConeDR04(); - recPhoton.isolationSolidTrkCone = currentPhoton.trkSumPtSolidConeDR04(); - recPhoton.isolationHollowTrkCone = currentPhoton.trkSumPtHollowConeDR04(); - recPhoton.nTrkSolidCone = currentPhoton.nTrkSolidConeDR04(); - recPhoton.nTrkHollowCone = currentPhoton.nTrkHollowConeDR04(); - recPhoton.isEBGap = currentPhoton.isEBGap(); - recPhoton.isEEGap = currentPhoton.isEEGap(); - recPhoton.isEBEEGap = currentPhoton.isEBEEGap(); - recPhoton.r9 = currentPhoton.r9(); - recPhoton.et = currentPhoton.et(); - recPhoton.eta = currentPhoton.eta(); - recPhoton.phi = currentPhoton.phi(); - recPhoton.hadronicOverEm = currentPhoton.hadronicOverEm(); - recPhoton.ecalIso = currentPhoton.ecalIso(); - recPhoton.hcalIso = currentPhoton.hcalIso(); - recPhoton.trackIso = currentPhoton.trackIso(); - - // Fill the tree (this records all the recPhoton.* since - // tree_PhotonAll_ was set to point at that. - tree_PhotonAll_->Fill(); - } - - // Record whether it was near any module gap. - // Very convoluted at the moment. - bool inAnyGap = currentPhoton.isEBEEGap() || (currentPhoton.isEB() && currentPhoton.isEBGap()) || - (currentPhoton.isEE() && currentPhoton.isEEGap()); - if (inAnyGap) { - h_photonInAnyGap_->Fill(1.0); - } else { - h_photonInAnyGap_->Fill(0.0); - } - - photonCounter++; - } else { - // This didn't pass photon cuts, mark it - h_nPassingPho_->Fill(0.0); - } - - } // End Loop over photons - h_nPho_->Fill(photonCounter); -} - -/////////////////////////////////////////////////////////////////////// -// method called once each job just after ending the event loop // -/////////////////////////////////////////////////////////////////////// -void PatPhotonSimpleAnalyzer::endJob() { - // go to *OUR* root file and store histograms - rootFile_->cd(); - - // PhotonID Histograms - h_isoEcalRecHit_->Write(); - h_isoHcalRecHit_->Write(); - h_trk_pt_solid_->Write(); - h_trk_pt_hollow_->Write(); - h_ntrk_solid_->Write(); - h_ntrk_hollow_->Write(); - h_ebgap_->Write(); - h_eeGap_->Write(); - h_ebeeGap_->Write(); - h_r9_->Write(); - - // Photon Histograms - h_photonEt_->Write(); - h_photonEta_->Write(); - h_photonPhi_->Write(); - h_hadoverem_->Write(); - - // Photon's SuperCluster Histograms - h_photonScEt_->Write(); - h_photonScEta_->Write(); - h_photonScPhi_->Write(); - h_photonScEtaWidth_->Write(); - - // Composite or Other Histograms - h_photonInAnyGap_->Write(); - h_nPassingPho_->Write(); - h_nPho_->Write(); - - // Write the root file (really writes the TTree) - rootFile_->Write(); - rootFile_->Close(); -} - -//define this as a plug-in -// DEFINE_FWK_MODULE(PatPhotonSimpleAnalyzer); diff --git a/RecoEgamma/Examples/plugins/PhotonsWithConversionsAnalyzer.cc b/RecoEgamma/Examples/plugins/PhotonsWithConversionsAnalyzer.cc deleted file mode 100644 index f4d484efdbf8e..0000000000000 --- a/RecoEgamma/Examples/plugins/PhotonsWithConversionsAnalyzer.cc +++ /dev/null @@ -1,340 +0,0 @@ -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/EgammaCandidates/interface/Conversion.h" -#include "DataFormats/EgammaCandidates/interface/ConversionFwd.h" -#include "DataFormats/EgammaCandidates/interface/Photon.h" -#include "DataFormats/EgammaCandidates/interface/PhotonFwd.h" -#include "DataFormats/EgammaReco/interface/SuperCluster.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackExtra.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "FWCore/Utilities/interface/Exception.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" -#include "RecoEgamma/EgammaMCTools/interface/PhotonMCTruth.h" -#include "RecoEgamma/EgammaMCTools/interface/PhotonMCTruthFinder.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" -#include "SimDataFormats/Track/interface/SimTrack.h" -#include "SimDataFormats/Track/interface/SimTrackContainer.h" -#include "SimDataFormats/Vertex/interface/SimVertex.h" -#include "SimDataFormats/Vertex/interface/SimVertexContainer.h" - -#include "TFile.h" -#include "TH1.h" -#include "TH2.h" -#include "TTree.h" -#include "TVector3.h" -#include "TProfile.h" - -#include -#include -#include - -class PhotonsWithConversionsAnalyzer : public edm::one::EDAnalyzer<> { -public: - // - explicit PhotonsWithConversionsAnalyzer(const edm::ParameterSet&); - ~PhotonsWithConversionsAnalyzer() override; - - void analyze(const edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - void endJob() override; - -private: - float etaTransformation(float a, float b); - - // - PhotonMCTruthFinder* thePhotonMCTruthFinder_; - - std::string fOutputFileName_; - TFile* fOutputFile_; - - int nEvt_; - int nMCPho_; - int nMatched_; - - std::string HepMCLabel; - std::string SimTkLabel; - std::string SimVtxLabel; - std::string SimHitLabel; - - std::string photonCollectionProducer_; - std::string photonCollection_; - - TH1F* h_ErecoEMC_; - TH1F* h_deltaPhi_; - TH1F* h_deltaEta_; - - //// All MC photons - TH1F* h_MCphoE_; - TH1F* h_MCphoPhi_; - TH1F* h_MCphoEta_; - - //// visible MC Converted photons - TH1F* h_MCConvE_; - TH1F* h_MCConvPt_; - TH1F* h_MCConvEta_; - - // SC from reco photons - TH1F* h_scE_; - TH1F* h_scEt_; - TH1F* h_scEta_; - TH1F* h_scPhi_; - // - TH1F* h_phoE_; - TH1F* h_phoEta_; - TH1F* h_phoPhi_; - // - // All tracks from reco photons - TH2F* h2_tk_nHitsVsR_; - // - TH2F* h2_tk_inPtVsR_; -}; - -using namespace std; - -PhotonsWithConversionsAnalyzer::PhotonsWithConversionsAnalyzer(const edm::ParameterSet& pset) { - photonCollectionProducer_ = pset.getParameter("phoProducer"); - photonCollection_ = pset.getParameter("photonCollection"); - // -} - -PhotonsWithConversionsAnalyzer::~PhotonsWithConversionsAnalyzer() { delete thePhotonMCTruthFinder_; } - -void PhotonsWithConversionsAnalyzer::beginJob() { - nEvt_ = 0; - nMCPho_ = 0; - nMatched_ = 0; - - thePhotonMCTruthFinder_ = new PhotonMCTruthFinder(); - - edm::Service fs; - - /// Reco - MC - h_ErecoEMC_ = fs->make("deltaE", " delta(reco-mc) energy", 100, 0., 2.); - h_deltaPhi_ = fs->make("deltaPhi", " delta(reco-mc) phi", 100, -0.1, 0.1); - h_deltaEta_ = fs->make("deltaEta", " delta(reco-mc) eta", 100, -0.05, 0.05); - - //// All MC photons - h_MCphoE_ = fs->make("MCphoE", "MC photon energy", 100, 0., 100.); - h_MCphoPhi_ = fs->make("MCphoPhi", "MC photon phi", 40, -3.14, 3.14); - h_MCphoEta_ = fs->make("MCphoEta", "MC photon eta", 40, -3., 3.); - - //// MC Converted photons - h_MCConvE_ = fs->make("MCConvE", "MC converted photon energy", 100, 0., 100.); - h_MCConvPt_ = fs->make("MCConvPt", "MC converted photon pt", 100, 0., 100.); - h_MCConvEta_ = fs->make("MCConvEta", "MC converted photon eta", 50, 0., 2.5); - - //// Reconstructed Converted photons - h_scE_ = fs->make("scE", "SC Energy ", 100, 0., 200.); - h_scEt_ = fs->make("scEt", "SC Et ", 100, 0., 200.); - h_scEta_ = fs->make("scEta", "SC Eta ", 40, -3., 3.); - h_scPhi_ = fs->make("scPhi", "SC Phi ", 40, -3.14, 3.14); - // - h_phoE_ = fs->make("phoE", "Photon Energy ", 100, 0., 200.); - h_phoEta_ = fs->make("phoEta", "Photon Eta ", 40, -3., 3.); - h_phoPhi_ = fs->make("phoPhi", "Photon Phi ", 40, -3.14, 3.14); - - // Recontructed tracks from converted photon candidates - h2_tk_nHitsVsR_ = fs->make("tknHitsVsR", "Tracks Hits vs R ", 12, 0., 120., 20, 0.5, 20.5); - h2_tk_inPtVsR_ = fs->make("tkInPtvsR", "Tracks inner Pt vs R ", 12, 0., 120., 100, 0., 100.); - - return; -} - -float PhotonsWithConversionsAnalyzer::etaTransformation(float EtaParticle, float Zvertex) { - //---Definitions - const float PI = 3.1415927; - //UNUSED const float TWOPI = 2.0*PI; - - //---Definitions for ECAL - const float R_ECAL = 136.5; - const float Z_Endcap = 328.0; - const float etaBarrelEndcap = 1.479; - - //---ETA correction - - float Theta = 0.0; - float ZEcal = R_ECAL * sinh(EtaParticle) + Zvertex; - - if (ZEcal != 0.0) - Theta = atan(R_ECAL / ZEcal); - if (Theta < 0.0) - Theta = Theta + PI; - float ETA = -log(tan(0.5 * Theta)); - - if (fabs(ETA) > etaBarrelEndcap) { - float Zend = Z_Endcap; - if (EtaParticle < 0.0) - Zend = -Zend; - float Zlen = Zend - Zvertex; - float RR = Zlen / sinh(EtaParticle); - Theta = atan(RR / Zend); - if (Theta < 0.0) - Theta = Theta + PI; - ETA = -log(tan(0.5 * Theta)); - } - //---Return the result - return ETA; - //---end -} - -void PhotonsWithConversionsAnalyzer::analyze(const edm::Event& e, const edm::EventSetup&) { - using namespace edm; - const float etaPhiDistance = 0.01; - // Fiducial region - //UNUSED const float TRK_BARL =0.9; - //UNUSED const float BARL = 1.4442; // DAQ TDR p.290 - //UNUSED const float END_LO = 1.566; - //UNUSED const float END_HI = 2.5; - // Electron mass - //UNUSED const Float_t mElec= 0.000511; - - nEvt_++; - LogInfo("ConvertedPhotonAnalyzer") << "ConvertedPhotonAnalyzer Analyzing event number: " << e.id() - << " Global Counter " << nEvt_ << "\n"; - // LogDebug("ConvertedPhotonAnalyzer") << "ConvertedPhotonAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ <<"\n"; - std::cout << "ConvertedPhotonAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ << "\n"; - - ///// Get the recontructed conversions - Handle photonHandle; - e.getByLabel(photonCollectionProducer_, photonCollection_, photonHandle); - const reco::PhotonCollection photonCollection = *(photonHandle.product()); - std::cout << "ConvertedPhotonAnalyzer Photons with conversions collection size " << photonCollection.size() << "\n"; - - //////////////////// Get the MC truth: SimTracks - std::cout << " ConvertedPhotonAnalyzer Looking for MC truth " - << "\n"; - - //get simtrack info - std::vector theSimTracks; - std::vector theSimVertices; - - edm::Handle SimTk; - edm::Handle SimVtx; - e.getByLabel("g4SimHits", SimTk); - e.getByLabel("g4SimHits", SimVtx); - - theSimTracks.insert(theSimTracks.end(), SimTk->begin(), SimTk->end()); - theSimVertices.insert(theSimVertices.end(), SimVtx->begin(), SimVtx->end()); - - std::vector mcPhotons = thePhotonMCTruthFinder_->find(theSimTracks, theSimVertices); - std::cout << " ConvertedPhotonAnalyzer mcPhotons size " << mcPhotons.size() << std::endl; - - // Loop over simulated photons - //UNUSED int iDet=0; - //UNUSED int iRadius=-1; - //UNUSED int indPho=0; - - for (std::vector::const_iterator mcPho = mcPhotons.begin(); mcPho != mcPhotons.end(); mcPho++) { - float mcPhi = (*mcPho).fourMomentum().phi(); - float mcEta = (*mcPho).fourMomentum().pseudoRapidity(); - mcEta = etaTransformation(mcEta, (*mcPho).primaryVertex().z()); - - if ((*mcPho).fourMomentum().et() < 20) - continue; - // if ( ! ( fabs(mcEta) <= BARL || ( fabs(mcEta) >= END_LO && fabs(mcEta) <=END_HI ) ) ) { - // continue; - //} // all ecal fiducial region - - h_MCphoE_->Fill((*mcPho).fourMomentum().e()); - h_MCphoEta_->Fill((*mcPho).fourMomentum().eta()); - h_MCphoPhi_->Fill((*mcPho).fourMomentum().phi()); - - // keep only visible conversions - if ((*mcPho).isAConversion() == 0) - continue; - - nMCPho_++; - - h_MCConvEta_->Fill(fabs((*mcPho).fourMomentum().pseudoRapidity()) - 0.001); - - bool REJECTED; - - /// Loop over recontructed photons - //std::cout << " ConvertedPhotonAnalyzer Starting loop over photon candidates " << "\n"; - for (reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end(); - iPho++) { - REJECTED = false; - - // std::cout << " ConvertedPhotonAnalyzer Reco SC energy " << (*iPho).superCluster()->energy() << "\n"; - - float phiClu = (*iPho).superCluster()->phi(); - float etaClu = (*iPho).superCluster()->eta(); - float deltaPhi = phiClu - mcPhi; - float deltaEta = etaClu - mcEta; - - if (deltaPhi > Geom::pi()) - deltaPhi -= Geom::twoPi(); - if (deltaPhi < -Geom::pi()) - deltaPhi += Geom::twoPi(); - deltaPhi = pow(deltaPhi, 2); - deltaEta = pow(deltaEta, 2); - float delta = deltaPhi + deltaEta; - if (delta >= etaPhiDistance) - REJECTED = true; - - // if ( ! ( fabs(etaClu) <= BARL || ( fabs(etaClu) >= END_LO && fabs(etaClu) <=END_HI ) ) ) REJECTED=true; - - if (REJECTED) - continue; - std::cout << " MATCHED " << std::endl; - nMatched_++; - - // std::cout << " ConvertedPhotonAnalyzer Matching candidate " << std::endl; - - // std::cout << " ConvertedPhotonAnalyzer Photons isAconversion " << (*mcPho).isAConversion() << " mcMatchingPhoton energy " << (*mcPho).fourMomentum().e() << " ConvertedPhotonAnalyzer conversion vertex R " << (*mcPho).vertex().perp() << " Z " << (*mcPho).vertex().z() << std::endl; - - h_ErecoEMC_->Fill((*iPho).superCluster()->energy() / (*mcPho).fourMomentum().e()); - h_deltaPhi_->Fill((*iPho).superCluster()->position().phi() - mcPhi); - h_deltaEta_->Fill((*iPho).superCluster()->position().eta() - mcEta); - - h_scE_->Fill((*iPho).superCluster()->energy()); - h_scEt_->Fill((*iPho).superCluster()->energy() / cosh((*iPho).superCluster()->position().eta())); - h_scEta_->Fill((*iPho).superCluster()->position().eta()); - h_scPhi_->Fill((*iPho).superCluster()->position().phi()); - - h_phoE_->Fill((*iPho).energy()); - h_phoEta_->Fill((*iPho).eta()); - h_phoPhi_->Fill((*iPho).phi()); - - if (!(*iPho).hasConversionTracks()) - continue; - // std::cout << " This photons has " << (*iPho).conversions().size() << " conversions candidates " << std::endl; - reco::ConversionRefVector conversions = (*iPho).conversions(); - //std::vector conversions = (*iPho).conversions(); - - for (unsigned int i = 0; i < conversions.size(); i++) { - //std::cout << " Conversion candidate Energy " << (*iPho).energy() << " number of tracks " << conversions[i]->nTracks() << std::endl; - std::vector > tracks = conversions[i]->tracks(); - - for (unsigned int i = 0; i < tracks.size(); i++) { - // std::cout << " ConvertedPhotonAnalyzer Reco Track charge " << tracks[i]->charge() << " Num of RecHits " << tracks[i]->recHitsSize() << " inner momentum " << sqrt ( tracks[i]->innerMomentum().Mag2() ) << "\n"; - - h2_tk_nHitsVsR_->Fill((*mcPho).vertex().perp(), tracks[i]->recHitsSize()); - h2_tk_inPtVsR_->Fill((*mcPho).vertex().perp(), sqrt(tracks[i]->innerMomentum().Mag2())); - } - } - - } /// End loop over Reco particles - - } /// End loop over MC particles -} - -void PhotonsWithConversionsAnalyzer::endJob() { - // fOutputFile_->Write() ; - // fOutputFile_->Close() ; - - edm::LogInfo("ConvertedPhotonAnalyzer") << "Analyzed " << nEvt_ << "\n"; - // std::cout << "::endJob Analyzed " << nEvt_ << " events " << " with total " << nPho_ << " Photons " << "\n"; - std::cout << "ConvertedPhotonAnalyzer::endJob Analyzed " << nEvt_ << " events " - << "\n"; - - return; -} diff --git a/RecoEgamma/Examples/plugins/SiStripElectronAnalyzer.cc b/RecoEgamma/Examples/plugins/SiStripElectronAnalyzer.cc deleted file mode 100644 index fe683072c0e00..0000000000000 --- a/RecoEgamma/Examples/plugins/SiStripElectronAnalyzer.cc +++ /dev/null @@ -1,1342 +0,0 @@ -// -*- C++ -*- -// -// Package: RecoEgamma/Examples -// Class : SiStripElectronAnalyzer -// -// Implementation: -// -// -// Original Author: Jim Pivarski -// Created: Fri May 26 16:49:38 EDT 2006 -// - -#include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/DetId/interface/DetId.h" -#include "DataFormats/EgammaCandidates/interface/Electron.h" -#include "DataFormats/EgammaCandidates/interface/ElectronFwd.h" -#include "DataFormats/EgammaCandidates/interface/SiStripElectron.h" -#include "DataFormats/EgammaCandidates/interface/SiStripElectronFwd.h" -#include "DataFormats/EgammaReco/interface/BasicCluster.h" -#include "DataFormats/EgammaReco/interface/SuperCluster.h" -#include "DataFormats/GeometryVector/interface/GlobalPoint.h" -#include "DataFormats/Math/interface/Point3D.h" -#include "DataFormats/SiStripDetId/interface/StripSubdetector.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" -#include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2D.h" -#include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2DCollection.h" -#include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h" -#include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "Geometry/CommonDetUnit/interface/GeomDet.h" -#include "Geometry/CommonDetUnit/interface/GeomDetEnumerators.h" -#include "Geometry/CommonDetUnit/interface/GeomDetType.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" -#include "Geometry/Records/interface/TrackerTopologyRcd.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "RecoEcal/EgammaCoreTools/interface/PositionCalc.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" - -#include "TBranch.h" -#include "TFile.h" -#include "TH1F.h" -#include "TNtuple.h" -#include "TTree.h" - -#include -#include -#include - -#define myMaxHits 1000 - -class SiStripElectronAnalyzer : public edm::one::EDAnalyzer<> { -public: - explicit SiStripElectronAnalyzer(const edm::ParameterSet&); - ~SiStripElectronAnalyzer() override; - - void analyze(const edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - virtual void initNtuple(void); - void endJob(void) override; - -private: - double unwrapPhi(double phi) const { - while (phi > M_PI) { - phi -= 2. * M_PI; - } - while (phi < -M_PI) { - phi += 2. * M_PI; - } - return phi; - } - - // ----------member data --------------------------- - const edm::ESGetToken topoToken_; - const edm::ESGetToken trackerToken_; - - std::string fileName_; - - TFile* file_; - TH1F* numCand_; - TH1F* numElectrons_; - TH1F* numSuperClusters_; - TH1F* energySuperClusters_; - TH1F* sizeSuperClusters_; - TH1F* emaxSuperClusters_; - TH1F* phiWidthSuperClusters_; - - TH1F* energySuperClustersEl_; - TH1F* sizeSuperClustersEl_; - TH1F* emaxSuperClustersEl_; - TH1F* phiWidthSuperClustersEl_; - - TH1F* ptDiff; - TH1F* pDiff; - TH1F* pElectronFailed; - TH1F* ptElectronFailed; - TH1F* pElectronPassed; - TH1F* ptElectronPassed; - TH1F* sizeSuperClustersPassed; - TH1F* sizeSuperClustersFailed; - TH1F* energySuperClustersPassed; - TH1F* energySuperClustersFailed; - TH1F* eOverPFailed; - TH1F* eOverPPassed; - - TH1F* numSiStereoHits_; - TH1F* numSiMonoHits_; - TH1F* numSiMatchedHits_; - - TTree* myTree_; - - int NShowers_; - float EShower_[myMaxHits]; - float XShower_[myMaxHits]; - float YShower_[myMaxHits]; - float ZShower_[myMaxHits]; - - int NStereoHits_; - float StereoHitX_[myMaxHits]; - float StereoHitY_[myMaxHits]; - float StereoHitZ_[myMaxHits]; - - float StereoHitR_[myMaxHits]; - float StereoHitPhi_[myMaxHits]; - float StereoHitTheta_[myMaxHits]; - - // errors in local coords - float StereoHitSigX_[myMaxHits]; - float StereoHitSigY_[myMaxHits]; - float StereoHitCorr_[myMaxHits]; - - float StereoHitSignal_[myMaxHits]; - float StereoHitNoise_[myMaxHits]; - int StereoHitWidth_[myMaxHits]; - - int StereoDetector_[myMaxHits]; - int StereoLayer_[myMaxHits]; - - // mono corresponds to "rphi" only hits - int NMonoHits_; - float MonoHitX_[myMaxHits]; - float MonoHitY_[myMaxHits]; - float MonoHitZ_[myMaxHits]; - - float MonoHitR_[myMaxHits]; - float MonoHitPhi_[myMaxHits]; - float MonoHitTheta_[myMaxHits]; - - // errors in local coords - float MonoHitSigX_[myMaxHits]; - float MonoHitSigY_[myMaxHits]; - float MonoHitCorr_[myMaxHits]; - - float MonoHitSignal_[myMaxHits]; - float MonoHitNoise_[myMaxHits]; - int MonoHitWidth_[myMaxHits]; - - int MonoDetector_[myMaxHits]; - int MonoLayer_[myMaxHits]; - - // matched hits - int NMatchedHits_; - float MatchedHitX_[myMaxHits]; - float MatchedHitY_[myMaxHits]; - float MatchedHitZ_[myMaxHits]; - - float MatchedHitR_[myMaxHits]; - float MatchedHitPhi_[myMaxHits]; - float MatchedHitTheta_[myMaxHits]; - - // errors in local coords - float MatchedHitSigX_[myMaxHits]; - float MatchedHitSigY_[myMaxHits]; - float MatchedHitCorr_[myMaxHits]; - - float MatchedHitSignal_[myMaxHits]; - float MatchedHitNoise_[myMaxHits]; - int MatchedHitWidth_[myMaxHits]; - - int MatchedDetector_[myMaxHits]; - int MatchedLayer_[myMaxHits]; - - std::string mctruthProducer_; - std::string mctruthCollection_; - std::string superClusterProducer_; - std::string superClusterCollection_; - std::string basicClusterProducer_; - std::string basicClusterCollection_; - std::string eBRecHitProducer_; - std::string eBRecHitCollection_; - std::string siElectronProducer_; - std::string siElectronCollection_; - std::string electronProducer_; - std::string electronCollection_; - std::string siHitProducer_; - std::string siRphiHitCollection_; - std::string siStereoHitCollection_; - std::string siMatchedHitCollection_; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(SiStripElectronAnalyzer); - -SiStripElectronAnalyzer::SiStripElectronAnalyzer(const edm::ParameterSet& iConfig) - : topoToken_(esConsumes()), trackerToken_(esConsumes()) { - //now do what ever initialization is needed - fileName_ = iConfig.getParameter("fileName"); - - file_ = new TFile(fileName_.c_str(), "RECREATE"); - numCand_ = new TH1F("numCandidates", "Number of candidates found", 10, -0.5, 9.5); - numElectrons_ = new TH1F("numElectrons", "Number of Electrons found", 10, -0.5, 9.5); - numSuperClusters_ = new TH1F("numSuperClusters", "Number of Ecal SuperClusters", 50, 0, 50); - - energySuperClusters_ = new TH1F("energySuperClusters", "Super Cluster Energy - all ", 200, 0, 2000.); - energySuperClustersEl_ = new TH1F("energySuperClustersEl", "Super Cluster Energy - Electron Cands ", 200, 0., 2000.); - - sizeSuperClusters_ = new TH1F("sizeSuperClusters", "Super Cluster Size - all ", 20, 0, 19); - sizeSuperClustersEl_ = new TH1F("sizeSuperClustersEl", "Super Cluster Size - Electron Cands ", 20, 0, 19); - - emaxSuperClusters_ = new TH1F("emaxSuperClusters", "Super Cluster Emax - all ", 200, 0, 2000.); - emaxSuperClustersEl_ = new TH1F("emaxSuperClustersEl", "Super Cluster Emax - Electron Cands ", 200, 0, 2000.); - - phiWidthSuperClusters_ = new TH1F("phiWidthSuperClusters", "Super Cluster Width - all ", 20, 0., 0.05); - phiWidthSuperClustersEl_ = new TH1F("phiWidthSuperClustersEl", "Super Cluster Width - Electron Cands ", 20, 0., 0.05); - - ptDiff = new TH1F("ptDiff", " ptDiff ", 20, -10., 10.); - pDiff = new TH1F("pDiff", " pDiff ", 100, -50., 50.); - - pElectronFailed = new TH1F("pElectronFailed", " pElectronFailed ", 55, 0., 110.); - ptElectronFailed = new TH1F("ptElectronFailed", " ptElectronFailed ", 55, 0., 110.); - - pElectronPassed = new TH1F("pElectronPassed", " pElectronPassed ", 55, 0., 110.); - ptElectronPassed = new TH1F("ptElectronPassed", " ptElectronPassed ", 55, 0., 110.); - - sizeSuperClustersFailed = new TH1F("sizeSuperClustersFailed", "Super Cluster Size - Failed ", 20, 0, 19); - sizeSuperClustersPassed = new TH1F("sizeSuperClustersPassed", "Super Cluster Size - Passed ", 20, 0, 19); - - energySuperClustersPassed = new TH1F("energySuperClustersPassed", "Super Cluster Energy - Passed ", 125, 0, 250.); - energySuperClustersFailed = new TH1F("energySuperClustersFailed", "Super Cluster Energy - Failed ", 125, 0, 250.); - - eOverPFailed = new TH1F("eOverPFailed", " E over P - Failed ", 50, 0, 10.); - eOverPPassed = new TH1F("eOverPPassed", " E over P - Passed ", 50, 0, 10.); - - numSiStereoHits_ = new TH1F("numSiStereoHits", "Number of Si StereoHits", 100, 0, 1000); - numSiMonoHits_ = new TH1F("numSiMonoHits", "Number of Si MonoHits", 100, 0, 1000); - numSiMatchedHits_ = new TH1F("numSiMatchedHits", "Number of Si MatchedHits", 100, 0, 1000); - - ///////////////////////////////////////////////////// - - mctruthProducer_ = iConfig.getParameter("mctruthProducer"); - mctruthCollection_ = iConfig.getParameter("mctruthCollection"); - - superClusterProducer_ = iConfig.getParameter("superClusterProducer"); - superClusterCollection_ = iConfig.getParameter("superClusterCollection"); - - eBRecHitProducer_ = iConfig.getParameter("recHitProducer"); - eBRecHitCollection_ = iConfig.getParameter("recHitCollection"); - - siElectronProducer_ = iConfig.getParameter("siElectronProducer"); - siElectronCollection_ = iConfig.getParameter("siElectronCollection"); - - electronProducer_ = iConfig.getParameter("electronProducer"); - electronCollection_ = iConfig.getParameter("electronCollection"); - - siHitProducer_ = iConfig.getParameter("siHitProducer"); - siRphiHitCollection_ = iConfig.getParameter("siRphiHitCollection"); - siStereoHitCollection_ = iConfig.getParameter("siStereoHitCollection"); - siMatchedHitCollection_ = iConfig.getParameter("siMatchedHitCollection"); -} - -// SiStripElectronAnalyzer::SiStripElectronAnalyzer(const SiStripElectronAnalyzer& rhs) -// { -// // do actual copying here; -// } - -SiStripElectronAnalyzer::~SiStripElectronAnalyzer() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) - - file_->Write(); - file_->Close(); -} - -// -// assignment operators -// -// const SiStripElectronAnalyzer& SiStripElectronAnalyzer::operator=(const SiStripElectronAnalyzer& rhs) -// { -// //An exception safe implementation is -// SiStripElectronAnalyzer temp(rhs); -// swap(rhs); -// -// return *this; -// } - -// -// member functions -// -// init for TTree -void SiStripElectronAnalyzer::beginJob() { - myTree_ = new TTree("myTree", "my first Tree example"); - - myTree_->Branch("NShowers", &NShowers_, "NShowers/I"); - - // first specify the ECAL clusters - // need to explicitly include array length. - myTree_->Branch("EShower", &EShower_, "EShower[1000]/F"); - myTree_->Branch("XShower", &XShower_, "XShower[1000]/F"); - myTree_->Branch("YShower", &YShower_, "YShower[1000]/F"); - myTree_->Branch("ZShower", &ZShower_, "ZShower[1000]/F"); - - // second specify the Si Stereo Hits - myTree_->Branch("NStereoHits", &NStereoHits_, "NStereoHits/I"); - myTree_->Branch("StereoHitX", &StereoHitX_, "StereoHitX[1000]/F"); - myTree_->Branch("StereoHitY", &StereoHitY_, "StereoHitY[1000]/F"); - myTree_->Branch("StereoHitZ", &StereoHitZ_, "StereoHitZ[1000]/F"); - - myTree_->Branch("StereoHitR", &StereoHitR_, "StereoHitR[1000]/F"); - myTree_->Branch("StereoHitPhi", &StereoHitPhi_, "StereoHitPhi[1000]/F"); - myTree_->Branch("StereoHitTheta", &StereoHitTheta_, "StereoHitTheta[1000]/F"); - - myTree_->Branch("StereoHitSigX", &StereoHitSigX_, "StereoHitSigX[1000]/F"); - myTree_->Branch("StereoHitSigY", &StereoHitSigY_, "StereoHitSigY[1000]/F"); - myTree_->Branch("StereoHitCorr", &StereoHitCorr_, "StereoHitCorr[1000]/F"); - - myTree_->Branch("StereoHitSignal", &StereoHitSignal_, "StereoHitSignal[1000]/F"); - myTree_->Branch("StereoHitNoise", &StereoHitNoise_, "StereoHitNoise[1000]/F"); - myTree_->Branch("StereoHitWidth", &StereoHitWidth_, "StereoHitWidth[1000]/I"); - - myTree_->Branch("StereoDetector", &StereoDetector_, "StereoDetector[1000]/I"); - myTree_->Branch("StereoLayer", &StereoLayer_, "StereoLayer[1000]/I"); - - // specify the Si mono (rphi) hits - myTree_->Branch("NMonoHits", &NMonoHits_, "NMonoHits/I"); - myTree_->Branch("MonoHitX", &MonoHitX_, "MonoHitX[1000]/F"); - myTree_->Branch("MonoHitY", &MonoHitY_, "MonoHitY[1000]/F"); - myTree_->Branch("MonoHitZ", &MonoHitZ_, "MonoHitZ[1000]/F"); - - myTree_->Branch("MonoHitR", &MonoHitR_, "MonoHitR[1000]/F"); - myTree_->Branch("MonoHitPhi", &MonoHitPhi_, "MonoHitPhi[1000]/F"); - myTree_->Branch("MonoHitTheta", &MonoHitTheta_, "MonoHitTheta[1000]/F"); - - myTree_->Branch("MonoHitSigX", &MonoHitSigX_, "MonoHitSigX[1000]/F"); - myTree_->Branch("MonoHitSigY", &MonoHitSigY_, "MonoHitSigY[1000]/F"); - myTree_->Branch("MonoHitCorr", &MonoHitCorr_, "MonoHitCorr[1000]/F"); - - myTree_->Branch("MonoHitSignal", &MonoHitSignal_, "MonoHitSignal[1000]/F"); - myTree_->Branch("MonoHitNoise", &MonoHitNoise_, "MonoHitNoise[1000]/F"); - myTree_->Branch("MonoHitWidth", &MonoHitWidth_, "MonoHitWidth[1000]/I"); - - myTree_->Branch("MonoDetector", &MonoDetector_, "MonoDetector[1000]/I"); - myTree_->Branch("MonoLayer", &MonoLayer_, "MonoLayer[1000]/I"); - - // specify the Si matched (rphi) hits - myTree_->Branch("NMatchedHits", &NMatchedHits_, "NMatchedHits/I"); - myTree_->Branch("MatchedHitX", &MatchedHitX_, "MatchedHitX[1000]/F"); - myTree_->Branch("MatchedHitY", &MatchedHitY_, "MatchedHitY[1000]/F"); - myTree_->Branch("MatchedHitZ", &MatchedHitZ_, "MatchedHitZ[1000]/F"); - - myTree_->Branch("MatchedHitR", &MatchedHitR_, "MatchedHitR[1000]/F"); - myTree_->Branch("MatchedHitPhi", &MatchedHitPhi_, "MatchedHitPhi[1000]/F"); - myTree_->Branch("MatchedHitTheta", &MatchedHitTheta_, "MatchedHitTheta[1000]/F"); - - myTree_->Branch("MatchedHitSigX", &MatchedHitSigX_, "MatchedHitSigX[1000]/F"); - myTree_->Branch("MatchedHitSigY", &MatchedHitSigY_, "MatchedHitSigY[1000]/F"); - myTree_->Branch("MatchedHitCorr", &MatchedHitCorr_, "MatchedHitCorr[1000]/F"); - - myTree_->Branch("MatchedHitSignal", &MatchedHitSignal_, "MatchedHitSignal[1000]/F"); - myTree_->Branch("MatchedHitNoise", &MatchedHitNoise_, "MatchedHitNoise[1000]/F"); - myTree_->Branch("MatchedHitWidth", &MatchedHitWidth_, "MatchedHitWidth[1000]/I"); - - myTree_->Branch("MatchedDetector", &MatchedDetector_, "MatchedDetector[1000]/I"); - myTree_->Branch("MatchedLayer", &MatchedLayer_, "MatchedLayer[1000]/I"); -} - -void SiStripElectronAnalyzer::initNtuple() { - LogDebug("") << " In initNtuple "; - - NShowers_ = -999; - for (int init = 0; init < myMaxHits; ++init) { - EShower_[init] = -999.; - XShower_[init] = -999.; - YShower_[init] = -999.; - ZShower_[init] = -999.; - } - NStereoHits_ = -999; - - for (int init = 0; init < myMaxHits; ++init) { - StereoHitX_[init] = -999.; - StereoHitY_[init] = -999.; - StereoHitZ_[init] = -999.; - StereoHitR_[init] = -999.; - StereoHitPhi_[init] = -999.; - StereoHitTheta_[init] = -999.; - - StereoHitSignal_[init] = -999.; - StereoHitNoise_[init] = -999.; - StereoHitWidth_[init] = -999; - ; - } - - NMonoHits_ = -999; - for (int init = 0; init < myMaxHits; ++init) { - MonoHitX_[init] = -999.; - MonoHitY_[init] = -999.; - MonoHitZ_[init] = -999.; - MonoHitR_[init] = -999.; - MonoHitPhi_[init] = -999.; - MonoHitTheta_[init] = -999.; - - MonoHitSignal_[init] = -999.; - MonoHitNoise_[init] = -999.; - MonoHitWidth_[init] = -999; - ; - } - - NMatchedHits_ = -999; - for (int init = 0; init < myMaxHits; ++init) { - MatchedHitX_[init] = -999.; - MatchedHitY_[init] = -999.; - MatchedHitZ_[init] = -999.; - MatchedHitR_[init] = -999.; - MatchedHitPhi_[init] = -999.; - MatchedHitTheta_[init] = -999.; - - MatchedHitSignal_[init] = -999.; - MatchedHitNoise_[init] = -999.; - MatchedHitWidth_[init] = -999; - ; - } -} - -// ------------ method called to produce the data ------------ -void SiStripElectronAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { - //Retrieve tracker topology from geometry - edm::ESHandle tTopo = iSetup.getHandle(topoToken_); - - using namespace std; // so you can say "cout" and "endl" - - initNtuple(); - - // http://cmsdoc.cern.ch/swdev/lxr/CMSSW/source/clhep/CLHEP/HepMC/GenParticle.h - // http://cmsdoc.cern.ch/swdev/lxr/CMSSW/source/clhep/CLHEP/HepMC/GenVertex.h - // removed by JED - causes trouble in release post 0_9_0 - // edm::Handle mctruthHandle; - // iEvent.getByLabel(mctruthProducer_, mctruthCollection_, mctruthHandle); - // HepMC::GenEvent mctruth = mctruthHandle->getHepMCData(); - - // for (HepMC::GenEvent::particle_const_iterator partIter = mctruth.particles_begin(); - // partIter != mctruth.particles_end(); - // ++partIter) { - // // for (HepMC::GenEvent::vertex_const_iterator vertIter = mctruth.vertices_begin(); - // // vertIter != mctruth.vertices_end(); - // // ++vertIter) { - // CLHEP::HepLorentzVector creation = (*partIter)->CreationVertex(); - // CLHEP::HepLorentzVector momentum = (*partIter)->Momentum(); - // HepPDT::ParticleID id = (*partIter)->particleID(); // electrons and positrons are 11 and -11 - // edm::LogInfo("") << "MC particle id " << id.pid() << ", creationVertex " << creation << " cm, initialMomentum " << momentum << " GeV/c" << endl; - // } - - // load the rechits for the Ecal - edm::Handle pRecHits; - iEvent.getByLabel(eBRecHitProducer_, eBRecHitCollection_, pRecHits); - // Create a pointer to the RecHits - unused for now - // const EcalRecHitCollection *hitCollection = pRecHits.product(); - - // http://cmsdoc.cern.ch/swdev/lxr/CMSSW/source/self/DataFormats/EgammaReco/interface/SuperCluster.h - edm::Handle clusterHandle; - iEvent.getByLabel(superClusterProducer_, superClusterCollection_, clusterHandle); - - /////////////////////////////////////////////////////////////////////////////// - ///////////////// Loop over all superClusters //////////////////////////////// - - LogDebug("") << " Start loop over " << clusterHandle->end() - clusterHandle->begin() << " superClusters "; - - for (reco::SuperClusterCollection::const_iterator clusterIter = clusterHandle->begin(); - clusterIter != clusterHandle->end(); - ++clusterIter) { - double energy = clusterIter->energy(); - math::XYZPoint position = clusterIter->position(); - std::ostringstream str; - - str << " SuperCluster " << energy << " GeV, position " << position << " cm" - << "\n"; - - energySuperClusters_->Fill(energy); - sizeSuperClusters_->Fill(clusterIter->clustersSize()); - // this only makes sense for hybrid superclusters - - // try to point to the constituent clusters for this SuperCluster - - str << "About to loop over basicClusters" - << "\n"; - - double emaxSuperCluster = 0.; - double phibar = 0.; - double phi2bar = 0.; - double eTotSuperCluster = 0.; - - for (reco::CaloCluster_iterator basicClusterIter = clusterIter->clustersBegin(); - basicClusterIter != clusterIter->clustersEnd(); - ++basicClusterIter) { - //std::vector theIds= (*basicClusterIter)->getHitsByDetId(); - - str << " basicCluster Energy " << (*basicClusterIter)->energy() << " Position " << (*basicClusterIter)->position() - << " \n" - << " Position phi " << (*basicClusterIter)->position().phi() << " recHits " - << (*basicClusterIter)->size() << " \n"; - - double eCluster = (*basicClusterIter)->energy(); - if (eCluster > emaxSuperCluster) { - emaxSuperCluster = eCluster; - } - eTotSuperCluster += eCluster; - double phiCluster = (*basicClusterIter)->position().phi(); - phibar += eCluster * phiCluster; - phi2bar += eCluster * phiCluster * phiCluster; - - } // end of basicClusterIter loop - - phibar = phibar / eTotSuperCluster; - phi2bar = phi2bar / eTotSuperCluster; - double phiWidth = phi2bar - phibar * phibar; - if (phiWidth > 0.) { - phiWidth = std::pow(phiWidth, 0.5); - } else { - phiWidth = 0.; - } - str << " SuperCluster stats " - << "\n"; - str << "phibar " << phibar << " phi2bar " << phi2bar << " eTotSuperCluster " << eTotSuperCluster << " phiWidth " - << phiWidth << std::endl; - - phiWidthSuperClusters_->Fill(phiWidth); - - emaxSuperClusters_->Fill(emaxSuperCluster); - - str << " Done with this SuperCluster " << std::endl; - - LogDebug("") << str.str(); - - } // end of loop over superClusters - - LogDebug("") << " End loop over superClusters "; - - /////////////////////// End of Loop over all superClusters /////////////// - ////////////////////////////////////////////////////////////////////////// - - ///////////////////////////////////////////// - // - // loop over all EcalRecHits and print out their x,y,z,E - // edm::LogInfo("") << " Dumping all recHits in this event " << endl ; - // for(EcalRecHitCollection::const_iterator _blah = hitCollection->begin(); - // _blah != hitCollection->end() ; ++_blah ) { - // edm::LogInfo("") << "Ecal RecHit Energy: " << _blah->energy() << endl ; - // // " Position " << _blah.position() << endl ; - // } - // - // edm::LogInfo("") << "Dump finished " << endl ; - // - ////////////////////////////////////////////// - - // DataFormats/EgammaCandidates/src/SiStripElectron.cc - edm::Handle siStripElectronHandle; - iEvent.getByLabel(siElectronProducer_, siElectronCollection_, siStripElectronHandle); - - ///////////////////////////////////////////////////////////////////////////// - - LogDebug("") << " Dumping Algo's guess of SiStripElectron Candidate Info "; - int numberOfElectrons = 0; - // need to check if fit succeeded - LogDebug("") << " Number of SiStripElectrons " << siStripElectronHandle->size(); - - for (reco::SiStripElectronCollection::const_iterator electronIter = siStripElectronHandle->begin(); - electronIter != siStripElectronHandle->end(); - ++electronIter) { - LogDebug("") << "about to get stuff from electroncandidate " << numberOfElectrons << "\n" - << "supercluster energy = " << electronIter->superCluster()->energy() << "\n" - << "fit results are phi(r) = " << electronIter->phiAtOrigin() << " + " << electronIter->phiVsRSlope() - << "*r" - << "\n" - << " chi2 " << electronIter->chi2() << " ndof " << electronIter->ndof() << "\n" - << " Pt " << electronIter->pt() << "\n" - << "P, Px, Py, Pz " << electronIter->p() << " " << electronIter->px() << " " << electronIter->py() - << " " << electronIter->pz() << "\n" - << "you get the idea..."; - - // make plots for supercluster that an electron has been associ w/. here - energySuperClustersEl_->Fill(electronIter->superCluster()->energy()); - sizeSuperClustersEl_->Fill(electronIter->superCluster()->clustersSize()); - - // loop over basicClusters to get energy - double emaxSuperCluster = 0.; - double phibar = 0.; - double phi2bar = 0.; - double eTotSuperCluster = 0.; - - for (reco::CaloCluster_iterator basicClusterIter = electronIter->superCluster()->clustersBegin(); - basicClusterIter != electronIter->superCluster()->clustersEnd(); - ++basicClusterIter) { - //std::vector theIds= (*basicClusterIter)->getHitsByDetId(); - - double eCluster = (*basicClusterIter)->energy(); - if (eCluster > emaxSuperCluster) { - emaxSuperCluster = eCluster; - } - eTotSuperCluster += eCluster; - double phiCluster = (*basicClusterIter)->position().phi(); - phibar += eCluster * phiCluster; - phi2bar += eCluster * phiCluster * phiCluster; - } - - phibar = phibar / eTotSuperCluster; - phi2bar = phi2bar / eTotSuperCluster; - double phiWidth = phi2bar - phibar * phibar; - if (phiWidth > 0.) { - phiWidth = std::pow(phiWidth, 0.5); - } else { - phiWidth = 0.; - } - - phiWidthSuperClustersEl_->Fill(phiWidth); - - emaxSuperClustersEl_->Fill(emaxSuperCluster); - - numberOfElectrons++; - } - - numCand_->Fill(siStripElectronHandle->size()); - - /////////////////////////////////////////////////////////////////////////// - - // Now loop over the electrons (ie the fitted things.) - - LogDebug("") << " About to check Electrons"; - - edm::Handle electrons; - iEvent.getByLabel(electronProducer_, electronCollection_, electrons); - - numElectrons_->Fill(electrons->end() - electrons->begin()); - - // set up vector of bool for SiStrips having or not having Electrons - // this causes a warning because of variable array size at compilation time ; - // BAD bool hasElectron_[siStripElectronHandle->end()- siStripElectronHandle->begin()] ; - bool* hasElectron_ = new bool[siStripElectronHandle->end() - siStripElectronHandle->begin()]; - for (int icount = 0; icount < siStripElectronHandle->end() - siStripElectronHandle->begin(); ++icount) { - hasElectron_[icount] = false; - } - - // also set up a counter to associate the ith electron to the jth strippy - // Electron_to_strippy[i] = j: i-th Electron is j-th strippy - // BAD unsigned int Electron_to_strippy[electrons->end()- electrons->begin()]; - unsigned int* Electron_to_strippy = new unsigned int[electrons->end() - electrons->begin()]; - for (int icount = 0; icount < electrons->end() - electrons->begin(); ++icount) { - Electron_to_strippy[icount] = 0; - } - - unsigned int ecount = 0; - for (reco::ElectronCollection::const_iterator electronIter = electrons->begin(); electronIter != electrons->end(); - ++electronIter) { - LogDebug("") << " Associating Electrons to Strippies "; - LogDebug("") << " PT is " << electronIter->track()->pt(); - - reco::TrackRef tr = (*electronIter).track(); - uint32_t id = (*electronIter->track()->recHitsBegin())->geographicalId().rawId(); - LocalPoint pos = (*electronIter->track()->recHitsBegin())->localPosition(); - - unsigned int icount = 0; - LogDebug("") << " About to loop over Strippies " - << " \n " - << " icount " << icount << " max " << siStripElectronHandle->end() - siStripElectronHandle->begin(); - - for (reco::SiStripElectronCollection::const_iterator strippyiter = siStripElectronHandle->begin(); - strippyiter != siStripElectronHandle->end(); - ++strippyiter) { - bool hitInCommon = false; - // loop over rphi hits - for (std::vector::const_iterator hiter = strippyiter->rphiRecHits().begin(); - hiter != strippyiter->rphiRecHits().end(); - ++hiter) { - if (hiter->geographicalId().rawId() == id && (hiter->localPosition() - pos).mag() < 1e-10) { - hitInCommon = true; - break; - } - } - - for (std::vector::const_iterator hiter = strippyiter->stereoRecHits().begin(); - hiter != strippyiter->stereoRecHits().end(); - ++hiter) { - if (hiter->geographicalId().rawId() == id && (hiter->localPosition() - pos).mag() < 1e-10) { - hitInCommon = true; - break; - } - } - if (hitInCommon) { //this Electron belongs to this SiStripElectron. - hasElectron_[icount] = true; - Electron_to_strippy[ecount] = icount; - ptDiff->Fill(std::abs(electronIter->track()->pt()) - std::abs(strippyiter->pt())); - pDiff->Fill(std::abs(electronIter->track()->p()) - std::abs(strippyiter->p())); - } - icount++; - } // Sistrip loop - ecount++; - } // Electrons - - LogDebug("") << " Done looping over Electrons "; - - unsigned int counter = 0; - for (reco::SiStripElectronCollection::const_iterator strippyIter = siStripElectronHandle->begin(); - strippyIter != siStripElectronHandle->end(); - ++strippyIter) { - bool skipThis = !hasElectron_[counter]; - if (skipThis) { - // plot stuff for SIStripElectrons that don't have fits associated - - LogDebug("") << " SiStrip Failed Electron " - << " \n " - << " p " << strippyIter->p() << " \n " - << " pt " << strippyIter->pt() << " \n " - << " SuperClust size " << strippyIter->superCluster()->clustersSize(); - - pElectronFailed->Fill(std::abs(strippyIter->p())); - ptElectronFailed->Fill(std::abs(strippyIter->pt())); - sizeSuperClustersFailed->Fill(strippyIter->superCluster()->clustersSize()); - LogDebug("") << " done filling Failed histos "; - // energySuperClustersFailed->Fill(strippyIter->superCluster()->energy()); - // if(strippyIter->p()>0.) { - // eOverPFailed->Fill(strippyIter->superCluster()->energy()/strippyIter->p()); - // }else { - // eOverPFailed->Fill(-1.0); - // } - - } else { - LogDebug("") << " SiStrip Passed Electron " - << " \n " - << " p " << strippyIter->p() << " \n " - << " pt " << strippyIter->pt() << " \n " - << " SuperClust size " << strippyIter->superCluster()->clustersSize(); - pElectronPassed->Fill(std::abs(strippyIter->p())); - ptElectronPassed->Fill(std::abs(strippyIter->pt())); - sizeSuperClustersPassed->Fill(strippyIter->superCluster()->clustersSize()); - LogDebug("") << " done filling passed histos "; - // energySuperClustersPassed->Fill(strippyIter->superCluster()->energy()); - // if(strippyIter->p()>0.) { - // eOverPPassed->Fill(strippyIter->superCluster()->energy()/strippyIter->p()); - // }else { - // eOverPPassed->Fill(-1.0); - // } - - } // skipThis - counter++; - } - - LogDebug("") << "Dump info for all electrons "; - - for (reco::ElectronCollection::const_iterator electronIter1 = electrons->begin(); electronIter1 != electrons->end(); - ++electronIter1) { - reco::TrackRef tr1 = (*electronIter1).track(); - // let's find its associated SiStripElectron and SuperCluster - unsigned int ecount1 = electronIter1 - electrons->begin(); - unsigned int stripCount1 = 0; - reco::SiStripElectronCollection::const_iterator strippyIter1; - for (reco::SiStripElectronCollection::const_iterator strippyIter = siStripElectronHandle->begin(); - strippyIter != siStripElectronHandle->end(); - ++strippyIter) { - if (Electron_to_strippy[ecount1] == stripCount1) { - strippyIter1 = strippyIter; - break; - } - stripCount1++; - } // strippy loop - ecount1++; - - std::ostringstream str; - - str << " SiStripElect p , px, py, pz " << strippyIter1->p() << " " << strippyIter1->px() << " " - << strippyIter1->py() << " " << strippyIter1->pz() << "\n " << std::endl; - - str << " Electron p px, py, pz, = " << tr1->p() << " " << tr1->px() << " " << tr1->py() << " " << tr1->pz() - << "\n" - << std::endl; - - double EClust1 = strippyIter1->superCluster()->energy(); - double XClust1 = strippyIter1->superCluster()->x(); - double YClust1 = strippyIter1->superCluster()->y(); - double ZClust1 = strippyIter1->superCluster()->z(); - - double rho1 = sqrt(XClust1 * XClust1 + YClust1 * YClust1 + ZClust1 * ZClust1); - double costheta1 = ZClust1 / rho1; - double sintheta1 = sqrt(1 - costheta1 * costheta1); - if (ZClust1 < 0) { - sintheta1 = -sintheta1; - } - double cosphi1 = XClust1 / sqrt(XClust1 * XClust1 + YClust1 * YClust1); - double sinphi1 = YClust1 / sqrt(XClust1 * XClust1 + YClust1 * YClust1); - - str << " Ecal for electron E, px, py, pz " << EClust1 << " " << EClust1 * sintheta1 * cosphi1 << " " - << EClust1 * sintheta1 * sinphi1 << " " << EClust1 * costheta1 << "\n" - << std::endl; - - LogDebug("") << str.str(); - - } // loop over electrons - LogDebug("") << "Done Dumping info for all electrons "; - - /////////////////////////////////////////////////////// - // LogDebug("")<< " Checking Electrons" ; - // LogDebug("")<< " PT is " << electronIter->track()->pt() ; - // reco::TrackRef tr =(*electronIter).track(); - /// For events w/ more than 1 electron candidate, try to plot m(e,e) - if (electrons->end() - electrons->begin() > 1) { - edm::LogInfo("") << " Two electrons in this event " << std::endl; - for (reco::ElectronCollection::const_iterator electronIter1 = electrons->begin(); - electronIter1 != electrons->end() - 1; - ++electronIter1) { - reco::TrackRef tr1 = (*electronIter1).track(); - - // let's find its associated SiStripElectron and SuperCluster - // use the Electron_to_strippy[] array - unsigned int ecount1 = electronIter1 - electrons->begin(); - // loop over strippies to find the corresponding one - unsigned int stripCount1 = 0; - reco::SiStripElectronCollection::const_iterator strippyIter1; - for (reco::SiStripElectronCollection::const_iterator strippyIter = siStripElectronHandle->begin(); - strippyIter != siStripElectronHandle->end(); - ++strippyIter) { - if (Electron_to_strippy[ecount1] == stripCount1) { - strippyIter1 = strippyIter; - break; - } - stripCount1++; - } // strippy loop - - double EClust1 = strippyIter1->superCluster()->energy(); - double XClust1 = strippyIter1->superCluster()->x(); - double YClust1 = strippyIter1->superCluster()->y(); - double ZClust1 = strippyIter1->superCluster()->z(); - - for (reco::ElectronCollection::const_iterator electronIter2 = electronIter1 + 1; - electronIter2 != electrons->end(); - ++electronIter2) { - reco::TrackRef tr2 = (*electronIter2).track(); - - unsigned int ecount2 = electronIter2 - electrons->begin(); - unsigned int stripCount2 = 0; - reco::SiStripElectronCollection::const_iterator strippyIter2; - for (reco::SiStripElectronCollection::const_iterator strippyIter = siStripElectronHandle->begin(); - strippyIter != siStripElectronHandle->end(); - ++strippyIter) { - if (Electron_to_strippy[ecount2] == stripCount2) { - strippyIter2 = strippyIter; - break; - } - stripCount2++; - } // strippy loop - - double EClust2 = strippyIter2->superCluster()->energy(); - double XClust2 = strippyIter2->superCluster()->x(); - double YClust2 = strippyIter2->superCluster()->y(); - double ZClust2 = strippyIter2->superCluster()->z(); - - // now get supercluster from this: - - edm::LogInfo("") << " Electron p1 = " << tr1->p() << " p1x " << tr1->px() << " p1y " << tr1->py() << " p1z " - << tr1->pz() << std::endl; - - edm::LogInfo("") << " Electron p2 = " << tr2->p() << " p2x " << tr2->px() << " p2y " << tr2->py() << " p2z " - << tr2->pz() << std::endl; - - // combine the two in an (e,e) pair - double Zpx = tr1->px() + tr2->px(); - double Zpy = tr1->py() + tr2->py(); - double Zpz = tr1->pz() + tr2->pz(); - double Ze = std::abs(tr1->p()) + std::abs(tr2->p()); - edm::LogInfo("") << " Z mass " << sqrt(Ze * Ze - Zpx * Zpx - Zpy * Zpy - Zpz * Zpz) << std::endl; - - // combine the SuperClusts into a Z - double rho1 = sqrt(XClust1 * XClust1 + YClust1 * YClust1 + ZClust1 * ZClust1); - double costheta1 = ZClust1 / rho1; - double sintheta1 = sqrt(1 - costheta1 * costheta1); - if (ZClust1 < 0) { - sintheta1 = -sintheta1; - } - double cosphi1 = XClust1 / sqrt(XClust1 * XClust1 + YClust1 * YClust1); - double sinphi1 = YClust1 / sqrt(XClust1 * XClust1 + YClust1 * YClust1); - - double rho2 = sqrt(XClust2 * XClust2 + YClust2 * YClust2 + ZClust2 * ZClust2); - double costheta2 = ZClust2 / rho2; - double sintheta2 = sqrt(1 - costheta2 * costheta2); - if (ZClust2 < 0) { - sintheta2 = -sintheta2; - } - double cosphi2 = XClust2 / sqrt(XClust2 * XClust2 + YClust2 * YClust2); - double sinphi2 = YClust2 / sqrt(XClust2 * XClust2 + YClust2 * YClust2); - - edm::LogInfo("") << "Energy of supercluster for 1st electron " << EClust1 << " " - << EClust1 * sintheta1 * cosphi1 << " " << EClust1 * sintheta1 * sinphi1 << " " - << EClust1 * costheta1 << " " << std::endl; - - edm::LogInfo("") << "Energy of supercluster for 2nd electron " << EClust2 << " " - << EClust2 * sintheta2 * cosphi2 << " " << EClust2 * sintheta2 * sinphi2 << " " - << EClust2 * costheta2 << " " << std::endl; - - // get the supercluster pair - double Zgpx = EClust1 * sintheta1 * cosphi1 + EClust2 * sintheta2 * cosphi2; - double Zgpy = EClust1 * sintheta1 * sinphi1 + EClust2 * sintheta2 * sinphi2; - double Zgpz = EClust1 * costheta1 + EClust2 * costheta2; - double ZgE = EClust1 + EClust2; - - edm::LogInfo("") << " Z mass from ECAL " << sqrt(ZgE * ZgE - Zgpx * Zgpx - Zgpy * Zgpy - Zgpz * Zgpz) - << std::endl; - - } //inner loop - } // outer loop - } // m(ee) loop - - delete[] hasElectron_; - delete[] Electron_to_strippy; - - /// - /////////////////////////////////////////////////////////////////////////////////// - ///////////////////// Now for tracker hits: /////////////////////////////////////// - LogDebug("") << " About to dump tracker info "; - - edm::ESHandle trackerHandle = iSetup.getHandle(trackerToken_); - - edm::Handle rphiHitsHandle; - iEvent.getByLabel(siHitProducer_, siRphiHitCollection_, rphiHitsHandle); - - edm::Handle stereoHitsHandle; - iEvent.getByLabel(siHitProducer_, siStereoHitCollection_, stereoHitsHandle); - - edm::Handle matchedHitsHandle; - iEvent.getByLabel(siHitProducer_, siMatchedHitCollection_, matchedHitsHandle); - - /// loop again to get all info into myTree - - ////// get cluster - NShowers_ = 0; - for (reco::SuperClusterCollection::const_iterator clusterIter = clusterHandle->begin(); - clusterIter != clusterHandle->end(); - ++clusterIter) { - double energy = clusterIter->energy(); - math::XYZPoint position = clusterIter->position(); - if (NShowers_ < myMaxHits) { - EShower_[NShowers_] = energy; - XShower_[NShowers_] = position.x(); - YShower_[NShowers_] = position.y(); - ZShower_[NShowers_] = position.z(); - ++NShowers_; - } - // Loop over all crystals in this supercluster - see - // RecoEcal/EgamaClusterProducers/src/EgammaSimpleAnalyzer.cc - // Look also at DataFormats/EgammaReco/interface/SuperCluster.h - } - numSuperClusters_->Fill(NShowers_); - ///////////////////////////////////////////////////////////////////// - - LogDebug("") << " Looping over stereo hits "; - - /////// Loop over Stereo Hits - int myHits = 0; - for (SiStripRecHit2DCollection::DataContainer::const_iterator hit = stereoHitsHandle->data().begin(), - hitend = stereoHitsHandle->data().end(); - hit != hitend; - ++hit) { - DetId id(hit->geographicalId()); - if ((hit->geographicalId()).subdetId() == StripSubdetector::TIB || - (hit->geographicalId()).subdetId() == StripSubdetector::TOB) { - GlobalPoint position = trackerHandle->idToDet(hit->geographicalId())->surface().toGlobal(hit->localPosition()); - //from RecoLocalTracker/SiStripClusterizer/test/TestCluster.cc - // cf also TrackHitAssociator.cc SiStripRecHitMatcher.cc SiStrip1DMeasurementTransformator.cc (KalmanUpdators) - SiStripRecHit2D const rechit = *hit; - // LocalPoint myposition = rechit.localPosition() ; - LocalError myerror = rechit.localPositionError(); - - // Get layer and subdetector ID here for this hit - // see SiStripRecHitConverter/test/ValHit.cc - Int_t siLayerNum = 0; - Int_t siDetNum = 0; - string siDetName = ""; - if ((hit->geographicalId()).subdetId() == StripSubdetector::TIB) { - // siLayerNum = tTopo->tibLayer(rechit->geographicalID()); - siLayerNum = tTopo->tibLayer(id); - siDetNum = 1; - siDetName = "TIB"; - } else if ((hit->geographicalId()).subdetId() == StripSubdetector::TOB) { - siLayerNum = tTopo->tobLayer(id); - siDetNum = 2; - siDetName = "TOB"; - // } else if ( (hit->geographicalId()).subdetId() == StripSubdetector::TID ){ - // // should we use side/wheel/ring/module/stereo() ? - // siLayerNum = tTopo->tidWheel(id); - // siDetNum = 3 ; - // siDetName = "TID" ; - // }else if ( (hit->geographicalId()).subdetId() == StripSubdetector::TEC ){ - // //choices are side/petal/wheel/ring/module/glued/stereo - // siLayerNum = tTopo->tecWheel(id); - // siDetNum = 4 ; - // siDetName = "TEC" ; - } else { - siLayerNum = -999; - siDetNum = -999; - siDetName = "NULL"; - } - // LogDebug("") << siDetName << " " << siLayerNum ; - - const SiStripRecHit2D::ClusterRef& clust = rechit.cluster(); - double Signal = 0; - double Noise2 = 0; - int StripCount = 0; - if (clust.isNonnull()) { - // LogDebug("") << " barycenter " << clust->barycenter() ; - // const std::vector amplitudes=clust->amplitudes(); - const auto& amplitudes = clust->amplitudes(); - for (size_t i = 0; i < amplitudes.size(); i++) { - Signal += amplitudes[i]; - //ignore for now Noise2 +=SiStripNoiseService_.getNoise(detid,clust->firstStrip()+i)*SiStripNoiseService_.getNoise(detid,clust->firstStrip()+i); - StripCount++; - } - } else { - LogDebug("") << " null cluster "; - } - // LogDebug("") << "Signal " << Signal << " Noise2 " << Noise2 << " StripCount " << StripCount ; - // Dump position - // LogDebug("") << " Stereo " - // << "local position: "<Fill(NStereoHits_); - - ///////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////////////////// - - LogDebug("") << " Looping over Mono Hits "; - /////// Loop over Mono Hits - myHits = 0; - for (SiStripRecHit2DCollection::DataContainer::const_iterator hit = rphiHitsHandle->data().begin(), - hitend = rphiHitsHandle->data().end(); - hit != hitend; - ++hit) { - DetId id(hit->geographicalId()); - - if ((hit->geographicalId()).subdetId() == StripSubdetector::TIB || - (hit->geographicalId()).subdetId() == StripSubdetector::TOB) { - GlobalPoint position = trackerHandle->idToDet(hit->geographicalId())->surface().toGlobal(hit->localPosition()); - //from RecoLocalTracker/SiStripClusterizer/test/TestCluster.cc - // cf also TrackHitAssociator.cc SiStripRecHitMatcher.cc SiStrip1DMeasurementTransformator.cc (KalmanUpdators) - SiStripRecHit2D const rechit = *hit; - // LocalPoint myposition = rechit.localPosition() ; - LocalError myerror = rechit.localPositionError(); - - // Get layer and subdetector ID here for this hit - // see SiStripRecHitConverter/test/ValHit.cc - Int_t siLayerNum = 0; - Int_t siDetNum = 0; - string siDetName = ""; - if ((hit->geographicalId()).subdetId() == StripSubdetector::TIB) { - // siLayerNum = tTopo->tibLayer(rechit->geographicalID()); - siLayerNum = tTopo->tibLayer(id); - siDetNum = 1; - siDetName = "TIB"; - } else if ((hit->geographicalId()).subdetId() == StripSubdetector::TOB) { - siLayerNum = tTopo->tobLayer(id); - siDetNum = 2; - siDetName = "TOB"; - // } else if ( (hit->geographicalId()).subdetId() == StripSubdetector::TID ){ - // // should we use side/wheel/ring/module/stereo() ? - // siLayerNum = tTopo->tidWheel(id); - // siDetNum = 3 ; - // siDetName = "TID" ; - // }else if ( (hit->geographicalId()).subdetId() == StripSubdetector::TEC ){ - // //choices are side/petal/wheel/ring/module/glued/stereo - // siLayerNum = tTopo->tecWheel(id); - // siDetNum = 4 ; - // siDetName = "TEC" - ; - } else { - siLayerNum = -999; - siDetNum = -999; - siDetName = "NULL"; - } - // LogDebug("") << siDetName << " " << siLayerNum ; - const SiStripRecHit2D::ClusterRef& clust = rechit.cluster(); - double Signal = 0; - double Noise2 = 0; - int StripCount = 0; - if (clust.isNonnull()) { - // LogDebug("") << " barycenter " << clust->barycenter() ; - // const std::vector amplitudes=clust->amplitudes(); - const auto& amplitudes = clust->amplitudes(); - for (size_t i = 0; i < amplitudes.size(); i++) { - Signal += amplitudes[i]; - //ignore for now Noise2 +=SiStripNoiseService_.getNoise(detid,clust->firstStrip()+i)*SiStripNoiseService_.getNoise(detid,clust->firstStrip()+i); - StripCount++; - } - } else { - LogDebug("") << " null cluster "; - } - // LogDebug("") << "Signal " << Signal << " Noise2 " << Noise2 << " StripCount " << StripCount ; - - // Dump position info - // LogDebug("") << " Mono " - // << "local position: "<Fill(NMonoHits_); - - ///////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////////////////// - - LogDebug("") << " Loop over Matched Hits "; - - /////// Loop over Matched Hits - myHits = 0; - for (SiStripMatchedRecHit2DCollection::DataContainer::const_iterator hit = matchedHitsHandle->data().begin(), - hitend = matchedHitsHandle->data().end(); - hit != hitend; - ++hit) { - DetId id(hit->geographicalId()); - if ((hit->geographicalId()).subdetId() == StripSubdetector::TIB || - (hit->geographicalId()).subdetId() == StripSubdetector::TOB) { - GlobalPoint position = trackerHandle->idToDet(hit->geographicalId())->surface().toGlobal(hit->localPosition()); - SiStripMatchedRecHit2D const rechit = *hit; - // LocalPoint myposition = rechit.localPosition() ; - LocalError myerror = rechit.localPositionError(); - - // Get layer and subdetector ID here for this hit - // see SiStripRecHitConverter/test/ValHit.cc - Int_t siLayerNum = 0; - Int_t siDetNum = 0; - string siDetName = ""; - if ((hit->geographicalId()).subdetId() == StripSubdetector::TIB) { - siLayerNum = tTopo->tibLayer(id); - siDetNum = 1; - siDetName = "TIB"; - } else if ((hit->geographicalId()).subdetId() == StripSubdetector::TOB) { - siLayerNum = tTopo->tobLayer(id); - siDetNum = 2; - siDetName = "TOB"; - // } else if ( (hit->geographicalId()).subdetId() == StripSubdetector::TID ){ - // // should we use side/wheel/ring/module/stereo() ? - // siLayerNum = tTopo->tidWheel(id); - // siDetNum = 3 ; - // siDetName = "TID" ; - // }else if ( (hit->geographicalId()).subdetId() == StripSubdetector::TEC ){ - // //choices are side/petal/wheel/ring/module/glued/stereo - // siLayerNum = tTopo->tecWheel(id); - // siDetNum = 4 ; - // siDetName = "TEC" ; - } else { - siLayerNum = -999; - siDetNum = -999; - siDetName = "NULL"; - } - // const edm::Ref, SiStripCluster, edm::refhelper::FindForDetSetVector > clust=rechit.cluster(); - double Signal = 0; - double Noise2 = 0; - int StripCount = 0; - // if(clust.isNonnull()) { - // LogDebug("") << " barycenter " << clust->barycenter() ; - // const std::vector amplitudes=clust->amplitudes(); - // for(size_t i = 0 ; ifirstStrip()+i)*SiStripNoiseService_.getNoise(detid,clust->firstStrip()+i); - // StripCount++; - // } - // } else { - // LogDebug("") << " null cluster " ; - // } - // LogDebug("") << "Signal " << Signal << " Noise2 " << Noise2 << " StripCount " << StripCount ; - - // Dump position info - // LogDebug("") << " Matched " - // << "local position: "<Fill(NMatchedHits_); - - ////////////////////////////////////////////////////////////////////// - - ///////////////////////////////////////////////////////////////////// - ///////////////////////////////////////////////////////////////////// - LogDebug("") << "Writing to myTree with " << NShowers_ << " Showers " << NStereoHits_ << " Si StereoHits " - << NMonoHits_ << " Si MonoHits " << NMatchedHits_ << " Si MatchedHits "; - - myTree_->Fill(); - -} // end of Analyzer - -void SiStripElectronAnalyzer::endJob() { - LogDebug("") << "Entering endJob "; - file_->cd(); - numCand_->Write(); - numElectrons_->Write(); - numSuperClusters_->Write(); - - energySuperClusters_->Write(); - sizeSuperClusters_->Write(); - emaxSuperClusters_->Write(); - phiWidthSuperClusters_->Write(); - - energySuperClustersEl_->Write(); - sizeSuperClustersEl_->Write(); - emaxSuperClustersEl_->Write(); - phiWidthSuperClustersEl_->Write(); - - ptDiff->Write(); - pDiff->Write(); - pElectronFailed->Write(); - ptElectronFailed->Write(); - pElectronPassed->Write(); - ptElectronPassed->Write(); - sizeSuperClustersPassed->Write(); - sizeSuperClustersFailed->Write(); - // energySuperClustersPassed->Write(); - // energySuperClustersFailed->Write(); - // eOverPPassed->Write(); - // eOverPFailed->Write(); - - numSiStereoHits_->Write(); - numSiMonoHits_->Write(); - numSiMatchedHits_->Write(); - - // disable for large dataset - LogDebug("") << " Writing out ntuple is disabled for now "; - myTree_->Write(); - - file_->Close(); -} - -// -// const member functions -// - -// -// static member functions -// diff --git a/RecoEgamma/Examples/plugins/SimpleConvertedPhotonAnalyzer.cc b/RecoEgamma/Examples/plugins/SimpleConvertedPhotonAnalyzer.cc deleted file mode 100644 index 7c22866057c21..0000000000000 --- a/RecoEgamma/Examples/plugins/SimpleConvertedPhotonAnalyzer.cc +++ /dev/null @@ -1,334 +0,0 @@ -#include "DataFormats/CaloRecHit/interface/CaloCluster.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/EgammaCandidates/interface/Conversion.h" -#include "DataFormats/EgammaCandidates/interface/ConversionFwd.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackExtra.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Utilities/interface/Exception.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" -#include "RecoEgamma/EgammaMCTools/interface/PhotonMCTruth.h" -#include "RecoEgamma/EgammaMCTools/interface/PhotonMCTruthFinder.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" -#include "SimDataFormats/Track/interface/SimTrack.h" -#include "SimDataFormats/Track/interface/SimTrackContainer.h" -#include "SimDataFormats/Vertex/interface/SimVertex.h" -#include "SimDataFormats/Vertex/interface/SimVertexContainer.h" - -#include "TFile.h" -#include "TH1.h" -#include "TH2.h" -#include "TTree.h" -#include "TVector3.h" -#include "TProfile.h" - -#include -#include -#include - -class SimpleConvertedPhotonAnalyzer : public edm::one::EDAnalyzer<> { -public: - // - explicit SimpleConvertedPhotonAnalyzer(const edm::ParameterSet&); - ~SimpleConvertedPhotonAnalyzer() override; - - void analyze(const edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - void endJob() override; - -private: - float etaTransformation(float a, float b); - - // - PhotonMCTruthFinder* thePhotonMCTruthFinder_; - - std::string fOutputFileName_; - TFile* fOutputFile_; - - int nEvt_; - int nMCPho_; - int nMatched_; - - std::string HepMCLabel; - std::string SimTkLabel; - std::string SimVtxLabel; - std::string SimHitLabel; - - std::string convertedPhotonCollectionProducer_; - std::string convertedPhotonCollection_; - - TH1F* h_ErecoEMC_; - TH1F* h_deltaPhi_; - TH1F* h_deltaEta_; - - //// All MC photons - TH1F* h_MCphoE_; - TH1F* h_MCphoPhi_; - TH1F* h_MCphoEta_; - - //// visible MC Converted photons - TH1F* h_MCConvE_; - TH1F* h_MCConvPt_; - TH1F* h_MCConvEta_; - - // SC from reco photons - TH1F* h_scE_; - TH1F* h_scEta_; - TH1F* h_scPhi_; - // - TH1F* h_phoE_; - TH1F* h_phoEta_; - TH1F* h_phoPhi_; - // - // All tracks from reco photons - TH2F* h2_tk_nHitsVsR_; - // - TH2F* h2_tk_inPtVsR_; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(SimpleConvertedPhotonAnalyzer); - -using namespace std; - -SimpleConvertedPhotonAnalyzer::SimpleConvertedPhotonAnalyzer(const edm::ParameterSet& pset) - : fOutputFileName_(pset.getUntrackedParameter("HistOutFile", std::string("TestConversions.root"))), - fOutputFile_(nullptr) { - convertedPhotonCollectionProducer_ = pset.getParameter("phoProducer"); - convertedPhotonCollection_ = pset.getParameter("convertedPhotonCollection"); - // -} - -SimpleConvertedPhotonAnalyzer::~SimpleConvertedPhotonAnalyzer() { delete thePhotonMCTruthFinder_; } - -void SimpleConvertedPhotonAnalyzer::beginJob() { - nEvt_ = 0; - nMCPho_ = 0; - nMatched_ = 0; - - thePhotonMCTruthFinder_ = new PhotonMCTruthFinder(); - - fOutputFile_ = new TFile(fOutputFileName_.c_str(), "RECREATE"); - - /// Reco - MC - h_ErecoEMC_ = new TH1F("deltaE", " delta(reco-mc) energy", 100, 0., 2.); - h_deltaPhi_ = new TH1F("deltaPhi", " delta(reco-mc) phi", 100, -0.1, 0.1); - h_deltaEta_ = new TH1F("deltaEta", " delta(reco-mc) eta", 100, -0.05, 0.05); - - //// All MC photons - h_MCphoE_ = new TH1F("MCphoE", "MC photon energy", 100, 0., 100.); - h_MCphoPhi_ = new TH1F("MCphoPhi", "MC photon phi", 40, -3.14, 3.14); - h_MCphoEta_ = new TH1F("MCphoEta", "MC photon eta", 40, -3., 3.); - - //// visible MC Converted photons - h_MCConvE_ = new TH1F("MCConvE", "MC converted photon energy", 100, 0., 100.); - h_MCConvPt_ = new TH1F("MCConvPt", "MC converted photon pt", 100, 0., 100.); - h_MCConvEta_ = new TH1F("MCConvEta", "MC converted photon eta", 50, 0., 2.5); - - //// Reconstructed Converted photons - h_scE_ = new TH1F("scE", "Uncorrected converted photons : SC Energy ", 100, 0., 200.); - h_scEta_ = new TH1F("scEta", "Uncorrected converted photons: SC Eta ", 40, -3., 3.); - h_scPhi_ = new TH1F("scPhi", "Uncorrected converted photons: SC Phi ", 40, -3.14, 3.14); - // - h_phoE_ = new TH1F("phoE", "Uncorrected converted photons : Energy ", 100, 0., 200.); - h_phoEta_ = new TH1F("phoEta", "Uncorrected converted photons: Eta ", 40, -3., 3.); - h_phoPhi_ = new TH1F("phoPhi", "Uncorrected converted photons: Phi ", 40, -3.14, 3.14); - - // Recontructed tracks from converted photon candidates - h2_tk_nHitsVsR_ = new TH2F("tknHitsVsR", "Tracks Hits vs R ", 12, 0., 120., 20, 0.5, 20.5); - h2_tk_inPtVsR_ = new TH2F("tkInPtvsR", "Tracks inner Pt vs R ", 12, 0., 120., 100, 0., 100.); - - return; -} - -float SimpleConvertedPhotonAnalyzer::etaTransformation(float EtaParticle, float Zvertex) { - //---Definitions - const float PI = 3.1415927; - //UNUSED const float TWOPI = 2.0*PI; - - //---Definitions for ECAL - const float R_ECAL = 136.5; - const float Z_Endcap = 328.0; - const float etaBarrelEndcap = 1.479; - - //---ETA correction - - float Theta = 0.0; - float ZEcal = R_ECAL * sinh(EtaParticle) + Zvertex; - - if (ZEcal != 0.0) - Theta = atan(R_ECAL / ZEcal); - if (Theta < 0.0) - Theta = Theta + PI; - float ETA = -log(tan(0.5 * Theta)); - - if (fabs(ETA) > etaBarrelEndcap) { - float Zend = Z_Endcap; - if (EtaParticle < 0.0) - Zend = -Zend; - float Zlen = Zend - Zvertex; - float RR = Zlen / sinh(EtaParticle); - Theta = atan(RR / Zend); - if (Theta < 0.0) - Theta = Theta + PI; - ETA = -log(tan(0.5 * Theta)); - } - //---Return the result - return ETA; - //---end -} - -void SimpleConvertedPhotonAnalyzer::analyze(const edm::Event& e, const edm::EventSetup&) { - using namespace edm; - const float etaPhiDistance = 0.01; - // Fiducial region - //UNUSED const float TRK_BARL =0.9; - const float BARL = 1.4442; // DAQ TDR p.290 - const float END_LO = 1.566; - const float END_HI = 2.5; - // Electron mass - //UNUSED const Float_t mElec= 0.000511; - - nEvt_++; - LogInfo("ConvertedPhotonAnalyzer") << "ConvertedPhotonAnalyzer Analyzing event number: " << e.id() - << " Global Counter " << nEvt_ << "\n"; - // LogDebug("ConvertedPhotonAnalyzer") << "ConvertedPhotonAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ <<"\n"; - std::cout << "ConvertedPhotonAnalyzer Analyzing event number: " << e.id() << " Global Counter " << nEvt_ << "\n"; - - ///// Get the recontructed conversions - Handle convertedPhotonHandle; - e.getByLabel(convertedPhotonCollectionProducer_, convertedPhotonCollection_, convertedPhotonHandle); - const reco::ConversionCollection phoCollection = *(convertedPhotonHandle.product()); - std::cout << "ConvertedPhotonAnalyzer Converted photon collection size " << phoCollection.size() << "\n"; - - //////////////////// Get the MC truth: SimTracks - std::cout << " ConvertedPhotonAnalyzer Looking for MC truth " - << "\n"; - - //get simtrack info - std::vector theSimTracks; - std::vector theSimVertices; - - edm::Handle SimTk; - edm::Handle SimVtx; - e.getByLabel("g4SimHits", SimTk); - e.getByLabel("g4SimHits", SimVtx); - - theSimTracks.insert(theSimTracks.end(), SimTk->begin(), SimTk->end()); - theSimVertices.insert(theSimVertices.end(), SimVtx->begin(), SimVtx->end()); - - std::vector mcPhotons = thePhotonMCTruthFinder_->find(theSimTracks, theSimVertices); - std::cout << " ConvertedPhotonAnalyzer mcPhotons size " << mcPhotons.size() << std::endl; - - // Loop over simulated photons - //UNUSED int iDet=0; - //UNUSED int iRadius=-1; - //UNUSED int indPho=0; - - for (std::vector::const_iterator mcPho = mcPhotons.begin(); mcPho != mcPhotons.end(); mcPho++) { - float mcPhi = (*mcPho).fourMomentum().phi(); - float mcEta = (*mcPho).fourMomentum().pseudoRapidity(); - mcEta = etaTransformation(mcEta, (*mcPho).primaryVertex().z()); - - if (!(fabs(mcEta) <= BARL || (fabs(mcEta) >= END_LO && fabs(mcEta) <= END_HI))) { - continue; - } // all ecal fiducial region - - std::cout << " ConvertedPhotonAnalyzer MC Photons before matching " << std::endl; - std::cout << " ConvertedPhotonAnalyzer Photons isAconversion " << (*mcPho).isAConversion() - << " mcMatchingPhoton energy " << (*mcPho).fourMomentum().e() << " conversion vertex R " - << (*mcPho).vertex().perp() << " Z " << (*mcPho).vertex().z() << " x " << (*mcPho).vertex().x() << " y " - << (*mcPho).vertex().y() << " z " << (*mcPho).vertex().z() << std::endl; - std::cout << " ConvertedPhotonAnalyzer mcEta " << mcEta << " mcPhi " << mcPhi << std::endl; - - h_MCphoE_->Fill((*mcPho).fourMomentum().e()); - h_MCphoEta_->Fill((*mcPho).fourMomentum().eta()); - h_MCphoPhi_->Fill((*mcPho).fourMomentum().phi()); - - // keep only visible conversions - if ((*mcPho).isAConversion() == 0) - continue; - - nMCPho_++; - - h_MCConvEta_->Fill(fabs((*mcPho).fourMomentum().pseudoRapidity()) - 0.001); - - bool REJECTED; - - /// Loop over recontructed photons - std::cout << " ConvertedPhotonAnalyzer Starting loop over photon candidates " - << "\n"; - for (reco::ConversionCollection::const_iterator iPho = phoCollection.begin(); iPho != phoCollection.end(); iPho++) { - REJECTED = false; - - std::cout << " ConvertedPhotonAnalyzer Reco SC energy " << (*iPho).caloCluster()[0]->energy() << "\n"; - - float phiClu = (*iPho).caloCluster()[0]->phi(); - float etaClu = (*iPho).caloCluster()[0]->eta(); - float deltaPhi = phiClu - mcPhi; - float deltaEta = etaClu - mcEta; - - if (deltaPhi > Geom::pi()) - deltaPhi -= Geom::twoPi(); - if (deltaPhi < -Geom::pi()) - deltaPhi += Geom::twoPi(); - deltaPhi = std::pow(deltaPhi, 2); - deltaEta = std::pow(deltaEta, 2); - float delta = deltaPhi + deltaEta; - if (delta >= etaPhiDistance) - REJECTED = true; - - // if ( ! ( fabs(etaClu) <= BARL || ( fabs(etaClu) >= END_LO && fabs(etaClu) <=END_HI ) ) ) REJECTED=true; - - if (REJECTED) - continue; - std::cout << " MATCHED " << std::endl; - nMatched_++; - - std::cout << " ConvertedPhotonAnalyzer Matching candidate " << std::endl; - - std::cout << " ConvertedPhotonAnalyzer Photons isAconversion " << (*mcPho).isAConversion() - << " mcMatchingPhoton energy " << (*mcPho).fourMomentum().e() - << " ConvertedPhotonAnalyzer conversion vertex R " << (*mcPho).vertex().perp() << " Z " - << (*mcPho).vertex().z() << std::endl; - - h_ErecoEMC_->Fill((*iPho).caloCluster()[0]->energy() / (*mcPho).fourMomentum().e()); - h_deltaPhi_->Fill((*iPho).caloCluster()[0]->position().phi() - mcPhi); - h_deltaEta_->Fill((*iPho).caloCluster()[0]->position().eta() - mcEta); - - h_scE_->Fill((*iPho).caloCluster()[0]->energy()); - h_scEta_->Fill((*iPho).caloCluster()[0]->position().eta()); - h_scPhi_->Fill((*iPho).caloCluster()[0]->position().phi()); - - for (unsigned int i = 0; i < (*iPho).tracks().size(); i++) { - std::cout << " ConvertedPhotonAnalyzer Reco Track charge " << (*iPho).tracks()[i]->charge() - << " Num of RecHits " << (*iPho).tracks()[i]->recHitsSize() << " inner momentum " - << sqrt((*iPho).tracks()[i]->innerMomentum().Mag2()) << "\n"; - - h2_tk_nHitsVsR_->Fill((*mcPho).vertex().perp(), (*iPho).tracks()[i]->recHitsSize()); - h2_tk_inPtVsR_->Fill((*mcPho).vertex().perp(), sqrt((*iPho).tracks()[i]->innerMomentum().Mag2())); - } - - } /// End loop over Reco particles - - } /// End loop over MC particles -} - -void SimpleConvertedPhotonAnalyzer::endJob() { - fOutputFile_->Write(); - fOutputFile_->Close(); - - edm::LogInfo("ConvertedPhotonAnalyzer") << "Analyzed " << nEvt_ << "\n"; - // std::cout << "::endJob Analyzed " << nEvt_ << " events " << " with total " << nPho_ << " Photons " << "\n"; - std::cout << "ConvertedPhotonAnalyzer::endJob Analyzed " << nEvt_ << " events " - << "\n"; - - return; -} diff --git a/RecoEgamma/Examples/plugins/SimplePhotonAnalyzer.cc b/RecoEgamma/Examples/plugins/SimplePhotonAnalyzer.cc deleted file mode 100644 index b9ea3f0bae45d..0000000000000 --- a/RecoEgamma/Examples/plugins/SimplePhotonAnalyzer.cc +++ /dev/null @@ -1,398 +0,0 @@ -/**\class SimplePhotonAnalyzer - ** - ** Description: Get Photon collection from the event and make very basic histos - ** \author Nancy Marinelli, U. of Notre Dame, US - ** - **/ - -#include "CommonTools/UtilAlgos/interface/TFileService.h" -#include "DQMServices/Core/interface/DQMStore.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/Common/interface/ValueMap.h" -#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" -#include "DataFormats/EgammaCandidates/interface/Photon.h" -#include "DataFormats/EgammaCandidates/interface/PhotonFwd.h" -#include "DataFormats/EgammaReco/interface/SuperCluster.h" -#include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h" -#include "DataFormats/ParticleFlowCandidate/interface/PFCandidateEGammaExtra.h" -#include "DataFormats/ParticleFlowCandidate/interface/PFCandidateEGammaExtraFwd.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "FWCore/Utilities/interface/Exception.h" -#include "Geometry/Records/interface/CaloTopologyRecord.h" -#include "Geometry/CaloTopology/interface/CaloTopology.h" -#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" - -#include "CLHEP/Units/GlobalPhysicalConstants.h" - -#include "TFile.h" -#include "TH1.h" -#include "TProfile.h" - -#include -#include - -class SimplePhotonAnalyzer : public edm::one::EDAnalyzer<> { -public: - typedef dqm::legacy::DQMStore DQMStore; - typedef dqm::legacy::MonitorElement MonitorElement; - - explicit SimplePhotonAnalyzer(const edm::ParameterSet&); - ~SimplePhotonAnalyzer() override; - - void analyze(const edm::Event&, const edm::EventSetup&) override; - void beginJob() override; - void endJob() override; - -private: - float etaTransformation(float a, float b); - - std::string mcProducer_; - std::string mcCollection_; - std::string photonCollectionProducer_; - std::string photonCollection_; - std::string valueMapPFCandPhoton_; - edm::InputTag pfEgammaCandidates_; - edm::InputTag barrelEcalHits_; - edm::InputTag endcapEcalHits_; - - std::string vertexProducer_; - float sample_; - - DQMStore* dbe_; - - MonitorElement* h1_scEta_; - MonitorElement* h1_deltaEtaSC_; - MonitorElement* h1_pho_E_; - MonitorElement* h1_pho_Et_; - MonitorElement* h1_pho_Eta_; - MonitorElement* h1_pho_Phi_; - MonitorElement* h1_pho_R9Barrel_; - MonitorElement* h1_pho_R9Endcap_; - MonitorElement* h1_pho_sigmaIetaIetaBarrel_; - MonitorElement* h1_pho_sigmaIetaIetaEndcap_; - MonitorElement* h1_pho_hOverEBarrel_; - MonitorElement* h1_pho_hOverEEndcap_; - MonitorElement* h1_pho_ecalIsoBarrel_; - MonitorElement* h1_pho_ecalIsoEndcap_; - MonitorElement* h1_pho_hcalIsoBarrel_; - MonitorElement* h1_pho_hcalIsoEndcap_; - MonitorElement* h1_pho_trkIsoBarrel_; - MonitorElement* h1_pho_trkIsoEndcap_; - - MonitorElement* h1_recEoverTrueEBarrel_; - MonitorElement* h1_recEoverTrueEEndcap_; - MonitorElement* h1_deltaEta_; - MonitorElement* h1_deltaPhi_; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(SimplePhotonAnalyzer); - -//======================================================================== -SimplePhotonAnalyzer::SimplePhotonAnalyzer(const edm::ParameterSet& ps) -//======================================================================== -{ - photonCollectionProducer_ = ps.getParameter("phoProducer"); - photonCollection_ = ps.getParameter("photonCollection"); - - barrelEcalHits_ = ps.getParameter("barrelEcalHits"); - endcapEcalHits_ = ps.getParameter("endcapEcalHits"); - - pfEgammaCandidates_ = ps.getParameter("pfEgammaCandidates"); - valueMapPFCandPhoton_ = ps.getParameter("valueMapPhotons"); - - mcProducer_ = ps.getParameter("mcProducer"); - //mcCollection_ = ps.getParameter("mcCollection"); - vertexProducer_ = ps.getParameter("primaryVertexProducer"); - sample_ = ps.getParameter("sample"); -} - -//======================================================================== -SimplePhotonAnalyzer::~SimplePhotonAnalyzer() -//======================================================================== -{} - -//======================================================================== -void SimplePhotonAnalyzer::beginJob() { - //======================================================================== - - dbe_ = nullptr; - dbe_ = edm::Service().operator->(); - - float hiE = 0; - float loE = 0; - float hiEt = 0; - float loEt = 0; - float dPhi = 0; - float loRes = 0; - float hiRes = 0; - if (sample_ == 1) { - loE = 0.; - hiE = 30.; - loEt = 0.; - hiEt = 30.; - dPhi = 0.2; - loRes = 0.; - hiRes = 1.2; - } else if (sample_ == 2) { - loE = 0.; - hiE = 200.; - loEt = 0.; - hiEt = 50.; - dPhi = 0.05; - loRes = 0.7; - hiRes = 1.2; - } else if (sample_ == 3) { - loE = 0.; - hiE = 500.; - loEt = 0.; - hiEt = 500.; - dPhi = 0.05; - loRes = 0.7; - hiRes = 1.2; - } else if (sample_ == 4) { - loE = 0.; - hiE = 6000.; - loEt = 0.; - hiEt = 1200.; - dPhi = 0.05; - loRes = 0.7; - hiRes = 1.2; - } - - h1_deltaEta_ = dbe_->book1D("deltaEta", " Reco photon Eta minus Generated photon Eta ", 100, -0.2, 0.2); - h1_deltaPhi_ = dbe_->book1D("deltaPhi", "Reco photon Phi minus Generated photon Phi ", 100, -dPhi, dPhi); - h1_pho_Eta_ = dbe_->book1D("phoEta", "Photon Eta ", 40, -3., 3.); - h1_pho_Phi_ = dbe_->book1D("phoPhi", "Photon Phi ", 40, -3.14, 3.14); - h1_pho_E_ = dbe_->book1D("phoE", "Photon Energy ", 100, loE, hiE); - h1_pho_Et_ = dbe_->book1D("phoEt", "Photon Et ", 100, loEt, hiEt); - - h1_scEta_ = dbe_->book1D("scEta", " SC Eta ", 40, -3., 3.); - h1_deltaEtaSC_ = dbe_->book1D("deltaEtaSC", " SC Eta minus Generated photon Eta ", 100, -0.02, 0.02); - - // - h1_recEoverTrueEBarrel_ = dbe_->book1D( - "recEoverTrueEBarrel", " Reco photon Energy over Generated photon Energy: Barrel ", 100, loRes, hiRes); - h1_recEoverTrueEEndcap_ = dbe_->book1D( - "recEoverTrueEEndcap", " Reco photon Energy over Generated photon Energy: Endcap ", 100, loRes, hiRes); - - // - - h1_pho_R9Barrel_ = dbe_->book1D("phoR9Barrel", "Photon 3x3 energy / SuperCluster energy : Barrel ", 100, 0., 1.2); - h1_pho_R9Endcap_ = dbe_->book1D("phoR9Endcap", "Photon 3x3 energy / SuperCluster energy : Endcap ", 100, 0., 1.2); - h1_pho_sigmaIetaIetaBarrel_ = dbe_->book1D("sigmaIetaIetaBarrel", "sigmaIetaIeta: Barrel", 100, 0., 0.05); - h1_pho_sigmaIetaIetaEndcap_ = dbe_->book1D("sigmaIetaIetaEndcap", "sigmaIetaIeta: Endcap", 100, 0., 0.1); - h1_pho_hOverEBarrel_ = dbe_->book1D("hOverEBarrel", "H/E: Barrel", 100, 0., 0.1); - h1_pho_hOverEEndcap_ = dbe_->book1D("hOverEEndcap", "H/E: Endcap", 100, 0., 0.1); - h1_pho_ecalIsoBarrel_ = dbe_->book1D("ecalIsolBarrel", "isolation et sum in Ecal: Barrel", 100, 0., 100.); - h1_pho_ecalIsoEndcap_ = dbe_->book1D("ecalIsolEndcap", "isolation et sum in Ecal: Endcap", 100, 0., 100.); - h1_pho_hcalIsoBarrel_ = dbe_->book1D("hcalIsolBarrel", "isolation et sum in Hcal: Barrel", 100, 0., 100.); - h1_pho_hcalIsoEndcap_ = dbe_->book1D("hcalIsolEndcap", "isolation et sum in Hcal: Endcap", 100, 0., 100.); - h1_pho_trkIsoBarrel_ = dbe_->book1D("trkIsolBarrel", "isolation pt sum in the tracker: Barrel", 100, 0., 100.); - h1_pho_trkIsoEndcap_ = dbe_->book1D("trkIsolEndcap", "isolation pt sum in the tracker: Endcap", 100, 0., 100.); -} - -//======================================================================== -void SimplePhotonAnalyzer::analyze(const edm::Event& evt, const edm::EventSetup& es) { - //======================================================================== - - using namespace edm; // needed for all fwk related classes - edm::LogInfo("PhotonAnalyzer") << "Analyzing event number: " << evt.id() << "\n"; - - // Get the corrected photon collection (set in the configuration) which also contains infos about conversions - - Handle photonHandle; - evt.getByLabel(photonCollectionProducer_, photonCollection_, photonHandle); - const reco::PhotonCollection photonCollection = *(photonHandle.product()); - - Handle hepProd; - evt.getByLabel(mcProducer_, hepProd); - const HepMC::GenEvent* myGenEvent = hepProd->GetEvent(); - - // Get the PF refined cluster collection - Handle pfCandidateHandle; - evt.getByLabel(pfEgammaCandidates_, pfCandidateHandle); - if (!pfCandidateHandle.isValid()) { - edm::LogError("SimplePhotonAnalyzer") << "Error! Can't get the product " << pfEgammaCandidates_.label(); - } - - edm::Handle > pfCandToPhotonMapHandle; - edm::ValueMap pfCandToPhotonMap; - evt.getByLabel("gedPhotons", valueMapPFCandPhoton_, pfCandToPhotonMapHandle); - if (!pfCandToPhotonMapHandle.isValid()) { - edm::LogInfo("SimplePhotonAnalyzer") << "Error! Can't get the product: valueMapPhotons " << std::endl; - } - pfCandToPhotonMap = *(pfCandToPhotonMapHandle.product()); - - std::cout << " SimplePhotonAnalyzer valueMap size" << pfCandToPhotonMap.size() << std::endl; - unsigned nObj = pfCandidateHandle->size(); - for (unsigned int lCand = 0; lCand < nObj; lCand++) { - reco::PFCandidateRef pfCandRef(reco::PFCandidateRef(pfCandidateHandle, lCand)); - if (pfCandRef->particleId() != reco::PFCandidate::gamma) - continue; - reco::PhotonRef myPho = (pfCandToPhotonMap)[pfCandRef]; - if (myPho.isNonnull()) - std::cout << " PF SC " << pfCandRef->superClusterRef()->energy() << " Photon SC " - << myPho->superCluster()->energy() << std::endl; - } - - for (HepMC::GenEvent::particle_const_iterator p = myGenEvent->particles_begin(); p != myGenEvent->particles_end(); - ++p) { - if (!((*p)->pdg_id() == 22 && (*p)->status() == 1)) - continue; - - // single primary photons or photons from Higgs or RS Graviton - HepMC::GenParticle* mother = nullptr; - if ((*p)->production_vertex()) { - if ((*p)->production_vertex()->particles_begin(HepMC::parents) != - (*p)->production_vertex()->particles_end(HepMC::parents)) - mother = *((*p)->production_vertex()->particles_begin(HepMC::parents)); - } - if (((mother == nullptr) || ((mother != nullptr) && (mother->pdg_id() == 25)) || - ((mother != nullptr) && (mother->pdg_id() == 22)))) { - float minDelta = 10000.; - std::vector localPhotons; - int index = 0; - int iMatch = -1; - - float phiPho = (*p)->momentum().phi(); - float etaPho = (*p)->momentum().eta(); - etaPho = etaTransformation(etaPho, (*p)->production_vertex()->position().z() / 10.); - - bool matched = false; - // loop Photon candidates - for (reco::PhotonCollection::const_iterator iPho = photonCollection.begin(); iPho != photonCollection.end(); - iPho++) { - reco::Photon localPho = reco::Photon(*iPho); - localPhotons.push_back(localPho); - - /// Match reconstructed photon candidates with the nearest generated photonPho; - float phiClu = localPho.phi(); - float etaClu = localPho.eta(); - float deltaPhi = phiClu - phiPho; - float deltaEta = etaClu - etaPho; - - if (deltaPhi > pi) - deltaPhi -= twopi; - if (deltaPhi < -pi) - deltaPhi += twopi; - deltaPhi = std::pow(deltaPhi, 2); - deltaEta = std::pow(deltaEta, 2); - float delta = sqrt(deltaPhi + deltaEta); - if (delta < 0.1 && delta < minDelta) { - minDelta = delta; - iMatch = index; - } - index++; - } // End loop over photons - - if (iMatch > -1) - matched = true; - - /// Plot kinematic disctributions for matched photons - if (matched) { - reco::Photon matchingPho = localPhotons[iMatch]; - - bool phoIsInBarrel = false; - if (fabs(matchingPho.superCluster()->position().eta()) < 1.479) { - phoIsInBarrel = true; - } - edm::Handle ecalRecHitHandle; - - h1_scEta_->Fill(matchingPho.superCluster()->position().eta()); - float trueEta = (*p)->momentum().eta(); - trueEta = etaTransformation(trueEta, (*p)->production_vertex()->position().z() / 10.); - h1_deltaEtaSC_->Fill(localPhotons[iMatch].superCluster()->eta() - trueEta); - - float photonE = matchingPho.energy(); - float photonEt = matchingPho.et(); - float photonEta = matchingPho.eta(); - float photonPhi = matchingPho.phi(); - - float r9 = matchingPho.r9(); - float sigmaIetaIeta = matchingPho.sigmaIetaIeta(); - float hOverE = matchingPho.hadronicOverEm(); - float ecalIso = matchingPho.ecalRecHitSumEtConeDR04(); - float hcalIso = matchingPho.hcalTowerSumEtConeDR04(); - float trkIso = matchingPho.trkSumPtSolidConeDR04(); - - h1_pho_E_->Fill(photonE); - h1_pho_Et_->Fill(photonEt); - h1_pho_Eta_->Fill(photonEta); - h1_pho_Phi_->Fill(photonPhi); - - h1_deltaEta_->Fill(photonEta - (*p)->momentum().eta()); - h1_deltaPhi_->Fill(photonPhi - (*p)->momentum().phi()); - - if (phoIsInBarrel) { - h1_recEoverTrueEBarrel_->Fill(photonE / (*p)->momentum().e()); - h1_pho_R9Barrel_->Fill(r9); - h1_pho_sigmaIetaIetaBarrel_->Fill(sigmaIetaIeta); - h1_pho_hOverEBarrel_->Fill(hOverE); - h1_pho_ecalIsoBarrel_->Fill(ecalIso); - h1_pho_hcalIsoBarrel_->Fill(hcalIso); - h1_pho_trkIsoBarrel_->Fill(trkIso); - - } else { - h1_recEoverTrueEEndcap_->Fill(photonE / (*p)->momentum().e()); - h1_pho_R9Endcap_->Fill(r9); - h1_pho_sigmaIetaIetaEndcap_->Fill(sigmaIetaIeta); - h1_pho_hOverEEndcap_->Fill(hOverE); - h1_pho_ecalIsoEndcap_->Fill(ecalIso); - h1_pho_hcalIsoEndcap_->Fill(hcalIso); - h1_pho_trkIsoEndcap_->Fill(trkIso); - } - - } // reco photon matching MC truth - - } // End loop over MC particles - } -} - -float SimplePhotonAnalyzer::etaTransformation(float EtaParticle, float Zvertex) { - //---Definitions - const float PI = 3.1415927; - //UNUSED const float TWOPI = 2.0*PI; - - //---Definitions for ECAL - const float R_ECAL = 136.5; - const float Z_Endcap = 328.0; - const float etaBarrelEndcap = 1.479; - - //---ETA correction - - float Theta = 0.0; - float ZEcal = R_ECAL * sinh(EtaParticle) + Zvertex; - - if (ZEcal != 0.0) - Theta = atan(R_ECAL / ZEcal); - if (Theta < 0.0) - Theta = Theta + PI; - float ETA = -log(tan(0.5 * Theta)); - - if (fabs(ETA) > etaBarrelEndcap) { - float Zend = Z_Endcap; - if (EtaParticle < 0.0) - Zend = -Zend; - float Zlen = Zend - Zvertex; - float RR = Zlen / sinh(EtaParticle); - Theta = atan(RR / Zend); - if (Theta < 0.0) - Theta = Theta + PI; - ETA = -log(tan(0.5 * Theta)); - } - //---Return the result - return ETA; - //---end -} - -//======================================================================== -void SimplePhotonAnalyzer::endJob() { - //======================================================================== -} diff --git a/RecoEgamma/Examples/plugins/SimplePi0DiscAnalyzer.cc b/RecoEgamma/Examples/plugins/SimplePi0DiscAnalyzer.cc deleted file mode 100644 index 4838571430080..0000000000000 --- a/RecoEgamma/Examples/plugins/SimplePi0DiscAnalyzer.cc +++ /dev/null @@ -1,234 +0,0 @@ -// -*- C++ -*- -// -// Package: RecoEgamma/Examples -// Class: SimplePi0DiscAnalyzer -// -/**\class SimplePi0DiscAnalyzer RecoEgamma/Examples/src/SimplePi0DiscAnalyzer.cc - - Description: Pi0Disc analyzer using reco data - - Implementation: - -*/ -// -// Original Author: Aristotelis Kyriakis NCSR "Demokritos" Athens -// D Maletic, "Vinca" Belgrade -// Created: May 26 13:22:06 CEST 2009 -// -// - -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/EcalDetId/interface/EcalSubdetector.h" -#include "DataFormats/EgammaCandidates/interface/Photon.h" -#include "DataFormats/EgammaCandidates/interface/PhotonFwd.h" -#include "DataFormats/EgammaCandidates/interface/PhotonPi0DiscriminatorAssociation.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "CLHEP/Units/PhysicalConstants.h" - -#include "TFile.h" -#include "TH1F.h" -#include "TH1I.h" -#include "TH2F.h" -#include "TProfile.h" -#include "TTree.h" - -#include - -class SimplePi0DiscAnalyzer : public edm::one::EDAnalyzer<> { -public: - explicit SimplePi0DiscAnalyzer(const edm::ParameterSet& conf); - - ~SimplePi0DiscAnalyzer() override; - - void beginJob() override; - void endJob() override; - void analyze(const edm::Event& e, const edm::EventSetup& c) override; - -private: - // ----------member data --------------------------- - - std::string photonCollectionProducer_; - std::string photonCollection_; - - std::string outputFile_; - TFile* rootFile_; - - TH1F* hConv_ntracks_; - - TH1F* hAll_nnout_Assoc_; - TH1F* hAll_nnout_NoConv_Assoc_; - TH1F* hBarrel_nnout_Assoc_; - TH1F* hBarrel_nnout_NoConv_Assoc_; - TH1F* hEndcNoPresh_nnout_Assoc_; - TH1F* hEndcNoPresh_nnout_NoConv_Assoc_; - TH1F* hEndcWithPresh_nnout_Assoc_; - TH1F* hEndcWithPresh_nnout_NoConv_Assoc_; - TH1F* hAll_nnout_NoConv_Assoc_R9_; - TH1F* hBarrel_nnout_NoConv_Assoc_R9_; - TH1F* hEndcNoPresh_nnout_NoConv_Assoc_R9_; - TH1F* hEndcWithPresh_nnout_NoConv_Assoc_R9_; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(SimplePi0DiscAnalyzer); - -using namespace reco; - -SimplePi0DiscAnalyzer::SimplePi0DiscAnalyzer(const edm::ParameterSet& conf) { - outputFile_ = conf.getParameter("outputFile"); - rootFile_ = new TFile(outputFile_.c_str(), "RECREATE"); - - photonCollectionProducer_ = conf.getParameter("phoProducer"); - photonCollection_ = conf.getParameter("photonCollection"); -} - -SimplePi0DiscAnalyzer::~SimplePi0DiscAnalyzer() { - // do anything here that needs to be done at desctruction time - // (e.g. close files, deallocate resources etc.) - rootFile_->Write(); - rootFile_->Close(); -} - -void SimplePi0DiscAnalyzer::beginJob() { - rootFile_->cd(); - std::cout << "beginJob() -> Book the Histograms" << std::endl; - - hConv_ntracks_ = new TH1F("nConvTracks", "Number of tracks of converted Photons ", 10, 0., 10); - hAll_nnout_Assoc_ = new TH1F("All_nnout_Assoc", "NNout for All Photons(AssociationMap)", 100, 0., 1.); - hAll_nnout_NoConv_Assoc_ = - new TH1F("All_nnout_NoConv_Assoc", "NNout for Unconverted Photons(AssociationMap)", 100, 0., 1.); - hAll_nnout_NoConv_Assoc_R9_ = - new TH1F("All_nnout_NoConv_Assoc_R9", "NNout for Unconverted Photons with R9>0.93 (AssociationMap)", 100, 0., 1.); - hBarrel_nnout_Assoc_ = new TH1F("barrel_nnout_Assoc", "NNout for Barrel Photons(AssociationMap)", 100, 0., 1.); - hBarrel_nnout_NoConv_Assoc_ = - new TH1F("barrel_nnout_NoConv_Assoc", "NNout for Barrel Unconverted Photons(AssociationMap)", 100, 0., 1.); - hBarrel_nnout_NoConv_Assoc_R9_ = new TH1F( - "barrel_nnout_NoConv_Assoc_R9", "NNout for Barrel Unconverted Photons with R9>0.93 (AssociationMap)", 100, 0., 1.); - hEndcNoPresh_nnout_Assoc_ = - new TH1F("endcNoPresh_nnout_Assoc", "NNout for Endcap NoPresh Photons(AssociationMap)", 100, 0., 1.); - hEndcNoPresh_nnout_NoConv_Assoc_ = new TH1F( - "endcNoPresh_nnout_NoConv_Assoc", "NNout for Endcap Unconverted NoPresh Photons(AssociationMap)", 100, 0., 1.); - hEndcNoPresh_nnout_NoConv_Assoc_R9_ = - new TH1F("endcNoPresh_nnout_NoConv_Assoc_R9", - "NNout for Endcap Unconverted NoPresh Photons with R9>0.93 (AssociationMap)", - 100, - 0., - 1.); - hEndcWithPresh_nnout_Assoc_ = - new TH1F("endcWithPresh_nnout_Assoc", "NNout for Endcap WithPresh Photons(AssociationMap)", 100, 0., 1.); - hEndcWithPresh_nnout_NoConv_Assoc_ = new TH1F( - "endcWithPresh_nnout_NoConv_Assoc", "NNout for Endcap Unconverted WithPresh Photons(AssociationMap)", 100, 0., 1.); - hEndcWithPresh_nnout_NoConv_Assoc_R9_ = - new TH1F("endcWithPresh_nnout_NoConv_Assoc_R9", - "NNout for Endcap Unconverted WithPresh Photons with R9>0.93 (AssociationMap)", - 100, - 0., - 1.); -} - -void SimplePi0DiscAnalyzer::endJob() { - rootFile_->cd(); - std::cout << "endJob() -> Write the Histograms" << std::endl; - hConv_ntracks_->Write(); - - hAll_nnout_Assoc_->Write(); - hAll_nnout_NoConv_Assoc_->Write(); - hAll_nnout_NoConv_Assoc_R9_->Write(); - hBarrel_nnout_Assoc_->Write(); - hBarrel_nnout_NoConv_Assoc_->Write(); - hBarrel_nnout_NoConv_Assoc_R9_->Write(); - hEndcNoPresh_nnout_Assoc_->Write(); - hEndcNoPresh_nnout_NoConv_Assoc_->Write(); - hEndcNoPresh_nnout_NoConv_Assoc_R9_->Write(); - hEndcWithPresh_nnout_Assoc_->Write(); - hEndcWithPresh_nnout_NoConv_Assoc_->Write(); - hEndcWithPresh_nnout_NoConv_Assoc_R9_->Write(); -} - -void SimplePi0DiscAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { - std::cout << std::endl; - std::cout << " -------------- NEW EVENT : Run, Event = " << iEvent.id() << std::endl; - - edm::Handle PhotonHandle; - iEvent.getByLabel(photonCollectionProducer_, photonCollection_, PhotonHandle); - const reco::PhotonCollection photons = *(PhotonHandle.product()); - - std::cout << "----> Photons size: " << photons.size() << std::endl; - - edm::Handle map; - iEvent.getByLabel("piZeroDiscriminators", "PhotonPi0DiscriminatorAssociationMap", map); - reco::PhotonPi0DiscriminatorAssociationMap::const_iterator mapIter; - - // int PhoInd = 0; - - for (reco::PhotonCollection::const_iterator iPho = photons.begin(); iPho != photons.end(); - iPho++) { // Loop over Photons - - reco::Photon localPho(*iPho); - - float Photon_et = localPho.et(); - float Photon_eta = localPho.eta(); - float Photon_phi = localPho.phi(); - float Photon_r9 = localPho.r9(); - bool isPhotConv = localPho.hasConversionTracks(); - // std::cout << "Photon Id = " << PhoInd - std::cout << "Photon Id = " << iPho - photons.begin() << " with Et = " << Photon_et << " Eta = " << Photon_eta - << " Phi = " << Photon_phi << " R9 = " << Photon_r9 << " and conv_id = " << isPhotConv << std::endl; - - auto it_super = localPho.superCluster(); // get the SC related to the Photon candidate - - // hConv_ntracks_->Fill(Ntrk_conv); - - float nn = -10; - // mapIter = map->find(edm::Ref(PhotonHandle,PhoInd)); - mapIter = map->find(edm::Ref(PhotonHandle, iPho - photons.begin())); - if (mapIter != map->end()) { - nn = mapIter->val; - } - if (fabs(it_super->eta()) <= 1.442) { - hBarrel_nnout_Assoc_->Fill(nn); - hAll_nnout_Assoc_->Fill(nn); - std::cout << "AssociationMap Barrel NN = " << nn << std::endl; - if (!isPhotConv) { - hBarrel_nnout_NoConv_Assoc_->Fill(nn); - hAll_nnout_NoConv_Assoc_->Fill(nn); - } - if (Photon_r9 > 0.93) { - hBarrel_nnout_NoConv_Assoc_R9_->Fill(nn); - hAll_nnout_NoConv_Assoc_R9_->Fill(nn); - } - } else if ((fabs(it_super->eta()) >= 1.556 && fabs(it_super->eta()) < 1.65) || fabs(it_super->eta()) > 2.5) { - hEndcNoPresh_nnout_Assoc_->Fill(nn); - hAll_nnout_Assoc_->Fill(nn); - std::cout << "AssociationMap EndcNoPresh NN = " << nn << std::endl; - if (!isPhotConv) { - hEndcNoPresh_nnout_NoConv_Assoc_->Fill(nn); - hAll_nnout_NoConv_Assoc_->Fill(nn); - } - if (Photon_r9 > 0.93) { - hEndcNoPresh_nnout_NoConv_Assoc_R9_->Fill(nn); - hAll_nnout_NoConv_Assoc_R9_->Fill(nn); - } - } else if (fabs(it_super->eta()) >= 1.65 && fabs(it_super->eta()) <= 2.5) { - hEndcWithPresh_nnout_Assoc_->Fill(nn); - hAll_nnout_Assoc_->Fill(nn); - std::cout << "AssociationMap EndcWithPresh NN = " << nn << std::endl; - if (!isPhotConv) { - hEndcWithPresh_nnout_NoConv_Assoc_->Fill(nn); - hAll_nnout_NoConv_Assoc_->Fill(nn); - } - if (Photon_r9 > 0.93) { - hEndcWithPresh_nnout_NoConv_Assoc_R9_->Fill(nn); - hAll_nnout_NoConv_Assoc_R9_->Fill(nn); - } - } - - // PhoInd++; - } // End Loop over Photons -} diff --git a/RecoEgamma/Examples/python/dataAnalyzerFineBiningParameters_cff.py b/RecoEgamma/Examples/python/dataAnalyzerFineBiningParameters_cff.py deleted file mode 100644 index 43996deaa5c97..0000000000000 --- a/RecoEgamma/Examples/python/dataAnalyzerFineBiningParameters_cff.py +++ /dev/null @@ -1,53 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -dataAnalyzerFineBiningParameters = cms.PSet( - - Etamin = cms.double(-2.5), - Etamax = cms.double(2.5), - Phimax = cms.double(3.2), - Phimin = cms.double(-3.2), - Ptmax = cms.double(100.0), - Pmax = cms.double(300.0), - Eopmax = cms.double(5.0), - Eopmaxsht = cms.double(3.0), - Detamin = cms.double(-0.005), - Detamax = cms.double(0.005), - Dphimin = cms.double(-0.01), - Dphimax = cms.double(0.01), - Dphimatchmin = cms.double(-0.2), - Dphimatchmax = cms.double(0.2), - Detamatchmin = cms.double(-0.05), - Detamatchmax = cms.double(0.05), - Fhitsmax = cms.double(30.0), - Lhitsmax = cms.double(10.0), - Nbinxyz = cms.int32(200), - Nbineop2D = cms.int32(100), - Nbinp = cms.int32(300), - Nbineta2D = cms.int32(100), - Nbinfhits = cms.int32(30), - Nbinlhits = cms.int32(5), - Nbinpteff = cms.int32(190), - Nbinphi2D = cms.int32(128), - Nbindetamatch2D = cms.int32(100), - Nbineta = cms.int32(250), - Nbinp2D = cms.int32(100), - Nbindeta = cms.int32(300), - Nbinpt2D = cms.int32(100), - Nbindetamatch = cms.int32(300), - Nbinphi = cms.int32(128), - Nbindphimatch = cms.int32(300), - Nbinpt = cms.int32(300), - Nbindphimatch2D = cms.int32(100), - Nbindphi = cms.int32(300), - Nbineop = cms.int32(300), - Nbinpoptrue = cms.int32(450), - Poptruemin = cms.double(0.3), - Poptruemax = cms.double(1.2), - Nbinmee = cms.int32(300), - Meemin = cms.double(0.0), - Meemax = cms.double(150.), - Nbinhoe = cms.int32(200), - Hoemin = cms.double(0.0), - Hoemax = cms.double(0.5) - -) diff --git a/RecoEgamma/Examples/python/dataAnalyzerStdBiningParameters_cff.py b/RecoEgamma/Examples/python/dataAnalyzerStdBiningParameters_cff.py deleted file mode 100644 index 45339f3ca1495..0000000000000 --- a/RecoEgamma/Examples/python/dataAnalyzerStdBiningParameters_cff.py +++ /dev/null @@ -1,53 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -dataAnalyzerStdBiningParameters = cms.PSet( - - Etamin = cms.double(-2.5), - Etamax = cms.double(2.5), - Phimax = cms.double(3.2), - Phimin = cms.double(-3.2), - Ptmax = cms.double(100.0), - Pmax = cms.double(300.0), - Eopmax = cms.double(5.0), - Eopmaxsht = cms.double(3.0), - Detamin = cms.double(-0.005), - Detamax = cms.double(0.005), - Dphimin = cms.double(-0.01), - Dphimax = cms.double(0.01), - Dphimatchmin = cms.double(-0.2), - Dphimatchmax = cms.double(0.2), - Detamatchmin = cms.double(-0.05), - Detamatchmax = cms.double(0.05), - Fhitsmax = cms.double(30.0), - Lhitsmax = cms.double(10.0), - Nbinxyz = cms.int32(50), - Nbineop2D = cms.int32(30), - Nbinp = cms.int32(50), - Nbineta2D = cms.int32(50), - Nbinfhits = cms.int32(30), - Nbinlhits = cms.int32(5), - Nbinpteff = cms.int32(19), - Nbinphi2D = cms.int32(32), - Nbindetamatch2D = cms.int32(50), - Nbineta = cms.int32(50), - Nbinp2D = cms.int32(50), - Nbindeta = cms.int32(100), - Nbinpt2D = cms.int32(50), - Nbindetamatch = cms.int32(100), - Nbinphi = cms.int32(64), - Nbindphimatch = cms.int32(100), - Nbinpt = cms.int32(50), - Nbindphimatch2D = cms.int32(50), - Nbindphi = cms.int32(100), - Nbineop = cms.int32(50), - Nbinpoptrue = cms.int32(75), - Poptruemin = cms.double(0.0), - Poptruemax = cms.double(1.5), - Nbinmee = cms.int32(100), - Meemin = cms.double(0.0), - Meemax = cms.double(150.), - Nbinhoe = cms.int32(100), - Hoemin = cms.double(0.0), - Hoemax = cms.double(0.5) - -) diff --git a/RecoEgamma/Examples/python/electronAnalyzer_cfi.py b/RecoEgamma/Examples/python/electronAnalyzer_cfi.py deleted file mode 100644 index 89c23a902d571..0000000000000 --- a/RecoEgamma/Examples/python/electronAnalyzer_cfi.py +++ /dev/null @@ -1,13 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer -electronAnalyzer = DQMEDAnalyzer('ElectronAnalyzer', - outputFile = cms.string('electronAnalysisOutput.root'), - REleCut = cms.double(0.1), - mcProducer = cms.string('source'), - superClusterProducer = cms.InputTag("hybridSuperClusters",""), - minElePt = cms.double(5.0), - electronProducer = cms.InputTag("pixelMatchElectrons"), -) - - diff --git a/RecoEgamma/Examples/python/fakeAnalyzerFineBiningParameters_cff.py b/RecoEgamma/Examples/python/fakeAnalyzerFineBiningParameters_cff.py deleted file mode 100644 index 17726db579288..0000000000000 --- a/RecoEgamma/Examples/python/fakeAnalyzerFineBiningParameters_cff.py +++ /dev/null @@ -1,19 +0,0 @@ - -import FWCore.ParameterSet.Config as cms - -fakeAnalyzerFineBiningParameters = cms.PSet( - Nbinxyz = cms.int32(200), - Nbinp = cms.int32(300), Nbinp2D = cms.int32(100), Pmax = cms.double(300.0), - Nbinfhits = cms.int32(30), Fhitsmax = cms.double(30.0), - Nbinlhits = cms.int32(5), Lhitsmax = cms.double(10.0), - Nbineta = cms.int32(250), Nbineta2D = cms.int32(100), Etamin = cms.double(-2.5), Etamax = cms.double(2.5), - Nbindeta = cms.int32(300), Detamin = cms.double(-0.005), Detamax = cms.double(0.005), - Nbindetamatch = cms.int32(200), Nbindetamatch2D = cms.int32(100), Detamatchmin = cms.double(-0.05), Detamatchmax = cms.double(0.05), - Nbinphi = cms.int32(128), Nbinphi2D = cms.int32(128), Phimin = cms.double(-3.2), Phimax = cms.double(3.2), - Nbindphimatch = cms.int32(300), Nbindphimatch2D = cms.int32(100), Dphimatchmin = cms.double(-0.2), Dphimatchmax = cms.double(0.2), - Nbinpt = cms.int32(300), Nbinpt2D = cms.int32(100), Nbinpteff = cms.int32(190), Ptmax = cms.double(100.0), - Nbindphi = cms.int32(300), Dphimin = cms.double(-0.01), Dphimax = cms.double(0.01), - Nbineop = cms.int32(300), Nbineop2D = cms.int32(100), Eopmax = cms.double(5.0), Eopmaxsht = cms.double(3.0), - Nbinmee = cms.int32(300), Meemin = cms.double(0.0), Meemax = cms.double(150.), - Nbinhoe = cms.int32(200), Hoemin = cms.double(0.0), Hoemax = cms.double(0.5) -) diff --git a/RecoEgamma/Examples/python/fakeAnalyzerStdBiningParameters_cff.py b/RecoEgamma/Examples/python/fakeAnalyzerStdBiningParameters_cff.py deleted file mode 100644 index 4dd81cf8133ab..0000000000000 --- a/RecoEgamma/Examples/python/fakeAnalyzerStdBiningParameters_cff.py +++ /dev/null @@ -1,19 +0,0 @@ - -import FWCore.ParameterSet.Config as cms - -fakeAnalyzerStdBiningParameters = cms.PSet( - Nbinxyz = cms.int32(50), - Nbinp = cms.int32(50), Nbinp2D = cms.int32(50), Pmax = cms.double(300.0), - Nbinfhits = cms.int32(30), Fhitsmax = cms.double(30.0), - Nbinlhits = cms.int32(5), Lhitsmax = cms.double(10.0), - Nbineta = cms.int32(50), Nbineta2D = cms.int32(50),Etamin = cms.double(-2.5), Etamax = cms.double(2.5), - Nbindeta = cms.int32(100), Detamin = cms.double(-0.005), Detamax = cms.double(0.005), - Nbindetamatch = cms.int32(100), Nbindetamatch2D = cms.int32(50), Detamatchmin = cms.double(-0.05), Detamatchmax = cms.double(0.05), - Nbinphi = cms.int32(64), Nbinphi2D = cms.int32(32), Phimin = cms.double(-3.2), Phimax = cms.double(3.2), - Nbindphimatch = cms.int32(100), Nbindphimatch2D = cms.int32(50), Dphimatchmin = cms.double(-0.2), Dphimatchmax = cms.double(0.2), - Nbinpt = cms.int32(50), Nbinpt2D = cms.int32(50), Nbinpteff = cms.int32(19),Ptmax = cms.double(100.0), - Nbindphi = cms.int32(100), Dphimin = cms.double(-0.01), Dphimax = cms.double(0.01), - Nbineop = cms.int32(50), Nbineop2D = cms.int32(30), Eopmax = cms.double(5.0), Eopmaxsht = cms.double(3.0), - Nbinmee = cms.int32(100), Meemin = cms.double(0.0), Meemax = cms.double(150.), - Nbinhoe = cms.int32(100), Hoemin = cms.double(0.0), Hoemax = cms.double(0.5), -) diff --git a/RecoEgamma/Examples/python/mcAnalyzerFineBiningParameters_cff.py b/RecoEgamma/Examples/python/mcAnalyzerFineBiningParameters_cff.py deleted file mode 100644 index f97ec9fbe61d0..0000000000000 --- a/RecoEgamma/Examples/python/mcAnalyzerFineBiningParameters_cff.py +++ /dev/null @@ -1,53 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -mcAnalyzerFineBiningParameters = cms.PSet( - - Etamin = cms.double(-2.5), - Etamax = cms.double(2.5), - Phimax = cms.double(3.2), - Phimin = cms.double(-3.2), - Ptmax = cms.double(100.0), - Pmax = cms.double(300.0), - Eopmax = cms.double(5.0), - Eopmaxsht = cms.double(3.0), - Detamin = cms.double(-0.005), - Detamax = cms.double(0.005), - Dphimin = cms.double(-0.01), - Dphimax = cms.double(0.01), - Dphimatchmin = cms.double(-0.2), - Dphimatchmax = cms.double(0.2), - Detamatchmin = cms.double(-0.05), - Detamatchmax = cms.double(0.05), - Fhitsmax = cms.double(30.0), - Lhitsmax = cms.double(10.0), - Nbinxyz = cms.int32(200), - Nbineop2D = cms.int32(100), - Nbinp = cms.int32(300), - Nbineta2D = cms.int32(100), - Nbinfhits = cms.int32(30), - Nbinlhits = cms.int32(5), - Nbinpteff = cms.int32(190), - Nbinphi2D = cms.int32(128), - Nbindetamatch2D = cms.int32(100), - Nbineta = cms.int32(250), - Nbinp2D = cms.int32(100), - Nbindeta = cms.int32(300), - Nbinpt2D = cms.int32(100), - Nbindetamatch = cms.int32(300), - Nbinphi = cms.int32(128), - Nbindphimatch = cms.int32(300), - Nbinpt = cms.int32(300), - Nbindphimatch2D = cms.int32(100), - Nbindphi = cms.int32(300), - Nbineop = cms.int32(300), - Nbinpoptrue = cms.int32(450), - Poptruemin = cms.double(0.3), - Poptruemax = cms.double(1.2), - Nbinmee = cms.int32(300), - Meemin = cms.double(0.0), - Meemax = cms.double(150.), - Nbinhoe = cms.int32(200), - Hoemin = cms.double(0.0), - Hoemax = cms.double(0.5) - -) diff --git a/RecoEgamma/Examples/python/mcAnalyzerStdBiningParameters_cff.py b/RecoEgamma/Examples/python/mcAnalyzerStdBiningParameters_cff.py deleted file mode 100644 index c61eef60ccefd..0000000000000 --- a/RecoEgamma/Examples/python/mcAnalyzerStdBiningParameters_cff.py +++ /dev/null @@ -1,53 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -mcAnalyzerStdBiningParameters = cms.PSet( - - Etamin = cms.double(-2.5), - Etamax = cms.double(2.5), - Phimax = cms.double(3.2), - Phimin = cms.double(-3.2), - Ptmax = cms.double(100.0), - Pmax = cms.double(300.0), - Eopmax = cms.double(5.0), - Eopmaxsht = cms.double(3.0), - Detamin = cms.double(-0.005), - Detamax = cms.double(0.005), - Dphimin = cms.double(-0.01), - Dphimax = cms.double(0.01), - Dphimatchmin = cms.double(-0.2), - Dphimatchmax = cms.double(0.2), - Detamatchmin = cms.double(-0.05), - Detamatchmax = cms.double(0.05), - Fhitsmax = cms.double(30.0), - Lhitsmax = cms.double(10.0), - Nbinxyz = cms.int32(50), - Nbineop2D = cms.int32(30), - Nbinp = cms.int32(50), - Nbineta2D = cms.int32(50), - Nbinfhits = cms.int32(30), - Nbinlhits = cms.int32(5), - Nbinpteff = cms.int32(19), - Nbinphi2D = cms.int32(32), - Nbindetamatch2D = cms.int32(50), - Nbineta = cms.int32(50), - Nbinp2D = cms.int32(50), - Nbindeta = cms.int32(100), - Nbinpt2D = cms.int32(50), - Nbindetamatch = cms.int32(100), - Nbinphi = cms.int32(64), - Nbindphimatch = cms.int32(100), - Nbinpt = cms.int32(50), - Nbindphimatch2D = cms.int32(50), - Nbindphi = cms.int32(100), - Nbineop = cms.int32(50), - Nbinpoptrue = cms.int32(75), - Poptruemin = cms.double(0.0), - Poptruemax = cms.double(1.5), - Nbinmee = cms.int32(100), - Meemin = cms.double(0.0), - Meemax = cms.double(150.), - Nbinhoe = cms.int32(100), - Hoemin = cms.double(0.0), - Hoemax = cms.double(0.5) - -) diff --git a/RecoEgamma/Examples/python/photonsWithConversionsAnalyzer_cfi.py b/RecoEgamma/Examples/python/photonsWithConversionsAnalyzer_cfi.py deleted file mode 100644 index 457472f397532..0000000000000 --- a/RecoEgamma/Examples/python/photonsWithConversionsAnalyzer_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# Author: N. Marinelli, U. of Notre Dame, US -# -photonsWithConversionsAnalyzer = cms.EDAnalyzer("PhotonsWithConversionsAnalyzer", - phoProducer = cms.string('correctedPhotons'), - HistOutFile = cms.untracked.string('analyzer.root'), - moduleLabelMC = cms.untracked.string('source'), - moduleLabelTk = cms.untracked.string('g4SimHits'), - photonCollection = cms.string('correctedPhotonsWithConversions'), - moduleLabelHit = cms.untracked.string('g4SimHits'), - moduleLabelVtx = cms.untracked.string('g4SimHits') -) - - diff --git a/RecoEgamma/Examples/python/simpleConvertedPhotonAnalyzer_cfi.py b/RecoEgamma/Examples/python/simpleConvertedPhotonAnalyzer_cfi.py deleted file mode 100644 index e51445ea3227f..0000000000000 --- a/RecoEgamma/Examples/python/simpleConvertedPhotonAnalyzer_cfi.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# Author: N. Marinelli, U. of Notre Dame, US -# -convertedPhotonAnalyzer = cms.EDAnalyzer("SimpleConvertedPhotonAnalyzer", - convertedPhotonCollection = cms.string('conversions'), - phoProducer = cms.string('photonWithConversions'), - HistOutFile = cms.untracked.string('analyzer.root'), - moduleLabelMC = cms.untracked.string('source'), - moduleLabelTk = cms.untracked.string('g4SimHits'), - moduleLabelHit = cms.untracked.string('g4SimHits'), - moduleLabelVtx = cms.untracked.string('g4SimHits') -) - - diff --git a/RecoEgamma/Examples/python/simplePhotonAnalyzer_cfi.py b/RecoEgamma/Examples/python/simplePhotonAnalyzer_cfi.py deleted file mode 100644 index 4df65dce0e52b..0000000000000 --- a/RecoEgamma/Examples/python/simplePhotonAnalyzer_cfi.py +++ /dev/null @@ -1,19 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# -# Author: N. Marinelli, U. of Notre Dame, US -# -simplePhotonAnalyzer = cms.EDAnalyzer("SimplePhotonAnalyzer", - phoProducer = cms.string('photons'), - mcProducer = cms.string('generatorSmeared'), - endcapEcalHits = cms.InputTag("ecalRecHit","EcalRecHitsEE"), - pfEgammaCandidates = cms.InputTag("particleFlowEGamma"), - # 1=pt10,2=pt35,3=Hgg, 4=gamJetHighEnergy - sample = cms.int32(2), - photonCollection = cms.string(''), - primaryVertexProducer = cms.string('offlinePrimaryVerticesWithBS'), - barrelEcalHits = cms.InputTag("ecalRecHit","EcalRecHitsEB"), - valueMapPhotons = cms.string("valMapAssociationPFEgammaCandidateToPhoton"), -) - - diff --git a/RecoEgamma/Examples/test/.cvsignore b/RecoEgamma/Examples/test/.cvsignore deleted file mode 100644 index 02f11d6eecf4f..0000000000000 --- a/RecoEgamma/Examples/test/.cvsignore +++ /dev/null @@ -1,3 +0,0 @@ -*.olog -*.root -dbs_discovery.txt diff --git a/RecoEgamma/Examples/test/DQMAnalyzer_cfg.py b/RecoEgamma/Examples/test/DQMAnalyzer_cfg.py deleted file mode 100755 index ddd6a4bebea18..0000000000000 --- a/RecoEgamma/Examples/test/DQMAnalyzer_cfg.py +++ /dev/null @@ -1,199 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("readelectrons") -process.load("FWCore.MessageLogger.MessageLogger_cfi") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(10000) -) -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring - ( - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0028/DAA8926E-CE8B-DE11-9654-0030487DF78A.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0022/5471E7BB-0089-DE11-91BC-000423CA664C.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/F6436740-D487-DE11-AC1F-00E0814002B3.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/900B3AE4-9787-DE11-A714-0030485C6962.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8ED78A6B-3C87-DE11-A7DA-00144F0D6806.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8E801D2F-5B87-DE11-A4B8-00144F0D68C8.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8E375136-F08C-DE11-A63F-001E0B47E400.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8C7378E5-F88C-DE11-BDAE-001CC47BEE5E.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8C0D7DAC-5787-DE11-B65D-00144F0D67FC.root', - '/store/mc/Summer09/QCDDiJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0046/FC5BB47E-FF8F-DE11-8DAF-001CC47B8E48.root', - '/store/mc/Summer09/QCDDiJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0046/FC17B2FB-0990-DE11-94E9-0018FEFAA36E.root', - '/store/mc/Summer09/QCDDiJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0046/EAD3BA51-0B90-DE11-8B47-003048C45AEA.root', - '/store/mc/Summer09/QCDDiJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0046/E2A8A1D1-0490-DE11-ABAB-0018FEFAA2D6.root', - '/store/mc/Summer09/QCDDiJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0046/D818499A-0190-DE11-BB2B-0018FEFAA3AC.root', - '/store/mc/Summer09/QCDDiJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0046/D2726869-7D90-DE11-9805-001F29C9C5C4.root', - '/store/mc/Summer09/QCDDiJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0046/D26C66CE-E390-DE11-BCB3-0030487DA364.root', - '/store/mc/Summer09/QCDDiJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0046/C611568D-0B90-DE11-BB1F-003048945312.root', - '/store/mc/Summer09/QCDDiJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0046/C43D56A4-FC8F-DE11-81D2-001F29C95558.root', - '/store/mc/Summer09/QCDDiJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0046/BE1EE0AA-FF8F-DE11-B863-001E68A993EE.root', - '/store/mc/Summer09/QCDDiJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0046/B8309C53-0C90-DE11-8A5B-0018FEFAA3AC.root', - '/store/mc/Summer09/QCDDiJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0046/9A0F8633-0490-DE11-95D2-001F29086E74.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0028/DAA8926E-CE8B-DE11-9654-0030487DF78A.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0022/5471E7BB-0089-DE11-91BC-000423CA664C.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/F6436740-D487-DE11-AC1F-00E0814002B3.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/900B3AE4-9787-DE11-A714-0030485C6962.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8ED78A6B-3C87-DE11-A7DA-00144F0D6806.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8E801D2F-5B87-DE11-A4B8-00144F0D68C8.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8E375136-F08C-DE11-A63F-001E0B47E400.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8C7378E5-F88C-DE11-BDAE-001CC47BEE5E.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8C0D7DAC-5787-DE11-B65D-00144F0D67FC.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0006/C63567A9-DD80-DE11-87D5-001EC9AF17F9.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0006/C4BFA0DD-0F81-DE11-914E-003048775E54.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0006/660A4969-D680-DE11-838B-003048772E0E.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0006/5CFDB41C-9C80-DE11-AE56-001A649700A8.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0006/586087FE-4280-DE11-A151-003048D479E2.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0006/34B667B2-C780-DE11-9E61-003048D47908.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0006/30540CAB-C780-DE11-AF6E-0030485A0556.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0006/1A17EF5D-0281-DE11-919E-001A64970B6C.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0005/B80406C1-ED80-DE11-8652-0030487D2BE4.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0005/A4F5EA5D-0D80-DE11-A495-0030485A0592.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0005/5C11746E-4A80-DE11-B4BE-001A6497108C.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0005/0E218482-5080-DE11-ABEB-001EC9AEEEEB.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0003/5421CDB4-807F-DE11-B52E-00E081B190CA.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0002/24646E05-3C7E-DE11-A4AF-003048D43690.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0001/F80A6B12-A97D-DE11-B897-0030485A053E.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0001/D6474748-9F7D-DE11-AA36-003048775D68.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0001/C0A9E086-4680-DE11-BC67-001EC9AEFC7E.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0001/82201521-CE7D-DE11-A49A-003048779662.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0001/821CEA49-3D7E-DE11-BA93-00E081B190CA.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0001/6C34FEF2-B07D-DE11-9004-0030488C6259.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0001/5EE38A25-A17D-DE11-8B95-00304877248E.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0001/3A962A76-CC7D-DE11-AC96-001A64971014.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/FA879EDF-1F7D-DE11-A45A-001A64971014.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/F61578CF-7B7D-DE11-BE01-001EC9AF22D5.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/F0519B11-6D7D-DE11-B354-001EC9AF2249.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/EED9ADAB-6C7D-DE11-B250-001EC9AEEEEB.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/ECBD9CFE-757D-DE11-A1C6-001EC9B2183F.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/E8D5C7DD-847D-DE11-8ED9-003048779868.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/CAA929DB-067D-DE11-9C47-0030485A0592.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/C82A3F7C-A37D-DE11-B89B-001A649710C0.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/C4DCED72-F07D-DE11-99EE-00E081B190CA.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/BC8D8ED1-207D-DE11-93E5-001A64970E28.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/BAFA6A63-9C7D-DE11-B03C-003048D376EE.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/BA52CA85-A47D-DE11-A7D1-001EC9B209FD.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/AADB5D29-A47D-DE11-8531-001A649710C0.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/A856505C-9C7D-DE11-B6AE-003048D43690.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/A0210253-777D-DE11-91B1-001EC9B3AC2A.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/9C017060-897D-DE11-BF77-003048772E0E.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/96FEED35-997D-DE11-BECE-00E081305C3C.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/808269D7-A47D-DE11-B5C4-001A64970CB4.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/74997A95-8E7D-DE11-B479-003048775D72.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/6E52451C-A37D-DE11-A1E3-00144F1FD0F8.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/641ED9E0-6F7D-DE11-B71E-003048772DC0.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/605162E4-AE7D-DE11-A12D-001EC9B22B53.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/52C8A8F7-5F7D-DE11-9E8D-001EC9AF22D5.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/4C8F0DE1-B47D-DE11-A6A5-001EC9B218A8.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/4859C7B9-207D-DE11-A3A3-001A6478F28C.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/404AB96F-587D-DE11-9F7F-003048772420.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/3A1CBE5E-0C7D-DE11-8954-0030485A04F6.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/34920F8E-FC7D-DE11-9C44-00E081B18CF6.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/32E7564A-0B7D-DE11-B974-0030485A07E2.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/26CC055E-977D-DE11-82E9-0030487721FE.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/269E2C7C-627D-DE11-BEAE-003048772458.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/1E35F4B1-717D-DE11-B654-001EC9AF22D5.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/1ADBB137-787D-DE11-810A-001EC9AF1312.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/12350EDD-1F7D-DE11-B91F-001A649708BC.root', - '/store/mc/Summer09/ZeeJet_Pt80to120/GEN-SIM-RECO/MC_31X_V3-v1/0000/0A09727F-A27D-DE11-9C5B-00144F1FCF80.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0028/DAA8926E-CE8B-DE11-9654-0030487DF78A.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0022/5471E7BB-0089-DE11-91BC-000423CA664C.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/F6436740-D487-DE11-AC1F-00E0814002B3.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/900B3AE4-9787-DE11-A714-0030485C6962.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8ED78A6B-3C87-DE11-A7DA-00144F0D6806.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8E801D2F-5B87-DE11-A4B8-00144F0D68C8.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8E375136-F08C-DE11-A63F-001E0B47E400.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8C7378E5-F88C-DE11-BDAE-001CC47BEE5E.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0021/8C0D7DAC-5787-DE11-B65D-00144F0D67FC.root' - ), - secondaryFileNames = cms.untracked.vstring(), -) - -process.mergedSuperClusters = cms.EDProducer("EgammaSuperClusterMerger", - src = cms.VInputTag(cms.InputTag("correctedHybridSuperClusters"), cms.InputTag("multi5x5SuperClustersWithPreshower")) -) - -from RecoEgamma.Examples.dataAnalyzerStdBiningParameters_cff import * -from RecoEgamma.Examples.dataAnalyzerFineBiningParameters_cff import * - -process.DQMgsfElectronAnalysis = cms.EDAnalyzer("DQMAnalyzer", - beamSpot = cms.InputTag('offlineBeamSpot'), - outputFile = cms.string('DQMtest.root'), - electronCollection = cms.InputTag("gsfElectrons"), - matchingObjectCollection = cms.InputTag("mergedSuperClusters"), - matchingCondition = cms.string("Cone"), - readAOD = cms.bool(False), - - MaxPtMatchingObject = cms.double(100.0), - MaxAbsEtaMatchingObject = cms.double(2.5), - DeltaR = cms.double(0.3), - - Selection = cms.int32(1), # 0=All elec, 1=Etcut, 2=Iso, 3=eId, 4=T&P - MassLow = cms.double(60), - MassHigh = cms.double(120), - TPchecksign = cms.bool(False), - TAGcheckclass = cms.bool(False), - PROBEetcut = cms.bool(False), - PROBEcheckclass = cms.bool(False), - - MinEt = cms.double(15.), - MinPt = cms.double(0.), - MaxAbsEta = cms.double(2.5), - SelectEB = cms.bool(False), - SelectEE = cms.bool(False), - SelectNotEBEEGap = cms.bool(False), - SelectEcalDriven = cms.bool(False), - SelectTrackerDriven = cms.bool(False), - MinEOverPBarrel = cms.double(0.), - MaxEOverPBarrel = cms.double(10000.), - MinEOverPEndcaps = cms.double(0.), - MaxEOverPEndcaps = cms.double(10000.), - MinDetaBarrel = cms.double(0.), - MaxDetaBarrel = cms.double(10000.), - MinDetaEndcaps = cms.double(0.), - MaxDetaEndcaps = cms.double(10000.), - MinDphiBarrel = cms.double(0.), - MaxDphiBarrel = cms.double(10000.), - MinDphiEndcaps = cms.double(0.), - MaxDphiEndcaps = cms.double(10000.), - MinSigIetaIetaBarrel = cms.double(0.), - MaxSigIetaIetaBarrel = cms.double(10000.), - MinSigIetaIetaEndcaps = cms.double(0.), - MaxSigIetaIetaEndcaps = cms.double(10000.), - MaxHoEBarrel = cms.double(10000.), - MaxHoEEndcaps = cms.double(10000.), - MinMVA = cms.double(-10000.), - MaxTipBarrel = cms.double(10000.), - MaxTipEndcaps = cms.double(10000.), - MaxTkIso03 = cms.double(10000.), - MaxHcalIso03Depth1Barrel = cms.double(10000.), - MaxHcalIso03Depth1Endcaps = cms.double(10000.), - MaxHcalIso03Depth2Endcaps = cms.double(10000.), - MaxEcalIso03Barrel = cms.double(10000.), - MaxEcalIso03Endcaps = cms.double(10000.), - - triggerResults = cms.InputTag("TriggerResults::HLT"), - hltPaths = cms.vstring('HLT_Ele10_SW_L1R','HLT_Ele15_SW_L1R','HLT_Ele15_SW_EleId_L1R','HLT_Ele15_SW_LooseTrackIso_L1R','HLT_Ele15_SC15_SW_LooseTrackIso_L1R','HLT_Ele15_SC15_SW_EleId_L1R','HLT_Ele20_SW_L1R','HLT_Ele20_SC15_SW_L1R','HLT_Ele25_SW_L1R','HLT_Ele25_SW_EleId_LooseTrackIso_L1R','HLT_DoubleEle10_SW_L1R'), - - HistosConfigurationData = cms.PSet( - Nbineta = cms.int32(50), Nbineta2D = cms.int32(50), Etamin = cms.double(-2.5), Etamax = cms.double(2.5), - Nbinphi = cms.int32(64), Nbinphi2D = cms.int32(32), Phimax = cms.double(3.2), Phimin = cms.double(-3.2), - Nbinpt = cms.int32(50), Nbinpteff = cms.int32(19), Nbinpt2D = cms.int32(50), Ptmax = cms.double(100.0), - Nbinp = cms.int32(50), Nbinp2D = cms.int32(50), Pmax = cms.double(300.0), - Nbineop = cms.int32(50), Nbineop2D = cms.int32(30), Eopmax = cms.double(5.0), Eopmaxsht = cms.double(3.0), - Nbindeta = cms.int32(100), Detamin = cms.double(-0.005), Detamax = cms.double(0.005), - Nbindphi = cms.int32(100), Dphimin = cms.double(-0.01), Dphimax = cms.double(0.01), - Nbindetamatch = cms.int32(100), Nbindetamatch2D = cms.int32(50), Detamatchmin = cms.double(-0.05), Detamatchmax = cms.double(0.05), - Nbindphimatch = cms.int32(100), Nbindphimatch2D = cms.int32(50), Dphimatchmin = cms.double(-0.2), Dphimatchmax = cms.double(0.2), - Nbinfhits = cms.int32(30), Fhitsmax = cms.double(30.0), - Nbinlhits = cms.int32(5), Lhitsmax = cms.double(10.0), - Nbinxyz = cms.int32(50), - Nbinpoptrue = cms.int32(75), Poptruemin = cms.double(0.0), Poptruemax = cms.double(1.5), - Nbinmee = cms.int32(100), Meemin = cms.double(0.0), Meemax = cms.double(150.), - Nbinhoe = cms.int32(100), Hoemin = cms.double(0.0), Hoemax = cms.double(0.5) - ) -) - -process.p = cms.Path(process.mergedSuperClusters*process.DQMgsfElectronAnalysis) - - diff --git a/RecoEgamma/Examples/test/ElectronSeedMCAnalyzer_cfg.py b/RecoEgamma/Examples/test/ElectronSeedMCAnalyzer_cfg.py deleted file mode 100644 index b3c672af00512..0000000000000 --- a/RecoEgamma/Examples/test/ElectronSeedMCAnalyzer_cfg.py +++ /dev/null @@ -1,38 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("readseeds") - -process.load("Configuration.StandardSequences.RawToDigi_cff") -process.load("Configuration.StandardSequences.L1Reco_cff") -process.load("Configuration.StandardSequences.Reconstruction_cff") -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.MagneticField_cff") - -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.load("Configuration.EventContent.EventContent_cff") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(10) -) -process.source = cms.Source ("PoolSource", - fileNames = cms.untracked.vstring ( - '/store/relval/CMSSW_3_1_0_pre9/RelValZEE/GEN-SIM-DIGI-RAW-HLTDEBUG/IDEAL_31X_v1/0007/F8A5EC4A-F64E-DE11-8160-001D09F23A20.root' - ) -) -process.electronSeedAnalysis = cms.EDAnalyzer("ElectronSeedAnalyzer", - beamSpot = cms.InputTag('offlineBeamSpot'), - inputCollection = cms.InputTag("ecalDrivenElectronSeeds"), -) - -process.mylocalreco = cms.Sequence(process.trackerlocalreco*process.calolocalreco*process.particleFlowCluster) -process.myglobalreco = cms.Sequence(process.offlineBeamSpot+process.recopixelvertexing*process.ckftracks+process.ecalClusters+process.caloTowersRec*process.vertexreco) -process.myelectronseeding = cms.Sequence(process.trackerDrivenElectronSeeds*process.ecalDrivenElectronSeeds*process.electronMergedSeeds) -process.myelectrontracking = cms.Sequence(process.electronCkfTrackCandidates*process.electronGsfTracks) - -#process.p = cms.Path(process.RawToDigi*process.mylocalreco*process.myglobalreco*process.myelectronseeding*process.myelectrontracking*process.particleFlowReco*process.pfElectronTranslator*process.gsfElectronSequence*) -process.p = cms.Path(process.RawToDigi*process.mylocalreco*process.myglobalreco*process.myelectronseeding*process.electronSeedAnalysis) - - -process.GlobalTag.globaltag = 'MC_31X_V3::All' - - diff --git a/RecoEgamma/Examples/test/GsfElectronDataAnalyzer_cfg.py b/RecoEgamma/Examples/test/GsfElectronDataAnalyzer_cfg.py deleted file mode 100644 index e7245e5ee6966..0000000000000 --- a/RecoEgamma/Examples/test/GsfElectronDataAnalyzer_cfg.py +++ /dev/null @@ -1,81 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("readelectrons") -process.load("FWCore.MessageLogger.MessageLogger_cfi") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(10) -) -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring - ( - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0028/DAA8926E-CE8B-DE11-9654-0030487DF78A.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0027/E6394B5A-338B-DE11-A710-00151764221C.root', - '/store/mc/Summer09/Zee/GEN-SIM-RECO/MC_31X_V3-v1/0027/B00D1565-438B-DE11-A443-001E682F8528.root' - ), - secondaryFileNames = cms.untracked.vstring(), -) - -process.mergedSuperClusters = cms.EDProducer("EgammaSuperClusterMerger", - src = cms.VInputTag(cms.InputTag("correctedHybridSuperClusters"), cms.InputTag("multi5x5SuperClustersWithPreshower")) -) - -from RecoEgamma.Examples.dataAnalyzerStdBiningParameters_cff import * -from RecoEgamma.Examples.dataAnalyzerFineBiningParameters_cff import * - -process.gsfElectronAnalysis = cms.EDAnalyzer("GsfElectronDataAnalyzer", - beamSpot = cms.InputTag('offlineBeamSpot'), - electronCollection = cms.InputTag("gsfElectrons"), - readAOD = cms.bool(False), - outputFile = cms.string('gsfElectronHistos_data_ZeeSummer09.root'), - triggerResults = cms.InputTag("TriggerResults::HLT"), - hltPaths = cms.vstring('HLT_Ele10_SW_L1R','HLT_Ele15_SW_L1R','HLT_Ele15_SW_EleId_L1R','HLT_Ele15_SW_LooseTrackIso_L1R','HLT_Ele15_SC15_SW_LooseTrackIso_L1R','HLT_Ele15_SC15_SW_EleId_L1R','HLT_Ele20_SW_L1R','HLT_Ele20_SC15_SW_L1R','HLT_Ele25_SW_L1R','HLT_Ele25_SW_EleId_LooseTrackIso_L1R','HLT_DoubleEle10_SW_L1R'), - matchingObjectCollection = cms.InputTag("mergedSuperClusters"), - matchingCondition = cms.string("Cone"), - DeltaR = cms.double(0.3), - MaxPtMatchingObject = cms.double(100.0), - MaxAbsEtaMatchingObject = cms.double(2.5), - MinEt = cms.double(4.), - MinPt = cms.double(0.), - MaxAbsEta = cms.double(2.5), - SelectEB = cms.bool(False), - SelectEE = cms.bool(False), - SelectNotEBEEGap = cms.bool(False), - SelectEcalDriven = cms.bool(False), - SelectTrackerDriven = cms.bool(False), - MinEOverPBarrel = cms.double(0.), - MaxEOverPBarrel = cms.double(10000.), - MinEOverPEndcaps = cms.double(0.), - MaxEOverPEndcaps = cms.double(10000.), - MinDetaBarrel = cms.double(0.), - MaxDetaBarrel = cms.double(10000.), - MinDetaEndcaps = cms.double(0.), - MaxDetaEndcaps = cms.double(10000.), - MinDphiBarrel = cms.double(0.), - MaxDphiBarrel = cms.double(10000.), - MinDphiEndcaps = cms.double(0.), - MaxDphiEndcaps = cms.double(10000.), - MinSigIetaIetaBarrel = cms.double(0.), - MaxSigIetaIetaBarrel = cms.double(10000.), - MinSigIetaIetaEndcaps = cms.double(0.), - MaxSigIetaIetaEndcaps = cms.double(10000.), - MaxHoEBarrel = cms.double(10000.), - MaxHoEEndcaps = cms.double(10000.), - MinMVA = cms.double(-10000.), - MaxTipBarrel = cms.double(10000.), - MaxTipEndcaps = cms.double(10000.), - MaxTkIso03 = cms.double(10000.), - MaxHcalIso03Depth1Barrel = cms.double(10000.), - MaxHcalIso03Depth1Endcaps = cms.double(10000.), - MaxHcalIso03Depth2Endcaps = cms.double(10000.), - MaxEcalIso03Barrel = cms.double(10000.), - MaxEcalIso03Endcaps = cms.double(10000.), - HistosConfigurationData = cms.PSet( - dataAnalyzerStdBiningParameters - #dataAnalyzerFineBiningParameters - ) -) - -process.p = cms.Path(process.mergedSuperClusters*process.gsfElectronAnalysis) - - diff --git a/RecoEgamma/Examples/test/GsfElectronFakeAnalyzer_cfg.py b/RecoEgamma/Examples/test/GsfElectronFakeAnalyzer_cfg.py deleted file mode 100644 index 4a8666c20e7c0..0000000000000 --- a/RecoEgamma/Examples/test/GsfElectronFakeAnalyzer_cfg.py +++ /dev/null @@ -1,42 +0,0 @@ - -import sys -import os - -import dbs_discovery - -import FWCore.ParameterSet.Config as cms - -process = cms.Process("readelectrons") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - -process.source = cms.Source ("PoolSource", - fileNames = cms.untracked.vstring(), - secondaryFileNames = cms.untracked.vstring() -) - -process.source.fileNames.extend(dbs_discovery.search()) - -from RecoEgamma.Examples.fakeAnalyzerStdBiningParameters_cff import * -from RecoEgamma.Examples.fakeAnalyzerFineBiningParameters_cff import * - -process.gsfElectronFakeAnalysis = cms.EDAnalyzer("GsfElectronFakeAnalyzer", - beamSpot = cms.InputTag('offlineBeamSpot'), - electronCollection = cms.InputTag("gsfElectrons"), - matchingObjectCollection = cms.InputTag("iterativeCone5CaloJets"), - readAOD = cms.bool(False), - outputFile = cms.string(os.environ['TEST_OUTPUT_FILE']), - MaxPt = cms.double(100.0), - DeltaR = cms.double(0.3), - MaxAbsEta = cms.double(2.5), - HistosConfigurationFake = cms.PSet( - fakeAnalyzerStdBiningParameters - #fakeAnalyzerFineBiningParameters - ) -) - -process.p = cms.Path(process.gsfElectronFakeAnalysis) - - diff --git a/RecoEgamma/Examples/test/GsfElectronMCAnalyzerElID_cfg.py b/RecoEgamma/Examples/test/GsfElectronMCAnalyzerElID_cfg.py deleted file mode 100644 index 09d9076b10d56..0000000000000 --- a/RecoEgamma/Examples/test/GsfElectronMCAnalyzerElID_cfg.py +++ /dev/null @@ -1,67 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("readelectrons") -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) -process.source = cms.Source ("PoolSource", - fileNames = cms.untracked.vstring ( - '/store/relval/CMSSW_2_2_0/RelValSingleElectronPt35/GEN-SIM-RECO/IDEAL_V9_v1/0000/587EC8EF-B4B9-DD11-AC52-001617C3B65A.root', - '/store/relval/CMSSW_2_2_0/RelValSingleElectronPt35/GEN-SIM-RECO/IDEAL_V9_v1/0000/9E464300-76B9-DD11-B526-000423D98C20.root' - ) -) - -process.gsfElectronAnalysis = cms.EDAnalyzer("GsfElectronMCAnalyzerElID", - electronCollection = cms.InputTag("gsfElectrons"), - eidValueMapName = cms.string("eidLoose"), - #eidValueMapName = cms.string("eidRobustLoose"), - #eidValueMapName = cms.string("eidTight"), - #eidValueMapName = cms.string("eidRobustTight"), - mcTruthCollection = cms.InputTag("source"), - outputFile = cms.string('gsfElectronHistos_mc_elID.root'), - MaxPt = cms.double(100.0), - DeltaR = cms.double(0.05), - MaxAbsEta = cms.double(2.5), - Etamin = cms.double(-2.5), - Etamax = cms.double(2.5), - Phimax = cms.double(3.2), - Phimin = cms.double(-3.2), - Ptmax = cms.double(100.0), - Pmax = cms.double(300.0), - Eopmax = cms.double(5.0), - Eopmaxsht = cms.double(3.0), - Detamin = cms.double(-0.005), - Detamax = cms.double(0.005), - Dphimin = cms.double(-0.01), - Dphimax = cms.double(0.01), - Dphimatchmin = cms.double(-0.2), - Dphimatchmax = cms.double(0.2), - Detamatchmin = cms.double(-0.05), - Detamatchmax = cms.double(0.05), - Fhitsmax = cms.double(20.0), - Lhitsmax = cms.double(10.0), - Nbinxyz = cms.int32(50), - Nbineop2D = cms.int32(30), - Nbinp = cms.int32(50), - Nbineta2D = cms.int32(50), - Nbinfhits = cms.int32(20), - Nbinlhits = cms.int32(5), - Nbinpteff = cms.int32(19), - Nbinphi2D = cms.int32(32), - Nbindetamatch2D = cms.int32(50), - Nbineta = cms.int32(50), - Nbinp2D = cms.int32(50), - Nbindeta = cms.int32(100), - Nbinpt2D = cms.int32(50), - Nbindetamatch = cms.int32(100), - Nbinphi = cms.int32(64), - Nbindphimatch = cms.int32(100), - Nbinpt = cms.int32(50), - Nbindphimatch2D = cms.int32(50), - Nbindphi = cms.int32(100), - Nbineop = cms.int32(50) -) - -process.p = cms.Path(process.gsfElectronAnalysis) - - diff --git a/RecoEgamma/Examples/test/GsfElectronMCAnalyzer_cfg.py b/RecoEgamma/Examples/test/GsfElectronMCAnalyzer_cfg.py deleted file mode 100644 index 17ad60064a501..0000000000000 --- a/RecoEgamma/Examples/test/GsfElectronMCAnalyzer_cfg.py +++ /dev/null @@ -1,66 +0,0 @@ - -import httplib, urllib, urllib2, types, string, os, sys -import FWCore.ParameterSet.Config as cms - -code_release = "CMSSW_3_4_0_pre5" -data_sample = "RelValSingleElectronPt35" -data_set_like = "*MC_3XY_V14-v1*-RECO*" - -process = cms.Process("readelectrons") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - -process.source = cms.Source ("PoolSource", - fileNames = cms.untracked.vstring(), - secondaryFileNames = cms.untracked.vstring(), -) - -from RecoEgamma.Examples.mcAnalyzerStdBiningParameters_cff import * -from RecoEgamma.Examples.mcAnalyzerFineBiningParameters_cff import * - -process.gsfElectronAnalysis = cms.EDAnalyzer("GsfElectronMCAnalyzer", - electronCollection = cms.InputTag("gsfElectrons"), - mcTruthCollection = cms.InputTag("genParticles"), - readAOD = cms.bool(False), - outputFile = cms.string(data_sample+".GsfElectronMCAnalyzer.root"), - MaxPt = cms.double(100.0), - DeltaR = cms.double(0.05), - MatchingID = cms.vint32(11,-11), - MatchingMotherID = cms.vint32(23,24,-24,32), - MaxAbsEta = cms.double(2.5), - HistosConfigurationMC = cms.PSet( - mcAnalyzerStdBiningParameters - #mcAnalyzerFineBiningParameters - ) -) - -process.p = cms.Path(process.gsfElectronAnalysis) - -#============================================== -# the code below get the list of files from DBS -#============================================== - -url = "https://cmsweb.cern.ch:443/dbs_discovery/aSearch" -input = "find file where release = " + code_release -input = input + " and primds = " + data_sample -input = input + " and dataset like " + data_set_like -final_input = urllib.quote(input) ; -params = { - 'dbsInst':'cms_dbs_prod_global', - 'html':0,'caseSensitive':'on','_idx':0,'pagerStep':-1, - 'userInput':final_input, - 'xml':0,'details':0,'cff':0,'method':'dbsapi' -} -data = urllib.urlencode(params,doseq=True) -headers = { - 'User-Agent':'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)', - 'Accept':'text/plain' -} -req = urllib2.Request(url, data, headers) -for line in urllib2.urlopen(req).read().split("\n"): - if line != "" and line[0] =="/": - process.source.fileNames.append(line) - - diff --git a/RecoEgamma/Examples/test/GsfElectronMCFakeAnalyzer_cfg.py b/RecoEgamma/Examples/test/GsfElectronMCFakeAnalyzer_cfg.py deleted file mode 100644 index f3b5632c57d2d..0000000000000 --- a/RecoEgamma/Examples/test/GsfElectronMCFakeAnalyzer_cfg.py +++ /dev/null @@ -1,39 +0,0 @@ - -import sys -import os -import dbs_discovery -import FWCore.ParameterSet.Config as cms - -process = cms.Process("readelectrons") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) - -process.source = cms.Source ("PoolSource", - fileNames = cms.untracked.vstring(), - secondaryFileNames = cms.untracked.vstring() -) - -process.source.fileNames.extend(dbs_discovery.search()) - -from RecoEgamma.Examples.fakeAnalyzerStdBiningParameters_cff import * -from RecoEgamma.Examples.fakeAnalyzerFineBiningParameters_cff import * - -process.gsfElectronFakeAnalysis = cms.EDAnalyzer("GsfElectronMCFakeAnalyzer", - beamSpot = cms.InputTag('offlineBeamSpot'), - electronCollection = cms.InputTag("gsfElectrons"), - matchingObjectCollection = cms.InputTag("iterativeCone5GenJets"), - readAOD = cms.bool(False), - outputFile = cms.string(os.environ['TEST_OUTPUT_FILE']), - MaxPt = cms.double(100.0), - DeltaR = cms.double(0.3), - MaxAbsEta = cms.double(2.5), - HistosConfigurationFake = cms.PSet( - fakeAnalyzerStdBiningParameters - #fakeAnalyzerFineBiningParameters - ) -) - -process.p = cms.Path(process.gsfElectronFakeAnalysis) - diff --git a/RecoEgamma/Examples/test/GsfElectronRedoFromCore_cfg.py b/RecoEgamma/Examples/test/GsfElectronRedoFromCore_cfg.py deleted file mode 100644 index 565398849884a..0000000000000 --- a/RecoEgamma/Examples/test/GsfElectronRedoFromCore_cfg.py +++ /dev/null @@ -1,54 +0,0 @@ - -import sys -import os - -import dbs_discovery - -import FWCore.ParameterSet.Config as cms - -from TrackingTools.Configuration.TrackingTools_cff import * - -process = cms.Process("electrons") - -process.load("Configuration.StandardSequences.Services_cff") -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.MagneticField_cff") -process.load("FWCore.MessageService.MessageLogger_cfi") - -process.load("Configuration.StandardSequences.RawToDigi_cff") -process.load("Configuration.StandardSequences.Reconstruction_cff") - -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.load("Configuration.EventContent.EventContent_cff") - -process.source = cms.Source ("PoolSource", - fileNames = cms.untracked.vstring(), - secondaryFileNames = cms.untracked.vstring(), -) - -process.source.fileNames.extend(dbs_discovery.search()) -process.maxEvents = cms.untracked.PSet(input = cms.untracked.int32(-1)) - -process.out = cms.OutputModule("PoolOutputModule", - outputCommands = cms.untracked.vstring('drop *', - 'keep recoBeamSpot*_*_*_*', - 'keep recoGenParticle*_*_*_*', - 'keep *HepMCProduct_*_*_*', - 'keep recoElectronSeed*_*_*_*', - 'keep recoSuperCluster*_*_*_*', - 'keep recoTrack*_*_*_*', - 'keep recoGsfTrack*_*_*_*', - 'keep *_iterativeCone5CaloJets_*_*', - 'keep *_gsfElectronCores_*_*', - 'keep *_gsfElectrons_*_*' - ), - fileName = cms.untracked.string(os.environ['TEST_OUTPUT_FILE']) -) - -process.p = cms.Path(process.gsfElectrons) -process.outpath = cms.EndPath(process.out) -process.out.fileName = cms.untracked.string(os.environ['TEST_OUTPUT_FILE']) -process.GlobalTag.globaltag = os.environ['TEST_GLOBAL_TAG']+'::All' - - - diff --git a/RecoEgamma/Examples/test/GsfElectronRedoFromRaw_cfg.py b/RecoEgamma/Examples/test/GsfElectronRedoFromRaw_cfg.py deleted file mode 100644 index 0bcb54d7b78ef..0000000000000 --- a/RecoEgamma/Examples/test/GsfElectronRedoFromRaw_cfg.py +++ /dev/null @@ -1,57 +0,0 @@ -import sys -import os -import dbs_discovery -import FWCore.ParameterSet.Config as cms - -from TrackingTools.Configuration.TrackingTools_cff import * - -process = cms.Process("electrons") - -process.load("Configuration.StandardSequences.Services_cff") -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Configuration.StandardSequences.MagneticField_38T_cff") -process.load("FWCore.MessageService.MessageLogger_cfi") - -process.load("Configuration.StandardSequences.RawToDigi_cff") -process.load("Configuration.StandardSequences.Reconstruction_cff") - -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.load("Configuration.EventContent.EventContent_cff") - -process.source = cms.Source ("PoolSource", - fileNames = cms.untracked.vstring(), - secondaryFileNames = cms.untracked.vstring(), -) - -process.source.fileNames.extend(dbs_discovery.search()) -process.maxEvents = cms.untracked.PSet(input = cms.untracked.int32(-1)) - -process.out = cms.OutputModule("PoolOutputModule", - outputCommands = cms.untracked.vstring('drop *', - 'keep recoBeamSpot*_*_*_*', - 'keep recoGenParticle*_*_*_*', - 'keep *HepMCProduct_*_*_*', - 'keep recoElectronSeed*_*_*_*', - 'keep recoSuperCluster*_*_*_*', - 'keep recoTrack*_*_*_*', - 'keep recoGsfTrack*_*_*_*', - 'keep *_iterativeCone5GenJets_*_*', - 'keep *_iterativeCone5CaloJets_*_*', - 'keep *_gsfElectronCores_*_*', - 'keep *_gsfElectrons_*_*' - ), - fileName = cms.untracked.string(os.environ['TEST_OUTPUT_FILE']) -) - -process.mylocalreco = cms.Sequence(process.trackerlocalreco*process.calolocalreco) -process.myglobalreco = cms.Sequence(process.offlineBeamSpot+process.recopixelvertexing*process.ckftracks+process.ecalClusters+process.caloTowersRec*process.vertexreco*process.particleFlowCluster) -process.myelectronseeding = cms.Sequence(process.trackerDrivenElectronSeeds*process.ecalDrivenElectronSeeds*process.electronMergedSeeds) -process.myelectrontracking = cms.Sequence(process.electronCkfTrackCandidates*process.electronGsfTracks) - -process.p = cms.Path(process.RawToDigi*process.mylocalreco*process.myglobalreco*process.myelectronseeding*process.myelectrontracking*process.particleFlowReco*process.pfElectronTranslator*process.gsfElectronSequence) - -process.outpath = cms.EndPath(process.out) -process.GlobalTag.globaltag = os.environ['TEST_GLOBAL_TAG']+'::All' - - - diff --git a/RecoEgamma/Examples/test/OvalFile b/RecoEgamma/Examples/test/OvalFile deleted file mode 100644 index dcee060dd5cff..0000000000000 --- a/RecoEgamma/Examples/test/OvalFile +++ /dev/null @@ -1,298 +0,0 @@ -The variables immediatly below are internal values for this test suite. -The difffile tag implies that after each run the eventual file gsfElectronHistos.root is automatically -renamed as target.olog.gsfElectronHistos.root . This way, we can use the same output file -name for all the cmsRun configurations, yet keeping a separate copy of each kind of -execution. - - - - -The DBS_* variables are configuration variables for dbs_discovery.py, -which prepares and send a query to the Data Discovery web server, -and receive as a result the corresponding list of input data files. - - - - -The VAL_* variables are configuration variables for newvalidation.csh, -which compares the histograms from two releases. newvalidation.csh relies -on the ROOT script newvalidation.C. - - - - -%IMPORTANT% If we do not set specific VAL_REF_File values below, newvalidation.csh will -%IMPORTANT% compare the current histograms with the root files stored as ref in CVS. In such -%IMPORTANT% a case, the VAL_REF_RELEASE just above must be given the value corresponding -%IMPORTANT% to those ref file. We would like that the release of this file in the head -%IMPORTANT% of CVS contains the rigth value for the corresponding head release of root -%IMPORTANT% reference files. If you change the value of VAL_REF_RELEASE above and various -%IMPORTANT% VAL_REF_FILE below for a specific validation with specific ref files, please -%IMPORTANT% undo the changes before committing anything, so that CVS head always contains -%IMPORTANT% a consistent default configuration - -The tags below are defining which are the output lines of reference, to be compared -from one execution to another. Currently, for each TH1 histogram, we require a constant -number of entries, and no more than 10% change on each histogram sum. - - - - - - - - - -Here comes the concrete executables to run. They are split among few different -environments, each one defining the relevant variales for a given data sample. -Running dbs_discovery.py is only usefull to check the correctness of the list of -input data files returned by the data discovery web server. We guess that from -time to time we will have to upgrade the values DBS_* variable so to keep in -touch with changes in data catalog structure. - - -/tmp/chamont/RelValSingleElectronPt10-RECO.root -/tmp/chamont/RelValSingleElectronPt35-RECO.root -/tmp/chamont/RelValTTbar-RECO.root -/tmp/chamont/RelValZEE-MC-RECO.root -/tmp/chamont/RelValZEE-STARTUP-RECO.root -/tmp/chamont/RelValQCD_Pt_80_120-RECO.root - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -================================================================================ -This set of targets is made to redo the electrons -with the local modified code. -================================================================================ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -================================================================================ -This set of targets is made for the full/fast comparison. -================================================================================ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - - - This set of targets is made for the full/fast comparison. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/RecoEgamma/Examples/test/SimplePhotonAnalyzer_cfg.py b/RecoEgamma/Examples/test/SimplePhotonAnalyzer_cfg.py deleted file mode 100644 index c25ada7d27add..0000000000000 --- a/RecoEgamma/Examples/test/SimplePhotonAnalyzer_cfg.py +++ /dev/null @@ -1,59 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("simplePhotonAnalyzer") -process.load('Configuration/StandardSequences/GeometryPilot2_cff') -process.load("Configuration.StandardSequences.MagneticField_38T_cff") -process.load("Geometry.TrackerGeometryBuilder.trackerGeometry_cfi") -process.load("RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi") -process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi") -process.load("RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi") -process.load("SimGeneral.MixingModule.mixNoPU_cfi") -process.load("TrackingTools.TransientTrack.TransientTrackBuilder_cfi") -process.load("DQMServices.Components.MEtoEDMConverter_cfi") -process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") -process.load("RecoEgamma.Examples.simplePhotonAnalyzer_cfi") - -process.GlobalTag.globaltag = 'MC_31X_V9::All' - - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(3000) -) - -process.TFileService = cms.Service("TFileService", - fileName = cms.string('simplePhotonAnalysis.root') - -) - -from RecoEgamma.Examples.simplePhotonAnalyzer_cfi import * -simplePhotonAnalyzer.sample=3 - - -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - -# official RelVal 334 Single Gamma Pt35 - # '/store/relval/CMSSW_3_3_4/RelValSingleGammaPt35/GEN-SIM-RECO/MC_31X_V9-v1/0001/BC77B293-6BD5-DE11-9ADE-0018F3D09660.root', - # '/store/relval/CMSSW_3_3_4/RelValSingleGammaPt35/GEN-SIM-RECO/MC_31X_V9-v1/0000/023E8FA1-29D5-DE11-96B3-003048678F74.root' - - -# official RelVal 334 H130GGgluonfusio - - '/store/relval/CMSSW_3_3_4/RelValH130GGgluonfusion/GEN-SIM-RECO/STARTUP3X_V8A-v1/0001/F4AEE6DD-64D5-DE11-B4DE-002618943843.root', - '/store/relval/CMSSW_3_3_4/RelValH130GGgluonfusion/GEN-SIM-RECO/STARTUP3X_V8A-v1/0000/7C10B2AF-38D5-DE11-8A42-003048678ADA.root', - '/store/relval/CMSSW_3_3_4/RelValH130GGgluonfusion/GEN-SIM-RECO/STARTUP3X_V8A-v1/0000/7A92493F-37D5-DE11-8EAE-001731AF68B9.root', - '/store/relval/CMSSW_3_3_4/RelValH130GGgluonfusion/GEN-SIM-RECO/STARTUP3X_V8A-v1/0000/6026AF77-38D5-DE11-987B-0017319C95D6.root', - '/store/relval/CMSSW_3_3_4/RelValH130GGgluonfusion/GEN-SIM-RECO/STARTUP3X_V8A-v1/0000/563B7851-3AD5-DE11-A44E-0018F3D0963C.root', - '/store/relval/CMSSW_3_3_4/RelValH130GGgluonfusion/GEN-SIM-RECO/STARTUP3X_V8A-v1/0000/2863B76F-38D5-DE11-9817-0018F3D0968C.root' - - - ) -) - - - -process.p1 = cms.Path(process.simplePhotonAnalyzer) -process.schedule = cms.Schedule(process.p1) - - - diff --git a/RecoEgamma/Examples/test/SimplePi0DiscAnalyzer_cfg.py b/RecoEgamma/Examples/test/SimplePi0DiscAnalyzer_cfg.py deleted file mode 100644 index bde09c513c48d..0000000000000 --- a/RecoEgamma/Examples/test/SimplePi0DiscAnalyzer_cfg.py +++ /dev/null @@ -1,37 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -process = cms.Process("readelectrons") -process.load("FWCore.MessageLogger.MessageLogger_cfi") -process.load("Configuration.StandardSequences.MagneticField_38T_cff") -process.load("Configuration.StandardSequences.Geometry_cff") -process.load("Geometry.TrackerGeometryBuilder.trackerGeometry_cfi") -process.load("RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi") -process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi") -process.load("RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi") -process.load("SimGeneral.TrackingAnalysis.trackingParticles_cfi") -process.load("SimTracker.TrackAssociatorProducers.trackAssociatorByHits_cfi") -process.load("SimGeneral.MixingModule.mixNoPU_cfi") -process.load("DQMServices.Components.MEtoEDMConverter_cfi") -process.load("RecoEcal.EgammaClusterProducers.preshowerClusterShape_cfi") -process.load("EgammaAnalysis.PhotonIDProducers.piZeroDiscriminators_cfi") - -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(3000) -) -process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring ( - '/store/relval/CMSSW_3_3_6/RelValSingleGammaPt35/GEN-SIM-RECO/MC_3XY_V9A-v1/0008/6CF4E2D9-2CE4-DE11-ADEA-001731EF61B4.root' -# '/store/relval/CMSSW_3_1_4/RelValSingleGammaPt35/GEN-SIM-RECO/MC_31X_V3-v1/0005/6C81A44F-74B0-DE11-818C-001D09F282F5.root' - ) -) -process.simplePi0DiscAnalyzer = cms.EDAnalyzer("SimplePi0DiscAnalyzer", - phoProducer = cms.string('photons'), - photonCollection = cms.string(''), - outputFile = cms.string('/tmp/akyriaki/SingleGammaPt35_CMSSW_3_3_6_NNoutput.root') -# outputFile = cms.string('/tmp/akyriaki/SingleGammaPt35_CMSSW_3_1_4_NNoutput.root') -# outputFile = cms.string('/tmp/akyriaki/Zgamma_Official_Summer09_Photon_NNoutput.root') -) - -process.p1 = cms.Path(process.preshowerClusterShape*process.piZeroDiscriminators*process.simplePi0DiscAnalyzer) -process.schedule = cms.Schedule(process.p1) - diff --git a/RecoEgamma/Examples/test/dbs_discovery.py b/RecoEgamma/Examples/test/dbs_discovery.py deleted file mode 100755 index 776dc366e5029..0000000000000 --- a/RecoEgamma/Examples/test/dbs_discovery.py +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/env python - -from __future__ import print_function -import httplib, urllib, urllib2, types, string, os, sys - -# return the list of files obtained from the data discovery and based upon environnement variables: -# DBS_RELEASE, for example CMSSW_2_2_0_pre1 -# DBS_SAMPLE, for example RelValSingleElectronPt35 -# DBS_COND , for example MC_31X_V2-v1 -# DBS_TIER , for example RECO - -def search(): - - if os.environ['DBS_RELEASE'] == "LOCAL": - result = [] - for line in open('dbs_discovery.txt').readlines(): - line = line.strip() - if line == "": continue - if line.find(os.environ['DBS_SAMPLE'])== -1: continue - if line.find(os.environ['DBS_COND'])== -1: continue - if line.find(os.environ['DBS_TIER'])== -1: continue - result.append('file:'+line) - else: - url = "https://cmsweb.cern.ch:443/dbs_discovery/aSearch" - if os.environ['DBS_RELEASE'] != "Any": - input = "find file where release = " + os.environ['DBS_RELEASE'] - if os.environ['DBS_SAMPLE'] != "Any": - input = input + " and primds = " + os.environ['DBS_SAMPLE'] - input = input + " and dataset like *" + os.environ['DBS_COND'] + "*" + os.environ['DBS_TIER'] + "*" - final_input = urllib.quote(input) ; - - agent = "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)" - ctypes = "text/plain" - headers = { 'User-Agent':agent, 'Accept':ctypes} - params = { 'dbsInst':'cms_dbs_prod_global', - 'html':0,'caseSensitive':'on','_idx':0,'pagerStep':-1, - 'userInput':final_input, - 'xml':0,'details':0,'cff':0,'method':'dbsapi'} - data = urllib.urlencode(params,doseq=True) - req = urllib2.Request(url, data, headers) - data = "" - - try: - response = urllib2.urlopen(req) - data = response.read() - except urllib2.HTTPError as e: - if e.code==201: - print(e.headers) - print(e.msg) - pass - else: - raise e - - result = [] - for line in data.split("\n"): - if line != "" and line[0] =="/": - result.append(line) - - return result - -if __name__ == "__main__": - for file in search(): - print(file) - - - - diff --git a/RecoEgamma/Examples/test/eleValidation.C b/RecoEgamma/Examples/test/eleValidation.C deleted file mode 100644 index 0ad627c48ed54..0000000000000 --- a/RecoEgamma/Examples/test/eleValidation.C +++ /dev/null @@ -1,519 +0,0 @@ -{ - // style - - gROOT->Reset(); - - // style: - TStyle *tdrStyle = new TStyle("tdrStyle", "Style for P-TDR"); - - //For the canvas: - tdrStyle->SetCanvasBorderMode(0); - tdrStyle->SetCanvasColor(kWhite); - tdrStyle->SetCanvasDefH(600); - //Height of canvas - tdrStyle->SetCanvasDefW(800); //Width of canvas - tdrStyle->SetCanvasDefX(0); //POsition on screen - tdrStyle->SetCanvasDefY(0); - - // For the Pad: - tdrStyle->SetPadBorderMode(0); - // tdrStyle->SetPadBorderSize(Width_t size = 1); - tdrStyle->SetPadColor(kWhite); - tdrStyle->SetPadGridX(false); - tdrStyle->SetPadGridY(false); - tdrStyle->SetGridColor(0); - tdrStyle->SetGridStyle(3); - tdrStyle->SetGridWidth(1); - - //For the frame: - tdrStyle->SetFrameBorderMode(0); - tdrStyle->SetFrameBorderSize(1); - tdrStyle->SetFrameFillColor(0); - tdrStyle->SetFrameFillStyle(0); - tdrStyle->SetFrameLineColor(1); - tdrStyle->SetFrameLineStyle(1); - tdrStyle->SetFrameLineWidth(1); - - // For the histo: - tdrStyle->SetHistLineColor(1); - tdrStyle->SetHistLineStyle(0); - tdrStyle->SetHistLineWidth(2); - tdrStyle->SetEndErrorSize(2); - //tdrStyle->SetErrorMarker(20); - tdrStyle->SetErrorX(0.); - tdrStyle->SetMarkerStyle(8); - - // For the statistics box: - tdrStyle->SetOptFile(0); - //tdrStyle->SetOptStat(1); - tdrStyle->SetOptStat(0); - tdrStyle->SetStatColor(kWhite); - //tdrStyle->SetStatFont(42); - //tdrStyle->SetStatFontSize(0.025); - //tdrStyle->SetStatTextColor(1); - //tdrStyle->SetStatFormat("6.4g"); - //tdrStyle->SetStatBorderSize(1); - //tdrStyle->SetStatH(.1); - //tdrStyle->SetStatW(.15); - - // tdrStyle->SetStatX(.9); - // tdrStyle->SetStatY(.9); - - // For the Global title: - tdrStyle->SetOptTitle(0); - tdrStyle->SetTitleFont(42); - tdrStyle->SetTitleColor(1); - tdrStyle->SetTitleTextColor(1); - tdrStyle->SetTitleFillColor(10); - tdrStyle->SetTitleFontSize(0.05); - - // For the axis titles: - tdrStyle->SetTitleColor(1, "XYZ"); - tdrStyle->SetTitleFont(42, "XYZ"); - // tdrStyle->SetTitleSize(0.06, "XYZ"); - tdrStyle->SetTitleSize(0.05, "XYZ"); - tdrStyle->SetTitleXOffset(0.9); - // tdrStyle->SetTitleYOffset(1.25); - //tdrStyle->SetTitleXOffset(0.5); - tdrStyle->SetTitleYOffset(1.0); - - // For the axis labels: - tdrStyle->SetLabelColor(1, "XYZ"); - tdrStyle->SetLabelFont(42, "XYZ"); - tdrStyle->SetLabelOffset(0.007, "XYZ"); - - //tdrStyle->SetLabelSize(0.05, "XYZ"); - tdrStyle->SetLabelSize(0.04, "XYZ"); - - // For the axis: - tdrStyle->SetAxisColor(1, "XYZ"); - tdrStyle->SetStripDecimals(kTRUE); - tdrStyle->SetTickLength(0.03, "XYZ"); - tdrStyle->SetNdivisions(510, "XYZ"); - tdrStyle->SetPadTickX(1); // To get tick marks on the opposite side of the frame - tdrStyle->SetPadTickY(1); - // // Postscript options: - // //tdrStyle->SetPaperSize(20.,20.); - - // CC style - tdrStyle->SetTitleXOffset(0.8); - tdrStyle->SetTitleYOffset(0.8); - tdrStyle->SetLabelOffset(0.005, "XYZ"); - tdrStyle->SetTitleSize(0.07, "XYZ"); - tdrStyle->SetTitleFont(22, "X"); - tdrStyle->SetTitleFont(22, "Y"); - // tdrStyle->SetPadBottomMargin(0.2); - // tdrStyle->SetPadLeftMargin(0.2); - tdrStyle->SetPadBottomMargin(0.13); - tdrStyle->SetPadLeftMargin(0.15); - // tdrStyle->SetHistLineWidth(3); - tdrStyle->SetHistLineWidth(2); - - tdrStyle->cd(); - - gROOT->ForceStyle(); - - // output figures: file type suffix - char suffix[] = "gif"; - // output figures: directory - char outDir[] = "./analysisPreselLowLumiPUBugfix"; - // temp variables - char str[128]; - - bool out = true; - // bool out = false; - - // bool pause = true; - bool pause = false; - - TFile hist("gsfElectronHistos_DiEle-Pt5To100_rereco131_LowLumiPU_bugfix.root"); - - // electron quantities - TH1F *h_ele_PoPtrue = (TH1F *)hist.Get("h_ele_PoPtrue"); - TH1F *h_ele_EtaMnEtaTrue = (TH1F *)hist.Get("h_ele_EtaMnEtaTrue"); - TH1F *h_ele_PhiMnPhiTrue = (TH1F *)hist.Get("h_ele_PhiMnPhiTrue"); - TH1F *h_ele_vertexP = (TH1F *)hist.Get("h_ele_vertexP"); - TH1F *h_ele_vertexPt = (TH1F *)hist.Get("h_ele_vertexPt"); - TH1F *h_ele_outerP_mode = (TH1F *)hist.Get("h_ele_outerP_mode"); - TH1F *h_ele_outerPt_mode = (TH1F *)hist.Get("h_ele_outerPt_mode"); - TH1F *h_ele_vertexZ = (TH1F *)hist.Get("h_ele_vertexZ"); - - TCanvas *c_PoPtrue = new TCanvas("PoPtrue", "PoPtrue"); - c_PoPtrue->cd(); - h_ele_PoPtrue->Draw(); - h_ele_PoPtrue->GetXaxis()->SetTitle("p_{rec}/p_{true}"); - h_ele_PoPtrue->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/PoPtrue.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_EtaMnEtaTrue = new TCanvas("EtaMnEtaTrue", "EtaMnEtaTrue"); - c_EtaMnEtaTrue->cd(); - h_ele_EtaMnEtaTrue->Draw(); - h_ele_EtaMnEtaTrue->GetXaxis()->SetTitle("#eta_{rec}-#eta_{true}"); - h_ele_EtaMnEtaTrue->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/EtaMnEtaTrue.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_PhiMnPhiTrue = new TCanvas("PhiMnPhiTrue", "PhiMnPhiTrue"); - c_PhiMnPhiTrue->cd(); - h_ele_PhiMnPhiTrue->Draw(); - h_ele_PhiMnPhiTrue->GetXaxis()->SetTitle("#phi_{rec}-#phi_{true}"); - h_ele_PhiMnPhiTrue->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/PhiMnPhiTrue.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_vertexP = new TCanvas("vertexP", "vertexP"); - c_vertexP->cd(); - h_ele_vertexP->Draw(); - h_ele_vertexP->GetXaxis()->SetTitle("p_{vertex}"); - h_ele_vertexP->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/vertexP.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_vertexPt = new TCanvas("vertexPt", "vertexPt"); - c_vertexPt->cd(); - h_ele_vertexPt->Draw(); - h_ele_vertexPt->GetXaxis()->SetTitle("p_{T} from vertex"); - h_ele_vertexPt->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/vertexPt.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_outerP_mode = new TCanvas("outerP_mode", "outerP_mode"); - c_outerP_mode->cd(); - h_ele_outerP_mode->Draw(); - h_ele_outerP_mode->GetXaxis()->SetTitle("p from out, mode"); - h_ele_outerP_mode->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/outerP_mode.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_outerPt_mode = new TCanvas("outerPt_mode", "outerPt_mode"); - c_outerPt_mode->cd(); - h_ele_outerPt_mode->Draw(); - h_ele_outerPt_mode->GetXaxis()->SetTitle("p_{T} from out, mode"); - h_ele_outerPt_mode->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/outerPt_mode.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_vertexZ = new TCanvas("vertexZ", "vertexZ"); - c_vertexZ->cd(); - h_ele_vertexZ->Draw(); - h_ele_vertexZ->GetXaxis()->SetTitle("z_{rec}"); - h_ele_vertexZ->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/vertexZ.%s", outDir, suffix); - gPad->Print(str); - } - if (pause) - c_vertexZ->WaitPrimitive(); - - // efficiency - TH1F *h_ele_absetaEff = (TH1F *)hist.Get("h_ele_absetaEff"); - TH1F *h_simAbsEta = (TH1F *)hist.Get("h_mc_abseta"); - TH1F *h_ele_etaEff = (TH1F *)hist.Get("h_ele_etaEff"); - TH1F *h_simEta = (TH1F *)hist.Get("h_mc_eta"); - TH1F *h_ele_ptEff = (TH1F *)hist.Get("h_ele_ptEff"); - TH1F *h_simPt = (TH1F *)hist.Get("h_smc_Pt"); - - TCanvas *c_absetaEff = new TCanvas("absetaEff", "absetaEff"); - c_absetaEff->cd(); - for (int ibin = 1; ibin < h_ele_absetaEff->GetNbinsX(); ibin++) { - double binContent = h_ele_absetaEff->GetBinContent(ibin); - double error2 = binContent * (1. - binContent) / h_simAbsEta->GetBinContent(ibin); - //h_ele_absetaEff->SetBinError(ibin,sqrt(error2)); - std::cout << "ibin " << ibin << " efficiency " << binContent << " error " << sqrt(error2) << std::endl; - } - h_ele_absetaEff->SetMarkerStyle(21); - h_ele_absetaEff->SetMinimum(0.0); - h_ele_absetaEff->SetMaximum(1.0); - h_ele_absetaEff->Draw(""); - //h_ele_absetaEff->Draw("SEP"); - h_ele_absetaEff->GetXaxis()->SetTitle("|#eta|"); - h_ele_absetaEff->GetYaxis()->SetTitle("Efficiency"); - if (out) { - snprintf(str, 128, "%s/absetaEff.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_etaEff = new TCanvas("etaEff", "etaEff"); - c_etaEff->cd(); - h_ele_etaEff->SetMarkerStyle(21); - h_ele_etaEff->SetMinimum(0.0); - h_ele_etaEff->SetMaximum(1.0); - h_ele_etaEff->Draw(""); - h_ele_etaEff->GetXaxis()->SetTitle("#eta"); - h_ele_etaEff->GetYaxis()->SetTitle("Efficiency"); - if (out) { - snprintf(str, 128, "%s/etaEff.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_ptEff = new TCanvas("ptEff", "ptEff"); - c_ptEff->cd(); - h_ele_ptEff->SetMarkerStyle(21); - h_ele_ptEff->SetMinimum(0.0); - h_ele_ptEff->SetMaximum(1.0); - h_ele_ptEff->Draw(""); - h_ele_ptEff->GetXaxis()->SetTitle("p_{T} (GeV/c)"); - h_ele_ptEff->GetYaxis()->SetTitle("Efficiency"); - if (out) { - snprintf(str, 128, "%s/ptEff.%s", outDir, suffix); - gPad->Print(str); - } - if (pause) - c_ptEff->WaitPrimitive(); - - // match - TH1F *h_ele_EoP = (TH1F *)hist.Get("h_ele_EoP"); - TH1F *h_ele_EoPout = (TH1F *)hist.Get("h_ele_EoPout"); - TH1F *h_ele_EseedOP = (TH1F *)hist.Get("h_ele_EseedOP"); - TH1F *h_ele_EeleOPout = (TH1F *)hist.Get("h_ele_EeleOPout"); - TH1F *h_ele_dEtaCl_propOut = (TH1F *)hist.Get("h_ele_dEtaCl_propOut"); - TH1F *h_ele_dEtaSc_propVtx = (TH1F *)hist.Get("h_ele_dEtaSc_propVtx"); - TH1F *h_ele_dPhiCl_propOut = (TH1F *)hist.Get("h_ele_dPhiCl_propOut"); - TH1F *h_ele_dPhiSc_propVtx = (TH1F *)hist.Get("h_ele_dPhiSc_propVtx"); - TH1F *h_ele_dEtaEleCl_propOut = (TH1F *)hist.Get("h_ele_dEtaEleCl_propOut"); - TH1F *h_ele_dPhiEleCl_propOut = (TH1F *)hist.Get("h_ele_dPhiEleCl_propOut"); - TH1F *h_ele_HoE = (TH1F *)hist.Get("h_ele_HoE"); - - TCanvas *c_EoP = new TCanvas("EoP", "EoP"); - c_EoP->cd(); - h_ele_EoP->Draw(); - h_ele_EoP->GetXaxis()->SetTitle("E/p"); - h_ele_EoP->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/EoP.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_EoPout = new TCanvas("EoPout", "EoPout"); - c_EoPout->cd(); - h_ele_EoPout->Draw(); - h_ele_EoP->GetXaxis()->SetTitle("E_{seed}/p_{pout}"); - h_ele_EoP->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/EoPout.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_EeleOPout = new TCanvas("EeleOPout", "EeleOPout"); - c_EeleOPout->cd(); - h_ele_EeleOPout->Draw(); - h_ele_EeleOPout->GetXaxis()->SetTitle("E_{ele}/p_{pout}"); - h_ele_EeleoPout->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/EeleOPout.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_EseedOP = new TCanvas("EseedOP", "EseedOP"); - c_EseedOP->cd(); - h_ele_EseedOP->Draw(); - h_ele_EseedoP->GetXaxis()->SetTitle("E_{seed}/p"); - h_ele_EseedOP->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/EseedOP.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_dEtaCl_propOut = new TCanvas("dEtaCl_propOut", "dEtaCl_propOut"); - c_dEtaCl_propOut->cd(); - h_ele_dEtaCl_propOut->Draw(); - h_ele_dEtaCl_propOut->GetXaxis()->SetTitle("#eta_{seed}-#eta_{tk, extrp. from out}"); - h_ele_dEtaCl_propOut->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/dEtaCl_propOut.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_dEtaEleCl_propOut = new TCanvas("dEtaEleCl_propOut", "dEtaEleCl_propOut"); - c_dEtaEleCl_propOut->cd(); - h_ele_dEtaEleCl_propOut->Draw(); - h_ele_dEtaEleCl_propOut->GetXaxis()->SetTitle("#eta_{ele}-#eta_{tk, extrp. from out}"); - h_ele_dEtaEleCl_propOut->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/dEtaEleCl_propOut.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_dEtaSc_propVtx = new TCanvas("dEtaSc_propVtx", "dEtaSc_propVtx"); - c_dEtaSc_propVtx->cd(); - h_ele_dEtaSc_propVtx->Draw(); - h_ele_dEtaSc_propVtx->GetXaxis()->SetTitle("#eta_{sc}-#eta_{tk, extrp. from vtx}"); - h_ele_dEtaSc_propVtx->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/dEtaSc_propVtx.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_dPhiCl_propOut = new TCanvas("dPhiCl_propOut", "dPhiCl_propOut"); - c_dPhiCl_propOut->cd(); - h_ele_dPhiCl_propOut->Draw(); - h_ele_dPhiCl_propOut->GetXaxis()->SetTitle("#phi_{seed}-#phi_{tk, extrp. from out}"); - h_ele_dPhiCl_propOut->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/dPhiCl_propOut.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_dPhiEleCl_propOut = new TCanvas("dPhiEleCl_propOut", "dPhiEleCl_propOut"); - c_dPhiEleCl_propOut->cd(); - h_ele_dPhiEleCl_propOut->Draw(); - h_ele_dPhiEleCl_propOut->GetXaxis()->SetTitle("#phi_{ele}-#phi_{tk, extrp. from out}"); - h_ele_dPhiEleCl_propOut->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/dPhiEleCl_propOut.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_dPhiSc_propVtx = new TCanvas("dPhiSc_propVtx", "dPhiSc_propVtx"); - c_dPhiSc_propVtx->cd(); - h_ele_dPhiSc_propVtx->Draw(); - h_ele_dPhiSc_propVtx->GetXaxis()->SetTitle("#phi_{sc}-#phi_{tk, extrp. from vtx}"); - h_ele_dPhiSc_propVtx->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/dPhiSc_propVtx.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_HoE = new TCanvas("HoE", "HoE"); - c_HoE->cd(); - h_ele_HoE->Draw(); - h_ele_HoE->GetXaxis()->SetTitle("H/E"); - h_ele_HoE->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/HoE.%s", outDir, suffix); - gPad->Print(str); - } - if (pause) - c_HoE->WaitPrimitive(); - - // track - TH1F *h_ele_chi2 = (TH1F *)hist.Get("h_ele_chi2"); - TH1F *h_ele_foundHits = (TH1F *)hist.Get("h_ele_foundHits"); - TH1F *h_ele_lostHits = (TH1F *)hist.Get("h_ele_lostHits"); - TH1F *h_ele_ambiguousTracks = (TH1F *)hist.Get("h_ele_ambiguousTracks"); - - TCanvas *c_chi2 = new TCanvas("chi2", "chi2"); - c_chi2->cd(); - h_ele_chi2->Draw(); - h_ele_chi2->GetXaxis()->SetTitle("track #Chi^{2}"); - h_ele_chi2->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/chi2.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_foundHits = new TCanvas("foundHits", "foundHits"); - c_foundHits->cd(); - h_ele_foundHits->Draw(); - h_ele_foundHits->GetXaxis()->SetTitle("# hits"); - h_ele_foundHits->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/foundHits.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_lostHits = new TCanvas("lostHits", "lostHits"); - c_lostHits->cd(); - h_ele_lostHits->Draw(); - h_ele_lostHits->GetXaxis()->SetTitle("# lost hits"); - h_ele_lostHits->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/lostHits.%s", outDir, suffix); - gPad->Print(str); - } - TCanvas *c_ambiguousTracks = new TCanvas("ambiguousTracks", "ambiguousTracks"); - c_ambiguousTracks->cd(); - h_ele_ambiguousTracks->Draw(); - h_ele_ambiguousTracks->GetXaxis()->SetTitle("# ambiguous tracks"); - h_ele_ambiguousTracks->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/ambiguousTracks.%s", outDir, suffix); - gPad->Print(str); - } - - if (pause) - c_lostHits->WaitPrimitive(); - - // classes - TH1F *h_ele_PinMnPout_mode = (TH1F *)hist.Get("h_ele_PinMnPout"); - TH1F *h_ele_classes = (TH1F *)hist.Get("h_ele_classes"); - TH1F *h_ele_eta_bbremFrac = (TH1F *)hist.Get("h_ele_eta_bbremFrac"); - TH1F *h_ele_eta_goldenFrac = (TH1F *)hist.Get("h_ele_eta_goldenFrac"); - TH1F *h_ele_eta_narrowFrac = (TH1F *)hist.Get("h_ele_eta_narrowFrac"); - TH1F *h_ele_eta_showerFrac = (TH1F *)hist.Get("h_ele_eta_showerFrac"); - - TCanvas *c_PinMnPout_mode = new TCanvas("PinMnPout_mode", "PinMnPout_mode"); - c_PinMnPout_mode->cd(); - h_ele_PinMnPout_mode->Draw(); - h_ele_PinMnPout_mode->GetXaxis()->SetTitle("P_{in} - p_{out} (GeV/c)"); - h_ele_PinMnPout_mode->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/PinMnPout_mode.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_classes = new TCanvas("classes", "classes"); - c_classes->cd(); - h_ele_classes->Draw(); - h_ele_classes->GetXaxis()->SetTitle("Class id"); - h_ele_classes->GetYaxis()->SetTitle("Events"); - if (out) { - snprintf(str, 128, "%s/classes.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_eta_bbremFrac = new TCanvas("eta_bbremFrac", "eta_bbremFrac"); - c_eta_bbremFrac->cd(); - h_ele_eta_bbremFrac->Draw(); - h_ele_eta_bbremFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_bbremFrac->GetYaxis()->SetTitle("Fraction of bbrem"); - if (out) { - snprintf(str, 128, "%s/eta_bbremFrac.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_eta_goldenFrac = new TCanvas("eta_goldenFrac", "eta_goldenFrac"); - c_eta_goldenFrac->cd(); - h_ele_eta_goldenFrac->Draw(); - h_ele_eta_goldenFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_goldenFrac->GetYaxis()->SetTitle("Fraction of golden"); - if (out) { - snprintf(str, 128, "%s/eta_goldenFrac.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_eta_narrowFrac = new TCanvas("eta_narrowFrac", "eta_narrowFrac"); - c_eta_narrowFrac->cd(); - h_ele_eta_narrowFrac->Draw(); - h_ele_eta_narrowFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_narrowFrac->GetYaxis()->SetTitle("Fraction of narrow"); - if (out) { - snprintf(str, 128, "%s/eta_narrowFrac.%s", outDir, suffix); - gPad->Print(str); - } - - TCanvas *c_eta_showerFrac = new TCanvas("eta_showerFrac", "eta_showerFrac"); - c_eta_showerFrac->cd(); - h_ele_eta_showerFrac->Draw(); - h_ele_eta_showerFrac->GetXaxis()->SetTitle("|#eta|"); - h_ele_eta_showerFrac->GetYaxis()->SetTitle("Fraction of showering"); - if (out) { - snprintf(str, 128, "%s/eta_showerFrac.%s", outDir, suffix); - gPad->Print(str); - } -} diff --git a/RecoEgamma/Examples/test/newvalidation.C b/RecoEgamma/Examples/test/newvalidation.C deleted file mode 100644 index cfe1b4d952c5a..0000000000000 --- a/RecoEgamma/Examples/test/newvalidation.C +++ /dev/null @@ -1,290 +0,0 @@ -{ - TString DBS_SAMPLE = gSystem->Getenv("DBS_SAMPLE"); - - TString val_ref_file_name = gSystem->Getenv("VAL_REF_FILE"); - TString val_new_file_name = gSystem->Getenv("VAL_NEW_FILE"); - TString val_ref_release = gSystem->Getenv("VAL_REF_RELEASE"); - TString val_new_release = gSystem->Getenv("VAL_NEW_RELEASE"); - TString val_analyzer = gSystem->Getenv("VAL_ANALYZER"); - - TString val_web = gSystem->Getenv("VAL_WEB"); - TString val_web_sub_dir = gSystem->Getenv("VAL_WEB_SUB_DIR"); - TString val_web_url = gSystem->Getenv("VAL_WEB_URL"); - - std::string val_web_path = - val_web + "/" + val_new_release + "/Electrons/vs" + val_ref_release + "/" + val_web_sub_dir; - std::string histos_path = val_web_path + "/histos.txt"; - std::string index_path = val_web_path + "/index.html"; - - // style: - TStyle *eleStyle = new TStyle("eleStyle", "Style for electron validation"); - eleStyle->SetCanvasBorderMode(0); - eleStyle->SetCanvasColor(kWhite); - eleStyle->SetCanvasDefH(600); - eleStyle->SetCanvasDefW(800); - eleStyle->SetCanvasDefX(0); - eleStyle->SetCanvasDefY(0); - eleStyle->SetPadBorderMode(0); - eleStyle->SetPadColor(kWhite); - eleStyle->SetPadGridX(false); - eleStyle->SetPadGridY(false); - eleStyle->SetGridColor(0); - eleStyle->SetGridStyle(3); - eleStyle->SetGridWidth(1); - eleStyle->SetOptStat(1); - eleStyle->SetPadTickX(1); - eleStyle->SetPadTickY(1); - eleStyle->SetHistLineColor(1); - eleStyle->SetHistLineStyle(0); - eleStyle->SetHistLineWidth(2); - eleStyle->SetEndErrorSize(2); - eleStyle->SetErrorX(0.); - eleStyle->SetOptStat(1); - eleStyle->SetTitleColor(1, "XYZ"); - eleStyle->SetTitleFont(42, "XYZ"); - eleStyle->SetTitleXOffset(1.0); - eleStyle->SetTitleYOffset(1.0); - eleStyle->SetLabelOffset(0.005, "XYZ"); - eleStyle->SetTitleSize(0.05, "XYZ"); - eleStyle->SetTitleFont(22, "X"); - eleStyle->SetTitleFont(22, "Y"); - eleStyle->SetHistLineWidth(2); - eleStyle->SetPadBottomMargin(0.13); - eleStyle->SetPadLeftMargin(0.15); - eleStyle->SetMarkerStyle(21); - eleStyle->SetMarkerSize(0.8); - - eleStyle->cd(); - - gROOT->ForceStyle(); - - std::cout << "ref file: " << val_ref_file_name << std::endl; - TString val_ref_file_url; - TFile *file_old = 0; - if (val_ref_file_name != "") { - file_old = TFile::Open(val_ref_file_name); - if ((file_old != 0) && (val_ref_file_name.BeginsWith(val_web) == kTRUE)) { - val_ref_file_url = val_ref_file_name; - val_ref_file_url.Remove(0, val_web.Length()); - val_ref_file_url.Prepend(val_web_url); - } - } - std::cout << "ref url: " << val_ref_file_url << std::endl; - - std::cout << "new file: " << val_new_file_name << std::endl; - TString val_new_file_url; - TFile *file_new = 0; - if (val_new_file_name != "") { - file_new = TFile::Open(val_new_file_name); - if ((file_new != 0) && (val_new_file_name.BeginsWith(val_web) == kTRUE)) { - val_new_file_url = val_new_file_name; - val_new_file_url.Remove(0, val_web.Length()); - val_new_file_url.Prepend(val_web_url); - } - } - std::cout << "new url: " << val_new_file_url << std::endl; - - TCanvas *canvas; - TH1 *histo_old, *histo_new; - double nold, nnew; - - std::cout << "index path: " << index_path << std::endl; - std::ofstream web_page(index_path.c_str()); - - web_page << "\n" - << "\n" - << "\n" - << "\n" - << "" << val_new_release << " vs " << val_ref_release << " / " << DBS_SAMPLE << "\n" - << "\n" - << "

" << val_new_release << " vs " << val_ref_release << " / " << DBS_SAMPLE - << "

\n"; - - web_page << "

"; - if (file_old == 0) { - web_page << "In all plots below" - << ", there was no " << val_ref_release << " histograms to compare with" - << ", and the " << val_new_release << " histograms are in red" - << "."; - } else { - web_page << "In all plots below" - << ", the " << val_new_release << " histograms are in red" - << ", and the " << val_ref_release << " histograms are in blue" - << "."; - } - web_page << " They were made using analyzer " - << "" - << "RecoEgamma/Examples/plugins/" << val_analyzer << ".cc" - << " and configuration " - << "" - << "RecoEgamma/Examples/test/" << val_analyzer << "_cfg.py" - << ", with dataset " << DBS_SAMPLE << " as input."; - web_page << " Some more details" - << ": script used to make the plots" - << ", specification of histograms" - << ", images of histograms" - << "."; - web_page << "

\n"; - - std::string histo_name, gif_name, gif_path, canvas_name; - TString short_histo_name; - int scaled, log, err; - int divide; - std::string num, denom, cat; - int eol; // end of line - int eoc; // enf of category - - std::cout << "histos path: " << histos_path << std::endl; - std::ifstream histo_file1(histos_path.c_str()); - if (!histo_file1) { - std::cout << "no histos file !" << std::endl; - } - web_page << "
" - << "\n
\n"; - int cat_num = 0; - - cat = ""; - do { - std::getline(histo_file1, cat); - } while (cat.empty() && histo_file1); - - web_page << "" << cat << "

"; - - while (histo_file1 >> histo_name >> scaled >> log >> err >> divide >> num >> denom >> eol >> eoc) { - short_histo_name = histo_name; - short_histo_name.Remove(0, 2); - web_page << "" << short_histo_name << "
\n"; - if (eoc) { - cat_num++; - if ((cat_num % 5) == 0) { - web_page << "
"; - } else { - web_page << "
\n"; - } - cat = ""; - do { - std::getline(histo_file1, cat); - } while (cat.empty()); - web_page << "" << cat << "

"; - } - } - web_page << "
\n"; - histo_file1.close(); - - web_page << "

\n
\n"; - std::ifstream histo_file2(histos_path.c_str()); - - cat = ""; - do { - std::getline(histo_file2, cat); - } while (cat.empty()); - - while (histo_file2 >> histo_name >> scaled >> log >> err >> divide >> num >> denom >> eol >> eoc) { - gif_name = "gifs/" + histo_name + ".gif"; - gif_path = val_web_path + "/" + gif_name; - canvas_name = std::string("c") + histo_name; - canvas = new TCanvas(canvas_name.c_str()); - canvas->SetFillColor(10); - short_histo_name = histo_name; - short_histo_name.Remove(0, 2); - - web_page << ""; - - if (file_old != 0) { - histo_old = (TH1 *)file_old->Get(histo_name.c_str()); - if (histo_old != 0) { - histo_old->SetLineColor(4); - histo_old->SetLineWidth(3); - if (divide == 0) { - histo_old->Draw("hist"); - } else { - // special for efficiencies - TH1F *h_num = (TH1F *)file_old->Get(num.c_str()); - TH1F *h_res = (TH1F *)h_num->Clone("res"); - h_res->Reset(); - TH1F *h_denom = (TH1F *)file_old->Get(denom.c_str()); - std::cout << "DIVIDING " << num.c_str() << " by " << denom.c_str() << std::endl; - h_res->Divide(h_num, h_denom, 1, 1, "b"); - h_res->GetXaxis()->SetTitle(h_num->GetXaxis()->GetTitle()); - h_res->GetYaxis()->SetTitle(h_num->GetYaxis()->GetTitle()); - h_res->SetLineColor(4); - h_res->SetLineWidth(3); - h_res->Draw("hist"); - } - } else { - web_page << "No " << histo_name << " for " << val_ref_release << ".
"; - } - } - - gErrorIgnoreLevel = kWarning; - histo_new = (TH1 *)file_new->Get(histo_name.c_str()); - if (histo_new != 0) { - if (log == 1) - canvas->SetLogy(1); - histo_new->SetLineColor(2); - histo_new->SetMarkerColor(2); - histo_new->SetLineWidth(3); - if ((scaled == 1) && (file_old != 0) && (histo_old != 0) && (histo_new->GetEntries() != 0)) { - if (histo_old != 0) - histo_new->Scale(histo_old->GetEntries() / histo_new->GetEntries()); - } - if (divide == 0) { - if (err == 1) { - if (histo_old != 0) - histo_new->Draw("same E1 P"); - else - histo_new->Draw("E1 P"); - } else { - if (histo_old != 0) - histo_new->Draw("same hist"); - else - histo_new->Draw("hist"); - } - } else { - // special for efficiencies - TH1F *h_num = (TH1 *)file_new->Get(num.c_str()); - TH1F *h_res = (TH1F *)h_num->Clone("res"); - TH1F *h_denom = (TH1 *)file_new->Get(denom.c_str()); - h_res->Divide(h_num, h_denom, 1, 1, "b"); - h_res->GetXaxis()->SetTitle(h_num->GetXaxis()->GetTitle()); - h_res->GetYaxis()->SetTitle(h_num->GetYaxis()->GetTitle()); - h_res->SetLineColor(2); - h_res->SetMarkerColor(2); - h_res->SetLineWidth(3); - if (err == 1) - h_res->Draw("same E1 P"); - else - h_res->Draw("same hist"); - } - std::cout << histo_name << " has " << histo_new->GetEffectiveEntries() << " entries" - << " of mean value " << histo_new->GetMean() << std::endl; - canvas->SaveAs(gif_path.c_str()); - web_page << "
"; - } else if ((file_old != 0) && (histo_old != 0)) { - std::cout << histo_name << " NOT FOUND" << std::endl; - web_page << "
(no such histo for " << val_new_release << ")"; - canvas->SaveAs(gif_path.c_str()); - web_page << "
"; - } else { - web_page << "No " << histo_name << " for " << val_new_release << ".
"; - } - if (eol) { - web_page << "
"; - } else { - web_page << ""; - } - if (eoc) { - cat = ""; - do { - std::getline(histo_file2, cat); - } while (cat.empty()); - } - } - histo_file2.close(); - web_page << "
\n"; - - // cumulated efficiencies - - web_page << "\n" << std::endl; - web_page.close(); -} diff --git a/RecoEgamma/Examples/test/newvalidation.csh b/RecoEgamma/Examples/test/newvalidation.csh deleted file mode 100755 index 677764ae9a9d6..0000000000000 --- a/RecoEgamma/Examples/test/newvalidation.csh +++ /dev/null @@ -1,673 +0,0 @@ -#!/bin/csh - -# This script can be used to generate a web page to compare histograms from -# two input root files produced using the EDAnalyzers in RecoEgamma/Examples. - -#============= Configuration ================= -# This script behavior is tuned by few unix variables and command-line -# arguments. You can use Oval as execution manager, whose configuration is -# within OvalFile. Oval will set the relevant variables for you. -# If you prefer to set the variables and run this script directly, -# here they are : -# -# $1 : eventual first command-line argument, immediatly duplicated into VAL_ENV, -# is the name of the current context, used to build some default value -# for other variables, especially VAL_NEW_FILE and VAL_REF_FILE. -# $2 : eventual second command-line argument, immediatly duplicated into VAL_OUTPUT_FILE, -# is the default base name of the files containing the histograms ; it is -# also used to build some default value for other variables. -# $3 : eventual third command-line argument, immediatly duplicated into VAL_WEB_SUB_DIR, -# it is the name of the web subdirectory. Default is close to ${DBS_SAMPLE}_{DBS_COND}. -# -# VAL_NEW_RELEASE : chosen name for the new release to validate ; used in web pages -# and used to build the path where the web pages will be stored. -# VAL_REF_RELEASE : chosen name of the old release to compare with ; used in web pages, -# for default reference file path, and used to build the path where the web pages will -# be stored. -# -# VAL_NEW_FILE : complete path of the file containing the new histograms. -# If not set, a default value is computed, based on 1st command line argument, -# 2nd command line argument and current directory. -# VAL_REF_FILE : complete path of the file containing the old histograms to compare with. -# If not set, a default value is computed, based on 1st command line argument, -# 2nd command line argument and VAL_REF_RELEASE. -# -# VAL_ANALYZER : name of the analyzer used to do the histograms ; it is used to know -# which histograms must be searched for. The value must be one of GsfElectronMCAnalyzer, -# GsfElectronDataAnalyzer, GsfElectronFakeAnalyzer or SimplePhotonAnalyzer. -# -# DBS_SAMPLE : short chosen name for the current dataset ; used in web pages -# and used to build the subdirectory where the web pages will be -# stored ($VAL_WEB_SUB_DIR) unless it was given as the 3rd command line argument. -# DBS_COND : expresion for the current cpnditions tag ; used to build the subdirectory -# where the web pages will be stored ($VAL_WEB_SUB_DIR) unless it was given as the -# 3rd command line argument. -#========================================================================================= - - -#============== Core config ================== - -setenv VAL_ENV $1 -setenv VAL_OUTPUT_FILE $2 -setenv VAL_WEB_SUB_DIR $3 -setenv VAL_ORIGINAL_DIR $cwd -setenv VAL_WEB "/afs/cern.ch/cms/Physics/egamma/www/validation" -#setenv VAL_WEB "/home/llr/cms/charlot/cmssw/CMSSW_3_1_2/src/RecoEgamma/Examples/test/validation" -setenv VAL_WEB_URL "http://cmsdoc.cern.ch/Physics/egamma/www/validation" - -# those must have a value -#setenv VAL_NEW_RELEASE ... -#setenv VAL_REF_RELEASE ... -# those either have a value, or will receive a default below -#setenv VAL_NEW_FILE ... -#setenv VAL_REF_FILE ... - -#============== Find and prepare main output directory ================== - -echo "VAL_WEB = ${VAL_WEB}" - -if (! -d $VAL_WEB/$VAL_NEW_RELEASE) then - mkdir $VAL_WEB/$VAL_NEW_RELEASE -endif - -if (! -d $VAL_WEB/$VAL_NEW_RELEASE/Electrons) then - mkdir $VAL_WEB/$VAL_NEW_RELEASE/Electrons -endif - -echo "VAL_NEW_RELEASE = ${VAL_NEW_RELEASE}" - -#============== Find and archive new log and data files ================== - -if ( ${?VAL_NEW_FILE} == "0" ) setenv VAL_NEW_FILE "" - -if ( "${VAL_NEW_FILE}" != "" && ! -r "${VAL_NEW_FILE}" ) then - echo "${VAL_NEW_FILE} is unreadable !" - setenv VAL_NEW_FILE "" -endif - -if ( ${VAL_NEW_FILE} == "" ) then - setenv VAL_NEW_FILE ${VAL_ORIGINAL_DIR}/cmsRun.${VAL_ENV}.olog.${VAL_OUTPUT_FILE} -endif - -if ( "${VAL_NEW_FILE}" != "" && ! -r "${VAL_NEW_FILE}" ) then - echo "${VAL_NEW_FILE} is unreadable !" - setenv VAL_NEW_FILE "" -endif - -if (! -d $VAL_WEB/$VAL_NEW_RELEASE/Electrons/data) then - mkdir $VAL_WEB/$VAL_NEW_RELEASE/Electrons/data -endif - -echo "VAL_NEW_FILE = ${VAL_NEW_FILE}" - -if ( "${VAL_NEW_FILE}" != "" ) then - if ( -r "$VAL_NEW_FILE" ) then - cp -f $VAL_NEW_FILE $VAL_WEB/$VAL_NEW_RELEASE/Electrons/data - setenv VAL_NEW_FILE "$VAL_WEB/$VAL_NEW_RELEASE/Electrons/data/${VAL_NEW_FILE:t}" - echo "VAL_NEW_FILE = ${VAL_NEW_FILE}" - endif -endif - -if ( -e "${VAL_ORIGINAL_DIR}/cmsRun.${VAL_ENV}.olog" ) then - cp -f ${VAL_ORIGINAL_DIR}/cmsRun.${VAL_ENV}.olog $VAL_WEB/$VAL_NEW_RELEASE/Electrons/data -endif - -if ( -e "${VAL_ORIGINAL_DIR}/dbs_discovery.py.${VAL_ENV}.olog" ) then - cp -f ${VAL_ORIGINAL_DIR}/dbs_discovery.py.${VAL_ENV}.olog $VAL_WEB/$VAL_NEW_RELEASE/Electrons/data -endif - -#============== Find reference data file (eventually the freshly copied new data) ================== - -if (! -d "$VAL_WEB/$VAL_NEW_RELEASE/Electrons/vs${VAL_REF_RELEASE}") then - mkdir "$VAL_WEB/$VAL_NEW_RELEASE/Electrons/vs${VAL_REF_RELEASE}" -endif - -echo "VAL_REF_RELEASE = ${VAL_REF_RELEASE}" - -if ( ${?VAL_REF_FILE} == "0" ) setenv VAL_REF_FILE "" - -setenv REF_ALREADY_STORED "" - -if ( ${VAL_REF_FILE} == "" ) then - if ( -r "${VAL_WEB}/${VAL_REF_RELEASE}/Electrons/data/cmsRun.${VAL_ENV}.olog.${VAL_OUTPUT_FILE}" ) then - setenv VAL_REF_FILE ${VAL_WEB}/${VAL_REF_RELEASE}/Electrons/data/cmsRun.${VAL_ENV}.olog.${VAL_OUTPUT_FILE} - setenv REF_ALREADY_STORED "yes" - endif -endif - -if ( ${VAL_REF_FILE} == "" ) then - if ( -r "${VAL_WEB}/${VAL_REF_RELEASE}/data/cmsRun.${VAL_ENV}.olog.${VAL_OUTPUT_FILE}" ) then - setenv VAL_REF_FILE ${VAL_WEB}/${VAL_REF_RELEASE}/data/cmsRun.${VAL_ENV}.olog.${VAL_OUTPUT_FILE} - setenv REF_ALREADY_STORED "yes" - endif -endif - -if ( ${VAL_REF_FILE} == "" ) then - if ( -r "${VAL_ORIGINAL_DIR}/cmsRun.${VAL_ENV}.oref.${VAL_OUTPUT_FILE}" ) then - setenv VAL_REF_FILE ${VAL_ORIGINAL_DIR}/cmsRun.${VAL_ENV}.oref.${VAL_OUTPUT_FILE} - endif -endif - -echo "VAL_REF_FILE = ${VAL_REF_FILE}" - -if ( "${VAL_REF_FILE}" != "" && "${REF_ALREADY_STORED}" == "" ) then - - if ( ! -d $VAL_WEB/$VAL_NEW_RELEASE/Electrons/vs${VAL_REF_RELEASE}/data ) then - mkdir $VAL_WEB/$VAL_NEW_RELEASE/Electrons/vs${VAL_REF_RELEASE}/data - endif - cp -f $VAL_REF_FILE $VAL_WEB/$VAL_NEW_RELEASE/Electrons/vs${VAL_REF_RELEASE}/data - setenv VAL_REF_FILE "$VAL_WEB/$VAL_NEW_RELEASE/Electrons/vs${VAL_REF_RELEASE}/data/${VAL_REF_FILE:t}" - echo "VAL_REF_FILE = ${VAL_REF_FILE}" - -endif - - -#============== Prepare sample/cond subdirectory ================== - -if ( ${VAL_WEB_SUB_DIR} == "" ) then - if ( "${DBS_COND}" =~ *MC* ) then - setenv VAL_WEB_SUB_DIR ${DBS_SAMPLE}_Mc - else if ( "${DBS_COND}" =~ *IDEAL* ) then - setenv VAL_WEB_SUB_DIR ${DBS_SAMPLE}_Ideal - else if ( "${DBS_COND}" =~ *STARTUP* ) then - setenv VAL_WEB_SUB_DIR ${DBS_SAMPLE}_Startup - else - setenv VAL_WEB_SUB_DIR ${DBS_SAMPLE} - endif -endif - -echo "VAL_WEB_SUB_DIR = ${VAL_WEB_SUB_DIR}" - -if (! -d $VAL_WEB/$VAL_NEW_RELEASE/Electrons/vs${VAL_REF_RELEASE}/${VAL_WEB_SUB_DIR}) then - mkdir $VAL_WEB/$VAL_NEW_RELEASE/Electrons/vs${VAL_REF_RELEASE}/${VAL_WEB_SUB_DIR} -endif - -if (! -d $VAL_WEB/$VAL_NEW_RELEASE/Electrons/vs${VAL_REF_RELEASE}/${VAL_WEB_SUB_DIR}/gifs) then - mkdir $VAL_WEB/$VAL_NEW_RELEASE/Electrons/vs${VAL_REF_RELEASE}/${VAL_WEB_SUB_DIR}/gifs -endif - -cp -f ${VAL_ORIGINAL_DIR}/newvalidation.C $VAL_WEB/$VAL_NEW_RELEASE/Electrons/vs${VAL_REF_RELEASE}/${VAL_WEB_SUB_DIR} - -#============== Prepare the list of histograms ================== -# The second argument is 1 if the histogram is scaled, 0 otherwise -# The third argument is 1 if the histogram is in log scale, 0 otherwise -# The fourth argument is 1 if the histogram is drawn with errors, 0 otherwise - -if ( $VAL_ANALYZER == GsfElectronMCAnalyzer ) then - -cat >! $VAL_WEB/$VAL_NEW_RELEASE/Electrons/vs${VAL_REF_RELEASE}/${VAL_WEB_SUB_DIR}/histos.txt <! $VAL_WEB/$VAL_NEW_RELEASE/Electrons/vs${VAL_REF_RELEASE}/${VAL_WEB_SUB_DIR}/histos.txt <! $VAL_WEB/$VAL_NEW_RELEASE/Electrons/vs${VAL_REF_RELEASE}/${VAL_WEB_SUB_DIR}/histos.txt < scaledhistos < unscaledhistos < scaledhistos < unscaledhistos < scaledhistos < unscaledhistos < scaledhistos < unscaledhistos < scaledhistos < unscaledhistos < begin.C <SetCanvasBorderMode(0); -gStyle->SetCanvasColor(kWhite); -gStyle->SetCanvasDefH(600); -gStyle->SetCanvasDefW(800); //Width of canvas -gStyle->SetCanvasDefX(0); //POsition on screen -gStyle->SetCanvasDefY(0); -gStyle->SetTitleFont(42); -gStyle->SetTitleColor(1); -gStyle->SetTitleTextColor(1); -gStyle->SetTitleFillColor(10); -gStyle->SetTitleFontSize(0.05); -gStyle->SetOptStat(1); -gStyle->SetPadTickX(1); -gStyle->SetPadTickY(1); -gStyle->SetTitleColor(1, "XYZ"); -gStyle->SetTitleFont(42, "XYZ"); -gStyle->SetTitleXOffset(0.1); -gStyle->SetTitleYOffset(0.1); -gStyle->SetLabelOffset(0.005, "XYZ"); -gStyle->SetTitleSize(0.05, "XYZ"); -gStyle->SetTitleFont(22,"X"); -gStyle->SetTitleFont(22,"Y"); -gStyle->SetPadBottomMargin(0.13); -gStyle->SetPadLeftMargin(0.15); -gStyle->SetHistLineWidth(2); -TFile *file_old = TFile::Open("$OLDFILE"); -TFile *file_new = TFile::Open("$NEWFILE"); - -EOF -cat begin.C >>& validation.C -rm begin.C - -setenv N 1 -foreach i (`cat scaledhistos`) - cat > temp$N.C <SetFillColor(10); -file_old->cd(); -TH1F *h_old = (TH1F*)file_old->Get("$i"); -double nold; -if (h_old) { -$i->SetLineColor(4); -$i->SetLineWidth(3); -if ("$i" == "h_ele_HoE") c$i->SetLogy(1); -if ("$i" == "h_ele_HoE_all") c$i->SetLogy(1); -if ("$i" == "h_ele_ambiguousTracks") c$i->SetLogy(1); -$i->Draw("hist"); -nold=$i->GetEntries(); -} -file_new->cd(); -TH1F *h_new = (TH1F*)file_new->Get("$i"); -if (h_new) { -double nnew; -nnew=$i->GetEntries(); -$i->SetLineColor(2); -$i->SetLineWidth(3); -if ("$i" == "h_ele_HoE") c$i->SetLogy(1); -if ("$i" == "h_ele_HoE_fiducial") c$i->SetLogy(1); -if ("$i" == "h_ele_ambiguousTracks") c$i->SetLogy(1); -if (h_old) $i->Scale(nold/nnew); -else $i->Scale(1.); -if (h_old) $i->Draw("same E1"); -else $i->Draw("hist"); -} -if (h_new || h_old) c$i->SaveAs("gifs/$i.gif"); - -EOF - setenv N `expr $N + 1` -end - -foreach i (`cat unscaledhistos`) - cat > temp$N.C <SetFillColor(10); -file_old->cd(); -TH1F *h_old = (TH1F*)file_old->Get("$i"); -if (h_old) { -$i->SetLineColor(4); -$i->SetLineWidth(3); -$i->Draw(); -} -TH1F *h_new = (TH1F*)file_new->Get("$i"); -if (h_new) { -cout << "$i" << endl; -file_new->cd(); -$i->SetLineColor(2); -$i->SetLineWidth(3); -if (h_old) $i->Draw("same"); -else $i->Draw(); -} -if (h_new || h_old) c$i->SaveAs("gifs/$i.gif"); - -EOF - setenv N `expr $N + 1` -end - -setenv NTOT `expr $N - 1` -setenv N 1 -while ( $N <= $NTOT ) - cat temp$N.C >>& validation.C - rm temp$N.C - setenv N `expr $N + 1` -end - -cat > end.C <>& validation.C -rm end.C - - -if ( $TYPE == GsfElectron ) then - setenv ANALYZER GsfElectronMCAnalyzer - setenv CFG GsfElectronMCAnalyzer -else if ( $TYPE == GsfElectronData ) then - setenv ANALYZER GsfElectronDataAnalyzer - setenv CFG GsfElectronDataAnalyzer -else if ( $TYPE == GsfElectronFake ) then - setenv ANALYZER GsfElectronFakeAnalyzer - setenv CFG GsfElectronFakeAnalyzer -else if ( $TYPE == Photon ) then - setenv ANALYZER SimplePhotonAnalyzer - setenv CFG SimplePhotonAnalyzer -else if ( $TYPE == ConvertedPhoton ) then - setenv ANALYZER SimpleConvertedPhotonAnalyzer - setenv CFG SimpleConvertedPhotonAnalyzer -endif - -if (-e validation.html) rm validation.html -touch validation.html -cat > begin.html < - - - -$NEWRELEASE vs $OLDRELEASE $TYPE validation - - -

$NEWRELEASE vs $OLDRELEASE $TYPE validation

- -

The following plots were made using RecoEgamma/Examples/plugins/$ANALYZER, using RecoEgamma/Examples/test/$CFG.cfg, using $SAMPLE as input. - -

The script used to make the plots is here. - -

In all plots below, $OLDRELEASE is in blue, $NEWRELEASE in red. - -EOF -cat begin.html >>& validation.html -rm begin.html - -setenv N 1 -foreach i (`cat scaledhistos unscaledhistos`) - cat > temp$N.html < -

-EOF - setenv N `expr $N + 1` -end - -setenv N 1 -while ( $N <= $NTOT ) - cat temp$N.html >>& validation.html - rm temp$N.html - setenv N `expr $N + 1` -end - -cat > end.html < -EOF -cat end.html >>& validation.html -rm end.html - -rm scaledhistos -rm unscaledhistos - -echo "Now paste the following into your terminal window:" -echo "" -echo "cd $OUTDIR" -echo "root -b" -echo ".x validation.C" -echo ".q" -echo "cd $CURRENTDIR" -echo "" -echo "Then you can view your valdation plots here:" -echo "http://cmsdoc.cern.ch/Physics/egamma/www/validation/${NEWRELEASE}/${SAMPLE}_${NEWRELEASE}_${OLDRELEASE}/validation.html" diff --git a/RecoLocalCalo/EcalRecProducers/test/testEcalRechitProducer_cfg.py b/RecoLocalCalo/EcalRecProducers/test/testEcalRechitProducer_cfg.py index 1df41a8aacb33..881302e4ca366 100644 --- a/RecoLocalCalo/EcalRecProducers/test/testEcalRechitProducer_cfg.py +++ b/RecoLocalCalo/EcalRecProducers/test/testEcalRechitProducer_cfg.py @@ -14,7 +14,7 @@ # Other statements from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1000) diff --git a/RecoLocalFastTime/FTLClusterizer/src/MTDThresholdClusterizer.cc b/RecoLocalFastTime/FTLClusterizer/src/MTDThresholdClusterizer.cc index 2720cdeb2b2bc..f27ea64d6ccd7 100644 --- a/RecoLocalFastTime/FTLClusterizer/src/MTDThresholdClusterizer.cc +++ b/RecoLocalFastTime/FTLClusterizer/src/MTDThresholdClusterizer.cc @@ -10,6 +10,8 @@ #include "Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h" #include "Geometry/MTDCommonData/interface/MTDTopologyMode.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + // STL #include #include @@ -18,16 +20,6 @@ #include using namespace std; -//#define DEBUG_ENABLED -#ifdef DEBUG_ENABLED -#define DEBUG(x) \ - do { \ - std::cout << x << std::endl; \ - } while (0) -#else -#define DEBUG(x) -#endif - //---------------------------------------------------------------------------- //! Constructor: //---------------------------------------------------------------------------- @@ -78,7 +70,7 @@ bool MTDThresholdClusterizer::setup(const MTDGeometry* geom, const MTDTopology* theNumOfRows = nrows; // Set new sizes theNumOfCols = ncols; - DEBUG("Buffer size [" << theNumOfRows + 1 << "," << theNumOfCols + 1 << "]"); + LogDebug("MTDThresholdClusterizer") << "Buffer size [" << theNumOfRows + 1 << "," << theNumOfCols + 1 << "]"; if (nrows > theBuffer.rows() || ncols > theBuffer.columns()) { // change only when a larger is needed // Resize the buffer @@ -108,7 +100,7 @@ void MTDThresholdClusterizer::clusterize(const FTLRecHitCollection& input, return; } - DEBUG("Input collection " << input.size()); + LogDebug("MTDThresholdClusterizer") << "Input collection " << input.size(); assert(output.empty()); std::set geoIds; @@ -148,8 +140,8 @@ void MTDThresholdClusterizer::clusterize(const FTLRecHitCollection& input, return; auto range = geoIdToIdx.equal_range(id); - DEBUG("Matching Ids for " << std::hex << id << std::dec << " [" << range.first->second << "," - << range.second->second << "]"); + LogDebug("MTDThresholdClusterizer") << "Matching Ids for " << std::hex << id << std::dec << " [" + << range.first->second << "," << range.second->second << "]"; // Copy MTDRecHits to the buffer array; select the seed hits // on the way, and store them in theSeeds. @@ -167,8 +159,9 @@ void MTDThresholdClusterizer::clusterize(const FTLRecHitCollection& input, // Check if the cluster is above threshold if (cluster.energy() > theClusterThreshold) { - DEBUG("putting in this cluster " << i << " #hits:" << cluster.size() << " E:" << cluster.energy() - << " T:" << cluster.time() << " X:" << cluster.x() << " Y:" << cluster.y()); + LogDebug("MTDThresholdClusterizer") + << "putting in this cluster " << i << " #hits:" << cluster.size() << " E:" << cluster.energy() + << " T:" << cluster.time() << " X:" << cluster.x() << " Y:" << cluster.y(); clustersOnDet.push_back(cluster); } } @@ -236,7 +229,7 @@ void MTDThresholdClusterizer::copy_to_buffer(RecHitIterator itr, const MTDGeomet global_point = det->toGlobal(lp); } - DEBUG("ROW " << row << " COL " << col << " ENERGY " << energy << " TIME " << time); + LogDebug("MTDThresholdClusterizer") << "ROW " << row << " COL " << col << " ENERGY " << energy << " TIME " << time; if (energy > theHitThreshold) { theBuffer.set(row, col, subDet, energy, time, timeError, local_error, global_point); if (energy > theSeedThreshold) diff --git a/RecoLocalFastTime/FTLRecProducers/plugins/MTDTrackingRecHitProducer.cc b/RecoLocalFastTime/FTLRecProducers/plugins/MTDTrackingRecHitProducer.cc index f52664a786986..22271b001f33b 100644 --- a/RecoLocalFastTime/FTLRecProducers/plugins/MTDTrackingRecHitProducer.cc +++ b/RecoLocalFastTime/FTLRecProducers/plugins/MTDTrackingRecHitProducer.cc @@ -74,7 +74,7 @@ void MTDTrackingRecHitProducer::produce(edm::StreamID, edm::Event& evt, const ed for (auto const& theInput : inputHandle) { if (!theInput.isValid()) { - edm::LogWarning("MTDReco") << "MTDTrackingRecHitProducer: Invalid collection"; + edm::LogWarning("MTDTrackingRecHitProducer") << "MTDTrackingRecHitProducer: Invalid collection"; continue; } const edmNew::DetSetVector& input = *theInput; @@ -91,9 +91,11 @@ void MTDTrackingRecHitProducer::produce(edm::StreamID, edm::Event& evt, const ed MTDTrackingDetSetVector::FastFiller recHitsOnDet(theoutputhits, detid); + LogDebug("MTDTrackingRecHitProducer") << "MTD cluster DetId " << detid << " # cluster " << DSVit.size(); + for (const auto& clustIt : DSVit) { - LogDebug("MTDTrackingRcHitProducer") << "Cluster: size " << clustIt.size() << " " << clustIt.x() << "," - << clustIt.y() << " " << clustIt.energy() << " " << clustIt.time(); + LogDebug("MTDTrackingRecHitProducer") << "Cluster: size " << clustIt.size() << " " << clustIt.x() << "," + << clustIt.y() << " " << clustIt.energy() << " " << clustIt.time(); MTDClusterParameterEstimator::ReturnType tuple = cpe.getParameters(clustIt, *genericDet); LocalPoint lp(std::get<0>(tuple)); LocalError le(std::get<1>(tuple)); @@ -102,7 +104,7 @@ void MTDTrackingRecHitProducer::produce(edm::StreamID, edm::Event& evt, const ed edm::Ref, FTLCluster> cluster = edmNew::makeRefTo(theInput, &clustIt); // Make a RecHit and add it to the DetSet MTDTrackingRecHit hit(lp, le, *genericDet, cluster); - LogDebug("MTDTrackingRcHitProducer") + LogDebug("MTDTrackingRecHitProducer") << "MTD_TRH: " << hit.localPosition().x() << "," << hit.localPosition().y() << " : " << hit.localPositionError().xx() << "," << hit.localPositionError().yy() << " : " << hit.time() << " : " << hit.timeError(); @@ -110,7 +112,7 @@ void MTDTrackingRecHitProducer::produce(edm::StreamID, edm::Event& evt, const ed recHitsOnDet.push_back(hit); } // <-- End loop on Clusters } // <-- End loop on DetUnits - LogDebug("MTDTrackingRcHitProducer") << "outputCollection " << theoutputhits.size(); + LogDebug("MTDTrackingRecHitProducer") << "outputCollection " << theoutputhits.size(); } evt.put(std::move(outputhits)); diff --git a/RecoLocalMuon/GEMRecHit/plugins/GEMRecHitProducer.cc b/RecoLocalMuon/GEMRecHit/plugins/GEMRecHitProducer.cc index 5c577ed48bb37..8139f3d58e20e 100644 --- a/RecoLocalMuon/GEMRecHit/plugins/GEMRecHitProducer.cc +++ b/RecoLocalMuon/GEMRecHit/plugins/GEMRecHitProducer.cc @@ -29,6 +29,8 @@ GEMRecHitProducer::GEMRecHitProducer(const ParameterSet& config) gemGeomToken_(esConsumes()) { produces(); + // Turns off GE2/1 demonstrator reconstruction in Run3 + ge21Off_ = config.getParameter("ge21Off"); // Get masked- and dead-strip information from file applyMasking_ = config.getParameter("applyMasking"); if (applyMasking_) { @@ -81,6 +83,7 @@ void GEMRecHitProducer::fillDescriptions(edm::ConfigurationDescriptions& descrip desc.add("recAlgo", "GEMRecHitStandardAlgo"); desc.add("gemDigiLabel", edm::InputTag("muonGEMDigis")); desc.add("applyMasking", false); + desc.add("ge21Off", false); desc.addOptional("maskFile"); desc.addOptional("deadFile"); descriptions.add("gemRecHitsDef", desc); @@ -105,6 +108,9 @@ void GEMRecHitProducer::beginRun(const edm::Run& r, const edm::EventSetup& setup for (auto gems : gemGeom_->etaPartitions()) { // Getting the EtaPartitionMask mask, that includes dead strips, for the given GEMDet GEMDetId gemId = gems->id(); + if (ge21Off_ && gemId.station() == 2) { + continue; + } EtaPartitionMask mask; const int rawId = gemId.rawId(); for (const auto& tomask : theGEMMaskedStripsObj->getMaskVec()) { @@ -142,6 +148,9 @@ void GEMRecHitProducer::produce(Event& event, const EventSetup& setup) { for (auto gemdgIt = digis->begin(); gemdgIt != digis->end(); ++gemdgIt) { // The layerId const GEMDetId& gemId = (*gemdgIt).first; + if (ge21Off_ && gemId.station() == 2) { + continue; + } // Get the GeomDet from the setup const GEMEtaPartition* roll = gemGeom_->etaPartition(gemId); diff --git a/RecoLocalMuon/GEMRecHit/plugins/GEMRecHitProducer.h b/RecoLocalMuon/GEMRecHit/plugins/GEMRecHitProducer.h index 003fcf05ebc84..9d4564c241176 100644 --- a/RecoLocalMuon/GEMRecHit/plugins/GEMRecHitProducer.h +++ b/RecoLocalMuon/GEMRecHit/plugins/GEMRecHitProducer.h @@ -65,5 +65,6 @@ class GEMRecHitProducer : public edm::stream::EDProducer<> { std::map gemMask_; bool applyMasking_; + bool ge21Off_; }; #endif diff --git a/RecoLocalMuon/GEMRecHit/python/gemRecHits_cfi.py b/RecoLocalMuon/GEMRecHit/python/gemRecHits_cfi.py index ca44e89e2d28b..bc8cea4ac8d68 100644 --- a/RecoLocalMuon/GEMRecHit/python/gemRecHits_cfi.py +++ b/RecoLocalMuon/GEMRecHit/python/gemRecHits_cfi.py @@ -10,5 +10,9 @@ #deadFile = cms.FileInPath("RecoLocalMuon/GEMRecHit/data/deadStrips.txt") ) + +from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM from Configuration.Eras.Modifier_phase2_GEM_cff import phase2_GEM -phase2_GEM.toModify(gemRecHits, gemDigiLabel = "simMuonGEMDigis") + +run3_GEM.toModify(gemRecHits, ge21Off=True) +phase2_GEM.toModify(gemRecHits, gemDigiLabel = "simMuonGEMDigis", ge21Off=False) diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/PixelThresholdClusterizer.cc b/RecoLocalTracker/SiPixelClusterizer/plugins/PixelThresholdClusterizer.cc index a521e3dab36af..bfabd9173557d 100644 --- a/RecoLocalTracker/SiPixelClusterizer/plugins/PixelThresholdClusterizer.cc +++ b/RecoLocalTracker/SiPixelClusterizer/plugins/PixelThresholdClusterizer.cc @@ -33,7 +33,8 @@ #include #include #include -using namespace std; +#include +#include //---------------------------------------------------------------------------- //! Constructor: @@ -408,8 +409,8 @@ int PixelThresholdClusterizer::calibrate(int adc, int col, int row) { SiPixelCluster PixelThresholdClusterizer::make_cluster(const SiPixelCluster::PixelPos& pix, edmNew::DetSetVector::FastFiller& output) { //First we acquire the seeds for the clusters - int seed_adc; - stack > dead_pixel_stack; + uint16_t seed_adc; + std::stack > dead_pixel_stack; //The individual modules have been loaded into a buffer. //After each pixel has been considered by the clusterizer, we set the adc count to 1 @@ -428,7 +429,10 @@ SiPixelCluster PixelThresholdClusterizer::make_cluster(const SiPixelCluster::Pix } else { */ - seed_adc = theBuffer(pix.row(), pix.col()); + // Note: each ADC value is limited here to 65535 (std::numeric_limits::max), + // as it is later stored as uint16_t in SiPixelCluster and PixelClusterizerBase/AccretionCluster + // (reminder: ADC values here may be expressed in number of electrons) + seed_adc = std::min(theBuffer(pix.row(), pix.col()), int(std::numeric_limits::max())); theBuffer.set_adc(pix, 1); // } @@ -450,11 +454,12 @@ SiPixelCluster PixelThresholdClusterizer::make_cluster(const SiPixelCluster::Pix ++r) { if (theBuffer(r, c) >= thePixelThreshold) { SiPixelCluster::PixelPos newpix(r, c); - if (!acluster.add(newpix, theBuffer(r, c))) + auto const newpix_adc = std::min(theBuffer(r, c), int(std::numeric_limits::max())); + if (!acluster.add(newpix, newpix_adc)) goto endClus; // VV: no fake pixels in cluster, leads to non-contiguous clusters if (!theFakePixels[r * theNumOfCols + c]) { - cldata.add(newpix, theBuffer(r, c)); + cldata.add(newpix, newpix_adc); } theBuffer.set_adc(newpix, 1); } @@ -471,8 +476,8 @@ SiPixelCluster PixelThresholdClusterizer::make_cluster(const SiPixelCluster::Pix SiPixelCluster::PixelPos newpix(r,c); if(!doSplitClusters){ - - cluster.add(newpix, theBuffer(r,c));} + + cluster.add(newpix, std::min(theBuffer(r, c), int(std::numeric_limits::max())));} else if(doSplitClusters){ dead_pixel_stack.push(newpix); dead_flag = true;} @@ -518,9 +523,9 @@ SiPixelCluster PixelThresholdClusterizer::make_cluster(const SiPixelCluster::Pix //This loop adds the second cluster to the first. const std::vector& branch_pixels = second_cluster.pixels(); for (unsigned int i = 0; i < branch_pixels.size(); i++) { - int temp_x = branch_pixels[i].x; - int temp_y = branch_pixels[i].y; - int temp_adc = branch_pixels[i].adc; + auto const temp_x = branch_pixels[i].x; + auto const temp_y = branch_pixels[i].y; + auto const temp_adc = branch_pixels[i].adc; SiPixelCluster::PixelPos newpix(temp_x, temp_y); cluster.add(newpix, temp_adc); } diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/PixelThresholdClusterizerForBricked.cc b/RecoLocalTracker/SiPixelClusterizer/plugins/PixelThresholdClusterizerForBricked.cc index 11a26fff3b419..929a1bc1536d8 100644 --- a/RecoLocalTracker/SiPixelClusterizer/plugins/PixelThresholdClusterizerForBricked.cc +++ b/RecoLocalTracker/SiPixelClusterizer/plugins/PixelThresholdClusterizerForBricked.cc @@ -19,7 +19,8 @@ #include #include #include -using namespace std; +#include +#include //---------------------------------------------------------------------------- //! Constructor: @@ -119,8 +120,7 @@ void PixelThresholdClusterizerForBricked::clusterizeDetUnitT(const T& input, SiPixelCluster PixelThresholdClusterizerForBricked::make_cluster_bricked( const SiPixelCluster::PixelPos& pix, edmNew::DetSetVector::FastFiller& output, bool isbarrel) { //First we acquire the seeds for the clusters - int seed_adc; - stack > dead_pixel_stack; + std::stack > dead_pixel_stack; //The individual modules have been loaded into a buffer. //After each pixel has been considered by the clusterizer, we set the adc count to 1 @@ -128,7 +128,10 @@ SiPixelCluster PixelThresholdClusterizerForBricked::make_cluster_bricked( //The only difference between dead/noisy pixels and standard ones is that for dead/noisy pixels, //We consider the charge of the pixel to always be zero. - seed_adc = theBuffer(pix.row(), pix.col()); + // Note: each ADC value is limited here to 65535 (std::numeric_limits::max), + // as it is later stored as uint16_t in SiPixelCluster and PixelClusterizerBase/AccretionCluster + // (reminder: ADC values here may be expressed in number of electrons) + uint16_t seed_adc = std::min(theBuffer(pix.row(), pix.col()), int(std::numeric_limits::max())); theBuffer.set_adc(pix, 1); AccretionCluster acluster; @@ -167,7 +170,8 @@ SiPixelCluster PixelThresholdClusterizerForBricked::make_cluster_bricked( for (auto c = LowerAccLimity; c < UpperAccLimity; ++c) { if (theBuffer(r, c) >= thePixelThreshold) { SiPixelCluster::PixelPos newpix(r, c); - if (!acluster.add(newpix, theBuffer(r, c))) + auto const newpix_adc = std::min(theBuffer(r, c), int(std::numeric_limits::max())); + if (!acluster.add(newpix, newpix_adc)) goto endClus; if (isbarrel) edm::LogInfo("make_cluster_bricked()") << "add" << r << c << theBuffer(r, c); @@ -210,9 +214,9 @@ SiPixelCluster PixelThresholdClusterizerForBricked::make_cluster_bricked( //This loop adds the second cluster to the first. const std::vector& branch_pixels = second_cluster.pixels(); for (unsigned int i = 0; i < branch_pixels.size(); i++) { - int temp_x = branch_pixels[i].x; - int temp_y = branch_pixels[i].y; - int temp_adc = branch_pixels[i].adc; + auto const temp_x = branch_pixels[i].x; + auto const temp_y = branch_pixels[i].y; + auto const temp_adc = branch_pixels[i].adc; SiPixelCluster::PixelPos newpix(temp_x, temp_y); cluster.add(newpix, temp_adc); } diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/gpuCalibPixel.h b/RecoLocalTracker/SiPixelClusterizer/plugins/gpuCalibPixel.h index efb041a934ce7..d46fe76f3e81d 100644 --- a/RecoLocalTracker/SiPixelClusterizer/plugins/gpuCalibPixel.h +++ b/RecoLocalTracker/SiPixelClusterizer/plugins/gpuCalibPixel.h @@ -3,6 +3,8 @@ #include #include +#include +#include #include "CUDADataFormats/SiPixelCluster/interface/gpuClusteringConstants.h" #include "CondFormats/SiPixelObjects/interface/SiPixelGainForHLTonGPU.h" @@ -69,7 +71,7 @@ namespace gpuCalibPixel { float offset = id[i] < 96 ? VCaltoElectronOffset_L1 : VCaltoElectronOffset; vcal = vcal * conversionFactor + offset; } - adc[i] = std::max(100, int(vcal)); + adc[i] = std::clamp(int(vcal), 100, int(std::numeric_limits::max())); } } } @@ -96,24 +98,28 @@ namespace gpuCalibPixel { constexpr int mode = (Phase2ReadoutMode < -1 ? -1 : Phase2ReadoutMode); + int adc_int = adc[i]; + if constexpr (mode < 0) - adc[i] = int(adc[i] * ElectronPerADCGain); + adc_int = int(adc_int * ElectronPerADCGain); else { - if (adc[i] < Phase2KinkADC) - adc[i] = int((adc[i] - 0.5) * ElectronPerADCGain); + if (adc_int < Phase2KinkADC) + adc_int = int((adc_int - 0.5) * ElectronPerADCGain); else { constexpr int8_t dspp = (Phase2ReadoutMode < 10 ? Phase2ReadoutMode : 10); constexpr int8_t ds = int8_t(dspp <= 1 ? 1 : (dspp - 1) * (dspp - 1)); - adc[i] -= (Phase2KinkADC - 1); - adc[i] *= ds; - adc[i] += (Phase2KinkADC - 1); + adc_int -= (Phase2KinkADC - 1); + adc_int *= ds; + adc_int += (Phase2KinkADC - 1); - adc[i] = uint16_t((adc[i] + 0.5 * ds) * ElectronPerADCGain); + adc_int = ((adc_int + 0.5 * ds) * ElectronPerADCGain); } - adc[i] += int(Phase2DigiBaseline); + adc_int += int(Phase2DigiBaseline); } + + adc[i] = std::min(adc_int, int(std::numeric_limits::max())); } } diff --git a/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitSoAFromCUDA.cc b/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitSoAFromCUDA.cc index fda418320e70a..7532470ebd3d4 100644 --- a/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitSoAFromCUDA.cc +++ b/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitSoAFromCUDA.cc @@ -82,7 +82,9 @@ void SiPixelRecHitSoAFromCUDA::acquire(edm::Event const& iEvent, void SiPixelRecHitSoAFromCUDA::produce(edm::Event& iEvent, edm::EventSetup const& es) { auto hmsp = std::make_unique(nMaxModules_ + 1); - std::copy(hitsModuleStart_.get(), hitsModuleStart_.get() + nMaxModules_ + 1, hmsp.get()); + + if (nHits_ > 0) + std::copy(hitsModuleStart_.get(), hitsModuleStart_.get() + nMaxModules_ + 1, hmsp.get()); iEvent.emplace(hostPutToken_, std::move(hmsp)); iEvent.emplace(hitsPutTokenCPU_, store32_.get(), store16_.get(), hitsModuleStart_.get(), nHits_); diff --git a/RecoLuminosity/LumiProducer/plugins/BunchSpacingProducer.cc b/RecoLuminosity/LumiProducer/plugins/BunchSpacingProducer.cc index 8f0cc19cf0c82..53cdd1826baea 100644 --- a/RecoLuminosity/LumiProducer/plugins/BunchSpacingProducer.cc +++ b/RecoLuminosity/LumiProducer/plugins/BunchSpacingProducer.cc @@ -39,13 +39,8 @@ BunchSpacingProducer::BunchSpacingProducer::BunchSpacingProducer(const edm::Para // register your products produces(); bunchSpacing_ = consumes(edm::InputTag("addPileupInfo", "bunchSpacing")); - overRide_ = false; - if (iConfig.exists("overrideBunchSpacing")) { - overRide_ = iConfig.getParameter("overrideBunchSpacing"); - if (overRide_) { - bunchSpacingOverride_ = iConfig.getParameter("bunchSpacingOverride"); - } - } + overRide_ = iConfig.getParameter("overrideBunchSpacing"); + bunchSpacingOverride_ = iConfig.getParameter("bunchSpacingOverride"); } BunchSpacingProducer::~BunchSpacingProducer() {} @@ -82,7 +77,7 @@ void BunchSpacingProducer::fillDescriptions(edm::ConfigurationDescriptions& desc desc.add("overrideBunchSpacing", false); // true for prompt reco desc.add("bunchSpacingOverride", 25); // override value - descriptions.add("bunchSpacingProducer", desc); + descriptions.add("BunchSpacingProducer", desc); } #include "FWCore/Framework/interface/MakerMacros.h" diff --git a/RecoLuminosity/LumiProducer/python/bunchSpacingProducer_cfi.py b/RecoLuminosity/LumiProducer/python/bunchSpacingProducer_cfi.py index d4076d1ba90f4..312ccee610974 100644 --- a/RecoLuminosity/LumiProducer/python/bunchSpacingProducer_cfi.py +++ b/RecoLuminosity/LumiProducer/python/bunchSpacingProducer_cfi.py @@ -1,6 +1,9 @@ import FWCore.ParameterSet.Config as cms -bunchSpacingProducer = cms.EDProducer("BunchSpacingProducer") + +import RecoLuminosity.LumiProducer.BunchSpacingProducer_cfi as _mod + +bunchSpacingProducer = _mod.BunchSpacingProducer.clone() from Configuration.Eras.Modifier_run2_50ns_specific_cff import run2_50ns_specific -run2_50ns_specific.toModify( bunchSpacingProducer, bunchSpacingOverride = cms.uint32(50)) -run2_50ns_specific.toModify( bunchSpacingProducer, overrideBunchSpacing = cms.bool(True)) +run2_50ns_specific.toModify( bunchSpacingProducer, bunchSpacingOverride = 50) +run2_50ns_specific.toModify( bunchSpacingProducer, overrideBunchSpacing = True) diff --git a/RecoMuon/MuonSeedGenerator/src/RPCSeedFinder.cc b/RecoMuon/MuonSeedGenerator/src/RPCSeedFinder.cc index 3b77971f4772e..56e4e77744282 100644 --- a/RecoMuon/MuonSeedGenerator/src/RPCSeedFinder.cc +++ b/RecoMuon/MuonSeedGenerator/src/RPCSeedFinder.cc @@ -39,8 +39,9 @@ void RPCSeedFinder::setrecHits(ConstMuonRecHitContainer &recHits) { isrecHitsset = true; } -void RPCSeedFinder::setEventSetup(const edm::EventSetup &iSetup) { - eSetup = &iSetup; +void RPCSeedFinder::setEventSetup(const MagneticField &field, const RPCGeometry &rpcGeom) { + pField = &field; + pRPCGeom = &rpcGeom; isEventSetupset = true; } @@ -54,8 +55,8 @@ void RPCSeedFinder::seed() { weightedTrajectorySeed theweightedSeed; int isGoodSeed = 0; - const edm::EventSetup &iSetup = *eSetup; - theweightedSeed = oneSeed.seed(iSetup, isGoodSeed); + + theweightedSeed = oneSeed.seed(*pField, *pRPCGeom, isGoodSeed); // Push back the good seed if (isGoodSeed == 1) { cout << "[RPCSeedFinder] --> Seeds from " << oneSeed.nrhit() << " recHits." << endl; diff --git a/RecoMuon/MuonSeedGenerator/src/RPCSeedFinder.h b/RecoMuon/MuonSeedGenerator/src/RPCSeedFinder.h index 2eb178351ca08..795b7e851eadc 100644 --- a/RecoMuon/MuonSeedGenerator/src/RPCSeedFinder.h +++ b/RecoMuon/MuonSeedGenerator/src/RPCSeedFinder.h @@ -12,13 +12,11 @@ #include #include #include -#include #include #include -namespace edm { - class EventSetup; -} +class MagneticField; +class RPCGeometry; class RPCSeedFinder { typedef MuonTransientTrackingRecHit::MuonRecHitPointer MuonRecHitPointer; @@ -34,7 +32,7 @@ class RPCSeedFinder { void setOutput(std::vector *goodweightedRef, std::vector *candidateweightedRef); void setrecHits(ConstMuonRecHitContainer &recHits); - void setEventSetup(const edm::EventSetup &iSetup); + void setEventSetup(const MagneticField &field, const RPCGeometry &rpcGeom); void seed(); private: @@ -43,7 +41,8 @@ class RPCSeedFinder { bool isConfigured; bool isOutputset; bool isEventSetupset; - const edm::EventSetup *eSetup; + const MagneticField *pField = nullptr; + const RPCGeometry *pRPCGeom = nullptr; RPCSeedPattern oneSeed; //ConstMuonRecHitContainer theRecHits; std::vector *goodweightedSeedsRef; diff --git a/RecoMuon/MuonSeedGenerator/src/RPCSeedGenerator.cc b/RecoMuon/MuonSeedGenerator/src/RPCSeedGenerator.cc index 297ba9f2193ba..1eff10d501cc6 100644 --- a/RecoMuon/MuonSeedGenerator/src/RPCSeedGenerator.cc +++ b/RecoMuon/MuonSeedGenerator/src/RPCSeedGenerator.cc @@ -20,7 +20,7 @@ Description: #include // user include files #include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDProducer.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -43,6 +43,7 @@ Description: #include "RecoMuon/MeasurementDet/interface/MuonDetLayerMeasurements.h" #include "RecoMuon/DetLayers/interface/MuonDetLayerGeometry.h" #include "RecoMuon/Records/interface/MuonRecoGeometryRecord.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" // Framework #include "FWCore/Framework/interface/EventSetup.h" @@ -82,16 +83,16 @@ typedef RPCSeedPattern::weightedTrajectorySeed weightedTrajectorySeed; class RPCSeedFinder; -class RPCSeedGenerator : public edm::EDProducer { +class RPCSeedGenerator : public edm::stream::EDProducer<> { public: explicit RPCSeedGenerator(const edm::ParameterSet& iConfig); ~RPCSeedGenerator() override; private: - void beginJob() override; + void beginStream(edm::StreamID) override; void beginRun(const edm::Run&, const edm::EventSetup& iSetup) override; void produce(edm::Event& iEvent, const edm::EventSetup& iSetup) override; - void endJob() override; + void endStream() override; // ----------member data --------------------------- RPCSeedFinder Finder; @@ -102,7 +103,12 @@ class RPCSeedGenerator : public edm::EDProducer { std::vector candidateweightedSeeds; std::vector goodweightedSeeds; edm::InputTag theRPCRecHits; - MuonDetLayerMeasurements* muonMeasurements; + std::unique_ptr muonMeasurements; + + const edm::ESGetToken brRPCGeometryToken; + const edm::ESGetToken muonLayersToken; + const edm::ESGetToken fieldToken; + const edm::ESGetToken rpcGeometryToken; }; // @@ -116,7 +122,11 @@ class RPCSeedGenerator : public edm::EDProducer { // // constructors and destructor // -RPCSeedGenerator::RPCSeedGenerator(const edm::ParameterSet& iConfig) { +RPCSeedGenerator::RPCSeedGenerator(const edm::ParameterSet& iConfig) + : brRPCGeometryToken(esConsumes()), + muonLayersToken(esConsumes()), + fieldToken(esConsumes()), + rpcGeometryToken(esConsumes()) { //register your products /* Examples produces(); @@ -141,17 +151,17 @@ RPCSeedGenerator::RPCSeedGenerator(const edm::ParameterSet& iConfig) { // Get RPC recHits by MuonDetLayerMeasurements, while CSC and DT is set to false and with empty InputTag edm::ConsumesCollector iC = consumesCollector(); - muonMeasurements = new MuonDetLayerMeasurements(edm::InputTag(), - edm::InputTag(), - theRPCRecHits, - edm::InputTag(), - edm::InputTag(), - iC, - false, - false, - true, - false, - false); + muonMeasurements = std::make_unique(edm::InputTag(), + edm::InputTag(), + theRPCRecHits, + edm::InputTag(), + edm::InputTag(), + iC, + false, + false, + true, + false, + false); cout << endl << "[RPCSeedGenerator] --> Constructor called" << endl; } @@ -160,9 +170,6 @@ RPCSeedGenerator::~RPCSeedGenerator() { // do anything here that needs to be done at desctruction time // (e.g. close files, deallocate resources etc.) cout << "[RPCSeedGenerator] --> Destructor called" << endl; - - if (muonMeasurements) - delete muonMeasurements; } // @@ -180,18 +187,17 @@ void RPCSeedGenerator::produce(edm::Event& iEvent, const edm::EventSetup& iSetup auto candidateCollection = std::make_unique(); // Muon Geometry - DT, CSC and RPC - edm::ESHandle muonLayers; - iSetup.get().get(muonLayers); + MuonDetLayerGeometry const& muonLayers = iSetup.getData(muonLayersToken); // Get the RPC layers - vector RPCBarrelLayers = muonLayers->barrelRPCLayers(); + vector RPCBarrelLayers = muonLayers.barrelRPCLayers(); const DetLayer* RB4L = RPCBarrelLayers[5]; const DetLayer* RB3L = RPCBarrelLayers[4]; const DetLayer* RB22L = RPCBarrelLayers[3]; const DetLayer* RB21L = RPCBarrelLayers[2]; const DetLayer* RB12L = RPCBarrelLayers[1]; const DetLayer* RB11L = RPCBarrelLayers[0]; - vector RPCEndcapLayers = muonLayers->endcapRPCLayers(); + vector RPCEndcapLayers = muonLayers.endcapRPCLayers(); const DetLayer* REM3L = RPCEndcapLayers[0]; const DetLayer* REM2L = RPCEndcapLayers[1]; const DetLayer* REM1L = RPCEndcapLayers[2]; @@ -234,7 +240,10 @@ void RPCSeedGenerator::produce(edm::Event& iEvent, const edm::EventSetup& iSetup LayerFinder.setInput(recHitsRPC); // Set Magnetic Field EventSetup of RPCSeedFinder - Finder.setEventSetup(iSetup); + const MagneticField& Field = iSetup.getData(fieldToken); + + const RPCGeometry& rpcGeom = iSetup.getData(rpcGeometryToken); + Finder.setEventSetup(Field, rpcGeom); // Start from filling layers to filling seeds LayerFinder.fill(); @@ -260,7 +269,7 @@ void RPCSeedGenerator::produce(edm::Event& iEvent, const edm::EventSetup& iSetup LayerFinder.unsetInput(); } -void RPCSeedGenerator::beginJob() { +void RPCSeedGenerator::beginStream(edm::StreamID) { // Set link and EventSetup of RPCSeedFinder, PCSeedrecHitFinder, CosmicrecHitFinder, RPCSeedLayerFinder cout << "set link and Geometry EventSetup of RPCSeedFinder, RPCSeedrecHitFinder, RPCCosmicSeedrecHitFinder, " "RPCSeedLayerFinder and RPCSeedOverlapper" @@ -273,15 +282,14 @@ void RPCSeedGenerator::beginJob() { } void RPCSeedGenerator::beginRun(const edm::Run&, const edm::EventSetup& iSetup) { // Get RPCGeometry - edm::ESHandle rpcGeometry; - iSetup.get().get(rpcGeometry); + RPCGeometry const& rpcGeometry = iSetup.getData(brRPCGeometryToken); - CosmicrecHitFinder.setEdge(*rpcGeometry); - Overlapper.setGeometry(*rpcGeometry); + CosmicrecHitFinder.setEdge(rpcGeometry); + Overlapper.setGeometry(rpcGeometry); Overlapper.setIO(&goodweightedSeeds, &candidateweightedSeeds); } -void RPCSeedGenerator::endJob() { cout << "All jobs completed" << endl; } +void RPCSeedGenerator::endStream() { cout << "All jobs completed" << endl; } //define this as a plug-in DEFINE_FWK_MODULE(RPCSeedGenerator); diff --git a/RecoMuon/MuonSeedGenerator/src/RPCSeedPattern.cc b/RecoMuon/MuonSeedGenerator/src/RPCSeedPattern.cc index 54a312bab0f70..7df32fba0f324 100644 --- a/RecoMuon/MuonSeedGenerator/src/RPCSeedPattern.cc +++ b/RecoMuon/MuonSeedGenerator/src/RPCSeedPattern.cc @@ -9,7 +9,6 @@ #include "RecoMuon/MuonSeedGenerator/src/RPCSeedPattern.h" #include #include -#include #include #include #include @@ -20,7 +19,6 @@ #include #include #include -#include #include "gsl/gsl_statistics.h" #include "TH1F.h" @@ -50,16 +48,19 @@ void RPCSeedPattern::configure(const edm::ParameterSet& iConfig) { isConfigured = true; } -RPCSeedPattern::weightedTrajectorySeed RPCSeedPattern::seed(const edm::EventSetup& eSetup, int& isGoodSeed) { +RPCSeedPattern::weightedTrajectorySeed RPCSeedPattern::seed(const MagneticField& Field, + const RPCGeometry& rpcGeom, + int& isGoodSeed) { if (isConfigured == false) { cout << "Configuration not set yet" << endl; - return createFakeSeed(isGoodSeed, eSetup); + return createFakeSeed(isGoodSeed, Field); } // Check recHit number, if fail we return a fake seed and set pattern to "wrong" unsigned int NumberofHitsinSeed = nrhit(); - if (NumberofHitsinSeed < 3) - return createFakeSeed(isGoodSeed, eSetup); + if (NumberofHitsinSeed < 3) { + return createFakeSeed(isGoodSeed, Field); + } // If only three recHits, we don't have other choice if (NumberofHitsinSeed == 3) ThreePointsAlgorithm(); @@ -74,17 +75,17 @@ RPCSeedPattern::weightedTrajectorySeed RPCSeedPattern::seed(const edm::EventSetu if (AlgorithmType == 2) SegmentAlgorithm(); if (AlgorithmType == 3) { - if (checkSegment()) - SegmentAlgorithmSpecial(eSetup); - else { + if (checkSegment()) { + SegmentAlgorithmSpecial(Field); + } else { cout << "Not enough recHits for Special Segment Algorithm" << endl; - return createFakeSeed(isGoodSeed, eSetup); + return createFakeSeed(isGoodSeed, Field); } } } else { if (checkSegment()) { AlgorithmType = 3; - SegmentAlgorithmSpecial(eSetup); + SegmentAlgorithmSpecial(Field); } else { AlgorithmType = 2; SegmentAlgorithm(); @@ -95,13 +96,13 @@ RPCSeedPattern::weightedTrajectorySeed RPCSeedPattern::seed(const edm::EventSetu // Check the pattern if (isPatternChecked == false) { if (AlgorithmType != 3) { - checkSimplePattern(eSetup); + checkSimplePattern(Field); } else { - checkSegmentAlgorithmSpecial(eSetup); + checkSegmentAlgorithmSpecial(Field, rpcGeom); } } - return createSeed(isGoodSeed, eSetup); + return createSeed(isGoodSeed, Field); } void RPCSeedPattern::ThreePointsAlgorithm() { @@ -274,11 +275,7 @@ void RPCSeedPattern::SegmentAlgorithm() { delete[] Segment; } -void RPCSeedPattern::SegmentAlgorithmSpecial(const edm::EventSetup& eSetup) { - // Get magnetic field - edm::ESHandle Field; - eSetup.get().get(Field); - +void RPCSeedPattern::SegmentAlgorithmSpecial(const MagneticField& Field) { //unsigned int NumberofHitsinSeed = nrhit(); if (!checkSegment()) { isPatternChecked = true; @@ -297,7 +294,7 @@ void RPCSeedPattern::SegmentAlgorithmSpecial(const edm::EventSetup& eSetup) { for (unsigned int index = 0; index < sampleCount; index++) { gp[index] = GlobalPoint( (gpFirst.x() + dx * (index + 1)), (gpFirst.y() + dy * (index + 1)), (gpFirst.z() + dz * (index + 1))); - GlobalVector MagneticVec_temp = Field->inTesla(gp[index]); + GlobalVector MagneticVec_temp = Field.inTesla(gp[index]); cout << "Sampling magnetic field : " << MagneticVec_temp << endl; //BValue.push_back(MagneticVec_temp); } @@ -320,24 +317,24 @@ void RPCSeedPattern::SegmentAlgorithmSpecial(const edm::EventSetup& eSetup) { // extrapolate the segment to find the Iron border which magnetic field is at large value entryPosition = (SegmentRB[0].second)->globalPosition(); leavePosition = (SegmentRB[1].first)->globalPosition(); - while (fabs(Field->inTesla(entryPosition).z()) < MagnecticFieldThreshold) { + while (fabs(Field.inTesla(entryPosition).z()) < MagnecticFieldThreshold) { cout << "Entry position is : " << entryPosition << ", and stepping into next point" << endl; entryPosition += segvec1.unit() * stepLength; } // Loop back for more accurate by stepLength/10 - while (fabs(Field->inTesla(entryPosition).z()) >= MagnecticFieldThreshold) { + while (fabs(Field.inTesla(entryPosition).z()) >= MagnecticFieldThreshold) { cout << "Entry position is : " << entryPosition << ", and stepping back into next point" << endl; entryPosition -= segvec1.unit() * stepLength / 10; } entryPosition += 0.5 * segvec1.unit() * stepLength / 10; cout << "Final entry position is : " << entryPosition << endl; - while (fabs(Field->inTesla(leavePosition).z()) < MagnecticFieldThreshold) { + while (fabs(Field.inTesla(leavePosition).z()) < MagnecticFieldThreshold) { cout << "Leave position is : " << leavePosition << ", and stepping into next point" << endl; leavePosition -= segvec2.unit() * stepLength; } // Loop back for more accurate by stepLength/10 - while (fabs(Field->inTesla(leavePosition).z()) >= MagnecticFieldThreshold) { + while (fabs(Field.inTesla(leavePosition).z()) >= MagnecticFieldThreshold) { cout << "Leave position is : " << leavePosition << ", and stepping back into next point" << endl; leavePosition += segvec2.unit() * stepLength / 10; } @@ -355,7 +352,7 @@ void RPCSeedPattern::SegmentAlgorithmSpecial(const edm::EventSetup& eSetup) { gp[index] = GlobalPoint((entryPosition.x() + dx * (index + 1)), (entryPosition.y() + dy * (index + 1)), (entryPosition.z() + dz * (index + 1))); - GlobalVector MagneticVec_temp = Field->inTesla(gp[index]); + GlobalVector MagneticVec_temp = Field.inTesla(gp[index]); cout << "Sampling magnetic field : " << MagneticVec_temp << endl; BValue.push_back(MagneticVec_temp); } @@ -604,14 +601,10 @@ GlobalVector RPCSeedPattern::computePtWithThreerecHits(double& pt, return Center; } -void RPCSeedPattern::checkSimplePattern(const edm::EventSetup& eSetup) { +void RPCSeedPattern::checkSimplePattern(const MagneticField& Field) { if (isPatternChecked == true) return; - // Get magnetic field - edm::ESHandle Field; - eSetup.get().get(Field); - unsigned int NumberofHitsinSeed = nrhit(); // Print the recHit's position @@ -630,7 +623,7 @@ void RPCSeedPattern::checkSimplePattern(const edm::EventSetup& eSetup) { for (unsigned int index = 0; index < sampleCount; index++) { gp[index] = GlobalPoint( (gpFirst.x() + dx * (index + 1)), (gpFirst.y() + dy * (index + 1)), (gpFirst.z() + dz * (index + 1))); - GlobalVector MagneticVec_temp = Field->inTesla(gp[index]); + GlobalVector MagneticVec_temp = Field.inTesla(gp[index]); cout << "Sampling magnetic field : " << MagneticVec_temp << endl; BzValue.push_back(MagneticVec_temp.z()); } @@ -745,7 +738,7 @@ void RPCSeedPattern::checkSimplePattern(const edm::EventSetup& eSetup) { isPatternChecked = true; } -void RPCSeedPattern::checkSegmentAlgorithmSpecial(const edm::EventSetup& eSetup) { +void RPCSeedPattern::checkSegmentAlgorithmSpecial(MagneticField const& Field, RPCGeometry const& rpcGeom) { if (isPatternChecked == true) return; @@ -799,6 +792,7 @@ void RPCSeedPattern::checkSegmentAlgorithmSpecial(const edm::EventSetup& eSetup) GlobalPoint startPosition = (SegmentRB[1].first)->globalPosition(); GlobalVector startMomentum = startSegment * (meanPt / startSegment.perp()); unsigned int index = 0; + for (ConstMuonRecHitContainer::const_iterator iter = theRecHits.begin(); iter != theRecHits.end(); iter++) { if (index < 4) { index++; @@ -806,7 +800,7 @@ void RPCSeedPattern::checkSegmentAlgorithmSpecial(const edm::EventSetup& eSetup) } double tracklength = 0; cout << "Now checking recHit " << index << endl; - double Distance = extropolateStep(startPosition, startMomentum, iter, isClockwise, tracklength, eSetup); + double Distance = extropolateStep(startPosition, startMomentum, iter, isClockwise, tracklength, Field, rpcGeom); cout << "Final distance is " << Distance << endl; if (Distance > MaxRSD) { cout << "Pattern find error in distance for other recHits: " << Distance << endl; @@ -864,7 +858,7 @@ void RPCSeedPattern::checkSegmentAlgorithmSpecial(const edm::EventSetup& eSetup) } double tracklength = 0; cout << "Now checking recHit " << index << endl; - double Distance = extropolateStep(startPosition, startMomentum, iter, isClockwise, tracklength, eSetup); + double Distance = extropolateStep(startPosition, startMomentum, iter, isClockwise, tracklength, Field, rpcGeom); cout << "Final distance is " << Distance << endl; if (Distance > MaxRSD) { cout << "Pattern find error in distance for other recHits: " << Distance << endl; @@ -884,22 +878,16 @@ double RPCSeedPattern::extropolateStep(const GlobalPoint& startPosition, ConstMuonRecHitContainer::const_iterator iter, const int ClockwiseDirection, double& tracklength, - const edm::EventSetup& eSetup) { - // Get magnetic field - edm::ESHandle Field; - eSetup.get().get(Field); - + const MagneticField& Field, + const RPCGeometry& rpcGeometry) { cout << "Extrapolating the track to check the pattern" << endl; tracklength = 0; // Get the iter recHit's detector geometry DetId hitDet = (*iter)->hit()->geographicalId(); RPCDetId RPCId = RPCDetId(hitDet.rawId()); //const RPCChamber* hitRPC = dynamic_cast(hitDet); - edm::ESHandle pRPCGeom; - eSetup.get().get(pRPCGeom); - const RPCGeometry* rpcGeometry = (const RPCGeometry*)&*pRPCGeom; - const BoundPlane RPCSurface = rpcGeometry->chamber(RPCId)->surface(); + const BoundPlane RPCSurface = rpcGeometry.chamber(RPCId)->surface(); double startSide = RPCSurface.localZ(startPosition); cout << "Start side : " << startSide; @@ -923,7 +911,7 @@ double RPCSeedPattern::extropolateStep(const GlobalPoint& startPosition, if (ClockwiseDirection == 0) { currentPosition += currentMomentum.unit() * stepLength; } else { - double Bz = Field->inTesla(currentPosition).z(); + double Bz = Field.inTesla(currentPosition).z(); double Radius = currentMomentum.perp() / fabs(Bz * 0.01 * 0.3); double deltaPhi = (stepLength * currentMomentum.perp() / currentMomentum.mag()) / Radius; @@ -964,7 +952,7 @@ double RPCSeedPattern::extropolateStep(const GlobalPoint& startPosition, return currentDistance; } -RPCSeedPattern::weightedTrajectorySeed RPCSeedPattern::createFakeSeed(int& isGoodSeed, const edm::EventSetup& eSetup) { +RPCSeedPattern::weightedTrajectorySeed RPCSeedPattern::createFakeSeed(int& isGoodSeed, const MagneticField& Field) { // Create a fake seed and return cout << "Now create a fake seed" << endl; isPatternChecked = true; @@ -992,10 +980,7 @@ RPCSeedPattern::weightedTrajectorySeed RPCSeedPattern::createFakeSeed(int& isGoo mat[0][0] = meanSpt; LocalTrajectoryError error(asSMatrix<5>(mat)); - edm::ESHandle Field; - eSetup.get().get(Field); - - TrajectoryStateOnSurface tsos(param, error, best->det()->surface(), &*Field); + TrajectoryStateOnSurface tsos(param, error, best->det()->surface(), &Field); DetId id = best->geographicalId(); @@ -1014,15 +999,12 @@ RPCSeedPattern::weightedTrajectorySeed RPCSeedPattern::createFakeSeed(int& isGoo return theweightedSeed; } -RPCSeedPattern::weightedTrajectorySeed RPCSeedPattern::createSeed(int& isGoodSeed, const edm::EventSetup& eSetup) { +RPCSeedPattern::weightedTrajectorySeed RPCSeedPattern::createSeed(int& isGoodSeed, const MagneticField& Field) { if (isPatternChecked == false || isGoodPattern == -1) { cout << "Pattern is not yet checked! Create a fake seed instead!" << endl; - return createFakeSeed(isGoodSeed, eSetup); + return createFakeSeed(isGoodSeed, Field); } - edm::ESHandle Field; - eSetup.get().get(Field); - MuonPatternRecoDumper debug; //double theMinMomentum = 3.0; @@ -1077,7 +1059,7 @@ RPCSeedPattern::weightedTrajectorySeed RPCSeedPattern::createSeed(int& isGoodSee LocalTrajectoryError error = getSpecialAlgorithmErrorMatrix(first, best); - TrajectoryStateOnSurface tsos(param, error, best->det()->surface(), &*Field); + TrajectoryStateOnSurface tsos(param, error, best->det()->surface(), &Field); cout << "Trajectory State on Surface before the extrapolation" << endl; cout << debug.dumpTSOS(tsos); DetId id = best->geographicalId(); diff --git a/RecoMuon/MuonSeedGenerator/src/RPCSeedPattern.h b/RecoMuon/MuonSeedGenerator/src/RPCSeedPattern.h index 950187a071ca6..273e773946a4a 100644 --- a/RecoMuon/MuonSeedGenerator/src/RPCSeedPattern.h +++ b/RecoMuon/MuonSeedGenerator/src/RPCSeedPattern.h @@ -25,6 +25,8 @@ #define lower_limit_pt 3.0 #endif +class RPCGeometry; + class RPCSeedPattern { typedef MuonTransientTrackingRecHit::MuonRecHitPointer MuonRecHitPointer; typedef MuonTransientTrackingRecHit::ConstMuonRecHitPointer ConstMuonRecHitPointer; @@ -45,18 +47,18 @@ class RPCSeedPattern { private: friend class RPCSeedFinder; - weightedTrajectorySeed seed(const edm::EventSetup& eSetup, int& isGoodSeed); + weightedTrajectorySeed seed(const MagneticField& Field, const RPCGeometry& rpcGeom, int& isGoodSeed); void ThreePointsAlgorithm(); void MiddlePointsAlgorithm(); void SegmentAlgorithm(); - void SegmentAlgorithmSpecial(const edm::EventSetup& eSetup); + void SegmentAlgorithmSpecial(const MagneticField& Field); bool checkSegment() const; ConstMuonRecHitPointer FirstRecHit() const; ConstMuonRecHitPointer BestRefRecHit() const; LocalTrajectoryError getSpecialAlgorithmErrorMatrix(const ConstMuonRecHitPointer& first, const ConstMuonRecHitPointer& best); - weightedTrajectorySeed createFakeSeed(int& isGoodSeed, const edm::EventSetup& eSetup); - weightedTrajectorySeed createSeed(int& isGoodSeed, const edm::EventSetup& eSetup); + weightedTrajectorySeed createFakeSeed(int& isGoodSeed, const MagneticField&); + weightedTrajectorySeed createSeed(int& isGoodSeed, const MagneticField&); double getDistance(const ConstMuonRecHitPointer& precHit, const GlobalVector& Center) const; bool checkStraightwithThreerecHits(ConstMuonRecHitPointer (&precHit)[3], double MinDeltaPhi) const; GlobalVector computePtwithThreerecHits(double& pt, double& pt_err, ConstMuonRecHitPointer (&precHit)[3]) const; @@ -65,14 +67,15 @@ class RPCSeedPattern { bool checkStraightwithThreerecHits(double (&x)[3], double (&y)[3], double MinDeltaPhi) const; GlobalVector computePtWithThreerecHits(double& pt, double& pt_err, double (&x)[3], double (&y)[3]) const; - void checkSimplePattern(const edm::EventSetup& eSetup); - void checkSegmentAlgorithmSpecial(const edm::EventSetup& eSetup); + void checkSimplePattern(const MagneticField& Field); + void checkSegmentAlgorithmSpecial(const MagneticField& Field, const RPCGeometry& rpcGeometry); double extropolateStep(const GlobalPoint& startPosition, const GlobalVector& startMomentum, ConstMuonRecHitContainer::const_iterator iter, const int ClockwiseDirection, double& tracklength, - const edm::EventSetup& eSetup); + const MagneticField& Field, + const RPCGeometry& rpcGeometry); //void computeBestPt(double* pt, double* spt, double& ptmean0, double& sptmean0, unsigned int NumberofPt) const; diff --git a/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedParametrization.cc b/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedParametrization.cc index 35a3e96731a74..10e94215d6f13 100644 --- a/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedParametrization.cc +++ b/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedParametrization.cc @@ -28,7 +28,8 @@ using namespace std; using namespace edm; // constructors -MuonSeedParametrization::MuonSeedParametrization(const ParameterSet& pset) { +MuonSeedParametrization::MuonSeedParametrization(const ParameterSet& pset) + : cscGeomToken(esConsumes()), dtGeomToken(esConsumes()) { debug = pset.getUntrackedParameter("debug"); scale = pset.getUntrackedParameter("scale"); rootFileName = pset.getUntrackedParameter("rootFileName"); @@ -192,12 +193,10 @@ MuonSeedParametrization::~MuonSeedParametrization() { void MuonSeedParametrization::analyze(const Event& event, const EventSetup& eventSetup) { //Get the CSC Geometry : - ESHandle cscGeom; - eventSetup.get().get(cscGeom); + ESHandle cscGeom = eventSetup.getHandle(cscGeomToken); //Get the DT Geometry : - ESHandle dtGeom; - eventSetup.get().get(dtGeom); + ESHandle dtGeom = eventSetup.getHandle(dtGeomToken); // Get the RecHits collection : Handle csc2DRecHits; diff --git a/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedParametrization.h b/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedParametrization.h index 10e0eb6746214..e30a99122fbc2 100644 --- a/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedParametrization.h +++ b/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedParametrization.h @@ -11,7 +11,7 @@ #include "MuonSeedParaFillHisto.h" #include "MuonSeeddPhiScale.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/ESHandle.h" #include @@ -70,7 +70,7 @@ class SegSelector; class MuonSeedParaFillHisto; class MuonSeeddPhiScale; -class MuonSeedParametrization : public edm::EDAnalyzer { +class MuonSeedParametrization : public edm::one::EDAnalyzer<> { public: /// Constructor MuonSeedParametrization(const edm::ParameterSet &pset); @@ -200,6 +200,9 @@ class MuonSeedParametrization : public edm::EDAnalyzer { std::string simHitLabel; std::string simTrackLabel; std::string muonseedLabel; + + edm::ESGetToken cscGeomToken; + edm::ESGetToken dtGeomToken; }; #endif diff --git a/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedValidator.cc b/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedValidator.cc index 8e12bb7a8ddb5..28cc441edc155 100644 --- a/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedValidator.cc +++ b/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedValidator.cc @@ -39,7 +39,7 @@ using namespace edm; using namespace reco; // constructors -MuonSeedValidator::MuonSeedValidator(const ParameterSet& pset) { +MuonSeedValidator::MuonSeedValidator(const ParameterSet& pset) : cscGeomToken(esConsumes()), dtGeomToken(esConsumes()) { rootFileName = pset.getUntrackedParameter("rootFileName"); recHitLabel = pset.getUntrackedParameter("recHitLabel"); cscSegmentLabel = pset.getUntrackedParameter("cscSegmentLabel"); @@ -138,12 +138,8 @@ void MuonSeedValidator::analyze(const Event& event, const EventSetup& eventSetup //ESHandle globalGeometry; //eventSetup.get().get(globalGeometry); - ESHandle cscGeom; - eventSetup.get().get(cscGeom); - - //Get the DT Geometry : - ESHandle dtGeom; - eventSetup.get().get(dtGeom); + ESHandle cscGeom = eventSetup.getHandle(cscGeomToken); + ESHandle dtGeom = eventSetup.getHandle(dtGeomToken); // Get the RecHits collection : Handle csc2DRecHits; diff --git a/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedValidator.h b/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedValidator.h index 23165cf32b592..f73bf5dc181e6 100644 --- a/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedValidator.h +++ b/RecoMuon/MuonSeedGenerator/test/MuonSeedPTAnalysis/MuonSeedValidator.h @@ -10,7 +10,7 @@ #include "MuonSeedValidatorHisto.h" #include "SegSelector.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/ESHandle.h" #include #include "FWCore/Utilities/interface/InputTag.h" @@ -72,7 +72,7 @@ class DTChamberId; class SegSelector; //class MuonSeedBuilder; -class MuonSeedValidator : public edm::EDAnalyzer { +class MuonSeedValidator : public edm::one::EDAnalyzer<> { public: /// Constructor MuonSeedValidator(const edm::ParameterSet &pset); @@ -267,6 +267,9 @@ class MuonSeedValidator : public edm::EDAnalyzer { double pTCutMin; double eta_Low; double eta_High; + + const edm::ESGetToken cscGeomToken; + const edm::ESGetToken dtGeomToken; }; #endif diff --git a/RecoMuon/TrackerSeedGenerator/interface/L1MuonPixelTrackFitter.h b/RecoMuon/TrackerSeedGenerator/interface/L1MuonPixelTrackFitter.h index ebb5d9df8fb54..aba794c679635 100644 --- a/RecoMuon/TrackerSeedGenerator/interface/L1MuonPixelTrackFitter.h +++ b/RecoMuon/TrackerSeedGenerator/interface/L1MuonPixelTrackFitter.h @@ -11,9 +11,6 @@ #include -namespace edm { - class EventSetup; -} namespace reco { class Track; } @@ -23,6 +20,7 @@ class TrackingRecHit; class L1MuGMTCand; class PixelRecoLineRZ; class SeedingHitSet; +class MagneticField; class L1MuonPixelTrackFitter { public: @@ -59,7 +57,7 @@ class L1MuonPixelTrackFitter { void setL1Constraint(const L1MuGMTCand& muon); void setPxConstraint(const SeedingHitSet& hits); - virtual reco::Track* run(const edm::EventSetup& es, + virtual reco::Track* run(const MagneticField& field, const std::vector& hits, const TrackingRegion& region) const; diff --git a/RecoMuon/TrackerSeedGenerator/plugins/TSGForOI.cc b/RecoMuon/TrackerSeedGenerator/plugins/TSGForOI.cc index 98b32f27fe43d..22af237305905 100644 --- a/RecoMuon/TrackerSeedGenerator/plugins/TSGForOI.cc +++ b/RecoMuon/TrackerSeedGenerator/plugins/TSGForOI.cc @@ -15,6 +15,13 @@ using namespace std; TSGForOI::TSGForOI(const edm::ParameterSet& iConfig) : src_(consumes(iConfig.getParameter("src"))), + estimatorToken_(esConsumes(edm::ESInputTag("", (iConfig.getParameter("estimator"))))), + magfieldToken_(esConsumes()), + tmpTkGeometryToken_(esConsumes()), + geometryToken_(esConsumes()), + tTopoToken_(esConsumes()), + smartOppositeToken_(esConsumes(edm::ESInputTag("", "hltESPSmartPropagatorAnyOpposite"))), + shpOppositeToken_(esConsumes(edm::ESInputTag("", "hltESPSteppingHelixPropagatorOpposite"))), numOfMaxSeedsParam_(iConfig.getParameter("maxSeeds")), numOfLayersToTry_(iConfig.getParameter("layersToTry")), numOfHitsToTry_(iConfig.getParameter("hitsToTry")), @@ -22,7 +29,6 @@ TSGForOI::TSGForOI(const edm::ParameterSet& iConfig) fixedErrorRescalingForHitless_(iConfig.getParameter("fixedErrorRescaleFactorForHitless")), adjustErrorsDynamicallyForHits_(iConfig.getParameter("adjustErrorsDynamicallyForHits")), adjustErrorsDynamicallyForHitless_(iConfig.getParameter("adjustErrorsDynamicallyForHitless")), - estimatorName_(iConfig.getParameter("estimator")), minEtaForTEC_(iConfig.getParameter("minEtaForTEC")), maxEtaForTOB_(iConfig.getParameter("maxEtaForTOB")), useHitLessSeeds_(iConfig.getParameter("UseHitLessSeeds")), @@ -42,7 +48,9 @@ TSGForOI::TSGForOI(const edm::ParameterSet& iConfig) SF5_(iConfig.getParameter("SF5")), tsosDiff_(iConfig.getParameter("tsosDiff")), propagatorName_(iConfig.getParameter("propagatorName")), - theCategory(string("Muon|RecoMuon|TSGForOI")) { + theCategory(string("Muon|RecoMuon|TSGForOI")), + propagatorAlongToken_(esConsumes(edm::ESInputTag("", propagatorName_))), + propagatorOppositeToken_(esConsumes(edm::ESInputTag("", propagatorName_))) { produces >(); } @@ -60,19 +68,13 @@ void TSGForOI::produce(edm::StreamID sid, edm::Event& iEvent, const edm::EventSe /// Read ESHandles edm::Handle measurementTrackerH; - edm::ESHandle estimatorH; - edm::ESHandle magfieldH; - edm::ESHandle propagatorAlongH; - edm::ESHandle propagatorOppositeH; - edm::ESHandle tmpTkGeometryH; - edm::ESHandle geometryH; - - iSetup.get().get(magfieldH); - iSetup.get().get(propagatorName_, propagatorOppositeH); - iSetup.get().get(propagatorName_, propagatorAlongH); - iSetup.get().get(geometryH); - iSetup.get().get(tmpTkGeometryH); - iSetup.get().get(estimatorName_, estimatorH); + edm::ESHandle estimatorH = iSetup.getHandle(estimatorToken_); + edm::ESHandle magfieldH = iSetup.getHandle(magfieldToken_); + edm::ESHandle propagatorAlongH = iSetup.getHandle(propagatorAlongToken_); + edm::ESHandle propagatorOppositeH = iSetup.getHandle(propagatorOppositeToken_); + edm::ESHandle tmpTkGeometryH = iSetup.getHandle(tmpTkGeometryToken_); + edm::ESHandle geometryH = iSetup.getHandle(geometryToken_); + iEvent.getByToken(measurementTrackerTag_, measurementTrackerH); /// Read L2 track collection @@ -92,18 +94,14 @@ void TSGForOI::produce(edm::StreamID sid, edm::Event& iEvent, const edm::EventSe tmpTkGeometryH->isThere(GeomDetEnumerators::P2OTEC) ? measurementTrackerH->geometricSearchTracker()->negTidLayers() : measurementTrackerH->geometricSearchTracker()->negTecLayers(); - edm::ESHandle tTopo_handle; - iSetup.get().get(tTopo_handle); - const TrackerTopology* tTopo = tTopo_handle.product(); + const TrackerTopology* tTopo = &iSetup.getData(tTopoToken_); // Get the suitable propagators: std::unique_ptr propagatorAlong = SetPropagationDirection(*propagatorAlongH, alongMomentum); std::unique_ptr propagatorOpposite = SetPropagationDirection(*propagatorOppositeH, oppositeToMomentum); - edm::ESHandle SmartOpposite; - edm::ESHandle SHPOpposite; - iSetup.get().get("hltESPSmartPropagatorAnyOpposite", SmartOpposite); - iSetup.get().get("hltESPSteppingHelixPropagatorOpposite", SHPOpposite); + edm::ESHandle SmartOpposite = iSetup.getHandle(smartOppositeToken_); + edm::ESHandle SHPOpposite = iSetup.getHandle(shpOppositeToken_); // Loop over the L2's and make seeds for all of them: LogTrace(theCategory) << "TSGForOI::produce: Number of L2's: " << l2TrackCol->size(); diff --git a/RecoMuon/TrackerSeedGenerator/plugins/TSGForOI.h b/RecoMuon/TrackerSeedGenerator/plugins/TSGForOI.h index aecae69aa598d..9843c67974472 100644 --- a/RecoMuon/TrackerSeedGenerator/plugins/TSGForOI.h +++ b/RecoMuon/TrackerSeedGenerator/plugins/TSGForOI.h @@ -41,6 +41,16 @@ class TSGForOI : public edm::global::EDProducer<> { /// Labels for input collections const edm::EDGetTokenT src_; + /// Estimator used to find dets and TrajectoryMeasurements + const edm::ESGetToken estimatorToken_; + + const edm::ESGetToken magfieldToken_; + const edm::ESGetToken tmpTkGeometryToken_; + const edm::ESGetToken geometryToken_; + const edm::ESGetToken tTopoToken_; + const edm::ESGetToken smartOppositeToken_; + const edm::ESGetToken shpOppositeToken_; + /// Maximum number of seeds for each L2 const unsigned int numOfMaxSeedsParam_; @@ -58,9 +68,6 @@ class TSGForOI : public edm::global::EDProducer<> { const bool adjustErrorsDynamicallyForHits_; const bool adjustErrorsDynamicallyForHitless_; - /// Estimator used to find dets and TrajectoryMeasurements - const std::string estimatorName_; - /// Minimum eta value to activate searching in the TEC const double minEtaForTEC_; @@ -90,6 +97,8 @@ class TSGForOI : public edm::global::EDProducer<> { /// Counters and flags for the implementation const std::string propagatorName_; const std::string theCategory; + const edm::ESGetToken propagatorAlongToken_; + const edm::ESGetToken propagatorOppositeToken_; /// Function to find seeds on a given layer void findSeedsOnLayer(const TrackerTopology* tTopo, diff --git a/RecoMuon/TrackerSeedGenerator/plugins/TSGForOIFromL2.cc b/RecoMuon/TrackerSeedGenerator/plugins/TSGForOIFromL2.cc index 5201426630ef4..d77ffb4ec5022 100644 --- a/RecoMuon/TrackerSeedGenerator/plugins/TSGForOIFromL2.cc +++ b/RecoMuon/TrackerSeedGenerator/plugins/TSGForOIFromL2.cc @@ -47,8 +47,11 @@ TSGForOIFromL2::TSGForOIFromL2(const edm::ParameterSet& iConfig) SF4_(iConfig.getParameter("SF4")), SF5_(iConfig.getParameter("SF5")), SF6_(iConfig.getParameter("SF6")), + SFHld_(iConfig.getParameter("SFHld")), + SFHd_(iConfig.getParameter("SFHd")), tsosDiff1_(iConfig.getParameter("tsosDiff1")), tsosDiff2_(iConfig.getParameter("tsosDiff2")), + displacedReco_(iConfig.getParameter("displacedReco")), propagatorName_(iConfig.getParameter("propagatorName")), theCategory_(std::string("Muon|RecoMuon|TSGForOIFromL2")), estimatorToken_(esConsumes(edm::ESInputTag("", estimatorName_))), @@ -72,6 +75,7 @@ void TSGForOIFromL2::produce(edm::StreamID sid, edm::Event& iEvent, const edm::E unsigned int hitlessSeedsMadeIP = 0; unsigned int hitlessSeedsMadeMuS = 0; unsigned int hitSeedsMade = 0; + unsigned int hitSeedsMadeMuS = 0; // Surface used to make a TSOS at the PCA to the beamline Plane::PlanePointer dummyPlane = Plane::build(Plane::PositionType(), Plane::RotationType()); @@ -167,6 +171,7 @@ void TSGForOIFromL2::produce(edm::StreamID sid, edm::Event& iEvent, const edm::E hitlessSeedsMadeIP = 0; hitlessSeedsMadeMuS = 0; hitSeedsMade = 0; + hitSeedsMadeMuS = 0; // calculate scale factors double errorSFHits = (adjustErrorsDynamicallyForHits_ ? calculateSFFromL2(l2) : fixedErrorRescalingForHits_); @@ -201,7 +206,7 @@ void TSGForOIFromL2::produce(edm::StreamID sid, edm::Event& iEvent, const edm::E layerCount, out); - if (useBoth) { + if (useBoth && !displacedReco_) { if (useHitLessSeeds_ && hitlessSeedsMadeMuS < maxHitlessSeeds_ && numSeedsMade < maxSeeds_) makeSeedsWithoutHits(**it, outerTkStateOutside, @@ -218,7 +223,7 @@ void TSGForOIFromL2::produce(edm::StreamID sid, edm::Event& iEvent, const edm::E } // Reset number of seeds if in overlap region - if (absL2muonEta > minEtaForTEC_ && absL2muonEta < maxEtaForTOB_) { + if (absL2muonEta > minEtaForTEC_ && absL2muonEta < maxEtaForTOB_ && !displacedReco_) { numSeedsMade = 0; hitlessSeedsMadeIP = 0; hitlessSeedsMadeMuS = 0; @@ -252,7 +257,7 @@ void TSGForOIFromL2::produce(edm::StreamID sid, edm::Event& iEvent, const edm::E layerCount, out); - if (useBoth) { + if (useBoth && !displacedReco_) { if (useHitLessSeeds_ && hitlessSeedsMadeMuS < maxHitlessSeeds_ && numSeedsMade < maxSeeds_) makeSeedsWithoutHits(**it, outerTkStateOutside, @@ -295,7 +300,7 @@ void TSGForOIFromL2::produce(edm::StreamID sid, edm::Event& iEvent, const edm::E layerCount, out); - if (useBoth) { + if (useBoth && !displacedReco_) { if (useHitLessSeeds_ && hitlessSeedsMadeMuS < maxHitlessSeeds_ && numSeedsMade < maxSeeds_) makeSeedsWithoutHits(**it, outerTkStateOutside, @@ -311,6 +316,93 @@ void TSGForOIFromL2::produce(edm::StreamID sid, edm::Event& iEvent, const edm::E << " , layerCount = " << layerCount << std::endl; } + // Displaced Reconstruction + if (displacedReco_ && outerTkStateOutside.isValid()) { + layerCount = 0; + for (auto it = tob.rbegin(); it != tob.rend(); ++it) { + LogTrace("TSGForOIFromL2") << "TSGForOIFromL2::produce: looping in TOB layer " << layerCount; + if (useHitLessSeeds_ && hitlessSeedsMadeMuS < maxHitlessSeeds_ && numSeedsMade < maxSeeds_) + makeSeedsWithoutHits(**it, + outerTkStateOutside, + *(propagatorOpposite.get()), + estimatorH, + errorSFHitless * SFHld_, + hitlessSeedsMadeMuS, + numSeedsMade, + out); + if (hitSeedsMadeMuS < maxHitSeeds_ && numSeedsMade < maxSeeds_) + makeSeedsFromHits(**it, + outerTkStateOutside, + *(propagatorOpposite.get()), + estimatorH, + measurementTrackerH, + errorSFHits * SFHd_, + hitSeedsMadeMuS, + numSeedsMade, + layerCount, + out); + } + LogTrace("TSGForOIFromL2") << "TSGForOIFromL2:::produce: NumSeedsMade = " << numSeedsMade + << " , layerCount = " << layerCount; + if (L2muonEta >= 0.0) { + layerCount = 0; + for (auto it = tecPositive.rbegin(); it != tecPositive.rend(); ++it) { + LogTrace("TSGForOIFromL2") << "TSGForOIFromL2::produce: looping in TEC+ layer " << layerCount << std::endl; + if (useHitLessSeeds_ && hitlessSeedsMadeMuS < maxHitlessSeeds_ && numSeedsMade < maxSeeds_) + makeSeedsWithoutHits(**it, + outerTkStateOutside, + *(propagatorOpposite.get()), + estimatorH, + errorSFHitless * SFHld_, + hitlessSeedsMadeMuS, + numSeedsMade, + out); + if (hitSeedsMadeMuS < maxHitSeeds_ && numSeedsMade < maxSeeds_) + makeSeedsFromHits(**it, + outerTkStateOutside, + *(propagatorOpposite.get()), + estimatorH, + measurementTrackerH, + errorSFHits * SFHd_, + hitSeedsMadeMuS, + numSeedsMade, + layerCount, + out); + } + LogTrace("TSGForOIFromL2") << "TSGForOIFromL2:::produce: NumSeedsMade = " << numSeedsMade + << " , layerCount = " << layerCount; + } + + else { + layerCount = 0; + for (auto it = tecNegative.rbegin(); it != tecNegative.rend(); ++it) { + LogTrace("TSGForOIFromL2") << "TSGForOIFromL2::produce: looping in TEC- layer " << layerCount; + if (useHitLessSeeds_ && hitlessSeedsMadeMuS < maxHitlessSeeds_ && numSeedsMade < maxSeeds_) + makeSeedsWithoutHits(**it, + outerTkStateOutside, + *(propagatorOpposite.get()), + estimatorH, + errorSFHitless * SFHld_, + hitlessSeedsMadeMuS, + numSeedsMade, + out); + if (hitSeedsMadeMuS < maxHitSeeds_ && numSeedsMade < maxSeeds_) + makeSeedsFromHits(**it, + outerTkStateOutside, + *(propagatorOpposite.get()), + estimatorH, + measurementTrackerH, + errorSFHits * SFHd_, + hitSeedsMadeMuS, + numSeedsMade, + layerCount, + out); + } + LogTrace("TSGForOIFromL2") << "TSGForOIFromL2:::produce: NumSeedsMade = " << numSeedsMade + << " , layerCount = " << layerCount; + } + } + for (std::vector::iterator it = out.begin(); it != out.end(); ++it) { result->push_back(*it); } @@ -541,8 +633,11 @@ void TSGForOIFromL2::fillDescriptions(edm::ConfigurationDescriptions& descriptio desc.add("SF4", 7.0); desc.add("SF5", 10.0); desc.add("SF6", 2.0); + desc.add("SFHld", 2.0)->setComment("Scale Factor used to rescale the TSOS error of the hitless seeds"); + desc.add("SFHd", 4.0)->setComment("Scale Factor used to rescale the TSOS error of the hit based seeds"); desc.add("tsosDiff1", 0.2); desc.add("tsosDiff2", 0.02); + desc.add("displacedReco", false)->setComment("Flag to turn on the displaced seeding"); desc.add("propagatorName", "PropagatorWithMaterialParabolicMf"); descriptions.add("TSGForOIFromL2", desc); } diff --git a/RecoMuon/TrackerSeedGenerator/plugins/TSGForOIFromL2.h b/RecoMuon/TrackerSeedGenerator/plugins/TSGForOIFromL2.h index 8addc4f76c02a..8ff8e3eaa3989 100644 --- a/RecoMuon/TrackerSeedGenerator/plugins/TSGForOIFromL2.h +++ b/RecoMuon/TrackerSeedGenerator/plugins/TSGForOIFromL2.h @@ -91,11 +91,15 @@ class TSGForOIFromL2 : public edm::global::EDProducer<> { const double pT1_, pT2_, pT3_; const double eta1_, eta2_, eta3_, eta4_, eta5_, eta6_, eta7_; const double SF1_, SF2_, SF3_, SF4_, SF5_, SF6_; + const double SFHld_, SFHd_; /// Distance of L2 TSOSs before and after updated with vertex const double tsosDiff1_; const double tsosDiff2_; + /// Displaced reconstruction + const bool displacedReco_; + /// Counters and flags for the implementation const std::string propagatorName_; const std::string theCategory_; diff --git a/RecoMuon/TrackerSeedGenerator/plugins/TSGFromL1Muon.cc b/RecoMuon/TrackerSeedGenerator/plugins/TSGFromL1Muon.cc index 1e600345fe24f..b44c1a802b40c 100644 --- a/RecoMuon/TrackerSeedGenerator/plugins/TSGFromL1Muon.cc +++ b/RecoMuon/TrackerSeedGenerator/plugins/TSGFromL1Muon.cc @@ -18,6 +18,8 @@ #include "RecoPixelVertexing/PixelTrackFitting/interface/PixelTrackFilter.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" + #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/TrackReco/interface/TrackFwd.h" @@ -38,7 +40,8 @@ namespace { } } // namespace -TSGFromL1Muon::TSGFromL1Muon(const edm::ParameterSet& cfg) : theSFPTConfig(consumesCollector()) { +TSGFromL1Muon::TSGFromL1Muon(const edm::ParameterSet& cfg) + : theFieldToken(esConsumes()), theSFPTConfig(consumesCollector()) { produces(); theSourceTag = cfg.getParameter("L1MuonLabel"); @@ -71,6 +74,7 @@ void TSGFromL1Muon::produce(edm::Event& ev, const edm::EventSetup& es) { ev.getByToken(theFilterToken, hfilter); const PixelTrackFilter& filter = *hfilter; + const auto& field = es.getData(theFieldToken); LogDebug("TSGFromL1Muon") << l1muon->size() << " l1 muons to seed from."; L1MuonParticleCollection::const_iterator muItr = l1muon->begin(); @@ -100,7 +104,7 @@ void TSGFromL1Muon::produce(edm::Event& ev, const edm::EventSetup& es) { trh.push_back(hits[i]->hit()); theFitter->setPxConstraint(hits); - reco::Track* track = theFitter->run(es, trh, region); + reco::Track* track = theFitter->run(field, trh, region); if (!track) continue; diff --git a/RecoMuon/TrackerSeedGenerator/plugins/TSGFromL1Muon.h b/RecoMuon/TrackerSeedGenerator/plugins/TSGFromL1Muon.h index d377c204bda01..907dce0aa280e 100644 --- a/RecoMuon/TrackerSeedGenerator/plugins/TSGFromL1Muon.h +++ b/RecoMuon/TrackerSeedGenerator/plugins/TSGFromL1Muon.h @@ -22,6 +22,8 @@ class L1MuonPixelTrackFitter; class OrderedHitsGenerator; class PixelTrackFilter; class L1MuonSeedsMerger; +class MagneticField; +class IdealMagneticFieldRecord; class TSGFromL1Muon : public edm::stream::EDProducer<> { public: @@ -34,6 +36,7 @@ class TSGFromL1Muon : public edm::stream::EDProducer<> { edm::InputTag theSourceTag; edm::EDGetTokenT theSourceToken; edm::EDGetTokenT theFilterToken; + edm::ESGetToken theFieldToken; const SeedFromProtoTrack::Config theSFPTConfig; std::unique_ptr theRegionProducer; diff --git a/RecoMuon/TrackerSeedGenerator/src/L1MuonPixelTrackFitter.cc b/RecoMuon/TrackerSeedGenerator/src/L1MuonPixelTrackFitter.cc index 15fdf799a62ab..e55ce7eb25e25 100644 --- a/RecoMuon/TrackerSeedGenerator/src/L1MuonPixelTrackFitter.cc +++ b/RecoMuon/TrackerSeedGenerator/src/L1MuonPixelTrackFitter.cc @@ -7,7 +7,6 @@ #include "RecoPixelVertexing/PixelTrackFitting/interface/PixelTrackBuilder.h" #include "DataFormats/GeometryCommonDetAlgo/interface/Measurement1D.h" #include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" #include "RecoTracker/TkSeedingLayers/interface/SeedingHitSet.h" #include @@ -36,13 +35,9 @@ void L1MuonPixelTrackFitter::setPxConstraint(const SeedingHitSet& hits) { theHit1 = hits[1]->globalPosition(); } -reco::Track* L1MuonPixelTrackFitter::run(const edm::EventSetup& es, +reco::Track* L1MuonPixelTrackFitter::run(const MagneticField& field, const std::vector& hits, const TrackingRegion& region) const { - edm::ESHandle fieldESH; - es.get().get(fieldESH); - const auto& field = *fieldESH; - double phi_vtx_fromHits = (theHit2 - theHit1).phi(); double invPt = valInversePt(phi_vtx_fromHits, thePhiL1, theEtaL1); diff --git a/RecoParticleFlow/PFClusterProducer/src/PFClusterEMEnergyCorrector.cc b/RecoParticleFlow/PFClusterProducer/src/PFClusterEMEnergyCorrector.cc index 058712ecf79b6..146038b210854 100644 --- a/RecoParticleFlow/PFClusterProducer/src/PFClusterEMEnergyCorrector.cc +++ b/RecoParticleFlow/PFClusterProducer/src/PFClusterEMEnergyCorrector.cc @@ -278,9 +278,9 @@ void PFClusterEMEnergyCorrector::correctEnergies(const edm::Event &evt, edm::Handle eeSrFlags; evt.getByToken(ebSrFlagToken_, ebSrFlags); evt.getByToken(eeSrFlagToken_, eeSrFlags); - if (!ebSrFlags.isValid() || !eeSrFlags.isValid()) - throw cms::Exception("PFClusterEMEnergyCorrector") - << "This version of PFCluster corrections requires the SrFlagCollection information to proceed!\n"; + if (not ebSrFlags.isValid() or not eeSrFlags.isValid()) + edm::LogInfo("PFClusterEMEnergyCorrector") << "SrFlagCollection information is not available. The ECAL PFCluster " + "corrections will assume \"full readout\" for all hits."; const unsigned int ncor = forestMeanTokens_25ns_.size(); std::vector > forestH_mean(ncor); @@ -330,24 +330,25 @@ void PFClusterEMEnergyCorrector::correctEnergies(const edm::Event &evt, int ietamod20 = (std::abs(ietaix) < 26) ? ietaix - signeta : (ietaix - 26 * signeta) % 20; int iphimod20 = (iphiiy - 1) % 20; - int clusFlag = 0; + // Assume that hits for which no information is avaiable have a Full Readout (binary 0011) + int clusFlag = 3; if (iseb) { - auto ecalUnit = readoutTool.readOutUnitOf(static_cast(cluster.seed())); - EBSrFlagCollection::const_iterator srf = ebSrFlags->find(ecalUnit); - if (srf != ebSrFlags->end()) - clusFlag = srf->value(); - else - clusFlag = 3; + if (ebSrFlags.isValid()) { + auto ecalUnit = readoutTool.readOutUnitOf(static_cast(cluster.seed())); + EBSrFlagCollection::const_iterator srf = ebSrFlags->find(ecalUnit); + if (srf != ebSrFlags->end()) + clusFlag = srf->value(); + } } else { - auto ecalUnit = readoutTool.readOutUnitOf(static_cast(cluster.seed())); - EESrFlagCollection::const_iterator srf = eeSrFlags->find(ecalUnit); - if (srf != eeSrFlags->end()) - clusFlag = srf->value(); - else - clusFlag = 3; + if (eeSrFlags.isValid()) { + auto ecalUnit = readoutTool.readOutUnitOf(static_cast(cluster.seed())); + EESrFlagCollection::const_iterator srf = eeSrFlags->find(ecalUnit); + if (srf != eeSrFlags->end()) + clusFlag = srf->value(); + } } - //find index of corrections (0-3 for EB, 4-7 for EE, depending on cluster size and raw pt) + // Find index of corrections (0-3 for EB, 4-7 for EE, depending on cluster size and raw pt) int coridx = 0; int regind = 0; if (!iseb) diff --git a/RecoParticleFlow/PFProducer/test/mlpf_training/generate.sh b/RecoParticleFlow/PFProducer/test/mlpf_training/generate.sh index ef8467080b48e..d64dce89ca966 100755 --- a/RecoParticleFlow/PFProducer/test/mlpf_training/generate.sh +++ b/RecoParticleFlow/PFProducer/test/mlpf_training/generate.sh @@ -26,7 +26,7 @@ PILEUP_INPUT=dbs:/MinBias_TuneCP5_13TeV-pythia8/RunIIFall18GS-102X_upgrade2018_r #Generate the MC cmsDriver.py $SAMPLE \ - --conditions auto:phase1_2021_realistic \ + --conditions auto:phase1_2022_realistic \ -n $N \ --era Run3 \ --eventcontent FEVTDEBUGHLT \ @@ -42,7 +42,7 @@ cmsDriver.py $SAMPLE \ #Run the reco sequences cmsDriver.py step3 \ - --conditions auto:phase1_2021_realistic \ + --conditions auto:phase1_2022_realistic \ --era Run3 \ -n -1 \ --eventcontent FEVTDEBUGHLT \ diff --git a/RecoParticleFlow/PFTracking/src/PFDisplacedVertexCandidateFinder.cc b/RecoParticleFlow/PFTracking/src/PFDisplacedVertexCandidateFinder.cc index d09d371b529c1..3ccb506e22145 100644 --- a/RecoParticleFlow/PFTracking/src/PFDisplacedVertexCandidateFinder.cc +++ b/RecoParticleFlow/PFTracking/src/PFDisplacedVertexCandidateFinder.cc @@ -3,6 +3,7 @@ #include "RecoParticleFlow/PFTracking/interface/PFDisplacedVertexCandidateFinder.h" #include "DataFormats/GeometryVector/interface/GlobalVector.h" +#include "DataFormats/Math/interface/deltaPhi.h" #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/VertexReco/interface/Vertex.h" @@ -191,7 +192,7 @@ void PFDisplacedVertexCandidateFinder::link(const TrackBaseRef& el1, dist = -1; return; } - if (pt1 > 2 && pt2 > 2 && std::abs(phi1 - phi2) > 1) { + if (pt1 > 2 && pt2 > 2 && std::abs(::deltaPhi(phi1, phi2)) > 1) { dist = -1; return; } diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletCUDA.cc b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletCUDA.cc index 066032808f90e..72c482c6189db 100644 --- a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletCUDA.cc +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletCUDA.cc @@ -31,6 +31,9 @@ class CAHitNtupletCUDA : public edm::global::EDProducer<> { static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); private: + void beginJob() override; + void endJob() override; + void produce(edm::StreamID streamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const override; bool onGPU_; @@ -66,6 +69,10 @@ void CAHitNtupletCUDA::fillDescriptions(edm::ConfigurationDescriptions& descript descriptions.add("pixelTracksCUDA", desc); } +void CAHitNtupletCUDA::beginJob() { gpuAlgo_.beginJob(); } + +void CAHitNtupletCUDA::endJob() { gpuAlgo_.endJob(); } + void CAHitNtupletCUDA::produce(edm::StreamID streamID, edm::Event& iEvent, const edm::EventSetup& es) const { auto bf = 1. / es.getData(tokenField_).inverseBzAtOriginInGeV(); diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.cc b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.cc index a554d364ee42b..62f2dd5843c17 100644 --- a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.cc +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.cc @@ -102,37 +102,6 @@ CAHitNtupletGeneratorOnGPU::CAHitNtupletGeneratorOnGPU(const edm::ParameterSet& "h5", "hn"); #endif - - if (m_params.onGPU_) { - // allocate pinned host memory only if CUDA is available - edm::Service cs; - if (cs and cs->enabled()) { - cudaCheck(cudaMalloc(&m_counters, sizeof(Counters))); - cudaCheck(cudaMemset(m_counters, 0, sizeof(Counters))); - } - } else { - m_counters = new Counters(); - memset(m_counters, 0, sizeof(Counters)); - } -} - -CAHitNtupletGeneratorOnGPU::~CAHitNtupletGeneratorOnGPU() { - if (m_params.onGPU_) { - // print the gpu statistics and free pinned host memory only if CUDA is available - edm::Service cs; - if (cs and cs->enabled()) { - if (m_params.doStats_) { - // crash on multi-gpu processes - CAHitNtupletGeneratorKernelsGPU::printCounters(m_counters); - } - cudaFree(m_counters); - } - } else { - if (m_params.doStats_) { - CAHitNtupletGeneratorKernelsCPU::printCounters(m_counters); - } - delete m_counters; - } } void CAHitNtupletGeneratorOnGPU::fillDescriptions(edm::ParameterSetDescription& desc) { @@ -182,6 +151,39 @@ void CAHitNtupletGeneratorOnGPU::fillDescriptions(edm::ParameterSetDescription& "cuts\" based on the fit results (pT, Tip, Zip)."); } +void CAHitNtupletGeneratorOnGPU::beginJob() { + if (m_params.onGPU_) { + // allocate pinned host memory only if CUDA is available + edm::Service cs; + if (cs and cs->enabled()) { + cudaCheck(cudaMalloc(&m_counters, sizeof(Counters))); + cudaCheck(cudaMemset(m_counters, 0, sizeof(Counters))); + } + } else { + m_counters = new Counters(); + memset(m_counters, 0, sizeof(Counters)); + } +} + +void CAHitNtupletGeneratorOnGPU::endJob() { + if (m_params.onGPU_) { + // print the gpu statistics and free pinned host memory only if CUDA is available + edm::Service cs; + if (cs and cs->enabled()) { + if (m_params.doStats_) { + // crash on multi-gpu processes + CAHitNtupletGeneratorKernelsGPU::printCounters(m_counters); + } + cudaFree(m_counters); + } + } else { + if (m_params.doStats_) { + CAHitNtupletGeneratorKernelsCPU::printCounters(m_counters); + } + delete m_counters; + } +} + PixelTrackHeterogeneous CAHitNtupletGeneratorOnGPU::makeTuplesAsync(TrackingRecHit2DGPU const& hits_d, float bfield, cudaStream_t stream) const { diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.h b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.h index b665f5d9ca553..ae4576d883530 100644 --- a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.h +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.h @@ -41,11 +41,12 @@ class CAHitNtupletGeneratorOnGPU { : CAHitNtupletGeneratorOnGPU(cfg, iC) {} CAHitNtupletGeneratorOnGPU(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC); - ~CAHitNtupletGeneratorOnGPU(); - static void fillDescriptions(edm::ParameterSetDescription& desc); static const char* fillDescriptionsLabel() { return "caHitNtupletOnGPU"; } + void beginJob(); + void endJob(); + PixelTrackHeterogeneous makeTuplesAsync(TrackingRecHit2DGPU const& hits_d, float bfield, cudaStream_t stream) const; PixelTrackHeterogeneous makeTuples(TrackingRecHit2DCPU const& hits_d, float bfield) const; diff --git a/RecoTauTag/RecoTau/plugins/DPFIsolation.cc b/RecoTauTag/RecoTau/plugins/DPFIsolation.cc deleted file mode 100644 index 517767af3a31a..0000000000000 --- a/RecoTauTag/RecoTau/plugins/DPFIsolation.cc +++ /dev/null @@ -1,403 +0,0 @@ -/* - * \class DPFIsolation - * - * Deep ParticleFlow tau isolation using Deep NN. - * - * \author Owen Colegrove, UCSB - */ - -#include "RecoTauTag/RecoTau/interface/DeepTauBase.h" - -namespace { - inline int getPFCandidateIndex(const edm::Handle>& pfcands, - const reco::CandidatePtr& cptr) { - for (unsigned int i = 0; i < pfcands->size(); ++i) { - if (reco::CandidatePtr(pfcands, i) == cptr) - return i; - } - return -1; - } -} // anonymous namespace - -class DPFIsolation : public deep_tau::DeepTauBase { -public: - static const OutputCollection& GetOutputs() { - const size_t tau_index = 0; - static const OutputCollection outputs_ = {{"VSall", Output({tau_index}, {})}}; - return outputs_; - }; - - static unsigned getNumberOfParticles(unsigned graphVersion) { - static const std::map nparticles{{0, 60}, {1, 36}}; - return nparticles.at(graphVersion); - } - - static unsigned GetNumberOfFeatures(unsigned graphVersion) { - static const std::map nfeatures{{0, 47}, {1, 51}}; - return nfeatures.at(graphVersion); - } - - static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { - edm::ParameterSetDescription desc; - desc.add("pfcands", edm::InputTag("packedPFCandidates")); - desc.add("taus", edm::InputTag("slimmedTaus")); - desc.add("vertices", edm::InputTag("offlineSlimmedPrimaryVertices")); - desc.add>("graph_file", - {"RecoTauTag/TrainingFiles/data/DPFTauId/DPFIsolation_2017v0_quantized.pb"}); - desc.add("version", 0); - desc.add("mem_mapped", false); - desc.add("is_online", false); - - //pre-discriminants - edm::ParameterSetDescription pset_Prediscriminants; - pset_Prediscriminants.add("BooleanOperator", "and"); - edm::ParameterSetDescription psd1; - psd1.add("cut"); - psd1.add("Producer"); - pset_Prediscriminants.addOptional("decayMode", psd1); - desc.add("Prediscriminants", pset_Prediscriminants); - - desc.add>("VSallWP", {"0"}); - descriptions.add("DPFTau2016v0", desc); - } - - explicit DPFIsolation(const edm::ParameterSet& cfg, const deep_tau::DeepTauCache* cache) - : DeepTauBase(cfg, GetOutputs(), cache), graphVersion(cfg.getParameter("version")) { - const auto& shape = cache_->getGraph().node(0).attr().at("shape").shape(); - - if (!(graphVersion == 1 || graphVersion == 0)) - throw cms::Exception("DPFIsolation") << "unknown version of the graph file."; - - if (!(shape.dim(1).size() == getNumberOfParticles(graphVersion) && - shape.dim(2).size() == GetNumberOfFeatures(graphVersion))) - throw cms::Exception("DPFIsolation") - << "number of inputs does not match the expected inputs for the given version"; - - if (is_online_) { - throw cms::Exception("DPFIsolation") << "Online version based on reco objects in not implemented. Use offline " - "version on top of miniAOD with pat objects."; - } - } - -private: - tensorflow::Tensor getPredictions(edm::Event& event, edm::Handle taus) override { - edm::Handle> pfcands; - event.getByToken(pfcandToken_, pfcands); - - edm::Handle vertices; - event.getByToken(vtxToken_, vertices); - - tensorflow::Tensor tensor( - tensorflow::DT_FLOAT, - {1, static_cast(getNumberOfParticles(graphVersion)), static_cast(GetNumberOfFeatures(graphVersion))}); - - tensorflow::Tensor predictions(tensorflow::DT_FLOAT, {static_cast(taus->size()), 1}); - - std::vector outputs_; - - float pfCandPt, pfCandPz, pfCandPtRel, pfCandPzRel, pfCandDr, pfCandDEta, pfCandDPhi, pfCandEta, pfCandDz, - pfCandDzErr, pfCandD0, pfCandD0D0, pfCandD0Dz, pfCandD0Dphi, pfCandPuppiWeight, pfCandPixHits, pfCandHits, - pfCandLostInnerHits, pfCandPdgID, pfCandCharge, pfCandFromPV, pfCandVtxQuality, pfCandHighPurityTrk, - pfCandTauIndMatch, pfCandDzSig, pfCandD0Sig, pfCandD0Err, pfCandPtRelPtRel, pfCandDzDz, pfCandDVx_1, - pfCandDVy_1, pfCandDVz_1, pfCandD_1; - float pvx = !vertices->empty() ? (*vertices)[0].x() : -1; - float pvy = !vertices->empty() ? (*vertices)[0].y() : -1; - float pvz = !vertices->empty() ? (*vertices)[0].z() : -1; - - bool pfCandIsBarrel; - - // These variables define ranges further used for standardization - static constexpr float pfCandPt_max = 500.f; - static constexpr float pfCandPz_max = 1000.f; - static constexpr float pfCandPtRel_max = 1.f; - static constexpr float pfCandPzRel_max = 100.f; - static constexpr float pfCandPtRelPtRel_max = 1.f; - static constexpr float pfCandD0_max = 5.f; - static constexpr float pfCandDz_max = 5.f; - static constexpr float pfCandDVx_y_z_1_max = 0.05f; - static constexpr float pfCandD_1_max = 0.1f; - static constexpr float pfCandD0_z_Err_max = 1.f; - static constexpr float pfCandDzSig_max = 3.f; - static constexpr float pfCandD0Sig_max = 1.f; - static constexpr float pfCandDr_max = 0.5f; - static constexpr float pfCandEta_max = 2.75f; - static constexpr float pfCandDEta_max = 0.5f; - static constexpr float pfCandDPhi_max = 0.5f; - static constexpr float pfCandPixHits_max = 7.f; - static constexpr float pfCandHits_max = 30.f; - - for (size_t tau_index = 0; tau_index < taus->size(); tau_index++) { - pat::Tau tau = taus->at(tau_index); - bool isGoodTau = false; - const float lepRecoPt = tau.pt(); - const float lepRecoPz = std::abs(tau.pz()); - const float lepRecoEta = tau.eta(); - const float lepRecoPhi = tau.phi(); - - if (lepRecoPt >= 30 && std::abs(lepRecoEta) < 2.3 && tau.isTauIDAvailable("againstMuonLoose3") && - tau.isTauIDAvailable("againstElectronVLooseMVA6")) { - isGoodTau = (tau.tauID("againstElectronVLooseMVA6") && tau.tauID("againstMuonLoose3")); - } - - if (!isGoodTau) { - predictions.matrix()(tau_index, 0) = -1; - continue; - } - - std::vector signalCandidateInds; - - for (const auto& c : tau.signalCands()) - signalCandidateInds.push_back(getPFCandidateIndex(pfcands, c)); - - // Use of setZero results in warnings in eigen library during compilation. - //tensor.flat().setZero(); - const unsigned n_inputs = getNumberOfParticles(graphVersion) * GetNumberOfFeatures(graphVersion); - for (unsigned input_idx = 0; input_idx < n_inputs; ++input_idx) - tensor.flat()(input_idx) = 0; - - unsigned int iPF = 0; - const unsigned max_iPF = getNumberOfParticles(graphVersion); - - std::vector sorted_inds(pfcands->size()); - std::size_t n = 0; - std::generate(std::begin(sorted_inds), std::end(sorted_inds), [&] { return n++; }); - - std::sort(std::begin(sorted_inds), std::end(sorted_inds), [&](int i1, int i2) { - return pfcands->at(i1).pt() > pfcands->at(i2).pt(); - }); - - for (size_t pf_index = 0; pf_index < pfcands->size() && iPF < max_iPF; pf_index++) { - const pat::PackedCandidate& p = static_cast(pfcands->at(sorted_inds.at(pf_index))); - float deltaR_tau_p = deltaR(p.p4(), tau.p4()); - - if (p.pt() < 0.5) - continue; - if (deltaR_tau_p > 0.5) - continue; - if (p.fromPV() < 1 && p.charge() != 0) - continue; - pfCandPt = p.pt(); - pfCandPtRel = p.pt() / lepRecoPt; - - pfCandDr = deltaR_tau_p; - pfCandDEta = std::abs(lepRecoEta - p.eta()); - pfCandDPhi = std::abs(deltaPhi(lepRecoPhi, p.phi())); - pfCandEta = p.eta(); - pfCandIsBarrel = (std::abs(pfCandEta) < 1.4); - pfCandPz = std::abs(std::sinh(pfCandEta) * pfCandPt); - pfCandPzRel = pfCandPz / lepRecoPz; - pfCandPdgID = std::abs(p.pdgId()); - pfCandCharge = p.charge(); - pfCandDVx_1 = p.vx() - pvx; - pfCandDVy_1 = p.vy() - pvy; - pfCandDVz_1 = p.vz() - pvz; - - pfCandD_1 = std::sqrt(pfCandDVx_1 * pfCandDVx_1 + pfCandDVy_1 * pfCandDVy_1 + pfCandDVz_1 * pfCandDVz_1); - - if (pfCandCharge != 0 and p.hasTrackDetails()) { - pfCandDz = p.dz(); - pfCandDzErr = p.dzError(); - pfCandDzSig = (std::abs(p.dz()) + 0.000001) / (p.dzError() + 0.00001); - pfCandD0 = p.dxy(); - pfCandD0Err = p.dxyError(); - pfCandD0Sig = (std::abs(p.dxy()) + 0.000001) / (p.dxyError() + 0.00001); - pfCandPixHits = p.numberOfPixelHits(); - pfCandHits = p.numberOfHits(); - pfCandLostInnerHits = p.lostInnerHits(); - } else { - float disp = 1; - int psudorand = p.pt() * 1000000; - if (psudorand % 2 == 0) - disp = -1; - pfCandDz = 5 * disp; - pfCandDzErr = 0; - pfCandDzSig = 0; - pfCandD0 = 5 * disp; - pfCandD0Err = 0; - pfCandD0Sig = 0; - pfCandPixHits = 0; - pfCandHits = 0; - pfCandLostInnerHits = 2.; - pfCandDVx_1 = 1; - pfCandDVy_1 = 1; - pfCandDVz_1 = 1; - pfCandD_1 = 1; - } - - pfCandPuppiWeight = p.puppiWeight(); - pfCandFromPV = p.fromPV(); - pfCandVtxQuality = p.pvAssociationQuality(); - pfCandHighPurityTrk = p.trackHighPurity(); - float pfCandTauIndMatch_temp = 0; - - for (auto i : signalCandidateInds) { - if (i == sorted_inds.at(pf_index)) - pfCandTauIndMatch_temp = 1; - } - - pfCandTauIndMatch = pfCandTauIndMatch_temp; - pfCandPtRelPtRel = pfCandPtRel * pfCandPtRel; - pfCandPt = std::min(pfCandPt, pfCandPt_max); - pfCandPt = pfCandPt / pfCandPt_max; - - pfCandPz = std::min(pfCandPz, pfCandPz_max); - pfCandPz = pfCandPz / pfCandPz_max; - - pfCandPtRel = std::min(pfCandPtRel, pfCandPtRel_max); - pfCandPzRel = std::min(pfCandPzRel, pfCandPzRel_max); - pfCandPzRel = pfCandPzRel / pfCandPzRel_max; - pfCandDr = pfCandDr / pfCandDr_max; - pfCandEta = pfCandEta / pfCandEta_max; - pfCandDEta = pfCandDEta / pfCandDEta_max; - pfCandDPhi = pfCandDPhi / pfCandDPhi_max; - pfCandPixHits = pfCandPixHits / pfCandPixHits_max; - pfCandHits = pfCandHits / pfCandHits_max; - - pfCandPtRelPtRel = std::min(pfCandPtRelPtRel, pfCandPtRelPtRel_max); - - pfCandD0 = std::clamp(pfCandD0, -pfCandD0_max, pfCandD0_max); - pfCandD0 = pfCandD0 / pfCandD0_max; - - pfCandDz = std::clamp(pfCandDz, -pfCandDz_max, pfCandDz_max); - pfCandDz = pfCandDz / pfCandDz_max; - - pfCandD0Err = std::min(pfCandD0Err, pfCandD0_z_Err_max); - pfCandDzErr = std::min(pfCandDzErr, pfCandD0_z_Err_max); - pfCandDzSig = std::min(pfCandDzSig, pfCandDzSig_max); - pfCandDzSig = pfCandDzSig / pfCandDzSig_max; - - pfCandD0Sig = std::min(pfCandD0Sig, pfCandD0Sig_max); - pfCandD0D0 = pfCandD0 * pfCandD0; - pfCandDzDz = pfCandDz * pfCandDz; - pfCandD0Dz = pfCandD0 * pfCandDz; - pfCandD0Dphi = pfCandD0 * pfCandDPhi; - - pfCandDVx_1 = std::clamp(pfCandDVx_1, -pfCandDVx_y_z_1_max, pfCandDVx_y_z_1_max); - pfCandDVx_1 = pfCandDVx_1 / pfCandDVx_y_z_1_max; - - pfCandDVy_1 = std::clamp(pfCandDVy_1, -pfCandDVx_y_z_1_max, pfCandDVx_y_z_1_max); - pfCandDVy_1 = pfCandDVy_1 / pfCandDVx_y_z_1_max; - - pfCandDVz_1 = std::clamp(pfCandDVz_1, -pfCandDVx_y_z_1_max, pfCandDVx_y_z_1_max); - pfCandDVz_1 = pfCandDVz_1 / pfCandDVx_y_z_1_max; - - pfCandD_1 = std::clamp(pfCandD_1, -pfCandD_1_max, pfCandD_1_max); - pfCandD_1 = pfCandD_1 / pfCandD_1_max; - - if (graphVersion == 0) { - tensor.tensor()(0, 60 - 1 - iPF, 0) = pfCandPt; - tensor.tensor()(0, 60 - 1 - iPF, 1) = pfCandPz; - tensor.tensor()(0, 60 - 1 - iPF, 2) = pfCandPtRel; - tensor.tensor()(0, 60 - 1 - iPF, 3) = pfCandPzRel; - tensor.tensor()(0, 60 - 1 - iPF, 4) = pfCandDr; - tensor.tensor()(0, 60 - 1 - iPF, 5) = pfCandDEta; - tensor.tensor()(0, 60 - 1 - iPF, 6) = pfCandDPhi; - tensor.tensor()(0, 60 - 1 - iPF, 7) = pfCandEta; - tensor.tensor()(0, 60 - 1 - iPF, 8) = pfCandDz; - tensor.tensor()(0, 60 - 1 - iPF, 9) = pfCandDzSig; - tensor.tensor()(0, 60 - 1 - iPF, 10) = pfCandD0; - tensor.tensor()(0, 60 - 1 - iPF, 11) = pfCandD0Sig; - tensor.tensor()(0, 60 - 1 - iPF, 12) = pfCandDzErr; - tensor.tensor()(0, 60 - 1 - iPF, 13) = pfCandD0Err; - tensor.tensor()(0, 60 - 1 - iPF, 14) = pfCandD0D0; - tensor.tensor()(0, 60 - 1 - iPF, 15) = pfCandCharge == 0; - tensor.tensor()(0, 60 - 1 - iPF, 16) = pfCandCharge == 1; - tensor.tensor()(0, 60 - 1 - iPF, 17) = pfCandCharge == -1; - tensor.tensor()(0, 60 - 1 - iPF, 18) = pfCandPdgID > 22; - tensor.tensor()(0, 60 - 1 - iPF, 19) = pfCandPdgID == 22; - tensor.tensor()(0, 60 - 1 - iPF, 20) = pfCandDzDz; - tensor.tensor()(0, 60 - 1 - iPF, 21) = pfCandD0Dz; - tensor.tensor()(0, 60 - 1 - iPF, 22) = pfCandD0Dphi; - tensor.tensor()(0, 60 - 1 - iPF, 23) = pfCandPtRelPtRel; - tensor.tensor()(0, 60 - 1 - iPF, 24) = pfCandPixHits; - tensor.tensor()(0, 60 - 1 - iPF, 25) = pfCandHits; - tensor.tensor()(0, 60 - 1 - iPF, 26) = pfCandLostInnerHits == -1; - tensor.tensor()(0, 60 - 1 - iPF, 27) = pfCandLostInnerHits == 0; - tensor.tensor()(0, 60 - 1 - iPF, 28) = pfCandLostInnerHits == 1; - tensor.tensor()(0, 60 - 1 - iPF, 29) = pfCandLostInnerHits == 2; - tensor.tensor()(0, 60 - 1 - iPF, 30) = pfCandPuppiWeight; - tensor.tensor()(0, 60 - 1 - iPF, 31) = (pfCandVtxQuality == 1); - tensor.tensor()(0, 60 - 1 - iPF, 32) = (pfCandVtxQuality == 5); - tensor.tensor()(0, 60 - 1 - iPF, 33) = (pfCandVtxQuality == 6); - tensor.tensor()(0, 60 - 1 - iPF, 34) = (pfCandVtxQuality == 7); - tensor.tensor()(0, 60 - 1 - iPF, 35) = (pfCandFromPV == 1); - tensor.tensor()(0, 60 - 1 - iPF, 36) = (pfCandFromPV == 2); - tensor.tensor()(0, 60 - 1 - iPF, 37) = (pfCandFromPV == 3); - tensor.tensor()(0, 60 - 1 - iPF, 38) = pfCandIsBarrel; - tensor.tensor()(0, 60 - 1 - iPF, 39) = pfCandHighPurityTrk; - tensor.tensor()(0, 60 - 1 - iPF, 40) = pfCandPdgID == 1; - tensor.tensor()(0, 60 - 1 - iPF, 41) = pfCandPdgID == 2; - tensor.tensor()(0, 60 - 1 - iPF, 42) = pfCandPdgID == 11; - tensor.tensor()(0, 60 - 1 - iPF, 43) = pfCandPdgID == 13; - tensor.tensor()(0, 60 - 1 - iPF, 44) = pfCandPdgID == 130; - tensor.tensor()(0, 60 - 1 - iPF, 45) = pfCandPdgID == 211; - tensor.tensor()(0, 60 - 1 - iPF, 46) = pfCandTauIndMatch; - } - - if (graphVersion == 1) { - tensor.tensor()(0, 36 - 1 - iPF, 0) = pfCandPt; - tensor.tensor()(0, 36 - 1 - iPF, 1) = pfCandPz; - tensor.tensor()(0, 36 - 1 - iPF, 2) = pfCandPtRel; - tensor.tensor()(0, 36 - 1 - iPF, 3) = pfCandPzRel; - tensor.tensor()(0, 36 - 1 - iPF, 4) = pfCandDr; - tensor.tensor()(0, 36 - 1 - iPF, 5) = pfCandDEta; - tensor.tensor()(0, 36 - 1 - iPF, 6) = pfCandDPhi; - tensor.tensor()(0, 36 - 1 - iPF, 7) = pfCandEta; - tensor.tensor()(0, 36 - 1 - iPF, 8) = pfCandDz; - tensor.tensor()(0, 36 - 1 - iPF, 9) = pfCandDzSig; - tensor.tensor()(0, 36 - 1 - iPF, 10) = pfCandD0; - tensor.tensor()(0, 36 - 1 - iPF, 11) = pfCandD0Sig; - tensor.tensor()(0, 36 - 1 - iPF, 12) = pfCandDzErr; - tensor.tensor()(0, 36 - 1 - iPF, 13) = pfCandD0Err; - tensor.tensor()(0, 36 - 1 - iPF, 14) = pfCandD0D0; - tensor.tensor()(0, 36 - 1 - iPF, 15) = pfCandCharge == 0; - tensor.tensor()(0, 36 - 1 - iPF, 16) = pfCandCharge == 1; - tensor.tensor()(0, 36 - 1 - iPF, 17) = pfCandCharge == -1; - tensor.tensor()(0, 36 - 1 - iPF, 18) = pfCandPdgID > 22; - tensor.tensor()(0, 36 - 1 - iPF, 19) = pfCandPdgID == 22; - tensor.tensor()(0, 36 - 1 - iPF, 20) = pfCandDVx_1; - tensor.tensor()(0, 36 - 1 - iPF, 21) = pfCandDVy_1; - tensor.tensor()(0, 36 - 1 - iPF, 22) = pfCandDVz_1; - tensor.tensor()(0, 36 - 1 - iPF, 23) = pfCandD_1; - tensor.tensor()(0, 36 - 1 - iPF, 24) = pfCandDzDz; - tensor.tensor()(0, 36 - 1 - iPF, 25) = pfCandD0Dz; - tensor.tensor()(0, 36 - 1 - iPF, 26) = pfCandD0Dphi; - tensor.tensor()(0, 36 - 1 - iPF, 27) = pfCandPtRelPtRel; - tensor.tensor()(0, 36 - 1 - iPF, 28) = pfCandPixHits; - tensor.tensor()(0, 36 - 1 - iPF, 29) = pfCandHits; - tensor.tensor()(0, 36 - 1 - iPF, 30) = pfCandLostInnerHits == -1; - tensor.tensor()(0, 36 - 1 - iPF, 31) = pfCandLostInnerHits == 0; - tensor.tensor()(0, 36 - 1 - iPF, 32) = pfCandLostInnerHits == 1; - tensor.tensor()(0, 36 - 1 - iPF, 33) = pfCandLostInnerHits == 2; - tensor.tensor()(0, 36 - 1 - iPF, 34) = pfCandPuppiWeight; - tensor.tensor()(0, 36 - 1 - iPF, 35) = (pfCandVtxQuality == 1); - tensor.tensor()(0, 36 - 1 - iPF, 36) = (pfCandVtxQuality == 5); - tensor.tensor()(0, 36 - 1 - iPF, 37) = (pfCandVtxQuality == 6); - tensor.tensor()(0, 36 - 1 - iPF, 38) = (pfCandVtxQuality == 7); - tensor.tensor()(0, 36 - 1 - iPF, 39) = (pfCandFromPV == 1); - tensor.tensor()(0, 36 - 1 - iPF, 40) = (pfCandFromPV == 2); - tensor.tensor()(0, 36 - 1 - iPF, 41) = (pfCandFromPV == 3); - tensor.tensor()(0, 36 - 1 - iPF, 42) = pfCandIsBarrel; - tensor.tensor()(0, 36 - 1 - iPF, 43) = pfCandHighPurityTrk; - tensor.tensor()(0, 36 - 1 - iPF, 44) = pfCandPdgID == 1; - tensor.tensor()(0, 36 - 1 - iPF, 45) = pfCandPdgID == 2; - tensor.tensor()(0, 36 - 1 - iPF, 46) = pfCandPdgID == 11; - tensor.tensor()(0, 36 - 1 - iPF, 47) = pfCandPdgID == 13; - tensor.tensor()(0, 36 - 1 - iPF, 48) = pfCandPdgID == 130; - tensor.tensor()(0, 36 - 1 - iPF, 49) = pfCandPdgID == 211; - tensor.tensor()(0, 36 - 1 - iPF, 50) = pfCandTauIndMatch; - } - iPF++; - } - tensorflow::run(&(cache_->getSession()), {{"input_1", tensor}}, {"output_node0"}, &outputs_); - predictions.matrix()(tau_index, 0) = outputs_[0].flat()(0); - } - return predictions; - } - -private: - unsigned graphVersion; -}; - -#include "FWCore/Framework/interface/MakerMacros.h" -DEFINE_FWK_MODULE(DPFIsolation); diff --git a/RecoTauTag/RecoTau/plugins/DeepTauId.cc b/RecoTauTag/RecoTau/plugins/DeepTauId.cc index 86482ce914463..88d25848d7cb1 100644 --- a/RecoTauTag/RecoTau/plugins/DeepTauId.cc +++ b/RecoTauTag/RecoTau/plugins/DeepTauId.cc @@ -22,141 +22,6 @@ namespace deep_tau { namespace { - struct dnn_inputs_v1 { - enum vars { - pt = 0, - eta, - mass, - decayMode, - chargedIsoPtSum, - neutralIsoPtSum, - neutralIsoPtSumWeight, - photonPtSumOutsideSignalCone, - puCorrPtSum, - dxy, - dxy_sig, - dz, - ip3d, - ip3d_sig, - hasSecondaryVertex, - flightLength_r, - flightLength_dEta, - flightLength_dPhi, - flightLength_sig, - leadChargedHadrCand_pt, - leadChargedHadrCand_dEta, - leadChargedHadrCand_dPhi, - leadChargedHadrCand_mass, - pt_weighted_deta_strip, - pt_weighted_dphi_strip, - pt_weighted_dr_signal, - pt_weighted_dr_iso, - leadingTrackNormChi2, - e_ratio, - gj_angle_diff, - n_photons, - emFraction, - has_gsf_track, - inside_ecal_crack, - gsf_ele_matched, - gsf_ele_pt, - gsf_ele_dEta, - gsf_ele_dPhi, - gsf_ele_mass, - gsf_ele_Ee, - gsf_ele_Egamma, - gsf_ele_Pin, - gsf_ele_Pout, - gsf_ele_EtotOverPin, - gsf_ele_Eecal, - gsf_ele_dEta_SeedClusterTrackAtCalo, - gsf_ele_dPhi_SeedClusterTrackAtCalo, - gsf_ele_mvaIn_sigmaEtaEta, - gsf_ele_mvaIn_hadEnergy, - gsf_ele_mvaIn_deltaEta, - gsf_ele_Chi2NormGSF, - gsf_ele_GSFNumHits, - gsf_ele_GSFTrackResol, - gsf_ele_GSFTracklnPt, - gsf_ele_Chi2NormKF, - gsf_ele_KFNumHits, - leadChargedCand_etaAtEcalEntrance, - leadChargedCand_pt, - leadChargedHadrCand_HoP, - leadChargedHadrCand_EoP, - tau_visMass_innerSigCone, - n_matched_muons, - muon_pt, - muon_dEta, - muon_dPhi, - muon_n_matches_DT_1, - muon_n_matches_DT_2, - muon_n_matches_DT_3, - muon_n_matches_DT_4, - muon_n_matches_CSC_1, - muon_n_matches_CSC_2, - muon_n_matches_CSC_3, - muon_n_matches_CSC_4, - muon_n_hits_DT_2, - muon_n_hits_DT_3, - muon_n_hits_DT_4, - muon_n_hits_CSC_2, - muon_n_hits_CSC_3, - muon_n_hits_CSC_4, - muon_n_hits_RPC_2, - muon_n_hits_RPC_3, - muon_n_hits_RPC_4, - muon_n_stations_with_matches_03, - muon_n_stations_with_hits_23, - signalChargedHadrCands_sum_innerSigCone_pt, - signalChargedHadrCands_sum_innerSigCone_dEta, - signalChargedHadrCands_sum_innerSigCone_dPhi, - signalChargedHadrCands_sum_innerSigCone_mass, - signalChargedHadrCands_sum_outerSigCone_pt, - signalChargedHadrCands_sum_outerSigCone_dEta, - signalChargedHadrCands_sum_outerSigCone_dPhi, - signalChargedHadrCands_sum_outerSigCone_mass, - signalChargedHadrCands_nTotal_innerSigCone, - signalChargedHadrCands_nTotal_outerSigCone, - signalNeutrHadrCands_sum_innerSigCone_pt, - signalNeutrHadrCands_sum_innerSigCone_dEta, - signalNeutrHadrCands_sum_innerSigCone_dPhi, - signalNeutrHadrCands_sum_innerSigCone_mass, - signalNeutrHadrCands_sum_outerSigCone_pt, - signalNeutrHadrCands_sum_outerSigCone_dEta, - signalNeutrHadrCands_sum_outerSigCone_dPhi, - signalNeutrHadrCands_sum_outerSigCone_mass, - signalNeutrHadrCands_nTotal_innerSigCone, - signalNeutrHadrCands_nTotal_outerSigCone, - signalGammaCands_sum_innerSigCone_pt, - signalGammaCands_sum_innerSigCone_dEta, - signalGammaCands_sum_innerSigCone_dPhi, - signalGammaCands_sum_innerSigCone_mass, - signalGammaCands_sum_outerSigCone_pt, - signalGammaCands_sum_outerSigCone_dEta, - signalGammaCands_sum_outerSigCone_dPhi, - signalGammaCands_sum_outerSigCone_mass, - signalGammaCands_nTotal_innerSigCone, - signalGammaCands_nTotal_outerSigCone, - isolationChargedHadrCands_sum_pt, - isolationChargedHadrCands_sum_dEta, - isolationChargedHadrCands_sum_dPhi, - isolationChargedHadrCands_sum_mass, - isolationChargedHadrCands_nTotal, - isolationNeutrHadrCands_sum_pt, - isolationNeutrHadrCands_sum_dEta, - isolationNeutrHadrCands_sum_dPhi, - isolationNeutrHadrCands_sum_mass, - isolationNeutrHadrCands_nTotal, - isolationGammaCands_sum_pt, - isolationGammaCands_sum_dEta, - isolationGammaCands_sum_dPhi, - isolationGammaCands_sum_mass, - isolationGammaCands_nTotal, - NumberOfInputs - }; - }; - namespace dnn_inputs_v2 { constexpr int number_of_inner_cell = 11; constexpr int number_of_outer_cell = 21; @@ -690,151 +555,6 @@ namespace { return static_cast(reco::deltaPhi(p4_2.phi(), p4_1.phi())); } - struct MuonHitMatchV1 { - static constexpr int n_muon_stations = 4; - - std::map> n_matches, n_hits; - unsigned n_muons{0}; - const pat::Muon* best_matched_muon{nullptr}; - double deltaR2_best_match{-1}; - - MuonHitMatchV1() { - n_matches[MuonSubdetId::DT].assign(n_muon_stations, 0); - n_matches[MuonSubdetId::CSC].assign(n_muon_stations, 0); - n_matches[MuonSubdetId::RPC].assign(n_muon_stations, 0); - n_hits[MuonSubdetId::DT].assign(n_muon_stations, 0); - n_hits[MuonSubdetId::CSC].assign(n_muon_stations, 0); - n_hits[MuonSubdetId::RPC].assign(n_muon_stations, 0); - } - - void addMatchedMuon(const pat::Muon& muon, reco::BaseTau const& tau) { - static constexpr int n_stations = 4; - - ++n_muons; - const double dR2 = reco::deltaR2(tau.p4(), muon.p4()); - if (!best_matched_muon || dR2 < deltaR2_best_match) { - best_matched_muon = &muon; - deltaR2_best_match = dR2; - } - - for (const auto& segment : muon.matches()) { - if (segment.segmentMatches.empty()) - continue; - if (n_matches.count(segment.detector())) - ++n_matches.at(segment.detector()).at(segment.station() - 1); - } - - if (muon.outerTrack().isNonnull()) { - const auto& hit_pattern = muon.outerTrack()->hitPattern(); - for (int hit_index = 0; hit_index < hit_pattern.numberOfAllHits(reco::HitPattern::TRACK_HITS); ++hit_index) { - auto hit_id = hit_pattern.getHitPattern(reco::HitPattern::TRACK_HITS, hit_index); - if (hit_id == 0) - break; - if (hit_pattern.muonHitFilter(hit_id) && (hit_pattern.getHitType(hit_id) == TrackingRecHit::valid || - hit_pattern.getHitType(hit_id == TrackingRecHit::bad))) { - const int station = hit_pattern.getMuonStation(hit_id) - 1; - if (station > 0 && station < n_stations) { - std::vector* muon_n_hits = nullptr; - if (hit_pattern.muonDTHitFilter(hit_id)) - muon_n_hits = &n_hits.at(MuonSubdetId::DT); - else if (hit_pattern.muonCSCHitFilter(hit_id)) - muon_n_hits = &n_hits.at(MuonSubdetId::CSC); - else if (hit_pattern.muonRPCHitFilter(hit_id)) - muon_n_hits = &n_hits.at(MuonSubdetId::RPC); - - if (muon_n_hits) - ++muon_n_hits->at(station); - } - } - } - } - } - - template - static std::vector findMatchedMuons(const TauCastType& tau, - const std::vector* muons, - double deltaR, - double minPt) { - const reco::Muon* hadr_cand_muon = nullptr; - if (tau.leadPFChargedHadrCand().isNonnull() && tau.leadPFChargedHadrCand()->muonRef().isNonnull()) - hadr_cand_muon = tau.leadPFChargedHadrCand()->muonRef().get(); - std::vector matched_muons; - const double dR2 = deltaR * deltaR; - for (const pat::Muon& muon : *muons) { - const reco::Muon* reco_muon = &muon; - if (muon.pt() <= minPt) - continue; - if (reco_muon == hadr_cand_muon) - continue; - if (reco::deltaR2(tau.p4(), muon.p4()) >= dR2) - continue; - matched_muons.push_back(&muon); - } - return matched_muons; - } - - template - void fillTensor(const TensorElemGet& get, const TauCastType& tau, float default_value) const { - get(dnn::n_matched_muons) = n_muons; - get(dnn::muon_pt) = best_matched_muon != nullptr ? best_matched_muon->p4().pt() : default_value; - get(dnn::muon_dEta) = best_matched_muon != nullptr ? dEta(best_matched_muon->p4(), tau.p4()) : default_value; - get(dnn::muon_dPhi) = best_matched_muon != nullptr ? dPhi(best_matched_muon->p4(), tau.p4()) : default_value; - get(dnn::muon_n_matches_DT_1) = n_matches.at(MuonSubdetId::DT).at(0); - get(dnn::muon_n_matches_DT_2) = n_matches.at(MuonSubdetId::DT).at(1); - get(dnn::muon_n_matches_DT_3) = n_matches.at(MuonSubdetId::DT).at(2); - get(dnn::muon_n_matches_DT_4) = n_matches.at(MuonSubdetId::DT).at(3); - get(dnn::muon_n_matches_CSC_1) = n_matches.at(MuonSubdetId::CSC).at(0); - get(dnn::muon_n_matches_CSC_2) = n_matches.at(MuonSubdetId::CSC).at(1); - get(dnn::muon_n_matches_CSC_3) = n_matches.at(MuonSubdetId::CSC).at(2); - get(dnn::muon_n_matches_CSC_4) = n_matches.at(MuonSubdetId::CSC).at(3); - get(dnn::muon_n_hits_DT_2) = n_hits.at(MuonSubdetId::DT).at(1); - get(dnn::muon_n_hits_DT_3) = n_hits.at(MuonSubdetId::DT).at(2); - get(dnn::muon_n_hits_DT_4) = n_hits.at(MuonSubdetId::DT).at(3); - get(dnn::muon_n_hits_CSC_2) = n_hits.at(MuonSubdetId::CSC).at(1); - get(dnn::muon_n_hits_CSC_3) = n_hits.at(MuonSubdetId::CSC).at(2); - get(dnn::muon_n_hits_CSC_4) = n_hits.at(MuonSubdetId::CSC).at(3); - get(dnn::muon_n_hits_RPC_2) = n_hits.at(MuonSubdetId::RPC).at(1); - get(dnn::muon_n_hits_RPC_3) = n_hits.at(MuonSubdetId::RPC).at(2); - get(dnn::muon_n_hits_RPC_4) = n_hits.at(MuonSubdetId::RPC).at(3); - get(dnn::muon_n_stations_with_matches_03) = countMuonStationsWithMatches(0, 3); - get(dnn::muon_n_stations_with_hits_23) = countMuonStationsWithHits(2, 3); - } - - private: - unsigned countMuonStationsWithMatches(size_t first_station, size_t last_station) const { - static const std::map> masks = { - {MuonSubdetId::DT, {false, false, false, false}}, - {MuonSubdetId::CSC, {true, false, false, false}}, - {MuonSubdetId::RPC, {false, false, false, false}}, - }; - unsigned cnt = 0; - for (unsigned n = first_station; n <= last_station; ++n) { - for (const auto& match : n_matches) { - if (!masks.at(match.first).at(n) && match.second.at(n) > 0) - ++cnt; - } - } - return cnt; - } - - unsigned countMuonStationsWithHits(size_t first_station, size_t last_station) const { - static const std::map> masks = { - {MuonSubdetId::DT, {false, false, false, false}}, - {MuonSubdetId::CSC, {false, false, false, false}}, - {MuonSubdetId::RPC, {false, false, false, false}}, - }; - - unsigned cnt = 0; - for (unsigned n = first_station; n <= last_station; ++n) { - for (const auto& hit : n_hits) { - if (!masks.at(hit.first).at(n) && hit.second.at(n) > 0) - ++cnt; - } - } - return cnt; - } - }; - struct MuonHitMatchV2 { static constexpr size_t n_muon_stations = 4; static constexpr int first_station_id = 1; @@ -1215,14 +935,7 @@ class DeepTauId : public deep_tau::DeepTauBase { save_inputs_(cfg.getParameter("save_inputs")), json_file_(nullptr), file_counter_(0) { - if (version_ == 1) { - input_layer_ = cache_->getGraph().node(0).name(); - output_layer_ = cache_->getGraph().node(cache_->getGraph().node_size() - 1).name(); - const auto& shape = cache_->getGraph().node(0).attr().at("shape").shape(); - if (shape.dim(1).size() != dnn_inputs_v1::NumberOfInputs) - throw cms::Exception("DeepTauId") - << "number of inputs does not match the expected inputs for the given version"; - } else if (version_ == 2) { + if (version_ == 2) { using namespace dnn_inputs_v2; namespace sc = deep_tau::Scaling; tauInputs_indices_.resize(TauBlockInputs::NumberOfInputs); @@ -1540,14 +1253,7 @@ class DeepTauId : public deep_tau::DeepTauBase { } if (passesPrediscriminants) { - if (version_ == 1) { - if (is_online_) - getPredictionsV1( - taus->at(tau_index), tau_index, tauRef, electron_collection, muon_collection, pred_vector, tauIDs); - else - getPredictionsV1( - taus->at(tau_index), tau_index, tauRef, electron_collection, muon_collection, pred_vector, tauIDs); - } else if (version_ == 2) { + if (version_ == 2) { if (is_online_) { getPredictionsV2(taus->at(tau_index), tau_index, @@ -1595,19 +1301,6 @@ class DeepTauId : public deep_tau::DeepTauBase { return predictions; } - template - void getPredictionsV1(TauCollection::const_reference& tau, - const size_t tau_index, - const edm::RefToBase tau_ref, - const std::vector* electrons, - const std::vector* muons, - std::vector& pred_vector, - TauFunc tau_funcs) { - const tensorflow::Tensor& inputs = createInputsV1( - dynamic_cast(tau), tau_index, tau_ref, electrons, muons, tau_funcs); - tensorflow::run(&(cache_->getSession()), {{input_layer_, inputs}}, {output_layer_}, &pred_vector); - } - template void getPredictionsV2(TauCollection::const_reference& tau, const size_t tau_index, @@ -2573,211 +2266,6 @@ class DeepTauId : public deep_tau::DeepTauBase { } } - template - tensorflow::Tensor createInputsV1(const TauCastType& tau, - const size_t tau_index, - const edm::RefToBase tau_ref, - const std::vector* electrons, - const std::vector* muons, - TauFunc tau_funcs) const { - static constexpr bool check_all_set = false; - static constexpr float default_value_for_set_check = -42; - - tensorflow::Tensor inputs(tensorflow::DT_FLOAT, {1, dnn_inputs_v1::NumberOfInputs}); - const auto& get = [&](int var_index) -> float& { return inputs.matrix()(0, var_index); }; - auto leadChargedHadrCand = dynamic_cast(tau.leadChargedHadrCand().get()); - - if (check_all_set) { - for (int var_index = 0; var_index < dnn::NumberOfInputs; ++var_index) { - get(var_index) = default_value_for_set_check; - } - } - - get(dnn::pt) = tau.p4().pt(); - get(dnn::eta) = tau.p4().eta(); - get(dnn::mass) = tau.p4().mass(); - get(dnn::decayMode) = tau.decayMode(); - get(dnn::chargedIsoPtSum) = tau_funcs.getChargedIsoPtSum(tau, tau_ref); - get(dnn::neutralIsoPtSum) = tau_funcs.getNeutralIsoPtSum(tau, tau_ref); - get(dnn::neutralIsoPtSumWeight) = tau_funcs.getNeutralIsoPtSumWeight(tau, tau_ref); - get(dnn::photonPtSumOutsideSignalCone) = tau_funcs.getPhotonPtSumOutsideSignalCone(tau, tau_ref); - get(dnn::puCorrPtSum) = tau_funcs.getPuCorrPtSum(tau, tau_ref); - get(dnn::dxy) = tau_funcs.getdxy(tau, tau_index); - get(dnn::dxy_sig) = tau_funcs.getdxySig(tau, tau_index); - get(dnn::dz) = leadChargedHadrCand ? candFunc::getTauDz(*leadChargedHadrCand) : default_value; - get(dnn::ip3d) = tau_funcs.getip3d(tau, tau_index); - get(dnn::ip3d_sig) = tau_funcs.getip3dSig(tau, tau_index); - get(dnn::hasSecondaryVertex) = tau_funcs.getHasSecondaryVertex(tau, tau_index); - get(dnn::flightLength_r) = tau_funcs.getFlightLength(tau, tau_index).R(); - get(dnn::flightLength_dEta) = dEta(tau_funcs.getFlightLength(tau, tau_index), tau.p4()); - get(dnn::flightLength_dPhi) = dPhi(tau_funcs.getFlightLength(tau, tau_index), tau.p4()); - get(dnn::flightLength_sig) = tau_funcs.getFlightLengthSig(tau, tau_index); - get(dnn::leadChargedHadrCand_pt) = leadChargedHadrCand ? leadChargedHadrCand->p4().Pt() : default_value; - get(dnn::leadChargedHadrCand_dEta) = - leadChargedHadrCand ? dEta(leadChargedHadrCand->p4(), tau.p4()) : default_value; - get(dnn::leadChargedHadrCand_dPhi) = - leadChargedHadrCand ? dPhi(leadChargedHadrCand->p4(), tau.p4()) : default_value; - get(dnn::leadChargedHadrCand_mass) = leadChargedHadrCand ? leadChargedHadrCand->p4().mass() : default_value; - get(dnn::pt_weighted_deta_strip) = reco::tau::pt_weighted_deta_strip(tau, tau.decayMode()); - get(dnn::pt_weighted_dphi_strip) = reco::tau::pt_weighted_dphi_strip(tau, tau.decayMode()); - get(dnn::pt_weighted_dr_signal) = reco::tau::pt_weighted_dr_signal(tau, tau.decayMode()); - get(dnn::pt_weighted_dr_iso) = reco::tau::pt_weighted_dr_iso(tau, tau.decayMode()); - get(dnn::leadingTrackNormChi2) = tau_funcs.getLeadingTrackNormChi2(tau); - get(dnn::e_ratio) = reco::tau::eratio(tau); - get(dnn::gj_angle_diff) = calculateGottfriedJacksonAngleDifference(tau, tau_index, tau_funcs); - get(dnn::n_photons) = reco::tau::n_photons_total(tau); - get(dnn::emFraction) = tau_funcs.getEmFraction(tau); - get(dnn::has_gsf_track) = leadChargedHadrCand && std::abs(leadChargedHadrCand->pdgId()) == 11; - get(dnn::inside_ecal_crack) = isInEcalCrack(tau.p4().Eta()); - auto gsf_ele = findMatchedElectron(tau, electrons, 0.3); - get(dnn::gsf_ele_matched) = gsf_ele != nullptr; - get(dnn::gsf_ele_pt) = gsf_ele != nullptr ? gsf_ele->p4().Pt() : default_value; - get(dnn::gsf_ele_dEta) = gsf_ele != nullptr ? dEta(gsf_ele->p4(), tau.p4()) : default_value; - get(dnn::gsf_ele_dPhi) = gsf_ele != nullptr ? dPhi(gsf_ele->p4(), tau.p4()) : default_value; - get(dnn::gsf_ele_mass) = gsf_ele != nullptr ? gsf_ele->p4().mass() : default_value; - calculateElectronClusterVars(gsf_ele, get(dnn::gsf_ele_Ee), get(dnn::gsf_ele_Egamma)); - get(dnn::gsf_ele_Pin) = gsf_ele != nullptr ? gsf_ele->trackMomentumAtVtx().R() : default_value; - get(dnn::gsf_ele_Pout) = gsf_ele != nullptr ? gsf_ele->trackMomentumOut().R() : default_value; - get(dnn::gsf_ele_EtotOverPin) = get(dnn::gsf_ele_Pin) > 0 - ? (get(dnn::gsf_ele_Ee) + get(dnn::gsf_ele_Egamma)) / get(dnn::gsf_ele_Pin) - : default_value; - get(dnn::gsf_ele_Eecal) = gsf_ele != nullptr ? gsf_ele->ecalEnergy() : default_value; - get(dnn::gsf_ele_dEta_SeedClusterTrackAtCalo) = - gsf_ele != nullptr ? gsf_ele->deltaEtaSeedClusterTrackAtCalo() : default_value; - get(dnn::gsf_ele_dPhi_SeedClusterTrackAtCalo) = - gsf_ele != nullptr ? gsf_ele->deltaPhiSeedClusterTrackAtCalo() : default_value; - get(dnn::gsf_ele_mvaIn_sigmaEtaEta) = gsf_ele != nullptr ? gsf_ele->mvaInput().sigmaEtaEta : default_value; - get(dnn::gsf_ele_mvaIn_hadEnergy) = gsf_ele != nullptr ? gsf_ele->mvaInput().hadEnergy : default_value; - get(dnn::gsf_ele_mvaIn_deltaEta) = gsf_ele != nullptr ? gsf_ele->mvaInput().deltaEta : default_value; - - get(dnn::gsf_ele_Chi2NormGSF) = default_value; - get(dnn::gsf_ele_GSFNumHits) = default_value; - get(dnn::gsf_ele_GSFTrackResol) = default_value; - get(dnn::gsf_ele_GSFTracklnPt) = default_value; - if (gsf_ele != nullptr && gsf_ele->gsfTrack().isNonnull()) { - get(dnn::gsf_ele_Chi2NormGSF) = gsf_ele->gsfTrack()->normalizedChi2(); - get(dnn::gsf_ele_GSFNumHits) = gsf_ele->gsfTrack()->numberOfValidHits(); - if (gsf_ele->gsfTrack()->pt() > 0) { - get(dnn::gsf_ele_GSFTrackResol) = gsf_ele->gsfTrack()->ptError() / gsf_ele->gsfTrack()->pt(); - get(dnn::gsf_ele_GSFTracklnPt) = std::log10(gsf_ele->gsfTrack()->pt()); - } - } - - get(dnn::gsf_ele_Chi2NormKF) = default_value; - get(dnn::gsf_ele_KFNumHits) = default_value; - if (gsf_ele != nullptr && gsf_ele->closestCtfTrackRef().isNonnull()) { - get(dnn::gsf_ele_Chi2NormKF) = gsf_ele->closestCtfTrackRef()->normalizedChi2(); - get(dnn::gsf_ele_KFNumHits) = gsf_ele->closestCtfTrackRef()->numberOfValidHits(); - } - get(dnn::leadChargedCand_etaAtEcalEntrance) = tau_funcs.getEtaAtEcalEntrance(tau); - get(dnn::leadChargedCand_pt) = leadChargedHadrCand->pt(); - - get(dnn::leadChargedHadrCand_HoP) = default_value; - get(dnn::leadChargedHadrCand_EoP) = default_value; - if (leadChargedHadrCand->pt() > 0) { - get(dnn::leadChargedHadrCand_HoP) = tau_funcs.getEcalEnergyLeadingChargedHadr(tau) / leadChargedHadrCand->pt(); - get(dnn::leadChargedHadrCand_EoP) = tau_funcs.getHcalEnergyLeadingChargedHadr(tau) / leadChargedHadrCand->pt(); - } - - MuonHitMatchV1 muon_hit_match; - if (tau.leadPFChargedHadrCand().isNonnull() && tau.leadPFChargedHadrCand()->muonRef().isNonnull()) - muon_hit_match.addMatchedMuon(*tau.leadPFChargedHadrCand()->muonRef(), tau); - - auto matched_muons = muon_hit_match.findMatchedMuons(tau, muons, 0.3, 5); - for (auto muon : matched_muons) - muon_hit_match.addMatchedMuon(*muon, tau); - muon_hit_match.fillTensor(get, tau, default_value); - - LorentzVectorXYZ signalChargedHadrCands_sumIn, signalChargedHadrCands_sumOut; - processSignalPFComponents(tau, - tau.signalChargedHadrCands(), - signalChargedHadrCands_sumIn, - signalChargedHadrCands_sumOut, - get(dnn::signalChargedHadrCands_sum_innerSigCone_pt), - get(dnn::signalChargedHadrCands_sum_innerSigCone_dEta), - get(dnn::signalChargedHadrCands_sum_innerSigCone_dPhi), - get(dnn::signalChargedHadrCands_sum_innerSigCone_mass), - get(dnn::signalChargedHadrCands_sum_outerSigCone_pt), - get(dnn::signalChargedHadrCands_sum_outerSigCone_dEta), - get(dnn::signalChargedHadrCands_sum_outerSigCone_dPhi), - get(dnn::signalChargedHadrCands_sum_outerSigCone_mass), - get(dnn::signalChargedHadrCands_nTotal_innerSigCone), - get(dnn::signalChargedHadrCands_nTotal_outerSigCone)); - - LorentzVectorXYZ signalNeutrHadrCands_sumIn, signalNeutrHadrCands_sumOut; - processSignalPFComponents(tau, - tau.signalNeutrHadrCands(), - signalNeutrHadrCands_sumIn, - signalNeutrHadrCands_sumOut, - get(dnn::signalNeutrHadrCands_sum_innerSigCone_pt), - get(dnn::signalNeutrHadrCands_sum_innerSigCone_dEta), - get(dnn::signalNeutrHadrCands_sum_innerSigCone_dPhi), - get(dnn::signalNeutrHadrCands_sum_innerSigCone_mass), - get(dnn::signalNeutrHadrCands_sum_outerSigCone_pt), - get(dnn::signalNeutrHadrCands_sum_outerSigCone_dEta), - get(dnn::signalNeutrHadrCands_sum_outerSigCone_dPhi), - get(dnn::signalNeutrHadrCands_sum_outerSigCone_mass), - get(dnn::signalNeutrHadrCands_nTotal_innerSigCone), - get(dnn::signalNeutrHadrCands_nTotal_outerSigCone)); - - LorentzVectorXYZ signalGammaCands_sumIn, signalGammaCands_sumOut; - processSignalPFComponents(tau, - tau.signalGammaCands(), - signalGammaCands_sumIn, - signalGammaCands_sumOut, - get(dnn::signalGammaCands_sum_innerSigCone_pt), - get(dnn::signalGammaCands_sum_innerSigCone_dEta), - get(dnn::signalGammaCands_sum_innerSigCone_dPhi), - get(dnn::signalGammaCands_sum_innerSigCone_mass), - get(dnn::signalGammaCands_sum_outerSigCone_pt), - get(dnn::signalGammaCands_sum_outerSigCone_dEta), - get(dnn::signalGammaCands_sum_outerSigCone_dPhi), - get(dnn::signalGammaCands_sum_outerSigCone_mass), - get(dnn::signalGammaCands_nTotal_innerSigCone), - get(dnn::signalGammaCands_nTotal_outerSigCone)); - - LorentzVectorXYZ isolationChargedHadrCands_sum; - processIsolationPFComponents(tau, - tau.isolationChargedHadrCands(), - isolationChargedHadrCands_sum, - get(dnn::isolationChargedHadrCands_sum_pt), - get(dnn::isolationChargedHadrCands_sum_dEta), - get(dnn::isolationChargedHadrCands_sum_dPhi), - get(dnn::isolationChargedHadrCands_sum_mass), - get(dnn::isolationChargedHadrCands_nTotal)); - - LorentzVectorXYZ isolationNeutrHadrCands_sum; - processIsolationPFComponents(tau, - tau.isolationNeutrHadrCands(), - isolationNeutrHadrCands_sum, - get(dnn::isolationNeutrHadrCands_sum_pt), - get(dnn::isolationNeutrHadrCands_sum_dEta), - get(dnn::isolationNeutrHadrCands_sum_dPhi), - get(dnn::isolationNeutrHadrCands_sum_mass), - get(dnn::isolationNeutrHadrCands_nTotal)); - - LorentzVectorXYZ isolationGammaCands_sum; - processIsolationPFComponents(tau, - tau.isolationGammaCands(), - isolationGammaCands_sum, - get(dnn::isolationGammaCands_sum_pt), - get(dnn::isolationGammaCands_sum_dEta), - get(dnn::isolationGammaCands_sum_dPhi), - get(dnn::isolationGammaCands_sum_mass), - get(dnn::isolationGammaCands_nTotal)); - - get(dnn::tau_visMass_innerSigCone) = (signalGammaCands_sumIn + signalChargedHadrCands_sumIn).mass(); - - if (check_all_set) { - for (int var_index = 0; var_index < dnn::NumberOfInputs; ++var_index) { - if (get(var_index) == default_value_for_set_check) - throw cms::Exception("DeepTauId: variable with index = ") << var_index << " is not set."; - } - } - - return inputs; - } - static void calculateElectronClusterVars(const pat::Electron* ele, float& elecEe, float& elecEgamma) { if (ele) { elecEe = elecEgamma = 0; diff --git a/RecoTauTag/RecoTau/plugins/PFRecoTauCorrectedInvariantMassProducer.cc b/RecoTauTag/RecoTau/plugins/PFRecoTauCorrectedInvariantMassProducer.cc deleted file mode 100644 index af4719a824328..0000000000000 --- a/RecoTauTag/RecoTau/plugins/PFRecoTauCorrectedInvariantMassProducer.cc +++ /dev/null @@ -1,65 +0,0 @@ -/* - * class PFRecoTauCorrectedInvariantMassProducer - * created : April 16, 2009 - * revised : , - * Authors : Evan K. Friis, (UC Davis), Simone Gennai (SNS) - * - * Associates the invariant mass reconstruced in the PFTauDecayMode production - * to its underlying PFTau, in PFTau discriminator format. - * - * The following corrections are applied in the PFTauDecayMode production - * - * 1) UE filtering - * 2) Merging of PFGammas into candidate pi zeros - * 3) Application of mass hypothesis (charged/neutral pion) to constituents - * - */ - -#include "RecoTauTag/RecoTau/interface/TauDiscriminationProducerBase.h" -#include "DataFormats/TauReco/interface/PFTauDecayMode.h" -#include "DataFormats/TauReco/interface/PFTauDecayModeAssociation.h" - -#include -#include - -namespace { - using namespace reco; - - class PFRecoTauCorrectedInvariantMassProducer : public PFTauDiscriminationProducerBase { - public: - explicit PFRecoTauCorrectedInvariantMassProducer(const edm::ParameterSet& iConfig) - : PFTauDiscriminationProducerBase(iConfig) { - PFTauDecayModeProducer_ = iConfig.getParameter("PFTauDecayModeProducer"); - } - ~PFRecoTauCorrectedInvariantMassProducer() override {} - double discriminate(const PFTauRef& pfTau) const override; - void beginEvent(const edm::Event& event, const edm::EventSetup& evtSetup) override; - static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); - - private: - edm::InputTag PFTauDecayModeProducer_; - edm::Handle theDMAssoc; - }; - - void PFRecoTauCorrectedInvariantMassProducer::beginEvent(const edm::Event& event, const edm::EventSetup& evtSetup) { - // Get the PFTau Decay Modes - event.getByLabel(PFTauDecayModeProducer_, theDMAssoc); - } - - double PFRecoTauCorrectedInvariantMassProducer::discriminate(const PFTauRef& thePFTauRef) const { - const PFTauDecayMode& theDecayMode = (*theDMAssoc)[thePFTauRef]; - return theDecayMode.mass(); - } - - void PFRecoTauCorrectedInvariantMassProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { - // pfRecoTauCorrectedInvariantMassProducer - edm::ParameterSetDescription desc; - desc.add("PFTauDecayModeProducer"); - - fillProducerDescriptions(desc); // inherited from the base - - descriptions.add("pfRecoTauCorrectedInvariantMassProducer", desc); - } - -} // namespace -DEFINE_FWK_MODULE(PFRecoTauCorrectedInvariantMassProducer); diff --git a/RecoTauTag/RecoTau/plugins/PFRecoTauDecayModeIndexProducer.cc b/RecoTauTag/RecoTau/plugins/PFRecoTauDecayModeIndexProducer.cc deleted file mode 100644 index f56f0130eae2c..0000000000000 --- a/RecoTauTag/RecoTau/plugins/PFRecoTauDecayModeIndexProducer.cc +++ /dev/null @@ -1,74 +0,0 @@ -/* - * class PFRecoTauDecayModeIndexProducer - * created : April 16, 2009 - * revised : , - * Authors : Evan K. Friis, (UC Davis), Simone Gennai (SNS) - * - * Associates the decay mode index (see enum in DataFormats/TauReco/interface/PFTauDecayMode.h) - * reconstruced in the PFTauDecayMode production to its underlying PFTau, in PFTau discriminator format - * - */ - -#include -#include - -#include "RecoTauTag/RecoTau/interface/TauDiscriminationProducerBase.h" - -#include "DataFormats/TauReco/interface/PFTauDecayMode.h" -#include "DataFormats/TauReco/interface/PFTauDecayModeAssociation.h" - -namespace { - - using namespace reco; - - class PFRecoTauDecayModeIndexProducer final : public PFTauDiscriminationProducerBase { - public: - explicit PFRecoTauDecayModeIndexProducer(const edm::ParameterSet& iConfig) - : PFTauDiscriminationProducerBase(iConfig) { - PFTauDecayModeProducer_ = iConfig.getParameter("PFTauDecayModeProducer"); - } - ~PFRecoTauDecayModeIndexProducer() override {} - double discriminate(const PFTauRef& thePFTauRef) const override; - void beginEvent(const edm::Event& evt, const edm::EventSetup& evtSetup) override; - static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); - - private: - edm::InputTag PFTauDecayModeProducer_; - edm::Handle decayModes_; // holds the PFTauDecayModes for the current event - }; - - void PFRecoTauDecayModeIndexProducer::beginEvent(const edm::Event& event, const edm::EventSetup& evtSetup) { - // Get the PFTau Decay Modes - event.getByLabel(PFTauDecayModeProducer_, decayModes_); - } - - double PFRecoTauDecayModeIndexProducer::discriminate(const PFTauRef& thePFTauRef) const { - int theDecayModeIndex = -1; - - const PFTauDecayMode& theDecayMode = (*decayModes_)[thePFTauRef]; - - // retrieve decay mode - theDecayModeIndex = static_cast(theDecayMode.getDecayMode()); - - if (theDecayModeIndex < 0) - theDecayModeIndex = -1; - - return theDecayModeIndex; - } - -} // namespace - -void PFRecoTauDecayModeIndexProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { - // pfTauDecayModeIndexProducer - edm::ParameterSetDescription desc; - desc.add("PFTauDecayModeProducer", edm::InputTag("pfRecoTauDecayModeProducer")); - { - edm::ParameterSetDescription psd0; - psd0.add("BooleanOperator", "and"); - desc.add("Prediscriminants", psd0); - } - desc.add("PFTauProducer", edm::InputTag("pfRecoTauProducer")); - descriptions.add("pfTauDecayModeIndexProducer", desc); -} - -DEFINE_FWK_MODULE(PFRecoTauDecayModeIndexProducer); diff --git a/RecoTauTag/RecoTau/python/tools/runTauIdMVA.py b/RecoTauTag/RecoTau/python/tools/runTauIdMVA.py index 192c823619dfb..e61582fec7e01 100644 --- a/RecoTauTag/RecoTau/python/tools/runTauIdMVA.py +++ b/RecoTauTag/RecoTau/python/tools/runTauIdMVA.py @@ -2,7 +2,6 @@ import FWCore.ParameterSet.Config as cms from RecoTauTag.RecoTau.TauDiscriminatorTools import noPrediscriminants from RecoTauTag.RecoTau.PATTauDiscriminationByMVAIsolationRun2_cff import patDiscriminationByIsolationMVArun2v1raw, patDiscriminationByIsolationMVArun2v1 -from RecoTauTag.RecoTau.DPFTau2016v0_cfi import DPFTau2016v0 from RecoTauTag.RecoTau.DeepTau_cfi import DeepTau import os import re @@ -11,8 +10,7 @@ class TauIDEmbedder(object): """class to rerun the tau seq and acces trainings from the database""" availableDiscriminators = [ "2017v1", "2017v2", "newDM2017v2", "dR0p32017v2", "2016v1", "newDM2016v1", - "deepTau2017v1", "deepTau2017v2", "deepTau2017v2p1", "deepTau2018v2p5", - "DPFTau_2016_v0", "DPFTau_2016_v1", + "deepTau2017v2", "deepTau2017v2p1", "deepTau2018v2p5", "againstEle2018", "newDMPhase2v1", "againstElePhase2v1" @@ -560,60 +558,6 @@ def runTauID(self): tauIDSources.byVTightIsolationMVArun2v1DBnewDMwLT2016 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2016v1, "_WPEff50") tauIDSources.byVVTightIsolationMVArun2v1DBnewDMwLT2016 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2016v1, "_WPEff40") - if "deepTau2017v1" in self.toKeep: - if self.debug: print ("Adding DeepTau IDs") - - _deepTauName = "deepTau2017v1" - workingPoints_ = { - "e": { - "VVVLoose" : 0.96424, - "VVLoose" : 0.98992, - "VLoose" : 0.99574, - "Loose": 0.99831, - "Medium": 0.99868, - "Tight": 0.99898, - "VTight": 0.99911, - "VVTight": 0.99918 - }, - "mu": { - "VVVLoose" : 0.959619, - "VVLoose" : 0.997687, - "VLoose" : 0.999392, - "Loose": 0.999755, - "Medium": 0.999854, - "Tight": 0.999886, - "VTight": 0.999944, - "VVTight": 0.9999971 - }, - - "jet": { - "VVVLoose" : 0.5329, - "VVLoose" : 0.7645, - "VLoose" : 0.8623, - "Loose": 0.9140, - "Medium": 0.9464, - "Tight": 0.9635, - "VTight": 0.9760, - "VVTight": 0.9859 - } - } - file_names = ['RecoTauTag/TrainingFiles/data/DeepTauId/deepTau_2017v1_20L1024N_quantized.pb'] - full_version = self.getDeepTauVersion(file_names[0]) - setattr(self.process,_deepTauName+self.postfix,DeepTau.clone( - Prediscriminants = noPrediscriminants, - taus = self.originalTauName, - graph_file = file_names, - version = full_version[1], - sub_version = full_version[2] - )) - - self.processDeepProducer(_deepTauName, tauIDSources, workingPoints_) - - _deepTauProducer = getattr(self.process,_deepTauName+self.postfix) - _rerunMvaIsolationTask.add(_deepTauProducer) - _rerunMvaIsolationSequence += _deepTauProducer - - if "deepTau2017v2" in self.toKeep: if self.debug: print ("Adding DeepTau IDs") @@ -755,64 +699,6 @@ def runTauID(self): _rerunMvaIsolationTask.add(_deepTauProducer) _rerunMvaIsolationSequence += _deepTauProducer - if "DPFTau_2016_v0" in self.toKeep: - if self.debug: print ("Adding DPFTau isolation (v0)") - - _deepTauName = "DPFTau2016v0" - workingPoints_ = { - "all": { - "Tight" : "if(decayMode == 0) return (0.898328 - 0.000160992 * pt);" + \ - "if(decayMode == 1) return (0.910138 - 0.000229923 * pt);" + \ - "if(decayMode == 10) return (0.873958 - 0.0002328 * pt);" + \ - "return 99.0;" - #"Tight" : "? decayMode == 0 ? (0.898328 - 0.000160992 * pt) : " + - # "(? decayMode == 1 ? 0.910138 - 0.000229923 * pt : " + - # "(? decayMode == 10 ? (0.873958 - 0.0002328 * pt) : 1))" - # "Tight" : "(decayMode == 0) * (0.898328 - 0.000160992 * pt) + \ - # (decayMode == 1) * (0.910138 - 0.000229923 * pt) + \ - # (decayMode == 10) * (0.873958 - 0.0002328 * pt) " - } - } - file_names = [ 'RecoTauTag/TrainingFiles/data/DPFTauId/DPFIsolation_2017v0_quantized.pb' ] - setattr(self.process,_deepTauName+self.postfix,DPFTau2016v0.clone( - Prediscriminants = noPrediscriminants, - taus = self.originalTauName, - graph_file = file_names, - version = self.getDpfTauVersion(file_names[0]) - )) - - self.processDeepProducer(_deepTauName, tauIDSources, workingPoints_) - - _deepTauProducer = getattr(self.process,_deepTauName+self.postfix) - _rerunMvaIsolationTask.add(_deepTauProducer) - _rerunMvaIsolationSequence += _deepTauProducer - - - if "DPFTau_2016_v1" in self.toKeep: - print ("Adding DPFTau isolation (v1)") - print ("WARNING: WPs are not defined for DPFTau_2016_v1") - print ("WARNING: The score of DPFTau_2016_v1 is inverted: i.e. for Sig->0, for Bkg->1 with -1 for undefined input (preselection not passed).") - - _deepTauName = "DPFTau2016v1" - workingPoints_ = { - "all": {"Tight" : 0.123} #FIXME: define WP - } - - file_names = [ 'RecoTauTag/TrainingFiles/data/DPFTauId/DPFIsolation_2017v1_quantized.pb' ] - setattr(self.process,_deepTauName+self.postfix,DPFTau2016v0.clone( - Prediscriminants = noPrediscriminants, - taus = self.originalTauName, - graph_file = file_names, - version = self.getDpfTauVersion(file_names[0]) - )) - - self.processDeepProducer(_deepTauName, tauIDSources, workingPoints_) - - _deepTauProducer = getattr(self.process,_deepTauName+self.postfix) - _rerunMvaIsolationTask.add(_deepTauProducer) - _rerunMvaIsolationSequence += _deepTauProducer - - if "againstEle2018" in self.toKeep: antiElectronDiscrMVA6_version = "MVA6v3_noeveto" ### Define new anti-e discriminants @@ -1051,16 +937,6 @@ def processDeepProducer(self, producer_name, tauIDSources, workingPoints_): setattr(getattr(self.process, producer_name+self.postfix), 'VS{}WP'.format(target), cms.vstring(*cut_expressions)) - def getDpfTauVersion(self, file_name): - """returns the DNN version. File name should contain a version label with data takig year (2011-2, 2015-8) and \ - version number (vX), e.g. 2017v0, in general the following format: {year}v{version}""" - version_search = re.search('201[125678]v([0-9]+)[\._]', file_name) - if not version_search: - raise RuntimeError('File "{}" has an invalid name pattern, should be in the format "{year}v{version}". \ - Unable to extract version number.'.format(file_name)) - version = version_search.group(1) - return int(version) - def getDeepTauVersion(self, file_name): """returns the DeepTau year, version, subversion. File name should contain a version label with data takig year \ (2011-2, 2015-8), version number (vX) and subversion (pX), e.g. 2017v0p6, in general the following format: \ diff --git a/RecoTracker/MkFit/test/dumpMkFitGeometry.py b/RecoTracker/MkFit/test/dumpMkFitGeometry.py index 06555bcb0358e..c2c8e76936b5a 100644 --- a/RecoTracker/MkFit/test/dumpMkFitGeometry.py +++ b/RecoTracker/MkFit/test/dumpMkFitGeometry.py @@ -14,7 +14,7 @@ process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.MessageLogger.cerr.threshold = "INFO" process.MessageLogger.cerr.MkFitGeometryESProducer = dict(limit=-1) diff --git a/RecoTracker/MkFitCore/src/PropagationMPlex.cc b/RecoTracker/MkFitCore/src/PropagationMPlex.cc index 806c4767402b1..b5c73f04e5416 100644 --- a/RecoTracker/MkFitCore/src/PropagationMPlex.cc +++ b/RecoTracker/MkFitCore/src/PropagationMPlex.cc @@ -1,3 +1,5 @@ +#include "FWCore/Utilities/interface/CMSUnrollLoop.h" + #include "MaterialEffects.h" #include "PropagationMPlex.h" @@ -331,6 +333,7 @@ namespace mkfit { float pxin = cosP / ipt; float pyin = sinP / ipt; + CMS_UNROLL_LOOP_COUNT(Config::Niter) for (int i = 0; i < Config::Niter; ++i) { dprint_np(n, std::endl @@ -343,7 +346,7 @@ namespace mkfit { const float ialpha = (r - r0) * ipt / k; //alpha+=ialpha; - if (Config::useTrigApprox) { + if constexpr (Config::useTrigApprox) { sincos4(ialpha * 0.5f, sinah, cosah); } else { cosah = std::cos(ialpha * 0.5f); @@ -708,21 +711,44 @@ namespace mkfit { errorProp(n, 3, 3) = 1.f; errorProp(n, 4, 4) = 1.f; errorProp(n, 5, 5) = 1.f; + } + float zout[NN]; + float zin[NN]; + float ipt[NN]; + float phiin[NN]; + float theta[NN]; +#pragma omp simd + for (int n = 0; n < NN; ++n) { + //initialize erroProp to identity matrix, except element 2,2 which is zero + zout[n] = msZ.constAt(n, 0, 0); + zin[n] = inPar.constAt(n, 2, 0); + ipt[n] = inPar.constAt(n, 3, 0); + phiin[n] = inPar.constAt(n, 4, 0); + theta[n] = inPar.constAt(n, 5, 0); + } - const float zout = msZ.constAt(n, 0, 0); - - const float zin = inPar.constAt(n, 2, 0); - const float ipt = inPar.constAt(n, 3, 0); - const float phiin = inPar.constAt(n, 4, 0); - const float theta = inPar.constAt(n, 5, 0); + float k[NN]; + if (pflags.use_param_b_field) { +#pragma omp simd + for (int n = 0; n < NN; ++n) { + k[n] = inChg.constAt(n, 0, 0) * 100.f / + (-Const::sol * Config::bFieldFromZR(zin[n], hipo(inPar.constAt(n, 0, 0), inPar.constAt(n, 1, 0)))); + } + } else { +#pragma omp simd + for (int n = 0; n < NN; ++n) { + k[n] = inChg.constAt(n, 0, 0) * 100.f / (-Const::sol * Config::Bfield); + } + } - const float k = - inChg.constAt(n, 0, 0) * 100.f / - (-Const::sol * (pflags.use_param_b_field - ? Config::bFieldFromZR(zin, hipo(inPar.constAt(n, 0, 0), inPar.constAt(n, 1, 0))) - : Config::Bfield)); - const float kinv = 1.f / k; + float kinv[NN]; +#pragma omp simd + for (int n = 0; n < NN; ++n) { + kinv[n] = 1.f / k[n]; + } +#pragma omp simd + for (int n = 0; n < NN; ++n) { dprint_np(n, std::endl << "input parameters" @@ -732,66 +758,160 @@ namespace mkfit { << " inPar.constAt(n, 3, 0)=" << std::setprecision(9) << inPar.constAt(n, 3, 0) << " inPar.constAt(n, 4, 0)=" << std::setprecision(9) << inPar.constAt(n, 4, 0) << " inPar.constAt(n, 5, 0)=" << std::setprecision(9) << inPar.constAt(n, 5, 0)); + } + + float pt[NN]; +#pragma omp simd + for (int n = 0; n < NN; ++n) { + pt[n] = 1.f / ipt[n]; + } - const float pt = 1.f / ipt; + //no trig approx here, phi can be large + float cosP[NN]; + float sinP[NN]; +#pragma omp simd + for (int n = 0; n < NN; ++n) { + cosP[n] = std::cos(phiin[n]); + } - float cosahTmp = 0., sinahTmp = 0.; - //no trig approx here, phi can be large - const float cosP = std::cos(phiin), sinP = std::sin(phiin); - const float cosT = std::cos(theta), sinT = std::sin(theta); - const float tanT = sinT / cosT; - const float icos2T = 1.f / (cosT * cosT); - const float pxin = cosP * pt; - const float pyin = sinP * pt; +#pragma omp simd + for (int n = 0; n < NN; ++n) { + sinP[n] = std::sin(phiin[n]); + } + float cosT[NN]; + float sinT[NN]; +#pragma omp simd + for (int n = 0; n < NN; ++n) { + cosT[n] = std::cos(theta[n]); + } + +#pragma omp simd + for (int n = 0; n < NN; ++n) { + sinT[n] = std::sin(theta[n]); + } + + float tanT[NN]; + float icos2T[NN]; + float pxin[NN]; + float pyin[NN]; +#pragma omp simd + for (int n = 0; n < NN; ++n) { + tanT[n] = sinT[n] / cosT[n]; + icos2T[n] = 1.f / (cosT[n] * cosT[n]); + pxin[n] = cosP[n] * pt[n]; + pyin[n] = sinP[n] * pt[n]; + } +#pragma omp simd + for (int n = 0; n < NN; ++n) { //fixme, make this printout useful for propagation to z dprint_np(n, std::endl - << "k=" << std::setprecision(9) << k << " pxin=" << std::setprecision(9) << pxin - << " pyin=" << std::setprecision(9) << pyin << " cosP=" << std::setprecision(9) << cosP - << " sinP=" << std::setprecision(9) << sinP << " pt=" << std::setprecision(9) << pt); - - const float deltaZ = zout - zin; - const float alpha = deltaZ * tanT * ipt * kinv; - - if (Config::useTrigApprox) { - sincos4(alpha * 0.5f, sinahTmp, cosahTmp); - } else { - cosahTmp = std::cos(alpha * 0.5f); - sinahTmp = std::sin(alpha * 0.5f); + << "k=" << std::setprecision(9) << k[n] << " pxin=" << std::setprecision(9) << pxin[n] + << " pyin=" << std::setprecision(9) << pyin[n] << " cosP=" << std::setprecision(9) << cosP[n] + << " sinP=" << std::setprecision(9) << sinP[n] << " pt=" << std::setprecision(9) << pt[n]); + } + float deltaZ[NN]; + float alpha[NN]; +#pragma omp simd + for (int n = 0; n < NN; ++n) { + deltaZ[n] = zout[n] - zin[n]; + alpha[n] = deltaZ[n] * tanT[n] * ipt[n] * kinv[n]; + } + + float cosahTmp[NN]; + float sinahTmp[NN]; + if constexpr (Config::useTrigApprox) { +#if !defined(__INTEL_COMPILER) +#pragma omp simd +#endif + for (int n = 0; n < NN; ++n) { + sincos4(alpha[n] * 0.5f, sinahTmp[n], cosahTmp[n]); + } + } else { +#if !defined(__INTEL_COMPILER) +#pragma omp simd +#endif + for (int n = 0; n < NN; ++n) { + cosahTmp[n] = std::cos(alpha[n] * 0.5f); + } +#if !defined(__INTEL_COMPILER) +#pragma omp simd +#endif + for (int n = 0; n < NN; ++n) { + sinahTmp[n] = std::sin(alpha[n] * 0.5f); } - const float cosah = cosahTmp; - const float sinah = sinahTmp; - const float cosa = 1.f - 2.f * sinah * sinah; - const float sina = 2.f * sinah * cosah; + } - //update parameters - outPar.At(n, 0, 0) = outPar.At(n, 0, 0) + 2.f * k * sinah * (pxin * cosah - pyin * sinah); - outPar.At(n, 1, 0) = outPar.At(n, 1, 0) + 2.f * k * sinah * (pyin * cosah + pxin * sinah); - outPar.At(n, 2, 0) = zout; - outPar.At(n, 4, 0) = phiin + alpha; + float cosah[NN]; + float sinah[NN]; + float cosa[NN]; + float sina[NN]; +#pragma omp simd + for (int n = 0; n < NN; ++n) { + cosah[n] = cosahTmp[n]; + sinah[n] = sinahTmp[n]; + cosa[n] = 1.f - 2.f * sinah[n] * sinah[n]; + sina[n] = 2.f * sinah[n] * cosah[n]; + } +//update parameters +#pragma omp simd + for (int n = 0; n < NN; ++n) { + outPar.At(n, 0, 0) = outPar.At(n, 0, 0) + 2.f * k[n] * sinah[n] * (pxin[n] * cosah[n] - pyin[n] * sinah[n]); + outPar.At(n, 1, 0) = outPar.At(n, 1, 0) + 2.f * k[n] * sinah[n] * (pyin[n] * cosah[n] + pxin[n] * sinah[n]); + outPar.At(n, 2, 0) = zout[n]; + outPar.At(n, 4, 0) = phiin[n] + alpha[n]; + } +#pragma omp simd + for (int n = 0; n < NN; ++n) { dprint_np(n, std::endl << "outPar.At(n, 0, 0)=" << outPar.At(n, 0, 0) << " outPar.At(n, 1, 0)=" << outPar.At(n, 1, 0) - << " pxin=" << pxin << " pyin=" << pyin); + << " pxin=" << pxin[n] << " pyin=" << pyin[n]); + } + + float pxcaMpysa[NN]; +#pragma omp simd + for (int n = 0; n < NN; ++n) { + pxcaMpysa[n] = pxin[n] * cosa[n] - pyin[n] * sina[n]; + } - const float pxcaMpysa = pxin * cosa - pyin * sina; - errorProp(n, 0, 2) = -tanT * ipt * pxcaMpysa; - errorProp(n, 0, 3) = k * pt * pt * (cosP * (alpha * cosa - sina) + sinP * 2.f * sinah * (sinah - alpha * cosah)); - errorProp(n, 0, 4) = -2 * k * pt * sinah * (sinP * cosah + cosP * sinah); - errorProp(n, 0, 5) = deltaZ * ipt * pxcaMpysa * icos2T; +#pragma omp simd + for (int n = 0; n < NN; ++n) { + errorProp(n, 0, 2) = -tanT[n] * ipt[n] * pxcaMpysa[n]; + errorProp(n, 0, 3) = + k[n] * pt[n] * pt[n] * + (cosP[n] * (alpha[n] * cosa[n] - sina[n]) + sinP[n] * 2.f * sinah[n] * (sinah[n] - alpha[n] * cosah[n])); + errorProp(n, 0, 4) = -2.f * k[n] * pt[n] * sinah[n] * (sinP[n] * cosah[n] + cosP[n] * sinah[n]); + errorProp(n, 0, 5) = deltaZ[n] * ipt[n] * pxcaMpysa[n] * icos2T[n]; + } - const float pycaPpxsa = pyin * cosa + pxin * sina; - errorProp(n, 1, 2) = -tanT * ipt * pycaPpxsa; - errorProp(n, 1, 3) = k * pt * pt * (sinP * (alpha * cosa - sina) - cosP * 2.f * sinah * (sinah - alpha * cosah)); - errorProp(n, 1, 4) = 2 * k * pt * sinah * (cosP * cosah - sinP * sinah); - errorProp(n, 1, 5) = deltaZ * ipt * pycaPpxsa * icos2T; + float pycaPpxsa[NN]; +#pragma omp simd + for (int n = 0; n < NN; ++n) { + pycaPpxsa[n] = pyin[n] * cosa[n] + pxin[n] * sina[n]; + } - errorProp(n, 4, 2) = -ipt * tanT * kinv; - errorProp(n, 4, 3) = tanT * deltaZ * kinv; - errorProp(n, 4, 5) = ipt * deltaZ * kinv * icos2T; +#pragma omp simd + for (int n = 0; n < NN; ++n) { + errorProp(n, 1, 2) = -tanT[n] * ipt[n] * pycaPpxsa[n]; + errorProp(n, 1, 3) = + k[n] * pt[n] * pt[n] * + (sinP[n] * (alpha[n] * cosa[n] - sina[n]) - cosP[n] * 2.f * sinah[n] * (sinah[n] - alpha[n] * cosah[n])); + errorProp(n, 1, 4) = 2.f * k[n] * pt[n] * sinah[n] * (cosP[n] * cosah[n] - sinP[n] * sinah[n]); + errorProp(n, 1, 5) = deltaZ[n] * ipt[n] * pycaPpxsa[n] * icos2T[n]; + } +#pragma omp simd + for (int n = 0; n < NN; ++n) { + errorProp(n, 4, 2) = -ipt[n] * tanT[n] * kinv[n]; + errorProp(n, 4, 3) = tanT[n] * deltaZ[n] * kinv[n]; + errorProp(n, 4, 5) = ipt[n] * deltaZ[n] * kinv[n] * icos2T[n]; + } + +#pragma omp simd + for (int n = 0; n < NN; ++n) { dprint_np( n, "propagation end, dump parameters" @@ -802,8 +922,11 @@ namespace mkfit { << 1. / (outPar.At(n, 3, 0) * tan(outPar.At(n, 5, 0))) << " r=" << std::sqrt(outPar.At(n, 0, 0) * outPar.At(n, 0, 0) + outPar.At(n, 1, 0) * outPar.At(n, 1, 0)) << " pT=" << 1. / std::abs(outPar.At(n, 3, 0)) << std::endl); + } #ifdef DEBUG +#pragma omp simd + for (int n = 0; n < NN; ++n) { if (n < N_proc) { dmutex_guard; std::cout << n << ": jacobian" << std::endl; @@ -850,8 +973,8 @@ namespace mkfit { errorProp(n, 5, 4), errorProp(n, 5, 5)); } -#endif } +#endif } //============================================================================== diff --git a/RecoTracker/MkFitCore/src/PropagationMPlex.icc b/RecoTracker/MkFitCore/src/PropagationMPlex.icc index a66083319f61c..666566a2360bf 100644 --- a/RecoTracker/MkFitCore/src/PropagationMPlex.icc +++ b/RecoTracker/MkFitCore/src/PropagationMPlex.icc @@ -24,24 +24,52 @@ static inline void helixAtRFromIterativeCCS_impl(const Tf& __restrict__ inPar, errorProp(n, 3, 3) = 1.f; errorProp(n, 4, 4) = 1.f; errorProp(n, 5, 5) = 1.f; - - float r0 = hipo(inPar(n, 0, 0), inPar(n, 1, 0)); - const float k = inChg(n, 0, 0) * 100.f / - (-Const::sol * (pf.use_param_b_field ? Config::bFieldFromZR(inPar(n, 2, 0), r0) : Config::Bfield)); - const float r = msRad(n, 0, 0); - + } + float r0[nmax - nmin]; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + //initialize erroProp to identity matrix + r0[n - nmin] = hipo(inPar(n, 0, 0), inPar(n, 1, 0)); + } + float k[nmax - nmin]; + if (pf.use_param_b_field) { +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + k[n - nmin] = inChg(n, 0, 0) * 100.f / (-Const::sol * Config::bFieldFromZR(inPar(n, 2, 0), r0[n - nmin])); + } + } else { +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + k[n - nmin] = inChg(n, 0, 0) * 100.f / (-Const::sol * Config::Bfield); + } + } + float r[nmax - nmin]; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + r[n - nmin] = msRad(n, 0, 0); + } + float xin[nmax - nmin]; + float yin[nmax - nmin]; + float ipt[nmax - nmin]; + float phiin[nmax - nmin]; + float theta[nmax - nmin]; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { // if (std::abs(r-r0)<0.0001f) { // dprint("distance less than 1mum, skip"); // continue; // } - const float xin = inPar(n, 0, 0); - const float yin = inPar(n, 1, 0); - const float ipt = inPar(n, 3, 0); - const float phiin = inPar(n, 4, 0); - const float theta = inPar(n, 5, 0); + xin[n - nmin] = inPar(n, 0, 0); + yin[n - nmin] = inPar(n, 1, 0); + ipt[n - nmin] = inPar(n, 3, 0); + phiin[n - nmin] = inPar(n, 4, 0); + theta[n - nmin] = inPar(n, 5, 0); + + //dprint(std::endl); + } - dprint(std::endl); + for (int n = nmin; n < nmax; ++n) { dprint_np(n, "input parameters" << " inPar(n, 0, 0)=" << std::setprecision(9) << inPar(n, 0, 0) << " inPar(n, 1, 0)=" @@ -49,186 +77,380 @@ static inline void helixAtRFromIterativeCCS_impl(const Tf& __restrict__ inPar, << inPar(n, 2, 0) << " inPar(n, 3, 0)=" << std::setprecision(9) << inPar(n, 3, 0) << " inPar(n, 4, 0)=" << std::setprecision(9) << inPar(n, 4, 0) << " inPar(n, 5, 0)=" << std::setprecision(9) << inPar(n, 5, 0)); + } + + float kinv[nmax - nmin]; + float pt[nmax - nmin]; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + kinv[n - nmin] = 1.f / k[n - nmin]; + pt[n - nmin] = 1.f / ipt[n - nmin]; + } + float D[nmax - nmin]; + float cosa[nmax - nmin]; + float sina[nmax - nmin]; + float cosah[nmax - nmin]; + float sinah[nmax - nmin]; + float id[nmax - nmin]; + +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + D[n - nmin] = 0.; + } - const float kinv = 1.f / k; - const float pt = 1.f / ipt; + //no trig approx here, phi can be large + float cosPorT[nmax - nmin]; + float sinPorT[nmax - nmin]; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + cosPorT[n - nmin] = std::cos(phiin[n - nmin]); + } +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + sinPorT[n - nmin] = std::sin(phiin[n - nmin]); + } - float D = 0., cosa = 0., sina = 0., cosah = 0., sinah = 0., id = 0.; - //no trig approx here, phi can be large - float cosPorT = std::cos(phiin), sinPorT = std::sin(phiin); - float pxin = cosPorT * pt; - float pyin = sinPorT * pt; + float pxin[nmax - nmin]; + float pyin[nmax - nmin]; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + pxin[n - nmin] = cosPorT[n - nmin] * pt[n - nmin]; + pyin[n - nmin] = sinPorT[n - nmin] * pt[n - nmin]; + } + for (int n = nmin; n < nmax; ++n) { dprint_np(n, - "k=" << std::setprecision(9) << k << " pxin=" << std::setprecision(9) << pxin - << " pyin=" << std::setprecision(9) << pyin << " cosPorT=" << std::setprecision(9) << cosPorT - << " sinPorT=" << std::setprecision(9) << sinPorT << " pt=" << std::setprecision(9) << pt); + "k=" << std::setprecision(9) << k[n - nmin] << " pxin=" << std::setprecision(9) << pxin[n - nmin] + << " pyin=" << std::setprecision(9) << pyin[n - nmin] << " cosPorT=" << std::setprecision(9) + << cosPorT[n - nmin] << " sinPorT=" << std::setprecision(9) << sinPorT[n - nmin] + << " pt=" << std::setprecision(9) << pt[n - nmin]); + } + float dDdx[nmax - nmin]; + float dDdy[nmax - nmin]; + float dDdipt[nmax - nmin]; + float dDdphi[nmax - nmin]; + +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + dDdipt[n - nmin] = 0.; + dDdphi[n - nmin] = 0.; + } +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { //derivatives initialized to value for first iteration, i.e. distance = r-r0in - float dDdx = r0 > 0.f ? -xin / r0 : 0.f; - float dDdy = r0 > 0.f ? -yin / r0 : 0.f; - float dDdipt = 0.; - float dDdphi = 0.; + dDdx[n - nmin] = r0[n - nmin] > 0.f ? -xin[n - nmin] / r0[n - nmin] : 0.f; + } - for (int i = 0; i < Config::Niter; ++i) { +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + dDdy[n - nmin] = r0[n - nmin] > 0.f ? -yin[n - nmin] / r0[n - nmin] : 0.f; + } + + float oodotp[nmax - nmin]; + float x[nmax - nmin]; + float y[nmax - nmin]; + float oor0[nmax - nmin]; + float dadipt[nmax - nmin]; + float dadx[nmax - nmin]; + float dady[nmax - nmin]; + float pxca[nmax - nmin]; + float pxsa[nmax - nmin]; + float pyca[nmax - nmin]; + float pysa[nmax - nmin]; + float tmp[nmax - nmin]; + float tmpx[nmax - nmin]; + float tmpy[nmax - nmin]; + float pxinold[nmax - nmin]; + + CMS_UNROLL_LOOP_COUNT(Config::Niter) + for (int i = 0; i < Config::Niter; ++i) { +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { //compute distance and path for the current iteration - r0 = hipo(outPar(n, 0, 0), outPar(n, 1, 0)); + r0[n - nmin] = hipo(outPar(n, 0, 0), outPar(n, 1, 0)); + } - // Use one over dot produce of transverse momentum and radial - // direction to scale the step. Propagation is prevented from reaching - // too close to the apex (dotp > 0.2). - // - Can / should we come up with a better approximation? - // - Can / should take +/- curvature into account? + // Use one over dot produce of transverse momentum and radial + // direction to scale the step. Propagation is prevented from reaching + // too close to the apex (dotp > 0.2). + // - Can / should we come up with a better approximation? + // - Can / should take +/- curvature into account? - const float oodotp = r0 * pt / (pxin * outPar(n, 0, 0) + pyin * outPar(n, 1, 0)); +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + oodotp[n - nmin] = + r0[n - nmin] * pt[n - nmin] / (pxin[n - nmin] * outPar(n, 0, 0) + pyin[n - nmin] * outPar(n, 1, 0)); + } - if (oodotp > 5.0f || oodotp < 0) // 0.2 is 78.5 deg +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + if (oodotp[n - nmin] > 5.0f || oodotp[n - nmin] < 0) // 0.2 is 78.5 deg { - id = 0.0f; outFailFlag(n, 0, 0) = 1; - } else { - // Can we come up with a better approximation? - // Should take +/- curvature into account. - id = (r - r0) * oodotp; } - D += id; - - if (Config::useTrigApprox) { - sincos4(id * ipt * kinv * 0.5f, sinah, cosah); - } else { - cosah = std::cos(id * ipt * kinv * 0.5f); - sinah = std::sin(id * ipt * kinv * 0.5f); - } - cosa = 1.f - 2.f * sinah * sinah; - sina = 2.f * sinah * cosah; - - dprint_np(n, - "Attempt propagation from r=" - << r0 << " to r=" << r << std::endl - << " x=" << xin << " y=" << yin << " z=" << inPar(n, 2, 0) << " px=" << pxin << " py=" << pyin - << " pz=" << pt * std::tan(theta) << " q=" << inChg(n, 0, 0) << std::endl - << " r=" << std::setprecision(9) << r << " r0=" << std::setprecision(9) << r0 - << " id=" << std::setprecision(9) << id << " dr=" << std::setprecision(9) << r - r0 - << " cosa=" << cosa << " sina=" << sina); + } - //update derivatives on total distance - if (i + 1 != Config::Niter) { - const float x = outPar(n, 0, 0); - const float y = outPar(n, 1, 0); - const float oor0 = (r0 > 0.f && std::abs(r - r0) < 0.0001f) ? 1.f / r0 : 0.f; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + // Can we come up with a better approximation? + // Should take +/- curvature into account. + id[n - nmin] = + (oodotp[n - nmin] > 5.0f || oodotp[n - nmin] < 0) ? 0.0f : (r[n - nmin] - r0[n - nmin]) * oodotp[n - nmin]; + } - const float dadipt = id * kinv; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + D[n - nmin] += id[n - nmin]; + } - const float dadx = -x * ipt * kinv * oor0; - const float dady = -y * ipt * kinv * oor0; + if constexpr (Config::useTrigApprox) { +#if !defined(__INTEL_COMPILER) +#pragma omp simd +#endif + for (int n = nmin; n < nmax; ++n) { + sincos4(id[n - nmin] * ipt[n - nmin] * kinv[n - nmin] * 0.5f, sinah[n - nmin], cosah[n - nmin]); + } + } else { +#if !defined(__INTEL_COMPILER) +#pragma omp simd +#endif + for (int n = nmin; n < nmax; ++n) { + cosah[n - nmin] = std::cos(id[n - nmin] * ipt[n - nmin] * kinv[n - nmin] * 0.5f); + sinah[n - nmin] = std::sin(id[n - nmin] * ipt[n - nmin] * kinv[n - nmin] * 0.5f); + } + } - const float pxca = pxin * cosa; - const float pxsa = pxin * sina; - const float pyca = pyin * cosa; - const float pysa = pyin * sina; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + cosa[n - nmin] = 1.f - 2.f * sinah[n - nmin] * sinah[n - nmin]; + sina[n - nmin] = 2.f * sinah[n - nmin] * cosah[n - nmin]; + } - float tmp; + for (int n = nmin; n < nmax; ++n) { + dprint_np(n, + "Attempt propagation from r=" + << r0[n - nmin] << " to r=" << r[n - nmin] << std::endl + << " x=" << xin[n - nmin] << " y=" << yin[n - nmin] << " z=" << inPar(n, 2, 0) + << " px=" << pxin[n - nmin] << " py=" << pyin[n - nmin] + << " pz=" << pt[n - nmin] * std::tan(theta[n - nmin]) << " q=" << inChg(n, 0, 0) << std::endl + << " r=" << std::setprecision(9) << r[n - nmin] << " r0=" << std::setprecision(9) << r0[n - nmin] + << " id=" << std::setprecision(9) << id[n - nmin] << " dr=" << std::setprecision(9) + << r[n - nmin] - r0[n - nmin] << " cosa=" << cosa[n - nmin] << " sina=" << sina[n - nmin]); + } - tmp = k * dadx; - dDdx -= (x * (1.f + tmp * (pxca - pysa)) + y * tmp * (pyca + pxsa)) * oor0; + //update derivatives on total distance + if (i + 1 != Config::Niter) { +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + x[n - nmin] = outPar(n, 0, 0); + y[n - nmin] = outPar(n, 1, 0); + } +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + oor0[n - nmin] = + (r0[n - nmin] > 0.f && std::abs(r[n - nmin] - r0[n - nmin]) < 0.0001f) ? 1.f / r0[n - nmin] : 0.f; + } +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + dadipt[n - nmin] = id[n - nmin] * kinv[n - nmin]; + dadx[n - nmin] = -x[n - nmin] * ipt[n - nmin] * kinv[n - nmin] * oor0[n - nmin]; + dady[n - nmin] = -y[n - nmin] * ipt[n - nmin] * kinv[n - nmin] * oor0[n - nmin]; + pxca[n - nmin] = pxin[n - nmin] * cosa[n - nmin]; + pxsa[n - nmin] = pxin[n - nmin] * sina[n - nmin]; + pyca[n - nmin] = pyin[n - nmin] * cosa[n - nmin]; + pysa[n - nmin] = pyin[n - nmin] * sina[n - nmin]; + tmpx[n - nmin] = k[n - nmin] * dadx[n - nmin]; + } - tmp = k * dady; - dDdy -= (x * tmp * (pxca - pysa) + y * (1.f + tmp * (pyca + pxsa))) * oor0; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + dDdx[n - nmin] -= (x[n - nmin] * (1.f + tmpx[n - nmin] * (pxca[n - nmin] - pysa[n - nmin])) + + y[n - nmin] * tmpx[n - nmin] * (pyca[n - nmin] + pxsa[n - nmin])) * + oor0[n - nmin]; + } +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + tmpy[n - nmin] = k[n - nmin] * dady[n - nmin]; + } +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + dDdy[n - nmin] -= (x[n - nmin] * tmpy[n - nmin] * (pxca[n - nmin] - pysa[n - nmin]) + + y[n - nmin] * (1.f + tmpy[n - nmin] * (pyca[n - nmin] + pxsa[n - nmin]))) * + oor0[n - nmin]; + } +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { //now r0 depends on ipt and phi as well - tmp = dadipt * ipt; - dDdipt -= - k * - (x * (pxca * tmp - pysa * tmp - pyca - pxsa + pyin) + y * (pyca * tmp + pxsa * tmp - pysa + pxca - pxin)) * - pt * oor0; - dDdphi += k * (x * (pysa - pxin + pxca) - y * (pxsa - pyin + pyca)) * oor0; + tmp[n - nmin] = dadipt[n - nmin] * ipt[n - nmin]; } +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + dDdipt[n - nmin] -= k[n - nmin] * + (x[n - nmin] * (pxca[n - nmin] * tmp[n - nmin] - pysa[n - nmin] * tmp[n - nmin] - + pyca[n - nmin] - pxsa[n - nmin] + pyin[n - nmin]) + + y[n - nmin] * (pyca[n - nmin] * tmp[n - nmin] + pxsa[n - nmin] * tmp[n - nmin] - + pysa[n - nmin] + pxca[n - nmin] - pxin[n - nmin])) * + pt[n - nmin] * oor0[n - nmin]; + } +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + dDdphi[n - nmin] += k[n - nmin] * + (x[n - nmin] * (pysa[n - nmin] - pxin[n - nmin] + pxca[n - nmin]) - + y[n - nmin] * (pxsa[n - nmin] - pyin[n - nmin] + pyca[n - nmin])) * + oor0[n - nmin]; + } + } +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { //update parameters - outPar(n, 0, 0) = outPar(n, 0, 0) + 2.f * k * sinah * (pxin * cosah - pyin * sinah); - outPar(n, 1, 0) = outPar(n, 1, 0) + 2.f * k * sinah * (pyin * cosah + pxin * sinah); - const float pxinold = pxin; //copy before overwriting - pxin = pxin * cosa - pyin * sina; - pyin = pyin * cosa + pxinold * sina; - + outPar(n, 0, 0) = outPar(n, 0, 0) + 2.f * k[n - nmin] * sinah[n - nmin] * + (pxin[n - nmin] * cosah[n - nmin] - pyin[n - nmin] * sinah[n - nmin]); + outPar(n, 1, 0) = outPar(n, 1, 0) + 2.f * k[n - nmin] * sinah[n - nmin] * + (pyin[n - nmin] * cosah[n - nmin] + pxin[n - nmin] * sinah[n - nmin]); + pxinold[n - nmin] = pxin[n - nmin]; //copy before overwriting + pxin[n - nmin] = pxin[n - nmin] * cosa[n - nmin] - pyin[n - nmin] * sina[n - nmin]; + pyin[n - nmin] = pyin[n - nmin] * cosa[n - nmin] + pxinold[n - nmin] * sina[n - nmin]; + } + for (int n = nmin; n < nmax; ++n) { dprint_np(n, - "outPar(n, 0, 0)=" << outPar(n, 0, 0) << " outPar(n, 1, 0)=" << outPar(n, 1, 0) << " pxin=" << pxin - << " pyin=" << pyin); + "outPar(n, 0, 0)=" << outPar(n, 0, 0) << " outPar(n, 1, 0)=" << outPar(n, 1, 0) + << " pxin=" << pxin[n - nmin] << " pyin=" << pyin[n - nmin]); } + } // iteration loop - const float alpha = D * ipt * kinv; - const float dadx = dDdx * ipt * kinv; - const float dady = dDdy * ipt * kinv; - const float dadipt = (ipt * dDdipt + D) * kinv; - const float dadphi = dDdphi * ipt * kinv; + float alpha[nmax - nmin]; + float dadphi[nmax - nmin]; - if (Config::useTrigApprox) { - sincos4(alpha, sina, cosa); - } else { - cosa = std::cos(alpha); - sina = std::sin(alpha); - } +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + alpha[n - nmin] = D[n - nmin] * ipt[n - nmin] * kinv[n - nmin]; + dadx[n - nmin] = dDdx[n - nmin] * ipt[n - nmin] * kinv[n - nmin]; + dady[n - nmin] = dDdy[n - nmin] * ipt[n - nmin] * kinv[n - nmin]; + dadipt[n - nmin] = (ipt[n - nmin] * dDdipt[n - nmin] + D[n - nmin]) * kinv[n - nmin]; + dadphi[n - nmin] = dDdphi[n - nmin] * ipt[n - nmin] * kinv[n - nmin]; + } - errorProp(n, 0, 0) = 1.f + k * dadx * (cosPorT * cosa - sinPorT * sina) * pt; - errorProp(n, 0, 1) = k * dady * (cosPorT * cosa - sinPorT * sina) * pt; + if constexpr (Config::useTrigApprox) { +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + sincos4(alpha[n - nmin], sina[n - nmin], cosa[n - nmin]); + } + } else { +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + cosa[n - nmin] = std::cos(alpha[n - nmin]); + sina[n - nmin] = std::sin(alpha[n - nmin]); + } + } +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + errorProp(n, 0, 0) = 1.f + k[n - nmin] * dadx[n - nmin] * + (cosPorT[n - nmin] * cosa[n - nmin] - sinPorT[n - nmin] * sina[n - nmin]) * + pt[n - nmin]; + errorProp(n, 0, 1) = k[n - nmin] * dady[n - nmin] * + (cosPorT[n - nmin] * cosa[n - nmin] - sinPorT[n - nmin] * sina[n - nmin]) * pt[n - nmin]; errorProp(n, 0, 2) = 0.f; errorProp(n, 0, 3) = - k * (cosPorT * (ipt * dadipt * cosa - sina) + sinPorT * ((1.f - cosa) - ipt * dadipt * sina)) * pt * pt; + k[n - nmin] * + (cosPorT[n - nmin] * (ipt[n - nmin] * dadipt[n - nmin] * cosa[n - nmin] - sina[n - nmin]) + + sinPorT[n - nmin] * ((1.f - cosa[n - nmin]) - ipt[n - nmin] * dadipt[n - nmin] * sina[n - nmin])) * + pt[n - nmin] * pt[n - nmin]; errorProp(n, 0, 4) = - k * (cosPorT * dadphi * cosa - sinPorT * dadphi * sina - sinPorT * sina + cosPorT * cosa - cosPorT) * pt; + k[n - nmin] * + (cosPorT[n - nmin] * dadphi[n - nmin] * cosa[n - nmin] - sinPorT[n - nmin] * dadphi[n - nmin] * sina[n - nmin] - + sinPorT[n - nmin] * sina[n - nmin] + cosPorT[n - nmin] * cosa[n - nmin] - cosPorT[n - nmin]) * + pt[n - nmin]; errorProp(n, 0, 5) = 0.f; + } - errorProp(n, 1, 0) = k * dadx * (sinPorT * cosa + cosPorT * sina) * pt; - errorProp(n, 1, 1) = 1.f + k * dady * (sinPorT * cosa + cosPorT * sina) * pt; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + errorProp(n, 1, 0) = k[n - nmin] * dadx[n - nmin] * + (sinPorT[n - nmin] * cosa[n - nmin] + cosPorT[n - nmin] * sina[n - nmin]) * pt[n - nmin]; + errorProp(n, 1, 1) = 1.f + k[n - nmin] * dady[n - nmin] * + (sinPorT[n - nmin] * cosa[n - nmin] + cosPorT[n - nmin] * sina[n - nmin]) * + pt[n - nmin]; errorProp(n, 1, 2) = 0.f; errorProp(n, 1, 3) = - k * (sinPorT * (ipt * dadipt * cosa - sina) + cosPorT * (ipt * dadipt * sina - (1.f - cosa))) * pt * pt; + k[n - nmin] * + (sinPorT[n - nmin] * (ipt[n - nmin] * dadipt[n - nmin] * cosa[n - nmin] - sina[n - nmin]) + + cosPorT[n - nmin] * (ipt[n - nmin] * dadipt[n - nmin] * sina[n - nmin] - (1.f - cosa[n - nmin]))) * + pt[n - nmin] * pt[n - nmin]; errorProp(n, 1, 4) = - k * (sinPorT * dadphi * cosa + cosPorT * dadphi * sina + sinPorT * cosa + cosPorT * sina - sinPorT) * pt; + k[n - nmin] * + (sinPorT[n - nmin] * dadphi[n - nmin] * cosa[n - nmin] + cosPorT[n - nmin] * dadphi[n - nmin] * sina[n - nmin] + + sinPorT[n - nmin] * cosa[n - nmin] + cosPorT[n - nmin] * sina[n - nmin] - sinPorT[n - nmin]) * + pt[n - nmin]; errorProp(n, 1, 5) = 0.f; + } +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { //no trig approx here, theta can be large - cosPorT = std::cos(theta); - sinPorT = std::sin(theta); - //redefine sinPorT as 1./sinPorT to reduce the number of temporaries - sinPorT = 1.f / sinPorT; + cosPorT[n - nmin] = std::cos(theta[n - nmin]); + } - outPar(n, 2, 0) = inPar(n, 2, 0) + k * alpha * cosPorT * pt * sinPorT; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + sinPorT[n - nmin] = std::sin(theta[n - nmin]); + } - errorProp(n, 2, 0) = k * cosPorT * dadx * pt * sinPorT; - errorProp(n, 2, 1) = k * cosPorT * dady * pt * sinPorT; - errorProp(n, 2, 2) = 1.f; - errorProp(n, 2, 3) = k * cosPorT * (ipt * dadipt - alpha) * pt * pt * sinPorT; - errorProp(n, 2, 4) = k * dadphi * cosPorT * pt * sinPorT; - errorProp(n, 2, 5) = -k * alpha * pt * sinPorT * sinPorT; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + //redefine sinPorT as 1./sinPorT to reduce the number of temporaries + sinPorT[n - nmin] = 1.f / sinPorT[n - nmin]; + } - outPar(n, 3, 0) = ipt; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + outPar(n, 2, 0) = + inPar(n, 2, 0) + k[n - nmin] * alpha[n - nmin] * cosPorT[n - nmin] * pt[n - nmin] * sinPorT[n - nmin]; + errorProp(n, 2, 0) = k[n - nmin] * cosPorT[n - nmin] * dadx[n - nmin] * pt[n - nmin] * sinPorT[n - nmin]; + errorProp(n, 2, 1) = k[n - nmin] * cosPorT[n - nmin] * dady[n - nmin] * pt[n - nmin] * sinPorT[n - nmin]; + errorProp(n, 2, 2) = 1.f; + errorProp(n, 2, 3) = k[n - nmin] * cosPorT[n - nmin] * (ipt[n - nmin] * dadipt[n - nmin] - alpha[n - nmin]) * + pt[n - nmin] * pt[n - nmin] * sinPorT[n - nmin]; + errorProp(n, 2, 4) = k[n - nmin] * dadphi[n - nmin] * cosPorT[n - nmin] * pt[n - nmin] * sinPorT[n - nmin]; + errorProp(n, 2, 5) = -k[n - nmin] * alpha[n - nmin] * pt[n - nmin] * sinPorT[n - nmin] * sinPorT[n - nmin]; + } +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + outPar(n, 3, 0) = ipt[n - nmin]; errorProp(n, 3, 0) = 0.f; errorProp(n, 3, 1) = 0.f; errorProp(n, 3, 2) = 0.f; errorProp(n, 3, 3) = 1.f; errorProp(n, 3, 4) = 0.f; errorProp(n, 3, 5) = 0.f; + } - outPar(n, 4, 0) = inPar(n, 4, 0) + alpha; - - errorProp(n, 4, 0) = dadx; - errorProp(n, 4, 1) = dady; +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + outPar(n, 4, 0) = inPar(n, 4, 0) + alpha[n - nmin]; + errorProp(n, 4, 0) = dadx[n - nmin]; + errorProp(n, 4, 1) = dady[n - nmin]; errorProp(n, 4, 2) = 0.f; - errorProp(n, 4, 3) = dadipt; - errorProp(n, 4, 4) = 1.f + dadphi; + errorProp(n, 4, 3) = dadipt[n - nmin]; + errorProp(n, 4, 4) = 1.f + dadphi[n - nmin]; errorProp(n, 4, 5) = 0.f; + } - outPar(n, 5, 0) = theta; - +#pragma omp simd + for (int n = nmin; n < nmax; ++n) { + outPar(n, 5, 0) = theta[n - nmin]; errorProp(n, 5, 0) = 0.f; errorProp(n, 5, 1) = 0.f; errorProp(n, 5, 2) = 0.f; errorProp(n, 5, 3) = 0.f; errorProp(n, 5, 4) = 0.f; errorProp(n, 5, 5) = 1.f; + } + for (int n = nmin; n < nmax; ++n) { dprint_np(n, "propagation end, dump parameters" << std::endl @@ -237,8 +459,10 @@ static inline void helixAtRFromIterativeCCS_impl(const Tf& __restrict__ inPar, << " mom = " << std::cos(outPar(n, 4, 0)) / outPar(n, 3, 0) << " " << std::sin(outPar(n, 4, 0)) / outPar(n, 3, 0) << " " << 1. / (outPar(n, 3, 0) * tan(outPar(n, 5, 0))) << "\t\tpT=" << 1. / std::abs(outPar(n, 3, 0)) << std::endl); + } #ifdef DEBUG + for (int n = nmin; n < nmax; ++n) { if (n < N_proc) { dmutex_guard; std::cout << n << ": jacobian" << std::endl; @@ -286,6 +510,6 @@ static inline void helixAtRFromIterativeCCS_impl(const Tf& __restrict__ inPar, errorProp(n, 5, 5)); printf("\n"); } -#endif } +#endif } diff --git a/RecoTracker/MkFitCore/standalone/README_buildFromCMSSW.txt b/RecoTracker/MkFitCore/standalone/README_buildFromCMSSW.txt index 2b34d1d96881f..2064586a37d25 100644 --- a/RecoTracker/MkFitCore/standalone/README_buildFromCMSSW.txt +++ b/RecoTracker/MkFitCore/standalone/README_buildFromCMSSW.txt @@ -6,6 +6,7 @@ cd mkFitFromCMSSW git config core.sparsecheckout true echo -e "/.gitignore\n/.clang-tidy\n/.clang-format" > .git/info/sparse-checkout echo -e "/RecoTracker/MkFit/\n/RecoTracker/MkFitCMS/\n/RecoTracker/MkFitCore/" >> .git/info/sparse-checkout +echo -e "/FWCore/Utilities/interface/" >> .git/info/sparse-checkout git checkout # enter detached-head state ./RecoTracker/MkFitCore/standalone/configure $PWD source ./RecoTracker/MkFitCore/standalone/xeon_scripts/init-env.sh diff --git a/SimCalorimetry/HGCalSimProducers/interface/HGCDigitizer.h b/SimCalorimetry/HGCalSimProducers/interface/HGCDigitizer.h index 7576a0eefa5f0..33b93dfea01ec 100644 --- a/SimCalorimetry/HGCalSimProducers/interface/HGCDigitizer.h +++ b/SimCalorimetry/HGCalSimProducers/interface/HGCDigitizer.h @@ -29,7 +29,7 @@ class PileUpEventPrincipal; class HGCDigitizer { public: HGCDigitizer(const edm::ParameterSet& ps, edm::ConsumesCollector& iC); - ~HGCDigitizer() {} + ~HGCDigitizer() = default; // index , det id, time typedef std::tuple HGCCaloHitTuple_t; @@ -77,24 +77,30 @@ class HGCDigitizer { private: uint32_t getType() const; - std::string hitCollection_, digiCollection_; + + std::unique_ptr simHitAccumulator_; + std::unique_ptr pusimHitAccumulator_; + + const std::string digiCollection_; //digitization type (it's up to the specializations to decide it's meaning) - int digitizationType_; + const int digitizationType_; // if true, we're running mixing in premixing stage1 and have to produce the output differently - bool premixStage1_; + const bool premixStage1_; // Minimum charge threshold for premixing stage1 - double premixStage1MinCharge_; + const double premixStage1MinCharge_; // Maximum charge for packing in premixing stage1 - double premixStage1MaxCharge_; + const double premixStage1MaxCharge_; //handle sim hits - int maxSimHitsAccTime_; - double bxTime_, ev_per_eh_pair_; - std::unique_ptr simHitAccumulator_; - std::unique_ptr pusimHitAccumulator_; + const int maxSimHitsAccTime_; + const double bxTime_; + double ev_per_eh_pair_; + const std::string hitsProducer_; + const std::string hitCollection_; + const edm::EDGetTokenT> hitToken_; void resetSimHitDataAccumulator(); void resetPUSimHitDataAccumulator(); //debug position @@ -110,13 +116,13 @@ class HGCDigitizer { const HGCalGeometry* gHGCal_ = nullptr; //misc switches - uint32_t verbosity_; + const uint32_t verbosity_; //reference speed to evaluate time of arrival at the sensititive detector, assuming the center of CMS - float refSpeed_; + const float refSpeed_; //delay to apply after evaluating time of arrival at the sensitive detector - float tofDelay_; + const float tofDelay_; //average occupancies std::array averageOccupancies_; @@ -126,8 +132,8 @@ class HGCDigitizer { static const unsigned int maxBx_ = 14; static const unsigned int thisBx_ = 9; std::vector cce_; - std::unordered_map > > hitRefs_bx0; - std::unordered_map > > PhitRefs_bx0; + std::unordered_map>> hitRefs_bx0; + std::unordered_map>> PhitRefs_bx0; std::unordered_map hitOrder_monitor; }; diff --git a/SimCalorimetry/HGCalSimProducers/plugins/HGCDigitizer.cc b/SimCalorimetry/HGCalSimProducers/plugins/HGCDigitizer.cc index f9c94fe2c933a..ebf167e3d2693 100644 --- a/SimCalorimetry/HGCalSimProducers/plugins/HGCDigitizer.cc +++ b/SimCalorimetry/HGCalSimProducers/plugins/HGCDigitizer.cc @@ -231,23 +231,24 @@ namespace { HGCDigitizer::HGCDigitizer(const edm::ParameterSet& ps, edm::ConsumesCollector& iC) : simHitAccumulator_(new HGCSimHitDataAccumulator()), pusimHitAccumulator_(new HGCPUSimHitDataAccumulator()), + digiCollection_(ps.getParameter("digiCollection")), + digitizationType_(ps.getParameter("digitizationType")), + premixStage1_(ps.getParameter("premixStage1")), + premixStage1MinCharge_(ps.getParameter("premixStage1MinCharge")), + premixStage1MaxCharge_(ps.getParameter("premixStage1MaxCharge")), + maxSimHitsAccTime_(ps.getParameter("maxSimHitsAccTime")), + bxTime_(ps.getParameter("bxTime")), + hitsProducer_(ps.getParameter("hitsProducer")), + hitCollection_(ps.getParameter("hitCollection")), + hitToken_(iC.consumes>(edm::InputTag(hitsProducer_, hitCollection_))), geomToken_(iC.esConsumes()), + verbosity_(ps.getUntrackedParameter("verbosity", 0)), refSpeed_(0.1 * CLHEP::c_light), //[CLHEP::c_light]=mm/ns convert to cm/ns + tofDelay_(ps.getParameter("tofDelay")), averageOccupancies_(occupancyGuesses), nEvents_(1) { //configure from cfg - hitCollection_ = ps.getParameter("hitCollection"); - digiCollection_ = ps.getParameter("digiCollection"); - maxSimHitsAccTime_ = ps.getParameter("maxSimHitsAccTime"); - bxTime_ = ps.getParameter("bxTime"); - digitizationType_ = ps.getParameter("digitizationType"); - verbosity_ = ps.getUntrackedParameter("verbosity", 0); - tofDelay_ = ps.getParameter("tofDelay"); - premixStage1_ = ps.getParameter("premixStage1"); - premixStage1MinCharge_ = ps.getParameter("premixStage1MinCharge"); - premixStage1MaxCharge_ = ps.getParameter("premixStage1MaxCharge"); - iC.consumes>(edm::InputTag("g4SimHits", hitCollection_)); const auto& myCfg_ = ps.getParameter("digiCfg"); if (myCfg_.existsAs("chargeCollectionEfficiencies")) { @@ -345,11 +346,10 @@ void HGCDigitizer::accumulate_forPreMix(edm::Event const& e, CLHEP::HepRandomEngine* hre) { //get inputs - edm::Handle hits; - e.getByLabel(edm::InputTag("g4SimHits", hitCollection_), hits); + const edm::Handle& hits = e.getHandle(hitToken_); if (!hits.isValid()) { - edm::LogError("HGCDigitizer") << " @ accumulate_minbias : can't find " << hitCollection_ - << " collection of g4SimHits"; + edm::LogError("HGCDigitizer") << " @ accumulate_minbias : can't find " << hitCollection_ << " collection of " + << hitsProducer_; return; } @@ -364,10 +364,10 @@ void HGCDigitizer::accumulate_forPreMix(edm::Event const& e, // void HGCDigitizer::accumulate(edm::Event const& e, edm::EventSetup const& eventSetup, CLHEP::HepRandomEngine* hre) { //get inputs - edm::Handle hits; - e.getByLabel(edm::InputTag("g4SimHits", hitCollection_), hits); + const edm::Handle& hits = e.getHandle(hitToken_); if (!hits.isValid()) { - edm::LogError("HGCDigitizer") << " @ accumulate : can't find " << hitCollection_ << " collection of g4SimHits"; + edm::LogError("HGCDigitizer") << " @ accumulate : can't find " << hitCollection_ << " collection of " + << hitsProducer_; return; } @@ -383,11 +383,13 @@ void HGCDigitizer::accumulate(edm::Event const& e, edm::EventSetup const& eventS void HGCDigitizer::accumulate_forPreMix(PileUpEventPrincipal const& e, edm::EventSetup const& eventSetup, CLHEP::HepRandomEngine* hre) { + edm::InputTag hitTag(hitsProducer_, hitCollection_); edm::Handle hits; - e.getByLabel(edm::InputTag("g4SimHits", hitCollection_), hits); + e.getByLabel(hitTag, hits); if (!hits.isValid()) { - edm::LogError("HGCDigitizer") << " @ accumulate : can't find " << hitCollection_ << " collection of g4SimHits"; + edm::LogError("HGCDigitizer") << " @ accumulate : can't find " << hitCollection_ << " collection of " + << hitsProducer_; return; } @@ -403,11 +405,13 @@ void HGCDigitizer::accumulate(PileUpEventPrincipal const& e, edm::EventSetup const& eventSetup, CLHEP::HepRandomEngine* hre) { //get inputs + edm::InputTag hitTag(hitsProducer_, hitCollection_); edm::Handle hits; - e.getByLabel(edm::InputTag("g4SimHits", hitCollection_), hits); + e.getByLabel(hitTag, hits); if (!hits.isValid()) { - edm::LogError("HGCDigitizer") << " @ accumulate : can't find " << hitCollection_ << " collection of g4SimHits"; + edm::LogError("HGCDigitizer") << " @ accumulate : can't find " << hitCollection_ << " collection of " + << hitsProducer_; return; } diff --git a/SimCalorimetry/HGCalSimProducers/plugins/PreMixingHGCalWorker.cc b/SimCalorimetry/HGCalSimProducers/plugins/PreMixingHGCalWorker.cc index e88515d6e827e..9f6a9ef332cf4 100644 --- a/SimCalorimetry/HGCalSimProducers/plugins/PreMixingHGCalWorker.cc +++ b/SimCalorimetry/HGCalSimProducers/plugins/PreMixingHGCalWorker.cc @@ -30,8 +30,8 @@ class PreMixingHGCalWorker : public PreMixingWorker { void put(edm::Event& e, const edm::EventSetup& ES, std::vector const& ps, int bs) override; private: - edm::EDGetTokenT signalToken_; - edm::InputTag pileupInputTag_; + const edm::EDGetTokenT signalToken_; + const edm::InputTag pileupInputTag_; HGCDigitizer digitizer_; }; @@ -50,8 +50,7 @@ void PreMixingHGCalWorker::initializeEvent(const edm::Event& e, const edm::Event } void PreMixingHGCalWorker::addSignals(const edm::Event& e, const edm::EventSetup& ES) { - edm::Handle handle; - e.getByToken(signalToken_, handle); + const edm::Handle& handle = e.getHandle(signalToken_); digitizer_.accumulate_forPreMix(*handle, false); } diff --git a/SimCalorimetry/HGCalSimProducers/python/hgcalDigitizer_cfi.py b/SimCalorimetry/HGCalSimProducers/python/hgcalDigitizer_cfi.py index cda048cf8e71d..0138de6a2663e 100644 --- a/SimCalorimetry/HGCalSimProducers/python/hgcalDigitizer_cfi.py +++ b/SimCalorimetry/HGCalSimProducers/python/hgcalDigitizer_cfi.py @@ -54,6 +54,7 @@ hgceeDigitizer = cms.PSet( accumulatorType = cms.string("HGCDigiProducer"), digitizer = cms.string("HGCEEDigitizer"), + hitsProducer = cms.string("g4SimHits"), hitCollection = cms.string("HGCHitsEE"), digiCollection = cms.string("HGCDigisEE"), NoiseGeneration_Method = cms.bool(True), @@ -84,8 +85,9 @@ hgchefrontDigitizer = cms.PSet( accumulatorType = cms.string("HGCDigiProducer"), digitizer = cms.string("HGCHEfrontDigitizer"), - hitCollection = cms.string("HGCHitsHEfront"), - digiCollection = cms.string("HGCDigisHEfront"), + hitsProducer = cms.string("g4SimHits"), + hitCollection = cms.string("HGCHitsHEfront"), + digiCollection = cms.string("HGCDigisHEfront"), NoiseGeneration_Method = cms.bool(True), maxSimHitsAccTime = cms.uint32(100), bxTime = cms.double(25), @@ -113,8 +115,9 @@ hgchebackDigitizer = cms.PSet( accumulatorType = cms.string("HGCDigiProducer"), digitizer = cms.string("HGCHEbackDigitizer"), - hitCollection = cms.string("HGCHitsHEback"), - digiCollection = cms.string("HGCDigisHEback"), + hitsProducer = cms.string("g4SimHits"), + hitCollection = cms.string("HGCHitsHEback"), + digiCollection = cms.string("HGCDigisHEback"), NoiseGeneration_Method = cms.bool(True), maxSimHitsAccTime = cms.uint32(100), bxTime = cms.double(25), @@ -153,6 +156,7 @@ hfnoseDigitizer = cms.PSet( accumulatorType = cms.string("HGCDigiProducer"), digitizer = cms.string("HFNoseDigitizer"), + hitsProducer = cms.string("g4SimHits"), hitCollection = cms.string("HFNoseHits"), digiCollection = cms.string("HFNoseDigis"), NoiseGeneration_Method = cms.bool(True), diff --git a/SimDataFormats/TrackerDigiSimLink/BuildFile.xml b/SimDataFormats/TrackerDigiSimLink/BuildFile.xml index b2d84248afd09..bd1849a95d4df 100644 --- a/SimDataFormats/TrackerDigiSimLink/BuildFile.xml +++ b/SimDataFormats/TrackerDigiSimLink/BuildFile.xml @@ -1,6 +1,7 @@ + diff --git a/SimDataFormats/TrackerDigiSimLink/interface/PixelSimHitExtraInfo.h b/SimDataFormats/TrackerDigiSimLink/interface/PixelSimHitExtraInfo.h new file mode 100644 index 0000000000000..b8b6d5ba03629 --- /dev/null +++ b/SimDataFormats/TrackerDigiSimLink/interface/PixelSimHitExtraInfo.h @@ -0,0 +1,43 @@ +#ifndef PixelSimHitExtraInfo_h +#define PixelSimHitExtraInfo_h + +#include "DataFormats/GeometryVector/interface/LocalPoint.h" +#include +#include + +class PixelSimHitExtraInfo { +public: + PixelSimHitExtraInfo(size_t Hindex, const Local3DPoint& entryP, const Local3DPoint& exitP, unsigned int ch) { + index_ = Hindex; + theEntryPoint_ = entryP; + theExitPoint_ = exitP; + chan_.push_back(ch); + }; + PixelSimHitExtraInfo() = default; + ~PixelSimHitExtraInfo() = default; + size_t hitIndex() const { return index_; }; + const Local3DPoint& entryPoint() const { return theEntryPoint_; }; + const Local3DPoint& exitPoint() const { return theExitPoint_; } + const std::vector& channel() const { return chan_; }; + + inline bool operator<(const PixelSimHitExtraInfo& other) const { return hitIndex() < other.hitIndex(); } + + void addDigiInfo(unsigned int theDigiChannel) { chan_.push_back(theDigiChannel); } + bool isInTheList(unsigned int channelToCheck) { + bool result_in_the_list = false; + for (unsigned int icheck = 0; icheck < chan_.size(); icheck++) { + if (channelToCheck == chan_[icheck]) { + result_in_the_list = true; + break; + } + } + return result_in_the_list; + } + +private: + size_t index_; + Local3DPoint theEntryPoint_; + Local3DPoint theExitPoint_; + std::vector chan_; +}; +#endif diff --git a/SimDataFormats/TrackerDigiSimLink/src/classes.h b/SimDataFormats/TrackerDigiSimLink/src/classes.h index 42b101455d196..5a3c3c7c6fd94 100644 --- a/SimDataFormats/TrackerDigiSimLink/src/classes.h +++ b/SimDataFormats/TrackerDigiSimLink/src/classes.h @@ -8,5 +8,6 @@ #include "SimDataFormats/TrackerDigiSimLink/interface/PixelDigiSimLink.h" #include "SimDataFormats/TrackerDigiSimLink/interface/StripDigiSimLink.h" #include "SimDataFormats/TrackerDigiSimLink/interface/StripCompactDigiSimLinks.h" +#include "SimDataFormats/TrackerDigiSimLink/interface/PixelSimHitExtraInfo.h" #endif // TRACKERDIGISIMLINK_CLASSES_H diff --git a/SimDataFormats/TrackerDigiSimLink/src/classes_def.xml b/SimDataFormats/TrackerDigiSimLink/src/classes_def.xml index 908ec73a136a4..72a2d145112f5 100644 --- a/SimDataFormats/TrackerDigiSimLink/src/classes_def.xml +++ b/SimDataFormats/TrackerDigiSimLink/src/classes_def.xml @@ -35,4 +35,16 @@ --> + + + + + + + + + + + + diff --git a/SimG4CMS/Calo/src/CaloSD.cc b/SimG4CMS/Calo/src/CaloSD.cc index e3449046b2ef7..d3c39747fd57c 100644 --- a/SimG4CMS/Calo/src/CaloSD.cc +++ b/SimG4CMS/Calo/src/CaloSD.cc @@ -172,15 +172,19 @@ G4bool CaloSD::ProcessHits(G4Step* aStep, G4TouchableHistory*) { doFineCaloThisStep_ = (doFineCalo_ && isItFineCalo(aStep->GetPreStepPoint()->GetTouchable())); // apply shower library or parameterisation + // independent on energy deposition at a step if (isParameterized) { if (getFromLibrary(aStep)) { // for parameterized showers the primary track should be killed - aStep->GetTrack()->SetTrackStatus(fStopAndKill); - auto tv = aStep->GetSecondary(); - auto vol = aStep->GetPreStepPoint()->GetPhysicalVolume(); - for (auto& tk : *tv) { - if (tk->GetVolume() == vol) { - tk->SetTrackStatus(fStopAndKill); + // secondary tracks should be killed if they are in the same volume + const_cast(aStep->GetTrack())->SetTrackStatus(fStopAndKill); + if (0 < aStep->GetNumberOfSecondariesInCurrentStep()) { + auto tv = aStep->GetSecondaryInCurrentStep(); + auto vol = aStep->GetPreStepPoint()->GetPhysicalVolume(); + for (auto& tk : *tv) { + if (tk->GetVolume() == vol) { + const_cast(tk)->SetTrackStatus(fStopAndKill); + } } } return true; @@ -189,6 +193,11 @@ G4bool CaloSD::ProcessHits(G4Step* aStep, G4TouchableHistory*) { // ignore steps without energy deposit edepositEM = edepositHAD = 0.f; + if (aStep->GetTotalEnergyDeposit() <= 0.0) { + return false; + } + + // check unitID unsigned int unitID = setDetUnitId(aStep); auto const theTrack = aStep->GetTrack(); uint16_t depth = getDepth(aStep); @@ -198,7 +207,7 @@ G4bool CaloSD::ProcessHits(G4Step* aStep, G4TouchableHistory*) { if (unitID > 0) { currentID.setID(unitID, time, primaryID, depth); } else { - if (aStep->GetTotalEnergyDeposit() > 0.0 && (!ignoreReject)) { + if (!ignoreReject) { const G4TouchableHistory* touch = static_cast(theTrack->GetTouchable()); edm::LogVerbatim("CaloSim") << "CaloSD::ProcessHits: unitID= " << unitID << " currUnit= " << currentID.unitID() << " Detector: " << GetName() << " trackID= " << theTrack->GetTrackID() << " " @@ -209,42 +218,39 @@ G4bool CaloSD::ProcessHits(G4Step* aStep, G4TouchableHistory*) { } return false; } - - if (aStep->GetTotalEnergyDeposit() == 0.0) { + double energy = getEnergyDeposit(aStep); + if (energy <= 0.0) { return false; } - double energy = getEnergyDeposit(aStep); - if (energy > 0.0) { - if (doFineCaloThisStep_) { - currentID.setID(unitID, time, findBoundaryCrossingParent(theTrack), depth); - currentID.markAsFinecaloTrackID(); - } - if (G4TrackToParticleID::isGammaElectronPositron(theTrack)) { - edepositEM = energy; - } else { - edepositHAD = energy; - } + if (doFineCaloThisStep_) { + currentID.setID(unitID, time, findBoundaryCrossingParent(theTrack), depth); + currentID.markAsFinecaloTrackID(); + } + + if (G4TrackToParticleID::isGammaElectronPositron(theTrack)) { + edepositEM = energy; + } else { + edepositHAD = energy; + } #ifdef EDM_ML_DEBUG - G4TouchableHistory* touch = (G4TouchableHistory*)(theTrack->GetTouchable()); - edm::LogVerbatim("CaloSim") << "CaloSD::" << GetName() << " PV:" << touch->GetVolume(0)->GetName() - << " PVid=" << touch->GetReplicaNumber(0) << " MVid=" << touch->GetReplicaNumber(1) - << " Unit:" << std::hex << unitID << std::dec << " Edep=" << edepositEM << " " - << edepositHAD << " ID=" << theTrack->GetTrackID() << " pID=" << theTrack->GetParentID() - << " E=" << theTrack->GetKineticEnergy() << " S=" << aStep->GetStepLength() << "\n " - << theTrack->GetDefinition()->GetParticleName() << " primaryID= " << primaryID - << " currentID= (" << currentID << ") previousID= (" << previousID << ")"; + G4TouchableHistory* touch = (G4TouchableHistory*)(theTrack->GetTouchable()); + edm::LogVerbatim("CaloSim") << "CaloSD::" << GetName() << " PV:" << touch->GetVolume(0)->GetName() + << " PVid=" << touch->GetReplicaNumber(0) << " MVid=" << touch->GetReplicaNumber(1) + << " Unit:" << std::hex << unitID << std::dec << " Edep=" << edepositEM << " " + << edepositHAD << " ID=" << theTrack->GetTrackID() << " pID=" << theTrack->GetParentID() + << " E=" << theTrack->GetKineticEnergy() << " S=" << aStep->GetStepLength() << "\n " + << theTrack->GetDefinition()->GetParticleName() << " primaryID= " << primaryID + << " currentID= (" << currentID << ") previousID= (" << previousID << ")"; #endif - if (!hitExists(aStep)) { - currentHit = createNewHit(aStep, aStep->GetTrack()); - } else { + if (!hitExists(aStep)) { + currentHit = createNewHit(aStep, theTrack); + } else { #ifdef EDM_ML_DEBUG - edm::LogVerbatim("DoFineCalo") << "Not creating new hit, only updating " << shortreprID(currentHit); + edm::LogVerbatim("DoFineCalo") << "Not creating new hit, only updating " << shortreprID(currentHit); #endif - } - return true; } - return false; + return true; } bool CaloSD::ProcessHits(G4GFlashSpot* aSpot, G4TouchableHistory*) { @@ -266,6 +272,8 @@ bool CaloSD::ProcessHits(G4GFlashSpot* aSpot, G4TouchableHistory*) { fFakePreStepPoint->SetTouchableHandle(fTouchableHandle); fFakeStep.SetTotalEnergyDeposit(edep); edep = EnergyCorrected(fFakeStep, track); + + // zero edep means hit outside the calorimeter if (edep <= 0.0) { return false; } @@ -279,7 +287,8 @@ bool CaloSD::ProcessHits(G4GFlashSpot* aSpot, G4TouchableHistory*) { unsigned int unitID = setDetUnitId(&fFakeStep); if (unitID > 0) { - double time = 0; + // time of initial track + double time = track->GetGlobalTime() / nanosecond; int primaryID = getTrackID(track); uint16_t depth = getDepth(&fFakeStep); currentID.setID(unitID, time, primaryID, depth); diff --git a/SimG4CMS/Calo/src/ECalSD.cc b/SimG4CMS/Calo/src/ECalSD.cc index 3ba083fea6d0c..5f3b66b9a053c 100644 --- a/SimG4CMS/Calo/src/ECalSD.cc +++ b/SimG4CMS/Calo/src/ECalSD.cc @@ -127,7 +127,7 @@ ECalSD::ECalSD(const std::string& name, int type0 = dumpGeom / 1000; type += (10 * type0); - if (scheme) + if (nullptr != scheme) setNumberingScheme(scheme); #ifdef EDM_ML_DEBUG edm::LogVerbatim("EcalSim") << "Constructing a ECalSD with name " << GetName(); @@ -227,10 +227,12 @@ double ECalSD::getEnergyDeposit(const G4Step* aStep) { } double ECalSD::EnergyCorrected(const G4Step& step, const G4Track* track) { - double edep = step.GetTotalEnergyDeposit(); const G4StepPoint* hitPoint = step.GetPreStepPoint(); const G4LogicalVolume* lv = hitPoint->GetTouchable()->GetVolume(0)->GetLogicalVolume(); + if (lv->GetSensitiveDetector() != this) + return 0.0; + double edep = step.GetTotalEnergyDeposit(); if (useWeight && !any(noWeight, lv)) { currentLocalPoint = setToLocal(hitPoint->GetPosition(), hitPoint->GetTouchable()); auto ite = xtalLMap.find(lv); diff --git a/SimG4CMS/Calo/src/HGCScintSD.cc b/SimG4CMS/Calo/src/HGCScintSD.cc index e53fe784edc47..9a4c32c6d445a 100644 --- a/SimG4CMS/Calo/src/HGCScintSD.cc +++ b/SimG4CMS/Calo/src/HGCScintSD.cc @@ -134,7 +134,7 @@ uint32_t HGCScintSD::setDetUnitId(const G4Step* aStep) { int iz(globalZ > 0 ? 1 : -1); int layer(0), module(-1), cell(-1); - if (geom_mode_ == HGCalGeometryMode::TrapezoidModule) { + if ((geom_mode_ == HGCalGeometryMode::TrapezoidModule) || (geom_mode_ == HGCalGeometryMode::TrapezoidCassette)) { layer = touch->GetReplicaNumber(1); } else if ((touch->GetHistoryDepth() == levelT1_) || (touch->GetHistoryDepth() == levelT2_)) { layer = touch->GetReplicaNumber(0); diff --git a/SimG4CMS/Calo/src/HGCalNumberingScheme.cc b/SimG4CMS/Calo/src/HGCalNumberingScheme.cc index 05e68ae924c05..d88ef52b12136 100644 --- a/SimG4CMS/Calo/src/HGCalNumberingScheme.cc +++ b/SimG4CMS/Calo/src/HGCalNumberingScheme.cc @@ -8,6 +8,7 @@ #include "DataFormats/ForwardDetId/interface/HGCSiliconDetId.h" #include "Geometry/HGCalCommonData/interface/HGCalTypes.h" #include "Geometry/HGCalCommonData/interface/HGCalWaferIndex.h" +#include #include //#define EDM_ML_DEBUG @@ -52,7 +53,7 @@ uint32_t HGCalNumberingScheme::getUnitID(int layer, int module, int cell, int iz hgcons_.waferFromPosition(xx, pos.y(), layer, waferU, waferV, cellU, cellV, waferType, wt, false, false); } if (waferType >= 0) { - if ((mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module)) { + if (hgcons_.waferHexagon8File()) { int type = hgcons_.waferType(layer, waferU, waferV, true); if (type != waferType) { #ifdef EDM_ML_DEBUG diff --git a/SimG4CMS/Calo/src/HGCalSD.cc b/SimG4CMS/Calo/src/HGCalSD.cc index b77ab48043fd1..6bf643be4f861 100644 --- a/SimG4CMS/Calo/src/HGCalSD.cc +++ b/SimG4CMS/Calo/src/HGCalSD.cc @@ -1,4 +1,4 @@ -//////////////////////////////////////////////////////////////////////////////// +/////////////////////////////////////////////////////////////////////////////// // File: HGCalSD.cc // Description: Sensitive Detector class for High Granularity Calorimeter /////////////////////////////////////////////////////////////////////////////// @@ -135,7 +135,7 @@ uint32_t HGCalSD::setDetUnitId(const G4Step* aStep) { int iz(globalZ > 0 ? 1 : -1); int layer(0), module(-1), cell(-1); - if (geom_mode_ == HGCalGeometryMode::Hexagon8Module) { + if ((geom_mode_ == HGCalGeometryMode::Hexagon8Module) || (geom_mode_ == HGCalGeometryMode::Hexagon8Cassette)) { if (touch->GetHistoryDepth() > levelT2_) { layer = touch->GetReplicaNumber(4); module = touch->GetReplicaNumber(3); @@ -239,7 +239,7 @@ uint32_t HGCalSD::setDetUnitId(int layer, int module, int cell, int iz, G4ThreeV ignoreRejection(); } } - if ((geom_mode_ == HGCalGeometryMode::Hexagon8File) || (geom_mode_ == HGCalGeometryMode::Hexagon8Module) || (id == 0)) + if (hgcons_->waferHexagon8File() || (id == 0)) ignoreRejection(); return id; } diff --git a/SimG4CMS/Calo/test/python/dd4hep_SingleMuon_Step1_cfg.py b/SimG4CMS/Calo/test/python/dd4hep_SingleMuon_Step1_cfg.py index 8af77ba499bf6..320ae2d410bf6 100644 --- a/SimG4CMS/Calo/test/python/dd4hep_SingleMuon_Step1_cfg.py +++ b/SimG4CMS/Calo/test/python/dd4hep_SingleMuon_Step1_cfg.py @@ -85,7 +85,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.generator = cms.EDProducer("FlatRandomPtGunProducer", PGunParameters = cms.PSet( diff --git a/SimG4CMS/Calo/test/python/ddd_SingleMuon_Step1_cfg.py b/SimG4CMS/Calo/test/python/ddd_SingleMuon_Step1_cfg.py index 449851d826b4f..f0c8ff080b163 100644 --- a/SimG4CMS/Calo/test/python/ddd_SingleMuon_Step1_cfg.py +++ b/SimG4CMS/Calo/test/python/ddd_SingleMuon_Step1_cfg.py @@ -85,7 +85,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.generator = cms.EDProducer("FlatRandomPtGunProducer", PGunParameters = cms.PSet( diff --git a/SimG4CMS/Calo/test/python/runEcalGeom_cfg.py b/SimG4CMS/Calo/test/python/runEcalGeom_cfg.py index fd9e4913896c3..5195e26f48e32 100644 --- a/SimG4CMS/Calo/test/python/runEcalGeom_cfg.py +++ b/SimG4CMS/Calo/test/python/runEcalGeom_cfg.py @@ -64,7 +64,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.g4SimHits.ECalSD.DumpGeometry = 111 # Path and EndPath definitions diff --git a/SimG4CMS/Calo/test/python/runEcalSimHitStudy_cfg.py b/SimG4CMS/Calo/test/python/runEcalSimHitStudy_cfg.py index 1437672aad88f..be4b01d0274b4 100644 --- a/SimG4CMS/Calo/test/python/runEcalSimHitStudy_cfg.py +++ b/SimG4CMS/Calo/test/python/runEcalSimHitStudy_cfg.py @@ -18,7 +18,7 @@ process.load("SimG4CMS.Calo.EcalSimHitStudy_cfi") process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.source = cms.Source("PoolSource", fileNames = cms.untracked.vstring('file:singleElectron_ddd.root') diff --git a/SimG4CMS/Calo/test/python/runEta13_cfg.py b/SimG4CMS/Calo/test/python/runEta13_cfg.py index b34acac832a4d..6d9c55f843aaf 100644 --- a/SimG4CMS/Calo/test/python/runEta13_cfg.py +++ b/SimG4CMS/Calo/test/python/runEta13_cfg.py @@ -17,7 +17,7 @@ process.load('Configuration.StandardSequences.SimIdeal_cff') process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') if 'MessageLogger' in process.__dict__: process.MessageLogger.G4cerr=dict() diff --git a/SimG4CMS/Calo/test/python/runEta2_cfg.py b/SimG4CMS/Calo/test/python/runEta2_cfg.py index 22c97435014dc..3a143c6be74e1 100644 --- a/SimG4CMS/Calo/test/python/runEta2_cfg.py +++ b/SimG4CMS/Calo/test/python/runEta2_cfg.py @@ -18,7 +18,7 @@ process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff" ) from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') if 'MessageLogger' in process.__dict__: process.MessageLogger.G4cerr=dict() diff --git a/SimG4CMS/Calo/test/python/runEta37_cfg.py b/SimG4CMS/Calo/test/python/runEta37_cfg.py index 816f968352691..11c21e5722f51 100644 --- a/SimG4CMS/Calo/test/python/runEta37_cfg.py +++ b/SimG4CMS/Calo/test/python/runEta37_cfg.py @@ -18,7 +18,7 @@ process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff" ) from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.MessageLogger.cerr.FwkReport.reportEvery = 5 if hasattr(process,'MessageLogger'): diff --git a/SimG4CMS/Calo/test/python/runEta7_cfg.py b/SimG4CMS/Calo/test/python/runEta7_cfg.py index 78ab4db09318d..f4fb1831c9880 100644 --- a/SimG4CMS/Calo/test/python/runEta7_cfg.py +++ b/SimG4CMS/Calo/test/python/runEta7_cfg.py @@ -18,7 +18,7 @@ process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff" ) from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.MessageLogger.cerr.FwkReport.reportEvery = 5 if hasattr(process,'MessageLogger'): diff --git a/SimG4CMS/Calo/test/python/runHF6_cfg.py b/SimG4CMS/Calo/test/python/runHF6_cfg.py index 0a71d0b08e02d..234d90a1cc12b 100644 --- a/SimG4CMS/Calo/test/python/runHF6_cfg.py +++ b/SimG4CMS/Calo/test/python/runHF6_cfg.py @@ -64,7 +64,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.generator = cms.EDFilter("Pythia8GeneratorFilter", PythiaParameters = cms.PSet( diff --git a/SimG4CMS/Calo/test/python/runHFDD4HEP_cfg.py b/SimG4CMS/Calo/test/python/runHFDD4HEP_cfg.py index 69fa517c0cda8..bc511238dd9fb 100644 --- a/SimG4CMS/Calo/test/python/runHFDD4HEP_cfg.py +++ b/SimG4CMS/Calo/test/python/runHFDD4HEP_cfg.py @@ -87,7 +87,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.generator = cms.EDProducer("FlatRandomEGunProducer", diff --git a/SimG4CMS/Calo/test/python/runHFDDD_cfg.py b/SimG4CMS/Calo/test/python/runHFDDD_cfg.py index 0ef8a90d350dc..b1bd54a133b83 100644 --- a/SimG4CMS/Calo/test/python/runHFDDD_cfg.py +++ b/SimG4CMS/Calo/test/python/runHFDDD_cfg.py @@ -85,7 +85,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.generator = cms.EDProducer("FlatRandomEGunProducer", PGunParameters = cms.PSet( diff --git a/SimG4CMS/Calo/test/python/runHcalGeom_cfg.py b/SimG4CMS/Calo/test/python/runHcalGeom_cfg.py index 43a09ec5c654b..0a95b87ab4c4b 100644 --- a/SimG4CMS/Calo/test/python/runHcalGeom_cfg.py +++ b/SimG4CMS/Calo/test/python/runHcalGeom_cfg.py @@ -64,7 +64,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.g4SimHits.HCalSD.DumpGeometry = True # Path and EndPath definitions diff --git a/SimG4CMS/Calo/test/python/runHcalSimHitAnalysis_cfg.py b/SimG4CMS/Calo/test/python/runHcalSimHitAnalysis_cfg.py index ab841c6eda476..05d461829ecd3 100644 --- a/SimG4CMS/Calo/test/python/runHcalSimHitAnalysis_cfg.py +++ b/SimG4CMS/Calo/test/python/runHcalSimHitAnalysis_cfg.py @@ -18,7 +18,7 @@ process.load("SimG4CMS.Calo.hcalSimHitAnalysis_cfi") process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.source = cms.Source("PoolSource", fileNames = cms.untracked.vstring('file:singlePion_dd4hep.root') diff --git a/SimG4CMS/Forward/test/python/runTotemTest2021_cfg.py b/SimG4CMS/Forward/test/python/runTotemTest2021_cfg.py index 835d6be2277c8..e94b24e376d6c 100644 --- a/SimG4CMS/Forward/test/python/runTotemTest2021_cfg.py +++ b/SimG4CMS/Forward/test/python/runTotemTest2021_cfg.py @@ -13,7 +13,7 @@ process.load('Configuration.StandardSequences.SimIdeal_cff') process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.VtxSmeared.MinZ = -10.5 process.VtxSmeared.MaxZ = -9.5 diff --git a/SimG4CMS/Muon/test/runMuon_cfg.py b/SimG4CMS/Muon/test/runMuon_cfg.py index ff4a0e1ccd2f8..704710e490241 100644 --- a/SimG4CMS/Muon/test/runMuon_cfg.py +++ b/SimG4CMS/Muon/test/runMuon_cfg.py @@ -20,7 +20,7 @@ process.load('Configuration.StandardSequences.EndOfProcess_cff') process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') if 'MessageLogger' in process.__dict__: process.MessageLogger.G4cerr=dict() diff --git a/SimG4CMS/ShowerLibraryProducer/test/python/runHFShowerAnalyzer_cfg.py b/SimG4CMS/ShowerLibraryProducer/test/python/runHFShowerAnalyzer_cfg.py index 27dc07940529e..2f0e03b2ecae9 100644 --- a/SimG4CMS/ShowerLibraryProducer/test/python/runHFShowerAnalyzer_cfg.py +++ b/SimG4CMS/ShowerLibraryProducer/test/python/runHFShowerAnalyzer_cfg.py @@ -14,7 +14,7 @@ process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') process.load("SimG4CMS.ShowerLibraryProducer.hfShowerLibaryAnalysis_cfi") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') if hasattr(process,'MessageLogger'): process.MessageLogger.HFShower = dict() diff --git a/SimG4Core/Application/interface/LowEnergyFastSimModel.h b/SimG4Core/Application/interface/LowEnergyFastSimModel.h index 79ca33d3dca26..6c0b7563c7f04 100644 --- a/SimG4Core/Application/interface/LowEnergyFastSimModel.h +++ b/SimG4Core/Application/interface/LowEnergyFastSimModel.h @@ -13,6 +13,7 @@ class TrackingAction; class G4ParticleDefinition; +class G4Material; class LowEnergyFastSimModel : public G4VFastSimulationModel { public: @@ -27,6 +28,7 @@ class LowEnergyFastSimModel : public G4VFastSimulationModel { const G4Envelope* fRegion; const TrackingAction* fTrackingAction; const G4ParticleDefinition* fPositron; + const G4Material* fMaterial; G4bool fCheck; G4ThreeVector fTailPos; GFlashHitMaker fHitMaker; diff --git a/SimG4Core/Application/interface/LowEnergyFastSimParam.h b/SimG4Core/Application/interface/LowEnergyFastSimParam.h index 4b7c964253625..bceebc6168f39 100644 --- a/SimG4Core/Application/interface/LowEnergyFastSimParam.h +++ b/SimG4Core/Application/interface/LowEnergyFastSimParam.h @@ -8,9 +8,14 @@ class LowEnergyFastSimParam { public: G4double GetInPointEnergyFraction(G4double energy) const { + // normalisation of fit parameters to have the result + constexpr const G4double a0 = 1.02186764; + constexpr const G4double a1 = 2.14064635e-02 / a0; + constexpr const G4double a2 = 1.96988997e-04 / a0; + constexpr const G4double a3 = -6.42310317e-07 / a0; const G4double e2 = energy * energy; const G4double e3 = e2 * energy; - return -6.42310317e-07 * e3 + 1.96988997e-04 * e2 - 2.14064635e-02 * energy + 1.02186764e+00; + return a3 * e3 + a2 * e2 - a1 * energy + 1.0; } G4double GetRadius(G4double energy) const { @@ -21,9 +26,9 @@ class LowEnergyFastSimParam { } G4double GetZ() const { - constexpr const G4double alpha = 0.02211515; + constexpr const G4double alpha = 1.0 / 0.02211515; constexpr const G4double t = 0.66968625; - return -G4Log(G4UniformRand()) / alpha + t; + return -G4Log(G4UniformRand()) * alpha + t; } }; diff --git a/SimG4Core/Application/interface/RunManagerMT.h b/SimG4Core/Application/interface/RunManagerMT.h index c07d6121e994b..240f36dbd5f46 100644 --- a/SimG4Core/Application/interface/RunManagerMT.h +++ b/SimG4Core/Application/interface/RunManagerMT.h @@ -100,6 +100,7 @@ class RunManagerMT { edm::ParameterSet m_pRunAction; edm::ParameterSet m_g4overlap; std::vector m_G4Commands; + std::vector m_G4CommandsEndRun; edm::ParameterSet m_p; std::unique_ptr m_world; diff --git a/SimG4Core/Application/interface/RunManagerMTWorker.h b/SimG4Core/Application/interface/RunManagerMTWorker.h index 69f8b037fe275..cdbc914533676 100644 --- a/SimG4Core/Application/interface/RunManagerMTWorker.h +++ b/SimG4Core/Application/interface/RunManagerMTWorker.h @@ -9,6 +9,7 @@ #include "MagneticField/Engine/interface/MagneticField.h" #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" +#include "SimG4Core/Notification/interface/G4SimEvent.h" #include #include @@ -26,7 +27,6 @@ class Generator; class RunManagerMT; class G4Event; -class G4SimEvent; class G4Run; class SimTrackManager; class CustomUIsession; @@ -53,14 +53,12 @@ class RunManagerMTWorker { void beginRun(const edm::EventSetup&); void endRun(); - std::unique_ptr produce(const edm::Event& inpevt, - const edm::EventSetup& es, - RunManagerMT& runManagerMaster); + G4SimEvent* produce(const edm::Event& inpevt, const edm::EventSetup& es, RunManagerMT& runManagerMaster); void abortEvent(); void abortRun(bool softAbort = false); - inline G4SimEvent* simEvent() { return m_simEvent; } + inline G4SimEvent* simEvent() { return &m_simEvent; } void Connect(RunAction*); void Connect(EventAction*); @@ -101,7 +99,6 @@ class RunManagerMTWorker { bool m_dumpMF{false}; const int m_thread_index{-1}; - int m_EvtMgrVerbosity{0}; edm::ParameterSet m_pField; edm::ParameterSet m_pRunAction; @@ -116,7 +113,7 @@ class RunManagerMTWorker { TLSData* m_tls{nullptr}; CustomUIsession* m_UIsession{nullptr}; - G4SimEvent* m_simEvent{nullptr}; + G4SimEvent m_simEvent; std::unique_ptr m_sVerbose; std::unordered_map> m_sdMakers; }; diff --git a/SimG4Core/Application/interface/TrackingAction.h b/SimG4Core/Application/interface/TrackingAction.h index e65176435570d..1b2f528c60492 100644 --- a/SimG4Core/Application/interface/TrackingAction.h +++ b/SimG4Core/Application/interface/TrackingAction.h @@ -3,7 +3,6 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "SimG4Core/Notification/interface/SimActivityRegistry.h" -#include "SimG4Core/Notification/interface/TrackInformationExtractor.h" #include "G4UserTrackingAction.hh" @@ -12,6 +11,7 @@ class TrackWithHistory; class BeginOfTrack; class EndOfTrack; class CMSSteppingVerbose; +class TrackInformation; class TrackingAction : public G4UserTrackingAction { public: @@ -29,11 +29,11 @@ class TrackingAction : public G4UserTrackingAction { SimActivityRegistry::EndOfTrackSignal m_endOfTrackSignal; private: - TrackInformationExtractor extractor_; EventAction* eventAction_; - TrackWithHistory* currentTrack_; CMSSteppingVerbose* steppingVerbose_; - const G4Track* g4Track_; + const G4Track* g4Track_ = nullptr; + TrackInformation* trkInfo_ = nullptr; + TrackWithHistory* currentTrack_ = nullptr; bool checkTrack_; bool doFineCalo_; bool saveCaloBoundaryInformation_; diff --git a/SimG4Core/Application/plugins/BuildFile.xml b/SimG4Core/Application/plugins/BuildFile.xml index 22a53115d9517..cddce61a9ed5a 100644 --- a/SimG4Core/Application/plugins/BuildFile.xml +++ b/SimG4Core/Application/plugins/BuildFile.xml @@ -4,7 +4,9 @@ + + diff --git a/SimG4Core/Application/plugins/OscarMTProducer.cc b/SimG4Core/Application/plugins/OscarMTProducer.cc index 70d37365e5254..f4b7bbddb2d1b 100644 --- a/SimG4Core/Application/plugins/OscarMTProducer.cc +++ b/SimG4Core/Application/plugins/OscarMTProducer.cc @@ -22,6 +22,8 @@ #include "SimG4Core/Application/interface/RunManagerMT.h" #include "SimG4Core/Application/interface/RunManagerMTWorker.h" #include "SimG4Core/Notification/interface/G4SimEvent.h" +#include "SimG4Core/Notification/interface/G4SimVertex.h" +#include "SimG4Core/Notification/interface/G4SimTrack.h" #include "SimG4Core/SensitiveDetector/interface/SensitiveTkDetector.h" #include "SimG4Core/SensitiveDetector/interface/SensitiveCaloDetector.h" @@ -60,6 +62,7 @@ class OscarMTProducer : public edm::stream::EDProducer m_runManagerWorker; const OscarMTMasterThread* m_masterThread = nullptr; + int m_verbose; }; namespace edm { @@ -99,6 +102,7 @@ namespace { OscarMTProducer::OscarMTProducer(edm::ParameterSet const& p, const OscarMTMasterThread* ms) : m_handoff{p.getUntrackedParameter("workerThreadStackSize", 10 * 1024 * 1024)} { + m_verbose = p.getParameter("EventVerbose"); // Random number generation not allowed here StaticRandomEngineSetUnset random(nullptr); @@ -239,13 +243,15 @@ void OscarMTProducer::endRun(const edm::Run&, const edm::EventSetup&) { void OscarMTProducer::produce(edm::Event& e, const edm::EventSetup& es) { StaticRandomEngineSetUnset random(e.streamID()); auto engine = random.currentEngine(); - edm::LogVerbatim("SimG4CoreApplication") << "Produce event " << e.id() << " stream " << e.streamID(); - //edm::LogVerbatim("SimG4CoreApplication") << " rand= " << G4UniformRand(); + if (0 < m_verbose) { + edm::LogVerbatim("SimG4CoreApplication") << "Produce event " << e.id() << " stream " << e.streamID(); + //edm::LogVerbatim("SimG4CoreApplication") << " rand= " << G4UniformRand(); + } auto& sTk = m_runManagerWorker->sensTkDetectors(); auto& sCalo = m_runManagerWorker->sensCaloDetectors(); - std::unique_ptr evt; + G4SimEvent* evt = nullptr; auto token = edm::ServiceRegistry::instance().presentToken(); m_handoff.runAndWait([this, &e, &es, &evt, token, engine]() { edm::ServiceRegistry::Operate guard{token}; @@ -258,6 +264,23 @@ void OscarMTProducer::produce(edm::Event& e, const edm::EventSetup& es) { evt->load(*p1); evt->load(*p2); + if (0 < m_verbose) { + edm::LogVerbatim("SimG4CoreApplication") << "Produced " << p2->size() << " SimVertex objects"; + if (1 < m_verbose) { + int nn = p2->size(); + for (int i = 0; i < nn; ++i) { + edm::LogVerbatim("Vertex") << " " << (*p2)[i] << " " << (*p2)[i].processType(); + } + } + edm::LogVerbatim("SimG4CoreApplication") << "Produced " << p1->size() << " SimTrack objects"; + if (1 < m_verbose) { + int nn = p1->size(); + for (int i = 0; i < nn; ++i) { + edm::LogVerbatim("Track") << " " << i << ". " << (*p1)[i] << " " << (*p1)[i].crossedBoundary() << " " + << (*p1)[i].getIDAtBoundary(); + } + } + } e.put(std::move(p1)); e.put(std::move(p2)); @@ -266,7 +289,7 @@ void OscarMTProducer::produce(edm::Event& e, const edm::EventSetup& es) { for (auto& name : v) { std::unique_ptr product(new edm::PSimHitContainer); tracker->fillHits(*product, name); - if (product != nullptr && !product->empty()) + if (0 < m_verbose && product != nullptr && !product->empty()) edm::LogVerbatim("SimG4CoreApplication") << "Produced " << product->size() << " tracker hits <" << name << ">"; e.put(std::move(product), name); } @@ -276,7 +299,7 @@ void OscarMTProducer::produce(edm::Event& e, const edm::EventSetup& es) { for (auto& name : v) { std::unique_ptr product(new edm::PCaloHitContainer); calo->fillHits(*product, name); - if (product != nullptr && !product->empty()) + if (0 < m_verbose && product != nullptr && !product->empty()) edm::LogVerbatim("SimG4CoreApplication") << "Produced " << product->size() << " calo hits <" << name << ">"; e.put(std::move(product), name); } @@ -286,8 +309,10 @@ void OscarMTProducer::produce(edm::Event& e, const edm::EventSetup& es) { for (auto& prod : producers) { prod.get()->produce(e, es); } - edm::LogVerbatim("SimG4CoreApplication") << "Event is produced " << e.id() << " stream " << e.streamID(); - //edm::LogVerbatim("SimG4CoreApplication") << " rand= " << G4UniformRand(); + if (0 < m_verbose) { + edm::LogVerbatim("SimG4CoreApplication") << "Event is produced " << e.id() << " stream " << e.streamID(); + //edm::LogVerbatim("SimG4CoreApplication") << " rand= " << G4UniformRand(); + } } StaticRandomEngineSetUnset::StaticRandomEngineSetUnset(edm::StreamID const& streamID) { diff --git a/SimG4Core/Application/python/g4SimHits_cfi.py b/SimG4Core/Application/python/g4SimHits_cfi.py index 10bb7e3f30afe..a37bba843ef3f 100644 --- a/SimG4Core/Application/python/g4SimHits_cfi.py +++ b/SimG4Core/Application/python/g4SimHits_cfi.py @@ -77,8 +77,9 @@ g4SimHits = cms.EDProducer("OscarMTProducer", g4GeometryDD4hepSource = cms.bool(False), NonBeamEvent = cms.bool(False), - G4EventManagerVerbosity = cms.untracked.int32(0), + EventVerbose = cms.int32(0), UseMagneticField = cms.bool(True), + UseCommandBaseScorer = cms.bool(False), StoreRndmSeeds = cms.bool(False), RestoreRndmSeeds = cms.bool(False), PhysicsTablesDirectory = cms.untracked.string('PhysicsTables'), @@ -107,6 +108,7 @@ NodeNames = cms.vstring('World') ), G4Commands = cms.vstring(), + G4CommandsEndRun = cms.vstring(), SteppingVerbosity = cms.untracked.int32(0), StepVerboseThreshold = cms.untracked.double(0.1), # in GeV VerboseEvents = cms.untracked.vint32(), diff --git a/SimG4Core/Application/src/EventAction.cc b/SimG4Core/Application/src/EventAction.cc index 2a3160e747489..f424abd956caf 100644 --- a/SimG4Core/Application/src/EventAction.cc +++ b/SimG4Core/Application/src/EventAction.cc @@ -8,7 +8,6 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include #include "Randomize.hh" EventAction::EventAction(const edm::ParameterSet& p, diff --git a/SimG4Core/Application/src/LowEnergyFastSimModel.cc b/SimG4Core/Application/src/LowEnergyFastSimModel.cc index 0bdf1f9a23c42..3c18039de5d48 100644 --- a/SimG4Core/Application/src/LowEnergyFastSimModel.cc +++ b/SimG4Core/Application/src/LowEnergyFastSimModel.cc @@ -9,6 +9,7 @@ #include "G4Electron.hh" #include "GFlashHitMaker.hh" #include "G4Region.hh" +#include "G4Material.hh" #include "G4Positron.hh" #include "G4ParticleDefinition.hh" #include "G4PhysicalConstants.hh" @@ -23,6 +24,21 @@ LowEnergyFastSimModel::LowEnergyFastSimModel(const G4String& name, G4Region* reg fTailPos(0., 0., 0.) { fEmax = parSet.getParameter("LowEnergyGflashEcalEmax") * CLHEP::GeV; fPositron = G4Positron::Positron(); + fMaterial = nullptr; + auto table = G4Material::GetMaterialTable(); + for (auto& mat : *table) { + G4String nam = mat->GetName(); + size_t n = nam.size(); + if (n > 4) { + G4String sn = nam.substr(n - 5, 5); + if (sn == "PbWO4") { + fMaterial = mat; + break; + } + } + } + G4String nm = (nullptr == fMaterial) ? "not found!" : fMaterial->GetName(); + edm::LogVerbatim("LowEnergyFastSimModel") << "LowEGFlash material: <" << nm << ">"; } G4bool LowEnergyFastSimModel::IsApplicable(const G4ParticleDefinition& particle) { @@ -40,7 +56,12 @@ G4bool LowEnergyFastSimModel::ModelTrigger(const G4FastTrack& fastTrack) { return false; } G4double energy = track->GetKineticEnergy(); - return (energy < fEmax && fRegion == fastTrack.GetEnvelope()); + /* + edm::LogVerbatim("LowEnergyFastSimModel") << track->GetDefinition()->GetParticleName() + << " Ekin(MeV)=" << energy << " material: <" + << track->GetMaterial()->GetName() << ">"; + */ + return (energy < fEmax && fMaterial == track->GetMaterial()); } void LowEnergyFastSimModel::DoIt(const G4FastTrack& fastTrack, G4FastStep& fastStep) { @@ -66,10 +87,18 @@ void LowEnergyFastSimModel::DoIt(const G4FastTrack& fastTrack, G4FastStep& fastS fHitMaker.make(&spot, &fastTrack); // tail energy deposition - G4double etail = energy - inPointEnergy; - const G4int nspots = (G4int)(etail) + 1; - const G4double tailEnergy = etail / (G4double)nspots; - for (G4int i = 0; i < nspots; ++i) { + const G4double etail = energy - inPointEnergy; + const G4int nspots = etail; + const G4double tailEnergy = etail / (nspots + 1); + /* + edm::LogVerbatim("LowEnergyFastSimModel") << track->GetDefinition()->GetParticleName() + << " Ekin(MeV)=" << energy << " material: <" + << track->GetMaterial()->GetName() + << "> Elocal=" << inPointEnergy + << " Etail=" << tailEnergy + << " Nspots=" << nspots+1; + */ + for (G4int i = 0; i <= nspots; ++i) { const G4double r = fParam.GetRadius(energy); const G4double z = fParam.GetZ(); diff --git a/SimG4Core/Application/src/RunManagerMT.cc b/SimG4Core/Application/src/RunManagerMT.cc index 68b561664cf8e..804432ab5ab9e 100644 --- a/SimG4Core/Application/src/RunManagerMT.cc +++ b/SimG4Core/Application/src/RunManagerMT.cc @@ -30,6 +30,7 @@ #include "G4Timer.hh" #include "G4GeometryManager.hh" +#include "G4ScoringManager.hh" #include "G4StateManager.hh" #include "G4ApplicationState.hh" #include "G4MTRunManagerKernel.hh" @@ -74,6 +75,7 @@ RunManagerMT::RunManagerMT(edm::ParameterSet const& p) m_pRunAction(p.getParameter("RunAction")), m_g4overlap(p.getUntrackedParameter("G4CheckOverlap")), m_G4Commands(p.getParameter >("G4Commands")), + m_G4CommandsEndRun(p.getParameter >("G4CommandsEndRun")), m_p(p) { m_currentRun = nullptr; m_UIsession = new CustomUIsession(); @@ -186,6 +188,12 @@ void RunManagerMT::initG4(const DDCompactView* pDD, edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMT: PhysicsList and cuts are defined"; + // Enable couple transportation + bool scorer = m_p.getParameter("UseCommandBaseScorer"); + if (scorer) { + G4ScoringManager* scManager = G4ScoringManager::GetScoringManager(); + scManager->SetVerboseLevel(1); + } // Geant4 UI commands before initialisation of physics if (!m_G4Commands.empty()) { edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMT: Requested UI commands: "; @@ -271,6 +279,14 @@ void RunManagerMT::Connect(RunAction* runAction) { void RunManagerMT::stopG4() { G4GeometryManager::GetInstance()->OpenGeometry(); m_stateManager->SetNewState(G4State_Quit); + // Geant4 UI commands after the run + if (!m_G4CommandsEndRun.empty()) { + edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMT: Requested end of run UI commands: "; + for (const std::string& command : m_G4CommandsEndRun) { + edm::LogVerbatim("SimG4CoreApplication") << " " << command; + G4UImanager::GetUIpointer()->ApplyCommand(command); + } + } if (!m_runTerminated) { terminateRun(); } diff --git a/SimG4Core/Application/src/RunManagerMTWorker.cc b/SimG4Core/Application/src/RunManagerMTWorker.cc index 5d5e245e1f08b..07834399de8c2 100644 --- a/SimG4Core/Application/src/RunManagerMTWorker.cc +++ b/SimG4Core/Application/src/RunManagerMTWorker.cc @@ -21,7 +21,6 @@ #include "FWCore/Utilities/interface/Exception.h" #include "FWCore/Utilities/interface/thread_safety_macros.h" -#include "SimG4Core/Notification/interface/G4SimEvent.h" #include "SimG4Core/Notification/interface/SimActivityRegistry.h" #include "SimG4Core/Notification/interface/BeginOfJob.h" #include "SimG4Core/Notification/interface/CMSSteppingVerbose.h" @@ -150,7 +149,6 @@ RunManagerMTWorker::RunManagerMTWorker(const edm::ParameterSet& iConfig, edm::Co m_pUseMagneticField(iConfig.getParameter("UseMagneticField")), m_LHCTransport(iConfig.getParameter("LHCTransport")), m_thread_index{get_new_thread_index()}, - m_EvtMgrVerbosity(iConfig.getUntrackedParameter("G4EventManagerVerbosity", 0)), m_pField(iConfig.getParameter("MagneticField")), m_pRunAction(iConfig.getParameter("RunAction")), m_pEventAction(iConfig.getParameter("EventAction")), @@ -378,8 +376,9 @@ void RunManagerMTWorker::initializeUserActions() { m_tls->userRunAction->SetMaster(false); Connect(m_tls->userRunAction.get()); + G4int ver = m_p.getParameter("EventVerbose"); G4EventManager* eventManager = m_tls->kernel->GetEventManager(); - eventManager->SetVerboseLevel(m_EvtMgrVerbosity); + eventManager->SetVerboseLevel(ver); EventAction* userEventAction = new EventAction(m_pEventAction, m_tls->runInterface.get(), m_tls->trackManager.get(), m_sVerbose.get()); @@ -456,7 +455,6 @@ void RunManagerMTWorker::terminateRun() { m_tls->userRunAction.reset(); } m_tls->currentEvent.reset(); - m_simEvent = nullptr; if (m_tls->kernel) { m_tls->kernel->RunTermination(); @@ -465,9 +463,9 @@ void RunManagerMTWorker::terminateRun() { m_tls->runTerminated = true; } -std::unique_ptr RunManagerMTWorker::produce(const edm::Event& inpevt, - const edm::EventSetup& es, - RunManagerMT& runManagerMaster) { +G4SimEvent* RunManagerMTWorker::produce(const edm::Event& inpevt, + const edm::EventSetup& es, + RunManagerMT& runManagerMaster) { // The initialization and begin/end run is a bit convoluted due to // - Geant4 deals per-thread // - OscarMTProducer deals per-stream @@ -494,16 +492,15 @@ std::unique_ptr RunManagerMTWorker::produce(const edm::Event& inpevt m_tls->currentEvent.reset(generateEvent(inpevt)); - auto simEvent = std::make_unique(); - m_simEvent = simEvent.get(); - m_simEvent->hepEvent(m_generator.genEvent()); - m_simEvent->weight(m_generator.eventWeight()); + m_simEvent.clear(); + m_simEvent.hepEvent(m_generator.genEvent()); + m_simEvent.weight(m_generator.eventWeight()); if (m_generator.genVertex() != nullptr) { auto genVertex = m_generator.genVertex(); - m_simEvent->collisionPoint(math::XYZTLorentzVectorD(genVertex->x() / CLHEP::cm, - genVertex->y() / CLHEP::cm, - genVertex->z() / CLHEP::cm, - genVertex->t() / CLHEP::second)); + m_simEvent.collisionPoint(math::XYZTLorentzVectorD(genVertex->x() / CLHEP::cm, + genVertex->y() / CLHEP::cm, + genVertex->z() / CLHEP::cm, + genVertex->t() / CLHEP::second)); } if (m_tls->currentEvent->GetNumberOfPrimaryVertex() == 0) { throw cms::Exception("EventCorruption") @@ -513,9 +510,9 @@ std::unique_ptr RunManagerMTWorker::produce(const edm::Event& inpevt } else { edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMTWorker::produce: start EventID=" << inpevt.id().event() << " StreamID=" << inpevt.streamID() - << " threadIndex=" << getThreadIndex() << " weight=" << m_simEvent->weight() << "; " + << " threadIndex=" << getThreadIndex() << " weight=" << m_simEvent.weight() << "; " << m_tls->currentEvent->GetNumberOfPrimaryVertex() << " vertices for Geant4; generator produced " - << m_simEvent->nGenParts() << " particles."; + << m_simEvent.nGenParts() << " particles."; m_tls->kernel->GetEventManager()->ProcessOneEvent(m_tls->currentEvent.get()); } @@ -527,8 +524,7 @@ std::unique_ptr RunManagerMTWorker::produce(const edm::Event& inpevt sd->reset(); } edm::LogVerbatim("SimG4CoreApplication") << "RunManagerMTWorker::produce: ended Event " << inpevt.id().event(); - m_simEvent = nullptr; - return simEvent; + return &m_simEvent; } void RunManagerMTWorker::abortEvent() { @@ -558,7 +554,6 @@ void RunManagerMTWorker::abortRun(bool softAbort) { G4Event* RunManagerMTWorker::generateEvent(const edm::Event& inpevt) { m_tls->currentEvent.reset(); - m_simEvent = nullptr; // 64 bits event ID in CMSSW converted into Geant4 event ID G4int evtid = (G4int)inpevt.id().event(); diff --git a/SimG4Core/Application/src/StackingAction.cc b/SimG4Core/Application/src/StackingAction.cc index fcad95591db00..5b7d2903495c4 100644 --- a/SimG4Core/Application/src/StackingAction.cc +++ b/SimG4Core/Application/src/StackingAction.cc @@ -174,6 +174,7 @@ G4ClassificationOfNewTrack StackingAction::ClassifyNewTrack(const G4Track* aTrac G4ClassificationOfNewTrack classification = fUrgent; const int pdg = aTrack->GetDefinition()->GetPDGEncoding(); const int abspdg = std::abs(pdg); + auto track = const_cast(aTrack); // primary if (aTrack->GetCreatorProcess() == nullptr || aTrack->GetParentID() == 0) { @@ -182,7 +183,7 @@ G4ClassificationOfNewTrack StackingAction::ClassifyNewTrack(const G4Track* aTrac } else if (worldSolid->Inside(aTrack->GetPosition()) == kOutside) { classification = fKill; } else { - newTA->primary(aTrack); + newTA->primary(track); } } else { // secondary @@ -201,7 +202,7 @@ G4ClassificationOfNewTrack StackingAction::ClassifyNewTrack(const G4Track* aTrac classification = fKill; } else { const G4Track* mother = trackAction->geant4Track(); - newTA->secondary(aTrack, *mother, 0); + newTA->secondary(track, *mother, 0); } } else if (isItOutOfTimeWindow(reg, time)) { @@ -217,7 +218,7 @@ G4ClassificationOfNewTrack StackingAction::ClassifyNewTrack(const G4Track* aTrac auto ptr = static_cast(proc); proc = ptr->GetSelectedProcess(); subType = proc->GetProcessSubType(); - const_cast(aTrack)->SetCreatorProcess(proc); + track->SetCreatorProcess(proc); } LogDebug("SimG4CoreApplication") << "##StackingAction:Classify Track " << aTrack->GetTrackID() << " Parent " << aTrack->GetParentID() << " " << aTrack->GetDefinition()->GetParticleName() @@ -329,7 +330,7 @@ G4ClassificationOfNewTrack StackingAction::ClassifyNewTrack(const G4Track* aTrac } if (prob < 1.0 && aTrack->GetKineticEnergy() < elim) { if (G4UniformRand() < prob) { - const_cast(aTrack)->SetWeight(currentWeight / prob); + track->SetWeight(currentWeight / prob); } else { classification = fKill; } @@ -337,7 +338,7 @@ G4ClassificationOfNewTrack StackingAction::ClassifyNewTrack(const G4Track* aTrac } } if (classification != fKill) { - newTA->secondary(aTrack, *mother, flag); + newTA->secondary(track, *mother, flag); } LogDebug("SimG4CoreApplication") << "StackingAction:Classify Track " << aTrack->GetTrackID() << " Parent " << aTrack->GetParentID() diff --git a/SimG4Core/Application/src/ThreadHandoff.cc b/SimG4Core/Application/src/ThreadHandoff.cc index 16db02c60df89..eb3fa62242770 100644 --- a/SimG4Core/Application/src/ThreadHandoff.cc +++ b/SimG4Core/Application/src/ThreadHandoff.cc @@ -15,6 +15,7 @@ // user include files #include "SimG4Core/Application/interface/ThreadHandoff.h" #include "FWCore/Utilities/interface/Exception.h" +#include // // constants, enums and typedefs diff --git a/SimG4Core/Application/src/TrackingAction.cc b/SimG4Core/Application/src/TrackingAction.cc index 174a256d2b15a..6845751aeba21 100644 --- a/SimG4Core/Application/src/TrackingAction.cc +++ b/SimG4Core/Application/src/TrackingAction.cc @@ -18,13 +18,17 @@ TrackingAction::TrackingAction(EventAction* e, const edm::ParameterSet& p, CMSSteppingVerbose* sv) : eventAction_(e), - currentTrack_(nullptr), steppingVerbose_(sv), - g4Track_(nullptr), checkTrack_(p.getUntrackedParameter("CheckTrack", false)), doFineCalo_(p.getParameter("DoFineCalo")), saveCaloBoundaryInformation_(p.getParameter("SaveCaloBoundaryInformation")), - eMinFine_(p.getParameter("EminFineTrack") * CLHEP::MeV) {} + eMinFine_(p.getParameter("EminFineTrack") * CLHEP::MeV) { + if (!doFineCalo_) { + eMinFine_ = DBL_MAX; + } + edm::LogVerbatim("SimG4CoreApplication") << "TrackingAction: boundary: " << saveCaloBoundaryInformation_ + << "; DoFineCalo: " << doFineCalo_ << "; EminFineTrack(MeV)=" << eMinFine_; +} TrackingAction::~TrackingAction() {} @@ -35,120 +39,104 @@ void TrackingAction::PreUserTrackingAction(const G4Track* aTrack) { BeginOfTrack bt(aTrack); m_beginOfTrackSignal(&bt); - TrackInformation* trkInfo = (TrackInformation*)aTrack->GetUserInformation(); - if (trkInfo && trkInfo->isPrimary()) { + trkInfo_ = static_cast(aTrack->GetUserInformation()); + + // Always save primaries + // Decays from primaries are marked as primaries (see NewTrackAction), but are not saved by + // default. The primary is the earliest ancestor, and it must be saved. + if (trkInfo_->isPrimary()) { eventAction_->prepareForNewPrimary(); + currentTrack_->save(); } if (nullptr != steppingVerbose_) { steppingVerbose_->TrackStarted(aTrack, false); } + double ekin = aTrack->GetKineticEnergy(); - if (doFineCalo_) { #ifdef EDM_ML_DEBUG - edm::LogVerbatim("DoFineCalo") << "PreUserTrackingAction: Start processing track " << aTrack->GetTrackID() - << " pdgid=" << aTrack->GetDefinition()->GetPDGEncoding() - << " ekin[GeV]=" << aTrack->GetKineticEnergy() / CLHEP::GeV << " vertex[cm]=(" - << aTrack->GetVertexPosition().x() / CLHEP::cm << "," - << aTrack->GetVertexPosition().y() / CLHEP::cm << "," - << aTrack->GetVertexPosition().z() / CLHEP::cm << ")" - << " parentid=" << aTrack->GetParentID(); + edm::LogVerbatim("DoFineCalo") << "PreUserTrackingAction: Start processing track " << aTrack->GetTrackID() + << " pdgid=" << aTrack->GetDefinition()->GetPDGEncoding() + << " ekin[GeV]=" << ekin / CLHEP::GeV << " vertex[cm]=(" + << aTrack->GetVertexPosition().x() / CLHEP::cm << "," + << aTrack->GetVertexPosition().y() / CLHEP::cm << "," + << aTrack->GetVertexPosition().z() / CLHEP::cm << ")" + << " parentid=" << aTrack->GetParentID(); #endif + if (ekin > eMinFine_) { // It is impossible to tell whether daughter tracks if this track may need to be saved at - // this point; Therefore, *every* track is put in history, so that it can potentially be saved - // later. - trkInfo->putInHistory(); - // Always save primaries - // Decays from primaries are marked as primaries (see NewTrackAction), but are not saved by - // default. The primary is the earliest ancestor, and it must be saved. - if (trkInfo->isPrimary()) - currentTrack_->save(); + // this point; Therefore, every track above the threshold is put in history, + // so that it can potentially be saved later. + trkInfo_->putInHistory(); } } void TrackingAction::PostUserTrackingAction(const G4Track* aTrack) { - if (eventAction_->trackContainer() != nullptr) { - uint32_t id = aTrack->GetTrackID(); - math::XYZVectorD pos(aTrack->GetStep()->GetPostStepPoint()->GetPosition().x(), - aTrack->GetStep()->GetPostStepPoint()->GetPosition().y(), - aTrack->GetStep()->GetPostStepPoint()->GetPosition().z()); - math::XYZTLorentzVectorD mom; - std::pair p(pos, mom); + int id = aTrack->GetTrackID(); + const auto& ppos = aTrack->GetStep()->GetPostStepPoint()->GetPosition(); + math::XYZVectorD pos(ppos.x(), ppos.y(), ppos.z()); + math::XYZTLorentzVectorD mom; + std::pair p(pos, mom); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("DoFineCalo") << "PostUserTrackingAction:" - << " aTrack->GetTrackID()=" << aTrack->GetTrackID() - << " currentTrack_->saved()=" << currentTrack_->saved() << " PostStepPosition=(" - << pos.x() << "," << pos.y() << "," << pos.z() << ")"; + edm::LogVerbatim("DoFineCalo") << "PostUserTrackingAction:" + << " aTrack->GetTrackID()=" << id + << " currentTrack_->saved()=" << currentTrack_->saved(); #endif - if (doFineCalo_) { - TrackInformation* trkInfo = (TrackInformation*)aTrack->GetUserInformation(); - // Add the post-step position for _every_ track - // in history to the TrackManager. Tracks in history _may_ be upgraded to stored - // tracks, at which point the post-step position is needed again. - eventAction_->addTkCaloStateInfo(id, p); - if (trkInfo->crossedBoundary()) { - currentTrack_->save(); - currentTrack_->setCrossedBoundaryPosMom(id, trkInfo->getPositionAtBoundary(), trkInfo->getMomentumAtBoundary()); -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("DoFineCalo") << "PostUserTrackingAction:" - << " Track " << aTrack->GetTrackID() << " crossed boundary; pos=(" - << trkInfo->getPositionAtBoundary().x() << "," - << trkInfo->getPositionAtBoundary().y() << "," - << trkInfo->getPositionAtBoundary().z() << ")" - << " mom[GeV]=(" << trkInfo->getMomentumAtBoundary().x() << "," - << trkInfo->getMomentumAtBoundary().y() << "," - << trkInfo->getMomentumAtBoundary().z() << "," - << trkInfo->getMomentumAtBoundary().e() << ")"; -#endif - } - } - - TrackInformation* trkInfo = (TrackInformation*)aTrack->GetUserInformation(); - if (extractor_(aTrack).storeTrack() || currentTrack_->saved() || - (saveCaloBoundaryInformation_ && trkInfo->crossedBoundary())) { - if (trkInfo->crossedBoundary()) { - currentTrack_->setCrossedBoundaryPosMom(id, trkInfo->getPositionAtBoundary(), trkInfo->getMomentumAtBoundary()); - } - currentTrack_->save(); + bool boundary = false; + if (doFineCalo_) { + // Add the post-step position for _every_ track + // in history to the TrackManager. Tracks in history _may_ be upgraded to stored + // tracks, at which point the post-step position is needed again. + eventAction_->addTkCaloStateInfo(id, p); + boundary = true; + } else if (trkInfo_->storeTrack() || currentTrack_->saved() || + (saveCaloBoundaryInformation_ && trkInfo_->crossedBoundary())) { + currentTrack_->save(); + eventAction_->addTkCaloStateInfo(id, p); + boundary = true; + } + if (boundary && trkInfo_->crossedBoundary()) { + currentTrack_->setCrossedBoundaryPosMom(id, trkInfo_->getPositionAtBoundary(), trkInfo_->getMomentumAtBoundary()); + currentTrack_->save(); - eventAction_->addTkCaloStateInfo(id, p); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("SimTrackManager") - << "TrackingAction addTkCaloStateInfo " << id << " of momentum " << mom << " at " << pos; + edm::LogVerbatim("DoFineCalo") << "PostUserTrackingAction:" + << " Track " << id << " crossed boundary; pos=(" + << trkInfo_->getPositionAtBoundary().x() << "," + << trkInfo_->getPositionAtBoundary().y() << "," + << trkInfo_->getPositionAtBoundary().z() << ")" + << " mom[GeV]=(" << trkInfo_->getMomentumAtBoundary().x() << "," + << trkInfo_->getMomentumAtBoundary().y() << "," + << trkInfo_->getMomentumAtBoundary().z() << "," + << trkInfo_->getMomentumAtBoundary().e() << ")"; #endif - } + } - bool withAncestor = - ((extractor_(aTrack).getIDonCaloSurface() == aTrack->GetTrackID()) || (extractor_(aTrack).isAncestor())); + bool withAncestor = (trkInfo_->getIDonCaloSurface() == id || trkInfo_->isAncestor()); - if (extractor_(aTrack).isInHistory()) { - // check with end-of-track information - if (checkTrack_) { - currentTrack_->checkAtEnd(aTrack); - } + if (trkInfo_->isInHistory()) { + // check with end-of-track information + if (checkTrack_) { + currentTrack_->checkAtEnd(aTrack); + } - eventAction_->addTrack(currentTrack_, true, withAncestor); + eventAction_->addTrack(currentTrack_, true, withAncestor); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("SimTrackManager") - << "TrackingAction addTrack " << currentTrack_->trackID() << " E(GeV)= " << aTrack->GetKineticEnergy() << " " - << aTrack->GetDefinition()->GetParticleName() << " added= " << withAncestor << " at " - << aTrack->GetPosition(); - edm::LogVerbatim("SimTrackManager") << "TrackingAction addTrack " << currentTrack_->trackID() << " added with " - << true << " and " << withAncestor << " at " << pos; + edm::LogVerbatim("SimTrackManager") << "TrackingAction addTrack " << id << " " + << aTrack->GetDefinition()->GetParticleName() << " added= " << withAncestor + << " at " << aTrack->GetPosition(); #endif - } else { - eventAction_->addTrack(currentTrack_, false, false); + } else { + eventAction_->addTrack(currentTrack_, false, false); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("SimTrackManager") - << "TrackingAction addTrack " << currentTrack_->trackID() << " added with " << false << " and " << false; + edm::LogVerbatim("SimTrackManager") << "TrackingAction addTrack " << id << " added with " << false << " and " + << false; #endif - - delete currentTrack_; - } + delete currentTrack_; } if (nullptr != steppingVerbose_) { steppingVerbose_->TrackEnded(aTrack); @@ -156,6 +144,4 @@ void TrackingAction::PostUserTrackingAction(const G4Track* aTrack) { EndOfTrack et(aTrack); m_endOfTrackSignal(&et); - - currentTrack_ = nullptr; // reset for next track } diff --git a/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step1_cfg.py b/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step1_cfg.py index fcda5293911dd..9866fbcbdf40f 100644 --- a/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step1_cfg.py +++ b/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step1_cfg.py @@ -93,7 +93,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.generator = cms.EDFilter("Pythia8GeneratorFilter", pythiaHepMCVerbosity = cms.untracked.bool(False), diff --git a/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step2_cfg.py b/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step2_cfg.py index 5da8459a98828..1648f43f7dedc 100644 --- a/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step2_cfg.py +++ b/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step2_cfg.py @@ -106,7 +106,7 @@ # Other statements process.mix.digitizers = cms.PSet(process.theDigitizersValid) from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # Path and EndPath definitions process.digitisation_step = cms.Path(process.pdigi_valid) diff --git a/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step3_cfg.py b/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step3_cfg.py index 8ea1b38579ab7..771c61b9a0cf4 100644 --- a/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step3_cfg.py +++ b/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step3_cfg.py @@ -167,7 +167,7 @@ for a in process.aliases: delattr(process, a) process.RandomNumberGeneratorService.restoreStateLabel=cms.untracked.string("randomEngineStateProducer") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # Path and EndPath definitions process.raw2digi_step = cms.Path(process.RawToDigi) diff --git a/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step4_cfg.py b/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step4_cfg.py index 718e8e3befc16..3a1c159546015 100644 --- a/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step4_cfg.py +++ b/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step4_cfg.py @@ -66,7 +66,7 @@ # Other statements from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # Path and EndPath definitions process.genHarvesting = cms.Path(process.postValidation_gen) diff --git a/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step5_cfg.py b/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step5_cfg.py index f2586e4a99774..8fd20c81c4aee 100644 --- a/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step5_cfg.py +++ b/SimG4Core/Configuration/test/dd4hep_ZMM_Run3_Step5_cfg.py @@ -302,7 +302,7 @@ process.ALCARECOEventContent.outputCommands.extend(process.OutALCARECOTkAlJpsiMuMu_noDrop.outputCommands) process.ALCARECOEventContent.outputCommands.extend(process.OutALCARECOSiStripCalMinBias_noDrop.outputCommands) from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # Path and EndPath definitions process.endjob_step = cms.EndPath(process.endOfProcess) diff --git a/SimG4Core/Configuration/test/dd4hep_ttbar_Run3_Step1_cfg.py b/SimG4Core/Configuration/test/dd4hep_ttbar_Run3_Step1_cfg.py index 5b558b9fdba1a..bb232f9c6ca45 100644 --- a/SimG4Core/Configuration/test/dd4hep_ttbar_Run3_Step1_cfg.py +++ b/SimG4Core/Configuration/test/dd4hep_ttbar_Run3_Step1_cfg.py @@ -81,7 +81,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.generator = cms.EDFilter("Pythia8GeneratorFilter", PythiaParameters = cms.PSet( diff --git a/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step1_cfg.py b/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step1_cfg.py index da4f3abbb8154..26f1441973de9 100644 --- a/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step1_cfg.py +++ b/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step1_cfg.py @@ -90,7 +90,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.generator = cms.EDFilter("Pythia8GeneratorFilter", pythiaHepMCVerbosity = cms.untracked.bool(False), diff --git a/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step2_cfg.py b/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step2_cfg.py index 1c7997086f42f..3b2f7d181aa1d 100644 --- a/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step2_cfg.py +++ b/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step2_cfg.py @@ -105,7 +105,7 @@ # Other statements process.mix.digitizers = cms.PSet(process.theDigitizersValid) from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # Path and EndPath definitions process.digitisation_step = cms.Path(process.pdigi_valid) diff --git a/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step3_cfg.py b/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step3_cfg.py index 19dd06f97e305..ac80ae5bca854 100644 --- a/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step3_cfg.py +++ b/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step3_cfg.py @@ -167,7 +167,7 @@ for a in process.aliases: delattr(process, a) process.RandomNumberGeneratorService.restoreStateLabel=cms.untracked.string("randomEngineStateProducer") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # Path and EndPath definitions process.raw2digi_step = cms.Path(process.RawToDigi) diff --git a/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step4_cfg.py b/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step4_cfg.py index 46b0d62406c04..62645c5a5266a 100644 --- a/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step4_cfg.py +++ b/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step4_cfg.py @@ -66,7 +66,7 @@ # Other statements from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # Path and EndPath definitions process.genHarvesting = cms.Path(process.postValidation_gen) diff --git a/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step5_cfg.py b/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step5_cfg.py index 8a0a47936d324..b74641fed44bb 100644 --- a/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step5_cfg.py +++ b/SimG4Core/Configuration/test/ddd_ZMM_Run3_Step5_cfg.py @@ -302,7 +302,7 @@ process.ALCARECOEventContent.outputCommands.extend(process.OutALCARECOTkAlJpsiMuMu_noDrop.outputCommands) process.ALCARECOEventContent.outputCommands.extend(process.OutALCARECOSiStripCalMinBias_noDrop.outputCommands) from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # Path and EndPath definitions process.endjob_step = cms.EndPath(process.endOfProcess) diff --git a/SimG4Core/KillSecondaries/src/KillSecondariesStackingAction.cc b/SimG4Core/KillSecondaries/src/KillSecondariesStackingAction.cc index 8df4084ab67f3..5ff2c8df33895 100644 --- a/SimG4Core/KillSecondaries/src/KillSecondariesStackingAction.cc +++ b/SimG4Core/KillSecondaries/src/KillSecondariesStackingAction.cc @@ -6,12 +6,13 @@ G4ClassificationOfNewTrack KillSecondariesStackingAction::ClassifyNewTrack(const G4Track *aTrack) { NewTrackAction newTA; + auto track = const_cast(aTrack); if (aTrack->GetCreatorProcess() == nullptr || aTrack->GetParentID() == 0) { - newTA.primary(aTrack); + newTA.primary(track); return fUrgent; } else { const G4Track *mother = CurrentG4Track::track(); - newTA.secondary(aTrack, *mother, 0); + newTA.secondary(track, *mother, 0); return fKill; } } diff --git a/SimG4Core/Notification/interface/G4SimEvent.h b/SimG4Core/Notification/interface/G4SimEvent.h index 1e77300288df7..5219967e16b2d 100644 --- a/SimG4Core/Notification/interface/G4SimEvent.h +++ b/SimG4Core/Notification/interface/G4SimEvent.h @@ -17,11 +17,11 @@ class G4SimEvent { virtual ~G4SimEvent(); void load(edm::SimTrackContainer& c) const; void load(edm::SimVertexContainer& c) const; - unsigned int nTracks() const { return g4tracks.size(); } - unsigned int nVertices() const { return g4vertices.size(); } - unsigned int nGenParts() const { return hepMCEvent->particles_size(); } - void hepEvent(const HepMC::GenEvent* r) { hepMCEvent = r; } - const HepMC::GenEvent* hepEvent() const { return hepMCEvent; } + unsigned int nTracks() const { return g4tracks_.size(); } + unsigned int nVertices() const { return g4vertices_.size(); } + unsigned int nGenParts() const { return hepMCEvent_->particles_size(); } + void hepEvent(const HepMC::GenEvent* r) { hepMCEvent_ = r; } + const HepMC::GenEvent* hepEvent() const { return hepMCEvent_; } void weight(float w) { weight_ = w; } float weight() const { return weight_; } void collisionPoint(const math::XYZTLorentzVectorD& v) { collisionPoint_ = v; } @@ -30,19 +30,18 @@ class G4SimEvent { const int nparam() const { return nparam_; } void param(const std::vector& p) { param_ = p; } const std::vector& param() const { return param_; } - void add(G4SimTrack* t) { g4tracks.push_back(t); } - void add(G4SimVertex* v) { g4vertices.push_back(v); } - const G4SimTrack& g4track(int i) const { return *g4tracks[i - 1]; } - const G4SimVertex& g4vertex(int i) const { return *g4vertices[i - 1]; } + void add(G4SimTrack* t) { g4tracks_.push_back(t); } + void add(G4SimVertex* v) { g4vertices_.push_back(v); } + void clear(); -protected: - const HepMC::GenEvent* hepMCEvent; +private: + const HepMC::GenEvent* hepMCEvent_; float weight_; math::XYZTLorentzVectorD collisionPoint_; int nparam_; std::vector param_; - std::vector g4tracks; - std::vector g4vertices; + std::vector g4tracks_; + std::vector g4vertices_; }; #endif diff --git a/SimG4Core/Notification/interface/G4SimTrack.h b/SimG4Core/Notification/interface/G4SimTrack.h index baafdf1bde4dc..2fb4a41b02041 100644 --- a/SimG4Core/Notification/interface/G4SimTrack.h +++ b/SimG4Core/Notification/interface/G4SimTrack.h @@ -5,7 +5,6 @@ #include "DataFormats/Math/interface/LorentzVector.h" #include "FWCore/Utilities/interface/Exception.h" #include "SimG4Core/Notification/interface/TrackWithHistory.h" -#include #include class G4SimTrack { @@ -57,7 +56,7 @@ class G4SimTrack { tkSurfaceMomentum_(tkmom), crossedBoundary_(false) {} - ~G4SimTrack() {} + ~G4SimTrack() = default; int id() const { return id_; } int part() const { return ipart_; } diff --git a/SimG4Core/Notification/interface/G4SimVertex.h b/SimG4Core/Notification/interface/G4SimVertex.h index f49f8cf28bbe3..6d126b63da496 100644 --- a/SimG4Core/Notification/interface/G4SimVertex.h +++ b/SimG4Core/Notification/interface/G4SimVertex.h @@ -3,14 +3,13 @@ #include "DataFormats/Math/interface/Vector3D.h" #include "DataFormats/Math/interface/LorentzVector.h" -#include #include class G4SimVertex { public: - G4SimVertex() {} G4SimVertex(const math::XYZVectorD& ip, double it, int iv, unsigned int typ = 0) : ilv_(ip), itime_(it), itrack_(iv), procType_(typ) {} + ~G4SimVertex() = default; /// index of the parent (-1 if no parent) const math::XYZVectorD& vertexPosition() const { return ilv_; } double vertexGlobalTime() const { return itime_; } diff --git a/SimG4Core/Notification/interface/TrackInformation.h b/SimG4Core/Notification/interface/TrackInformation.h index 105f6bfcf890a..32b5f4d3cdd2d 100644 --- a/SimG4Core/Notification/interface/TrackInformation.h +++ b/SimG4Core/Notification/interface/TrackInformation.h @@ -67,7 +67,7 @@ class TrackInformation : public G4VUserTrackInformation { momentumAtBoundary_ = math::XYZTLorentzVectorF(track->GetMomentum().x() / CLHEP::GeV, track->GetMomentum().y() / CLHEP::GeV, track->GetMomentum().z() / CLHEP::GeV, - track->GetKineticEnergy() / CLHEP::GeV); + track->GetTotalEnergy() / CLHEP::GeV); } bool crossedBoundary() const { return crossedBoundary_; } const math::XYZTLorentzVectorF &getPositionAtBoundary() const { return positionAtBoundary_; } diff --git a/SimG4Core/Notification/src/G4SimEvent.cc b/SimG4Core/Notification/src/G4SimEvent.cc index ac143e05727c6..db2faff234d22 100644 --- a/SimG4Core/Notification/src/G4SimEvent.cc +++ b/SimG4Core/Notification/src/G4SimEvent.cc @@ -9,34 +9,32 @@ class IdSort { }; G4SimEvent::G4SimEvent() - : hepMCEvent(nullptr), + : hepMCEvent_(nullptr), weight_(0), collisionPoint_(math::XYZTLorentzVectorD(0., 0., 0., 0.)), nparam_(0), - param_(0) {} + param_(0) { + g4vertices_.reserve(2000); + g4tracks_.reserve(4000); +} + +G4SimEvent::~G4SimEvent() { clear(); } -G4SimEvent::~G4SimEvent() { +void G4SimEvent::clear() { // per suggestion by Chris Jones, it's faster // that delete back() and pop_back() - // - unsigned int i = 0; - - for (i = 0; i < g4tracks.size(); i++) { - delete g4tracks[i]; - g4tracks[i] = nullptr; + for (auto& ptr : g4tracks_) { + delete ptr; } - g4tracks.clear(); - - for (i = 0; i < g4vertices.size(); i++) { - delete g4vertices[i]; - g4vertices[i] = nullptr; + g4tracks_.clear(); + for (auto& ptr : g4vertices_) { + delete ptr; } - g4vertices.clear(); + g4vertices_.clear(); } void G4SimEvent::load(edm::SimTrackContainer& c) const { - for (unsigned int i = 0; i < g4tracks.size(); i++) { - G4SimTrack* trk = g4tracks[i]; + for (auto& trk : g4tracks_) { int ip = trk->part(); math::XYZTLorentzVectorD p( trk->momentum().x() / GeV, trk->momentum().y() / GeV, trk->momentum().z() / GeV, trk->energy() / GeV); @@ -66,8 +64,8 @@ void G4SimEvent::load(edm::SimTrackContainer& c) const { } void G4SimEvent::load(edm::SimVertexContainer& c) const { - for (unsigned int i = 0; i < g4vertices.size(); i++) { - G4SimVertex* vtx = g4vertices[i]; + for (unsigned int i = 0; i < g4vertices_.size(); ++i) { + G4SimVertex* vtx = g4vertices_[i]; // // starting 1_1_0_pre3, SimVertex stores in cm !!! // diff --git a/SimG4Core/Notification/src/NewTrackAction.cc b/SimG4Core/Notification/src/NewTrackAction.cc index e6ed0dc397dcd..7eac048553c6c 100644 --- a/SimG4Core/Notification/src/NewTrackAction.cc +++ b/SimG4Core/Notification/src/NewTrackAction.cc @@ -1,6 +1,6 @@ + #include "SimG4Core/Notification/interface/NewTrackAction.h" #include "SimG4Core/Notification/interface/TrackInformation.h" -#include "SimG4Core/Notification/interface/TrackInformationExtractor.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -17,18 +17,10 @@ void NewTrackAction::secondary(const G4Track *aSecondary, const G4Track &mother, } void NewTrackAction::secondary(G4Track *aSecondary, const G4Track &mother, int flag) const { - if (aSecondary->GetParentID() != mother.GetTrackID()) { - G4Exception("SimG4Core/Notification", - "mc001", - FatalException, - "NewTrackAction: secondary parent ID does not match mother id"); - } else { - TrackInformationExtractor extractor; - const TrackInformation &motherInfo(extractor(mother)); - addUserInfoToSecondary(aSecondary, motherInfo, flag); - LogDebug("SimTrackManager") << "NewTrackAction: Add track " << aSecondary->GetTrackID() << " from mother " - << mother.GetTrackID(); - } + const TrackInformation *motherInfo = static_cast(mother.GetUserInformation()); + addUserInfoToSecondary(aSecondary, *motherInfo, flag); + LogDebug("SimTrackManager") << "NewTrackAction: Add track " << aSecondary->GetTrackID() << " from mother " + << mother.GetTrackID(); } void NewTrackAction::addUserInfoToPrimary(G4Track *aTrack) const { diff --git a/SimG4Core/Notification/src/SimTrackManager.cc b/SimG4Core/Notification/src/SimTrackManager.cc index 6e43d931363b8..3daa4473374ff 100644 --- a/SimG4Core/Notification/src/SimTrackManager.cc +++ b/SimG4Core/Notification/src/SimTrackManager.cc @@ -60,7 +60,7 @@ void SimTrackManager::reset() { } void SimTrackManager::deleteTracks() { - for (unsigned int i = 0; i < m_trksForThisEvent->size(); i++) { + for (unsigned int i = 0; i < m_trksForThisEvent->size(); ++i) { delete (*m_trksForThisEvent)[i]; } delete m_trksForThisEvent; @@ -81,10 +81,8 @@ void SimTrackManager::saveTrackAndItsBranch(TrackWithHistory* trkWHist) { TrackContainer::const_iterator tk_itr = std::lower_bound( (*m_trksForThisEvent).begin(), (*m_trksForThisEvent).end(), parent, SimTrackManager::StrictWeakOrdering()); - TrackWithHistory* tempTk = *tk_itr; - if (tk_itr != m_trksForThisEvent->end() && (*tk_itr)->trackID() == parent) { - saveTrackAndItsBranch(tempTk); + saveTrackAndItsBranch(*tk_itr); } } @@ -113,8 +111,7 @@ void SimTrackManager::reallyStoreTracks(G4SimEvent* simEvent) { << m_trksForThisEvent->size(); #endif - for (unsigned int it = 0; it < m_trksForThisEvent->size(); it++) { - TrackWithHistory* trkH = (*m_trksForThisEvent)[it]; + for (auto& trkH : *m_trksForThisEvent) { // at this stage there is one vertex per track, // so the vertex id of track N is also N int ivertex = -1; @@ -122,9 +119,9 @@ void SimTrackManager::reallyStoreTracks(G4SimEvent* simEvent) { math::XYZVectorD pm(0., 0., 0.); unsigned int iParentID = trkH->parentID(); - for (unsigned int iit = 0; iit < m_trksForThisEvent->size(); ++iit) { - if ((*m_trksForThisEvent)[iit]->trackID() == iParentID) { - pm = (*m_trksForThisEvent)[iit]->momentum(); + for (auto& trk : *m_trksForThisEvent) { + if (trk->trackID() == iParentID) { + pm = trk->momentum(); break; } } @@ -151,40 +148,33 @@ void SimTrackManager::reallyStoreTracks(G4SimEvent* simEvent) { } int SimTrackManager::getOrCreateVertex(TrackWithHistory* trkH, int iParentID, G4SimEvent* simEvent) { - int parent = iParentID; - int check = -1; - - for (std::vector::const_iterator it = (*m_trksForThisEvent).begin(); - it != (*m_trksForThisEvent).end(); - it++) { - if ((*it)->trackID() == uint32_t(parent)) { - check = 0; + int parent = -1; + for (auto& trk : *m_trksForThisEvent) { + int id = trk->trackID(); + if (id == iParentID) { + parent = id; break; } } - if (check == -1) { - parent = -1; - } - VertexMap::const_iterator iterator = m_vertexMap.find(parent); if (iterator != m_vertexMap.end()) { // loop over saved vertices - for (unsigned int k = 0; k < m_vertexMap[parent].size(); k++) { - if (sqrt((trkH->vertexPosition() - (((m_vertexMap[parent])[k]).second)).Mag2()) < 0.001) { - return (((m_vertexMap[parent])[k]).first); + for (auto& xx : m_vertexMap[parent]) { + if ((trkH->vertexPosition() - xx.second).Mag2() < 1.e-6) { + return xx.first; } } } unsigned int ptype = 0; const G4VProcess* pr = trkH->creatorProcess(); - if (pr) { + if (nullptr != pr) { ptype = pr->GetProcessSubType(); } simEvent->add(new G4SimVertex(trkH->vertexPosition(), trkH->globalTime(), parent, ptype)); m_vertexMap[parent].push_back(MapVertexPosition(m_nVertices, trkH->vertexPosition())); - m_nVertices++; + ++m_nVertices; return (m_nVertices - 1); } @@ -264,15 +254,15 @@ void SimTrackManager::fillMotherList() { edm::LogError("SimTrackManager") << " SimTrackManager::fillMotherList track index corrupted"; } /* - std::cout << "### SimTrackManager::fillMotherList: " + edm::LogVerbatim("SimTrackManager") << "### SimTrackManager::fillMotherList: " << idsave.size() << " saved; ancestor: " << lastHist << " " << ancestorList.size() << std::endl; for (unsigned int i = 0; i< idsave.size(); ++i) { - std::cout << " ISV: Track ID = " << (idsave[i]).first + edm::LogVerbatim("SimTrackManager") << " ISV: Track ID = " << (idsave[i]).first << " Mother ID = " << (idsave[i]).second << std::endl; } */ - for (unsigned int n = lastHist; n < ancestorList.size(); n++) { + for (unsigned int n = lastHist; n < ancestorList.size(); ++n) { int theMotherId = idSavedTrack((ancestorList[n]).first); ancestorList[n].second = theMotherId; /* @@ -320,23 +310,22 @@ void SimTrackManager::cleanTracksWithHistory() { } #endif - for (unsigned int it = lastTrack; it < m_trksForThisEvent->size(); it++) { - TrackWithHistory* t = (*m_trksForThisEvent)[it]; + for (auto& t : *m_trksForThisEvent) { if (t->saved()) { saveTrackAndItsBranch(t); } } unsigned int num = lastTrack; - for (unsigned int it = lastTrack; it < m_trksForThisEvent->size(); it++) { + for (unsigned int it = lastTrack; it < m_trksForThisEvent->size(); ++it) { TrackWithHistory* t = (*m_trksForThisEvent)[it]; int g4ID = t->trackID(); if (t->saved() == true) { if (it > num) (*m_trksForThisEvent)[num] = t; - num++; - for (unsigned int itr = 0; itr < idsave.size(); itr++) { - if ((idsave[itr]).first == g4ID) { - (idsave[itr]).second = g4ID; + ++num; + for (auto& xx : idsave) { + if (xx.first == g4ID) { + xx.second = g4ID; break; } } @@ -345,12 +334,12 @@ void SimTrackManager::cleanTracksWithHistory() { } } - (*m_trksForThisEvent).resize(num); + m_trksForThisEvent->resize(num); #ifdef DebugLog LogDebug("SimTrackManager") << " AFTER CLEANING, I GET " << (*m_trksForThisEvent).size() << " tracks to be saved persistently"; - for (unsigned int it = 0; it < (*m_trksForThisEvent).size(); it++) { + for (unsigned int it < (*m_trksForThisEvent).size(); ++it) { LogDebug("SimTrackManager") << " Track in position " << it << " G4 track number " << (*m_trksForThisEvent)[it]->trackID() << " mother " << (*m_trksForThisEvent)[it]->parentID() << " Status " @@ -369,15 +358,14 @@ void SimTrackManager::resetGenID() { if (theLHCTlink == nullptr) return; - for (unsigned int it = 0; it < m_trksForThisEvent->size(); it++) { - TrackWithHistory* trkH = (*m_trksForThisEvent)[it]; - int genParticleID_ = trkH->genParticleID(); - if (genParticleID_ == -1) { + for (auto& trkH : *m_trksForThisEvent) { + int genParticleID = trkH->genParticleID(); + if (genParticleID == -1) { continue; } else { - for (unsigned int itrlink = 0; itrlink < (*theLHCTlink).size(); itrlink++) { - if ((*theLHCTlink)[itrlink].afterHector() == genParticleID_) { - trkH->setGenParticleID((*theLHCTlink)[itrlink].beforeHector()); + for (auto& xx : *theLHCTlink) { + if (xx.afterHector() == genParticleID) { + trkH->setGenParticleID(xx.beforeHector()); continue; } } diff --git a/SimG4Core/PhysicsLists/test/minbias_cfg.py b/SimG4Core/PhysicsLists/test/minbias_cfg.py index e41c0d4658180..2e63b645e980c 100644 --- a/SimG4Core/PhysicsLists/test/minbias_cfg.py +++ b/SimG4Core/PhysicsLists/test/minbias_cfg.py @@ -20,7 +20,7 @@ process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') if 'MessageLogger' in process.__dict__: process.MessageLogger.PhysicsList=dict() diff --git a/SimG4Core/PrintGeomInfo/test/python/runDDDDB_cfg.py b/SimG4Core/PrintGeomInfo/test/python/runDDDDB_cfg.py index 021a3eaf16369..dde4eec3bab71 100644 --- a/SimG4Core/PrintGeomInfo/test/python/runDDDDB_cfg.py +++ b/SimG4Core/PrintGeomInfo/test/python/runDDDDB_cfg.py @@ -6,7 +6,7 @@ process.load('Configuration.StandardSequences.GeometrySimDB_cff') process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.load('FWCore.MessageService.MessageLogger_cfi') diff --git a/SimGeneral/MixingModule/python/SiPixelSimParameters_cfi.py b/SimGeneral/MixingModule/python/SiPixelSimParameters_cfi.py index bc2e6ea98b720..830d6b28b738c 100644 --- a/SimGeneral/MixingModule/python/SiPixelSimParameters_cfi.py +++ b/SimGeneral/MixingModule/python/SiPixelSimParameters_cfi.py @@ -49,6 +49,8 @@ def _modifyPixelDigitizerForRun3( digitizer ): SiPixelQualityLabel = cms.string(''), KillBadFEDChannels = cms.bool(False), UseReweighting = cms.bool(False), + applyLateReweighting = cms.bool(False), + store_SimHitEntryExitPoints = cms.bool(False), PrintClusters = cms.bool(False), PrintTemplates = cms.bool(False), DoPixelAging = cms.bool(False), @@ -71,6 +73,7 @@ def _modifyPixelDigitizerForRun3( digitizer ): ThresholdSmearing_BPix_L2 = cms.double(245.0), NoiseInElectrons = cms.double(175.0), MissCalibrate = cms.bool(True), + MissCalInLateCR = cms.bool(True), FPix_SignalResponse_p0 = cms.double(0.0043), FPix_SignalResponse_p1 = cms.double(1.31), FPix_SignalResponse_p2 = cms.double(93.6), @@ -86,6 +89,7 @@ def _modifyPixelDigitizerForRun3( digitizer ): ElectronPerAdc = cms.double(135.0), TofUpperCut = cms.double(12.5), AdcFullScale = cms.int32(255), + AdcFullScLateCR = cms.int32(255), TofLowerCut = cms.double(-12.5), TanLorentzAnglePerTesla_FPix = cms.double(0.106), TanLorentzAnglePerTesla_BPix = cms.double(0.106), diff --git a/SimGeneral/MixingModule/python/aliases_cfi.py b/SimGeneral/MixingModule/python/aliases_cfi.py index db263674f21c4..3c7d89e67444c 100644 --- a/SimGeneral/MixingModule/python/aliases_cfi.py +++ b/SimGeneral/MixingModule/python/aliases_cfi.py @@ -33,8 +33,9 @@ ) _pixelCommon = cms.VPSet( cms.PSet(type = cms.string('PixelDigiedmDetSetVector')), - cms.PSet(type = cms.string('PixelDigiSimLinkedmDetSetVector')) + cms.PSet(type = cms.string('PixelDigiSimLinkedmDetSetVector')), ) + simSiPixelDigis = cms.EDAlias( mix = _pixelCommon ) @@ -94,12 +95,15 @@ 2 : dict(type = "PHGCSimAccumulator"), } ) +from Configuration.ProcessModifiers.runDependentForPixel_cff import runDependentForPixel +(runDependentForPixel).toModify(simSiPixelDigis, mix = _pixelCommon + [cms.PSet(type = cms.string('PixelSimHitExtraInfoedmDetSetVector'))]) from Configuration.Eras.Modifier_phase2_hfnose_cff import phase2_hfnose (~phase2_hfnose).toModify(simHFNoseUnsuppressedDigis, mix = None) from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel phase1Pixel.toModify(simSiPixelDigis, mix = _pixelCommon + [cms.PSet(type = cms.string('PixelFEDChanneledmNewDetSetVector'))]) +(phase1Pixel & runDependentForPixel).toModify(simSiPixelDigis, mix = _pixelCommon + [cms.PSet(type = cms.string('PixelSimHitExtraInfoedmDetSetVector'))] + [cms.PSet(type = cms.string('PixelFEDChanneledmNewDetSetVector'))]) from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker phase2_tracker.toModify(simSiStripDigis, mix = None) diff --git a/SimGeneral/MixingModule/python/pixelDigitizer_cfi.py b/SimGeneral/MixingModule/python/pixelDigitizer_cfi.py index f6b64cac19a97..e5de08d3f5f23 100644 --- a/SimGeneral/MixingModule/python/pixelDigitizer_cfi.py +++ b/SimGeneral/MixingModule/python/pixelDigitizer_cfi.py @@ -29,3 +29,14 @@ # is needed there in stage2. (premix_stage2 & phase2_tracker).toModify(pixelDigitizer, **_premixStage1ModifyDict) from CalibTracker.SiPixelESProducers.PixelFEDChannelCollectionProducer_cfi import * + +# Run-dependent MC +from Configuration.ProcessModifiers.runDependentForPixel_cff import runDependentForPixel +(runDependentForPixel & premix_stage1).toModify(pixelDigitizer, + UseReweighting = False, + applyLateReweighting = False, + store_SimHitEntryExitPoints = True, + AdcFullScale = 1023, + MissCalibrate = False +) + diff --git a/SimGeneral/PreMixingModule/python/mixOne_premix_on_sim_cfi.py b/SimGeneral/PreMixingModule/python/mixOne_premix_on_sim_cfi.py index 0211d7ce3d870..d23680a5a9a34 100644 --- a/SimGeneral/PreMixingModule/python/mixOne_premix_on_sim_cfi.py +++ b/SimGeneral/PreMixingModule/python/mixOne_premix_on_sim_cfi.py @@ -57,6 +57,7 @@ workerType = cms.string("PreMixingSiPixelWorker"), pixeldigiCollectionSig = cms.InputTag("simSiPixelDigis"), pixeldigiCollectionPile = cms.InputTag("simSiPixelDigis"), + pixeldigiExtraCollectionPile = cms.InputTag("simSiPixelDigis"), PixelDigiCollectionDM = cms.string('siPixelDigisDM'), ), strip = cms.PSet( @@ -152,6 +153,14 @@ ), ) +# pixel run-dependent +from Configuration.ProcessModifiers.runDependentForPixel_cff import runDependentForPixel +from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2 +(runDependentForPixel & premix_stage2).toModify(mixData.workers.pixel, + UseReweighting=False, + applyLateReweighting=True, + store_SimHitEntryExitPoints=False +) from Configuration.Eras.Modifier_fastSim_cff import fastSim from FastSimulation.Tracking.recoTrackAccumulator_cfi import recoTrackAccumulator as _recoTrackAccumulator diff --git a/SimMuon/RPCDigitizer/test/runRPCDigiProducer_cfg.py b/SimMuon/RPCDigitizer/test/runRPCDigiProducer_cfg.py index 45b2d2622bb71..d925d991ab00f 100644 --- a/SimMuon/RPCDigitizer/test/runRPCDigiProducer_cfg.py +++ b/SimMuon/RPCDigitizer/test/runRPCDigiProducer_cfg.py @@ -40,7 +40,7 @@ ### 2021 Geometry w/ GEM ### ############################ -# process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_design', '') +# process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_design', '') # from SLHCUpgradeSimulations.Configuration.fixMissingUpgradeGTPayloads import fixRPCConditions # RPC Conditions for Phase2 Detector (2021) # process = fixRPCConditions(process) # RPC Conditions for Phase2 Detector (2021) ### Info: diff --git a/SimPPS/Configuration/test/gluglu_step1_GEN_SIM_2021.py b/SimPPS/Configuration/test/gluglu_step1_GEN_SIM_2021.py index 372f1518414e5..c6484c053a4ba 100644 --- a/SimPPS/Configuration/test/gluglu_step1_GEN_SIM_2021.py +++ b/SimPPS/Configuration/test/gluglu_step1_GEN_SIM_2021.py @@ -33,7 +33,7 @@ process.source = cms.Source("EmptySource") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # generator process.generator = cms.EDFilter("ExhumeGeneratorFilter", diff --git a/SimPPS/Configuration/test/gluglu_step2_DIGI_DIGI2RAW_2021.py b/SimPPS/Configuration/test/gluglu_step2_DIGI_DIGI2RAW_2021.py index 0c064b2202850..5257d46012df8 100644 --- a/SimPPS/Configuration/test/gluglu_step2_DIGI_DIGI2RAW_2021.py +++ b/SimPPS/Configuration/test/gluglu_step2_DIGI_DIGI2RAW_2021.py @@ -74,7 +74,7 @@ # Other statements from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # Path and EndPath definitions diff --git a/SimPPS/Configuration/test/gluglu_step3_RAW2DIGI_L1Reco_RECO_2021.py b/SimPPS/Configuration/test/gluglu_step3_RAW2DIGI_L1Reco_RECO_2021.py index 6285a935d66c3..c1043732fd950 100644 --- a/SimPPS/Configuration/test/gluglu_step3_RAW2DIGI_L1Reco_RECO_2021.py +++ b/SimPPS/Configuration/test/gluglu_step3_RAW2DIGI_L1Reco_RECO_2021.py @@ -45,7 +45,7 @@ # Additional output definition # Other statements from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # Path and EndPath definitions process.raw2digi_step = cms.Path(process.RawToDigi) diff --git a/SimPPS/Configuration/test/pg_step1_GEN_SIM_2021.py b/SimPPS/Configuration/test/pg_step1_GEN_SIM_2021.py index 7b3006bf72ebb..2f85998bf4f39 100644 --- a/SimPPS/Configuration/test/pg_step1_GEN_SIM_2021.py +++ b/SimPPS/Configuration/test/pg_step1_GEN_SIM_2021.py @@ -32,7 +32,7 @@ process.source = cms.Source("EmptySource") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') #process.GlobalTag = GlobalTag(process.GlobalTag, '113X_mcRun3_2021_realistic_Candidate_2021_04_06_19_59_53', '') # generator """ diff --git a/SimPPS/Configuration/test/pg_step2_DIGI_DIGI2RAW_2021.py b/SimPPS/Configuration/test/pg_step2_DIGI_DIGI2RAW_2021.py index 6e6ddf79eeb36..7da1369200e7f 100644 --- a/SimPPS/Configuration/test/pg_step2_DIGI_DIGI2RAW_2021.py +++ b/SimPPS/Configuration/test/pg_step2_DIGI_DIGI2RAW_2021.py @@ -78,7 +78,7 @@ # Other statements from Configuration.AlCa.GlobalTag import GlobalTag #process.GlobalTag = GlobalTag(process.GlobalTag, '113X_mcRun3_2021_realistic_Candidate_2021_04_06_19_59_53', '') -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # Path and EndPath definitions diff --git a/SimPPS/Configuration/test/pg_step3_MCDB_RAW2DIGI_RECO_2021.py b/SimPPS/Configuration/test/pg_step3_MCDB_RAW2DIGI_RECO_2021.py index 813355a55dd12..2e01f96d48e5b 100644 --- a/SimPPS/Configuration/test/pg_step3_MCDB_RAW2DIGI_RECO_2021.py +++ b/SimPPS/Configuration/test/pg_step3_MCDB_RAW2DIGI_RECO_2021.py @@ -48,7 +48,7 @@ # Additional output definition # Other statements from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') #process.GlobalTag = GlobalTag(process.GlobalTag, '113X_mcRun3_2021_realistic_Candidate_2021_04_06_19_59_53', '') # Path and EndPath definitions diff --git a/SimTracker/Common/interface/SimHitInfoForLinks.h b/SimTracker/Common/interface/SimHitInfoForLinks.h index 266a6494205b6..5b782e3eaabc2 100644 --- a/SimTracker/Common/interface/SimHitInfoForLinks.h +++ b/SimTracker/Common/interface/SimHitInfoForLinks.h @@ -11,20 +11,29 @@ class SimHitInfoForLinks { public: - explicit SimHitInfoForLinks(PSimHit const *hitp, size_t hitindex, unsigned int tofbin) - : eventId_(hitp->eventId()), trackIds_(1, hitp->trackId()), hitIndex_(hitindex), tofBin_(tofbin) {} + explicit SimHitInfoForLinks(PSimHit const *hitp, size_t hitindex, unsigned int tofbin, size_t hitInd4CR, float amp) + : eventId_(hitp->eventId()), + trackIds_(1, hitp->trackId()), + hitIndex_(hitindex), + tofBin_(tofbin), + hitInd4CR_(hitInd4CR), + ampl_(amp) {} const EncodedEventId &eventId() const { return eventId_; } const std::vector &trackIds() const { return trackIds_; } std::vector &trackIds() { return trackIds_; } // needed ATM in phase2 digitizer - unsigned int trackId() const { return trackIds_[0]; } - size_t hitIndex() const { return hitIndex_; } - unsigned int tofBin() const { return tofBin_; } + const unsigned int trackId() const { return trackIds_[0]; } + const size_t hitIndex() const { return hitIndex_; } + const unsigned int tofBin() const { return tofBin_; } + const size_t hitIndex4ChargeRew() const { return hitInd4CR_; } + const float getAmpl() const { return ampl_; } private: EncodedEventId eventId_; std::vector trackIds_; size_t hitIndex_; unsigned int tofBin_; + size_t hitInd4CR_; + float ampl_; }; #endif diff --git a/SimTracker/SiPixelDigitizer/plugins/PixelDigiAddTempInfo.h b/SimTracker/SiPixelDigitizer/plugins/PixelDigiAddTempInfo.h new file mode 100644 index 0000000000000..667e989c05eba --- /dev/null +++ b/SimTracker/SiPixelDigitizer/plugins/PixelDigiAddTempInfo.h @@ -0,0 +1,49 @@ +#ifndef PixelDigiAddTempInfo_h +#define PixelDigiAddTempInfo_h + +#include "DataFormats/GeometryVector/interface/LocalPoint.h" + +class PixelDigiAddTempInfo { +public: + PixelDigiAddTempInfo(unsigned int ch, + size_t Hindex, + const Local3DPoint& entryP, + const Local3DPoint& exitP, + int PType, + int PartID, + uint32_t detID, + float InitCharge) { + chan_ = ch; + index_ = Hindex; + theEntryPoint_ = entryP; + theExitPoint_ = exitP; + theProcessType_ = PType; + thePartID_ = PartID; + detectorID_ = detID; + charge_ = InitCharge; + }; + PixelDigiAddTempInfo() = default; + ~PixelDigiAddTempInfo() = default; + const unsigned int channel() const { return chan_; }; + const size_t hitIndex() const { return index_; }; + const Local3DPoint& entryPoint() const { return theEntryPoint_; }; + const Local3DPoint& exitPoint() const { return theExitPoint_; } + const int processType() const { return theProcessType_; }; + const int trackID() const { return thePartID_; }; + const uint32_t detID() const { return detectorID_; }; + const float getCharge() const { return charge_; }; + void addCharge(float charge_to_be_added) { charge_ += charge_to_be_added; }; + + inline bool operator<(const PixelDigiAddTempInfo& other) const { return channel() < other.channel(); } + +private: + unsigned int chan_; + size_t index_; + Local3DPoint theEntryPoint_; + Local3DPoint theExitPoint_; + int theProcessType_; + int thePartID_; + uint32_t detectorID_; + float charge_; +}; +#endif diff --git a/SimTracker/SiPixelDigitizer/plugins/PreMixingSiPixelWorker.cc b/SimTracker/SiPixelDigitizer/plugins/PreMixingSiPixelWorker.cc index 2d3dcd99d9dfb..0d33fa12ec12c 100644 --- a/SimTracker/SiPixelDigitizer/plugins/PreMixingSiPixelWorker.cc +++ b/SimTracker/SiPixelDigitizer/plugins/PreMixingSiPixelWorker.cc @@ -50,10 +50,12 @@ class PreMixingSiPixelWorker : public PreMixingWorker { private: edm::InputTag pixeldigi_collectionSig_; // secondary name given to collection of SiPixel digis edm::InputTag pixeldigi_collectionPile_; // secondary name given to collection of SiPixel digis + edm::InputTag pixeldigi_extraInfo_; // secondary name given to collection of SiPixel digis std::string PixelDigiCollectionDM_; // secondary name to be given to new SiPixel digis edm::EDGetTokenT> PixelDigiToken_; // Token to retrieve information edm::EDGetTokenT> PixelDigiPToken_; // Token to retrieve information + edm::EDGetTokenT> PixelDigiPExtraToken_; const edm::ESGetToken tTopoToken_; const edm::ESGetToken pDDToken_; @@ -69,11 +71,15 @@ class PreMixingSiPixelWorker : public PreMixingWorker { typedef std::multimap OneDetectorMap; // maps by pixel ID for later combination - can have duplicate pixels typedef std::map SiGlobalIndex; // map to all data for each detector ID + typedef std::multimap OneExtraInfoMap; + typedef std::map SiPixelExtraInfo; SiGlobalIndex SiHitStorage_; + SiPixelExtraInfo SiHitExtraStorage_; bool firstInitializeEvent_ = true; bool firstFinalizeEvent_ = true; + bool applyLateReweighting_; }; // Constructor @@ -87,16 +93,21 @@ PreMixingSiPixelWorker::PreMixingSiPixelWorker(const edm::ParameterSet& ps, pixeldigi_collectionSig_ = ps.getParameter("pixeldigiCollectionSig"); pixeldigi_collectionPile_ = ps.getParameter("pixeldigiCollectionPile"); + pixeldigi_extraInfo_ = ps.getParameter("pixeldigiExtraCollectionPile"); PixelDigiCollectionDM_ = ps.getParameter("PixelDigiCollectionDM"); + applyLateReweighting_ = ps.getParameter("applyLateReweighting"); + LogDebug("PreMixingSiPixelWorker") << "applyLateReweighting_ in PreMixingSiPixelWorker " << applyLateReweighting_; PixelDigiToken_ = iC.consumes>(pixeldigi_collectionSig_); PixelDigiPToken_ = iC.consumes>(pixeldigi_collectionPile_); + PixelDigiPExtraToken_ = iC.consumes>(pixeldigi_extraInfo_); producesCollector.produces>(PixelDigiCollectionDM_); producesCollector.produces(PixelDigiCollectionDM_); // clear local storage for this event SiHitStorage_.clear(); + SiHitExtraStorage_.clear(); } // Need an event initialization @@ -149,9 +160,41 @@ void PreMixingSiPixelWorker::addPileups(PileUpEventPrincipal const& pep, edm::Ev edm::Handle> inputHandle; pep.getByLabel(pixeldigi_collectionPile_, inputHandle); + // added for the Late CR + edm::Handle> pixelAddInfo; + pep.getByLabel(pixeldigi_extraInfo_, pixelAddInfo); + const TrackerTopology* tTopo = &es.getData(tTopoToken_); + auto const& pDD = es.getData(pDDToken_); + edm::Service rng; + CLHEP::HepRandomEngine* engine = &rng->getEngine(pep.principal().streamID()); + if (inputHandle.isValid()) { const auto& input = *inputHandle; + bool loadExtraInformation = false; + + if (pixelAddInfo.isValid() && applyLateReweighting_) { + // access the extra information + loadExtraInformation = true; + // Iterate on detector units + edm::DetSetVector::const_iterator detIdIter; + for (detIdIter = pixelAddInfo->begin(); detIdIter != pixelAddInfo->end(); detIdIter++) { + uint32_t detid = detIdIter->id; // = rawid + OneExtraInfoMap LocalExtraMap; + edm::DetSet::const_iterator di; + for (di = detIdIter->data.begin(); di != detIdIter->data.end(); di++) { + LocalExtraMap.insert(OneExtraInfoMap::value_type((di->hitIndex()), *di)); + } + SiHitExtraStorage_.insert(SiPixelExtraInfo::value_type(detid, LocalExtraMap)); + } // end loop on detIdIter + } // end if applyLateReweighting_ + else if (!pixelAddInfo.isValid() && applyLateReweighting_) { + edm::LogError("PreMixingSiPixelWorker") << " Problem in accessing the Extra Pixel SimHit Collection !!!! "; + edm::LogError("PreMixingSiPixelWorker") << " The Late Charge Reweighting can not be applied "; + throw cms::Exception("PreMixingSiPixelWorker") + << " Problem in accessing the Extra Pixel SimHit Collection for Late Charge Reweighting \n"; + } + //loop on all detsets (detectorIDs) inside the input collection edm::DetSetVector::const_iterator DSViter = input.begin(); for (; DSViter != input.end(); DSViter++) { @@ -170,13 +213,39 @@ void PreMixingSiPixelWorker::addPileups(PileUpEventPrincipal const& pep, edm::Ev itest = SiHitStorage_.find(detID); + std::vector TempDigis; + for (icopy = begin; icopy != end; icopy++) { + TempDigis.push_back(*icopy); + } + if (loadExtraInformation) { + // apply the Late Charge Reweighthing on Pile-up digi + SiPixelExtraInfo::const_iterator jtest; + jtest = SiHitExtraStorage_.find(detID); + OneExtraInfoMap LocalSimHitExtraMap = jtest->second; + std::vector TempSimExtra; + for (auto& iLocal : LocalSimHitExtraMap) { + TempSimExtra.push_back(iLocal.second); + } + + for (const auto& iu : pDD.detUnits()) { + if (iu->type().isTrackerPixel()) { + uint32_t detIDinLoop = iu->geographicalId().rawId(); + if (detIDinLoop == detID) { + digitizer_.lateSignalReweight( + dynamic_cast(iu), TempDigis, TempSimExtra, tTopo, engine); + break; + } + } + } + } + if (itest != SiHitStorage_.end()) { // this detID already has hits, add to existing map OneDetectorMap LocalMap = itest->second; // fill in local map with extra channels - for (icopy = begin; icopy != end; icopy++) { - LocalMap.insert(OneDetectorMap::value_type((icopy->channel()), *icopy)); + for (unsigned int ij = 0; ij < TempDigis.size(); ij++) { + LocalMap.insert(OneDetectorMap::value_type((TempDigis[ij].channel()), TempDigis[ij])); } SiHitStorage_[detID] = LocalMap; @@ -185,8 +254,8 @@ void PreMixingSiPixelWorker::addPileups(PileUpEventPrincipal const& pep, edm::Ev OneDetectorMap LocalMap; - for (icopy = begin; icopy != end; icopy++) { - LocalMap.insert(OneDetectorMap::value_type((icopy->channel()), *icopy)); + for (unsigned int ij = 0; ij < TempDigis.size(); ij++) { + LocalMap.insert(OneDetectorMap::value_type((TempDigis[ij].channel()), TempDigis[ij])); } SiHitStorage_.insert(SiGlobalIndex::value_type(detID, LocalMap)); @@ -290,9 +359,11 @@ void PreMixingSiPixelWorker::put(edm::Event& e, if (iu->type().isTrackerPixel()) { edm::DetSet collector(iu->geographicalId().rawId()); edm::DetSet linkcollector( - iu->geographicalId().rawId()); // ignored as DigiSimLinks are combined separately + iu->geographicalId().rawId()); // ignored as DigiSimLinks are combined separately + std::vector tempcollector; // to be ignored ? - digitizer_.digitize(dynamic_cast(iu), collector.data, linkcollector.data, tTopo, engine); + digitizer_.digitize( + dynamic_cast(iu), collector.data, linkcollector.data, tempcollector, tTopo, engine); if (!collector.data.empty()) { theDigiVector.push_back(std::move(collector)); } @@ -303,6 +374,7 @@ void PreMixingSiPixelWorker::put(edm::Event& e, // clear local storage for this event SiHitStorage_.clear(); + SiHitExtraStorage_.clear(); } DEFINE_PREMIXING_WORKER(PreMixingSiPixelWorker); diff --git a/SimTracker/SiPixelDigitizer/plugins/SiPixelChargeReweightingAlgorithm.cc b/SimTracker/SiPixelDigitizer/plugins/SiPixelChargeReweightingAlgorithm.cc index b4b53ed3c57fe..ff23714dfb9cd 100644 --- a/SimTracker/SiPixelDigitizer/plugins/SiPixelChargeReweightingAlgorithm.cc +++ b/SimTracker/SiPixelDigitizer/plugins/SiPixelChargeReweightingAlgorithm.cc @@ -33,12 +33,17 @@ #include "CondFormats/SiPixelObjects/interface/PixelROC.h" +// Geometry +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" +#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h" + using namespace edm; using namespace sipixelobjects; void SiPixelChargeReweightingAlgorithm::init(const edm::EventSetup& es) { // Read template files for charge reweighting - if (UseReweighting) { + if (UseReweighting || applyLateReweighting_) { dbobject_den = &es.getData(SiPixel2DTemp_den_token_); dbobject_num = &es.getData(SiPixel2DTemp_num_token_); @@ -64,14 +69,17 @@ SiPixelChargeReweightingAlgorithm::SiPixelChargeReweightingAlgorithm(const edm:: IDden(conf.exists("TemplateIDdenominator") ? conf.getParameter("TemplateIDdenominator") : 0), UseReweighting(conf.getParameter("UseReweighting")), + applyLateReweighting_(conf.exists("applyLateReweighting") ? conf.getParameter("applyLateReweighting") + : false), PrintClusters(conf.getParameter("PrintClusters")), PrintTemplates(conf.getParameter("PrintTemplates")) { - if (UseReweighting) { + if (UseReweighting || applyLateReweighting_) { SiPixel2DTemp_den_token_ = iC.esConsumes(edm::ESInputTag("", "denominator")); SiPixel2DTemp_num_token_ = iC.esConsumes(edm::ESInputTag("", "numerator")); } edm::LogVerbatim("PixelDigitizer ") << "SiPixelChargeReweightingAlgorithm constructed" - << " with UseReweighting = " << UseReweighting; + << " with UseReweighting = " << UseReweighting + << " and applyLateReweighting_ = " << applyLateReweighting_; } //========================================================================= @@ -84,6 +92,7 @@ SiPixelChargeReweightingAlgorithm::~SiPixelChargeReweightingAlgorithm() { bool SiPixelChargeReweightingAlgorithm::hitSignalReweight(const PSimHit& hit, std::map >& hit_signal, const size_t hitIndex, + const size_t hitIndex4CR, const unsigned int tofBin, const PixelTopology* topol, uint32_t detID, @@ -104,9 +113,9 @@ bool SiPixelChargeReweightingAlgorithm::hitSignalReweight(const PSimHit& hit, int chan = (*im).first; std::pair pixelWithCharge = PixelDigi::channelToPixel(chan); - hitSignal[chan] += - (boolmakeDigiSimLinks ? SiPixelDigitizerAlgorithm::Amplitude((*im).second, &hit, hitIndex, tofBin, (*im).second) - : SiPixelDigitizerAlgorithm::Amplitude((*im).second, (*im).second)); + hitSignal[chan] += (boolmakeDigiSimLinks ? SiPixelDigitizerAlgorithm::Amplitude( + (*im).second, &hit, hitIndex, hitIndex4CR, tofBin, (*im).second) + : SiPixelDigitizerAlgorithm::Amplitude((*im).second, (*im).second)); chargeBefore += (*im).second; if (pixelWithCharge.first < irow_min) @@ -121,11 +130,7 @@ bool SiPixelChargeReweightingAlgorithm::hitSignalReweight(const PSimHit& hit, LocalPoint hitEntryPoint = hit.entryPoint(); - float trajectoryScaleToPosition = hitEntryPoint.z() / direction.z(); - - if ((hitEntryPoint.z() > 0 && direction.z() < 0) || (hitEntryPoint.z() < 0 && direction.z() > 0)) { - trajectoryScaleToPosition *= -1; - } + float trajectoryScaleToPosition = std::abs(hitEntryPoint.z() / direction.z()); LocalPoint hitPosition = hitEntryPoint + trajectoryScaleToPosition * direction; @@ -202,8 +207,6 @@ bool SiPixelChargeReweightingAlgorithm::hitSignalReweight(const PSimHit& hit, return false; } - float cmToMicrons = 10000.f; - track[0] = (hitPosition.x() - origin.x()) * cmToMicrons; track[1] = (hitPosition.y() - origin.y()) * cmToMicrons; track[2] = 0.0f; //Middle of sensor is origin for Z-axis @@ -243,7 +246,7 @@ bool SiPixelChargeReweightingAlgorithm::hitSignalReweight(const PSimHit& hit, } if (PrintClusters) { - std::cout << "Cluster before reweighting: " << std::endl; + LogDebug("PixelDigitizer ") << "Cluster before reweighting: "; printCluster(pixrewgt); } @@ -269,7 +272,7 @@ bool SiPixelChargeReweightingAlgorithm::hitSignalReweight(const PSimHit& hit, } if (PrintClusters) { - std::cout << "Cluster after reweighting: " << std::endl; + LogDebug("PixelDigitizer ") << "Cluster after reweighting: "; printCluster(pixrewgt); } @@ -279,8 +282,9 @@ bool SiPixelChargeReweightingAlgorithm::hitSignalReweight(const PSimHit& hit, if (charge > 0) { chargeAfter += charge; theSignal[PixelDigi::pixelToChannel(hitPixel.first + row - THX, hitPixel.second + col - THY)] += - (boolmakeDigiSimLinks ? SiPixelDigitizerAlgorithm::Amplitude(charge, &hit, hitIndex, tofBin, charge) - : SiPixelDigitizerAlgorithm::Amplitude(charge, charge)); + (boolmakeDigiSimLinks + ? SiPixelDigitizerAlgorithm::Amplitude(charge, &hit, hitIndex, hitIndex4CR, tofBin, charge) + : SiPixelDigitizerAlgorithm::Amplitude(charge, charge)); } } } @@ -290,9 +294,8 @@ bool SiPixelChargeReweightingAlgorithm::hitSignalReweight(const PSimHit& hit, } if (PrintClusters) { - std::cout << std::endl; - std::cout << "Charges (before->after): " << chargeBefore << " -> " << chargeAfter << std::endl; - std::cout << "Charge loss: " << (1 - chargeAfter / chargeBefore) * 100 << " %" << std::endl << std::endl; + LogDebug("PixelDigitizer ") << "Charges (before->after): " << chargeBefore << " -> " << chargeAfter; + LogDebug("PixelDigitizer ") << "Charge loss: " << (1 - chargeAfter / chargeBefore) * 100 << " % \n"; } return true; @@ -333,7 +336,7 @@ int SiPixelChargeReweightingAlgorithm::PixelTempRewgt2D(int id_in, int id_rewgt, cotalpha = track[3] / track[5]; //if track[5] (direction in z) is 0 the hit is not processed by re-weighting cotbeta = track[4] / track[5]; } else { - LogDebug("Pixel Digitizer") << "Reweighting angle is not good!" << std::endl; + LogDebug("Pixel Digitizer") << "Reweighting angle is not good! \n"; return 9; //returned value here indicates that no reweighting was done in this case } @@ -364,13 +367,13 @@ int SiPixelChargeReweightingAlgorithm::PixelTempRewgt2D(int id_in, int id_rewgt, } if (success != 0) { #ifdef TP_DEBUG - LogDebug("Pixel Digitizer") << "No matching template found" << std::endl; + LogDebug("Pixel Digitizer") << "No matching template found \n"; #endif return 2; } if (PrintTemplates) { - std::cout << "Template unirrad: " << std::endl; + LogDebug("Pixel Digitizer") << "Template unirrad: \n"; printCluster(xy_in); } @@ -381,18 +384,18 @@ int SiPixelChargeReweightingAlgorithm::PixelTempRewgt2D(int id_in, int id_rewgt, // Check that the cluster container is a 13x21 matrix if (cluster.num_dimensions() != 2) { - LogWarning("Pixel Digitizer") << "Cluster is not 2-dimensional. Return." << std::endl; + LogWarning("Pixel Digitizer") << "Cluster is not 2-dimensional. Return. \n"; return 3; } nclusx = (int)cluster.shape()[0]; nclusy = (int)cluster.shape()[1]; if (nclusx != TXSIZE || xdouble.size() != TXSIZE) { LogWarning("Pixel Digitizer") << "Sizes in x do not match: nclusx=" << nclusx << " xdoubleSize=" << xdouble.size() - << " TXSIZE=" << TXSIZE << ". Return." << std::endl; + << " TXSIZE=" << TXSIZE << ". Return. \n"; return 4; } if (nclusy != TYSIZE || ydouble.size() != TYSIZE) { - LogWarning("Pixel Digitizer") << "Sizes in y do not match. Return." << std::endl; + LogWarning("Pixel Digitizer") << "Sizes in y do not match. Return. \n"; return 5; } @@ -417,7 +420,7 @@ int SiPixelChargeReweightingAlgorithm::PixelTempRewgt2D(int id_in, int id_rewgt, } if (PrintTemplates) { - std::cout << "Template irrad: " << std::endl; + LogDebug("Pixel Digitizer") << "Template irrad: \n"; printCluster(xy_rewgt); } @@ -470,7 +473,7 @@ int SiPixelChargeReweightingAlgorithm::PixelTempRewgt2D(int id_in, int id_rewgt, } if (PrintTemplates) { - std::cout << "Weights:" << std::endl; + LogDebug("Pixel Digitizer") << "Weights: \n"; printCluster(xy_clust); } @@ -533,32 +536,224 @@ int SiPixelChargeReweightingAlgorithm::PixelTempRewgt2D(int id_in, int id_rewgt, void SiPixelChargeReweightingAlgorithm::printCluster(array_2d& cluster) { for (int col = 0; col < TYSIZE; ++col) { for (int row = 0; row < TXSIZE; ++row) { - std::cout << std::setw(10) << std::setprecision(0) << std::fixed; - std::cout << cluster[row][col]; + LogDebug("Pixel Digitizer") << cluster[row][col]; } - std::cout << std::endl; + LogDebug("Pixel Digitizer") << "\n"; } - std::cout.copyfmt(std::ios(nullptr)); } void SiPixelChargeReweightingAlgorithm::printCluster(float arr[BXM2][BYM2]) { for (int col = 0; col < BYM2; ++col) { for (int row = 0; row < BXM2; ++row) { - std::cout << std::setw(10) << std::setprecision(0) << std::fixed; - std::cout << arr[row][col]; + LogDebug("Pixel Digitizer") << arr[row][col]; } - std::cout << std::endl; + LogDebug("Pixel Digitizer") << "\n"; } - std::cout.copyfmt(std::ios(nullptr)); } void SiPixelChargeReweightingAlgorithm::printCluster(float arr[TXSIZE][TYSIZE]) { for (int col = 0; col < TYSIZE; ++col) { for (int row = 0; row < TXSIZE; ++row) { - std::cout << std::setw(10) << std::fixed; - std::cout << arr[row][col]; + LogDebug("Pixel Digitizer") << arr[row][col]; + } + LogDebug("Pixel Digitizer") << "\n"; + } +} + +bool SiPixelChargeReweightingAlgorithm::lateSignalReweight(const PixelGeomDetUnit* pixdet, + std::vector& digis, + PixelSimHitExtraInfo& loopTempSH, + signal_map_type& theNewDigiSignal, + const TrackerTopology* tTopo, + CLHEP::HepRandomEngine* engine) { + uint32_t detID = pixdet->geographicalId().rawId(); + const PixelTopology* topol = &pixdet->specificTopology(); + + if (UseReweighting) { + LogError("Pixel Digitizer") << " ******************************** \n"; + LogError("Pixel Digitizer") << " ******************************** \n"; + LogError("Pixel Digitizer") << " ******************************** \n"; + LogError("Pixel Digitizer") << " ***** INCONSISTENCY !!! ***** \n"; + LogError("Pixel Digitizer") + << " applyLateReweighting_ and UseReweighting can not be true at the same time for PU ! \n"; + LogError("Pixel Digitizer") << " ---> DO NOT APPLY CHARGE REWEIGHTING TWICE !!! \n"; + LogError("Pixel Digitizer") << " ******************************** \n"; + LogError("Pixel Digitizer") << " ******************************** \n"; + return false; + } + + signal_map_type theDigiSignal; + + int irow_min = topol->nrows(); + int irow_max = 0; + int icol_min = topol->ncolumns(); + int icol_max = 0; + + float chargeBefore = 0; + float chargeAfter = 0; + + //loop on digis + std::vector::const_iterator loopDigi; + for (loopDigi = digis.begin(); loopDigi != digis.end(); ++loopDigi) { + unsigned int chan = loopDigi->channel(); + if (loopTempSH.isInTheList(chan)) { + float corresponding_charge = loopDigi->adc(); + theDigiSignal[chan] += SiPixelDigitizerAlgorithm::Amplitude(corresponding_charge, corresponding_charge); + chargeBefore += corresponding_charge; + if (loopDigi->row() < irow_min) + irow_min = loopDigi->row(); + if (loopDigi->row() > irow_max) + irow_max = loopDigi->row(); + if (loopDigi->column() < icol_min) + icol_min = loopDigi->column(); + if (loopDigi->column() > icol_max) + icol_max = loopDigi->column(); } - std::cout << std::endl; } - std::cout.copyfmt(std::ios(nullptr)); + // end loop on digis + + LocalVector direction = loopTempSH.exitPoint() - loopTempSH.entryPoint(); + LocalPoint hitEntryPoint = loopTempSH.entryPoint(); + float trajectoryScaleToPosition = std::abs(hitEntryPoint.z() / direction.z()); + LocalPoint hitPosition = hitEntryPoint + trajectoryScaleToPosition * direction; + + // addition as now the hit himself is not available + // https://github.com/cms-sw/cmssw/blob/master/SimDataFormats/TrackingHit/interface/PSimHit.h#L52 + LocalPoint hitLocalPosition = hitEntryPoint + 0.5 * direction; + MeasurementPoint hitPositionPixel = topol->measurementPosition(hitLocalPosition); + std::pair hitPixel = + std::pair(int(floor(hitPositionPixel.x())), int(floor(hitPositionPixel.y()))); + + MeasurementPoint originPixel = MeasurementPoint(hitPixel.first - THX + 0.5, hitPixel.second - THY + 0.5); + LocalPoint origin = topol->localPosition(originPixel); + + MeasurementPoint hitEntryPointPixel = topol->measurementPosition(loopTempSH.entryPoint()); + MeasurementPoint hitExitPointPixel = topol->measurementPosition(loopTempSH.exitPoint()); + std::pair entryPixel = + std::pair(int(floor(hitEntryPointPixel.x())), int(floor(hitEntryPointPixel.y()))); + std::pair exitPixel = + std::pair(int(floor(hitExitPointPixel.x())), int(floor(hitExitPointPixel.y()))); + + int hitcol_min, hitcol_max, hitrow_min, hitrow_max; + if (entryPixel.first > exitPixel.first) { + hitrow_min = exitPixel.first; + hitrow_max = entryPixel.first; + } else { + hitrow_min = entryPixel.first; + hitrow_max = exitPixel.first; + } + + if (entryPixel.second > exitPixel.second) { + hitcol_min = exitPixel.second; + hitcol_max = entryPixel.second; + } else { + hitcol_min = entryPixel.second; + hitcol_max = exitPixel.second; + } + + if (!(irow_min <= hitrow_max && irow_max >= hitrow_min && icol_min <= hitcol_max && icol_max >= hitcol_min)) { + // The clusters do not have an overlap, hence the hit is NOT reweighted + return false; + } + + track[0] = (hitPosition.x() - origin.x()) * cmToMicrons; + track[1] = (hitPosition.y() - origin.y()) * cmToMicrons; + track[2] = 0.0f; //Middle of sensor is origin for Z-axis + track[3] = direction.x(); + track[4] = direction.y(); + track[5] = direction.z(); + + array_2d pixrewgt(boost::extents[TXSIZE][TYSIZE]); + + /* + for (int row = 0; row < TXSIZE; ++row) { + for (int col = 0; col < TYSIZE; ++col) { + pixrewgt[row][col] = 0; + } + } +*/ + + for (int row = 0; row < TXSIZE; ++row) { + xdouble[row] = topol->isItBigPixelInX(hitPixel.first + row - THX); + } + + for (int col = 0; col < TYSIZE; ++col) { + ydouble[col] = topol->isItBigPixelInY(hitPixel.second + col - THY); + } + + for (int row = 0; row < TXSIZE; ++row) { + for (int col = 0; col < TYSIZE; ++col) { + //Fill charges into 21x13 Pixel Array with hitPixel in centre + pixrewgt[row][col] = + theDigiSignal[PixelDigi::pixelToChannel(hitPixel.first + row - THX, hitPixel.second + col - THY)]; + } + } + + if (PrintClusters) { + LogDebug("Pixel Digitizer") << " Cluster before reweighting: "; + printCluster(pixrewgt); + } + + int ierr; + // for unirradiated: 2nd argument is IDden + // for irradiated: 2nd argument is IDnum + int ID1 = dbobject_num->getTemplateID(detID); + int ID0 = dbobject_den->getTemplateID(detID); + + if (ID0 == ID1) { + LogDebug("Pixel Digitizer") << " same template for num and den "; + return false; + } + ierr = PixelTempRewgt2D(ID0, ID1, pixrewgt); + if (ierr != 0) { +#ifdef TP_DEBUG + LogDebug("PixelDigitizer ") << "Cluster Charge Reweighting did not work properly."; +#endif + return false; + } + if (PrintClusters) { + LogDebug("Pixel Digitizer") << " Cluster after reweighting: "; + printCluster(pixrewgt); + } + + for (int row = 0; row < TXSIZE; ++row) { + for (int col = 0; col < TYSIZE; ++col) { + float charge = 0; + charge = pixrewgt[row][col]; + if ((hitPixel.first + row - THX) >= 0 && (hitPixel.first + row - THX) < topol->nrows() && + (hitPixel.second + col - THY) >= 0 && (hitPixel.second + col - THY) < topol->ncolumns() && charge > 0) { + chargeAfter += charge; + theNewDigiSignal[PixelDigi::pixelToChannel(hitPixel.first + row - THX, hitPixel.second + col - THY)] += + SiPixelDigitizerAlgorithm::Amplitude(charge, charge); + } + } + } + + if (chargeBefore != 0. && chargeAfter == 0.) { + return false; + } + + if (PrintClusters) { + LogDebug("Pixel Digitizer") << "Charges (before->after): " << chargeBefore << " -> " << chargeAfter; + LogDebug("Pixel Digitizer") << "Charge loss: " << (1 - chargeAfter / chargeBefore) * 100 << " %"; + } + + // need to store the digi out of the 21x13 box. + for (signal_map_const_iterator i = theDigiSignal.begin(); i != theDigiSignal.end(); ++i) { + // check if in the 21x13 box + int chanDigi = (*i).first; + std::pair ip = PixelDigi::channelToPixel(chanDigi); + int row_digi = ip.first; + int col_digi = ip.second; + int i_transformed_row = row_digi - hitPixel.first + THX; + int i_transformed_col = col_digi - hitPixel.second + THY; + if (i_transformed_row < 0 || i_transformed_row > TXSIZE || i_transformed_col < 0 || i_transformed_col > TYSIZE) { + // not in the box + if (chanDigi >= 0 && (*i).second > 0) { + theNewDigiSignal[chanDigi] += SiPixelDigitizerAlgorithm::Amplitude((*i).second, (*i).second); + } + } + } + + return true; } diff --git a/SimTracker/SiPixelDigitizer/plugins/SiPixelChargeReweightingAlgorithm.h b/SimTracker/SiPixelDigitizer/plugins/SiPixelChargeReweightingAlgorithm.h index 8e32a7edf7c39..c6ec9f30400f5 100644 --- a/SimTracker/SiPixelDigitizer/plugins/SiPixelChargeReweightingAlgorithm.h +++ b/SimTracker/SiPixelDigitizer/plugins/SiPixelChargeReweightingAlgorithm.h @@ -29,6 +29,7 @@ class SiPixelChargeReweightingAlgorithm { bool hitSignalReweight(const PSimHit& hit, std::map >& hit_signal, const size_t hitIndex, + const size_t hitIndex4CR, const unsigned int tofBin, const PixelTopology* topol, uint32_t detID, @@ -36,6 +37,13 @@ class SiPixelChargeReweightingAlgorithm { unsigned short int processType, const bool& boolmakeDigiSimLinks); + bool lateSignalReweight(const PixelGeomDetUnit* pixdet, + std::vector& digis, + PixelSimHitExtraInfo& loopTempSH, + signal_map_type& theNewDigiSignal, + const TrackerTopology* tTopo, + CLHEP::HepRandomEngine* engine); + private: // Internal typedef typedef std::map signalMaps; @@ -51,9 +59,12 @@ class SiPixelChargeReweightingAlgorithm { int IDnum, IDden; const bool UseReweighting; + bool applyLateReweighting_; const bool PrintClusters; const bool PrintTemplates; + static constexpr float cmToMicrons = 10000.f; + std::vector templateStores_; edm::ESGetToken SiPixel2DTemp_den_token_; diff --git a/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizer.cc b/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizer.cc index c1a6dfba27078..4010b36ffa555 100644 --- a/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizer.cc +++ b/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizer.cc @@ -23,6 +23,8 @@ // user include files #include "SiPixelDigitizer.h" +#include "SimDataFormats/TrackerDigiSimLink/interface/PixelSimHitExtraInfo.h" +#include "PixelDigiAddTempInfo.h" #include "SiPixelDigitizerAlgorithm.h" #include "SimDataFormats/TrackingHit/interface/PSimHit.h" @@ -82,6 +84,11 @@ namespace cms { edm::ConsumesCollector& iC) : firstInitializeEvent_(true), firstFinalizeEvent_(true), + applyLateReweighting_( + iConfig.exists("applyLateReweighting") ? iConfig.getParameter("applyLateReweighting") : false), + store_SimHitEntryExitPoints_(iConfig.exists("store_SimHitEntryExitPoints") + ? iConfig.getParameter("store_SimHitEntryExitPoints") + : false), _pixeldigialgo(), hitsProducer(iConfig.getParameter("hitsProducer")), trackerContainers(iConfig.getParameter >("RoutList")), @@ -92,10 +99,15 @@ namespace cms { pSetupToken_(iC.esConsumes()) { edm::LogInfo("PixelDigitizer ") << "Enter the Pixel Digitizer"; + edm::LogInfo("PixelDigitizer ") << " applyLateReweighting_ " << applyLateReweighting_; + const std::string alias("simSiPixelDigis"); producesCollector.produces >().setBranchAlias(alias); producesCollector.produces >().setBranchAlias(alias + "siPixelDigiSimLink"); + if (store_SimHitEntryExitPoints_) + producesCollector.produces >().setBranchAlias(alias + + "siPixelExtraSimHit"); for (auto const& trackerContainer : trackerContainers) { edm::InputTag tag(hitsProducer, trackerContainer); @@ -128,6 +140,7 @@ namespace cms { std::set detIds; std::vector const& simHits = *hSimHits.product(); const TrackerTopology* tTopo = &iSetup.getData(tTopoToken_); + _pixeldigialgo->fillSimHitMaps(simHits, tofBin); for (std::vector::const_iterator it = simHits.begin(), itEnd = simHits.end(); it != itEnd; ++it, ++globalSimHitIndex) { unsigned int detId = (*it).detUnitId(); @@ -247,6 +260,7 @@ namespace cms { std::vector > theDigiVector; std::vector > theDigiLinkVector; + std::vector > theExtraSimHitInfoVector; if (firstFinalizeEvent_) { _pixeldigialgo->init_DynIneffDB(iSetup); @@ -269,26 +283,91 @@ namespace cms { edm::DetSet collector(iu->geographicalId().rawId()); edm::DetSet linkcollector(iu->geographicalId().rawId()); + std::vector tempcollector; + edm::DetSet tempSHcollector(iu->geographicalId().rawId()); + + _pixeldigialgo->digitize(dynamic_cast(iu), + collector.data, + linkcollector.data, + tempcollector, + tTopo, + randomEngine_); + + // transformation of the tempcollector (October 15, 2021) + if (!tempcollector.empty()) { + std::vector::const_iterator loopNewClass; + unsigned int channelPrevious2 = -1; + size_t hitFirstOne2 = -1; + for (loopNewClass = tempcollector.begin(); loopNewClass != tempcollector.end(); ++loopNewClass) { + // check if the new SimHit already exists in the class + // if yes : add only the Digi info to the existing entry + // if not : create a new entry + // PixelSimHitExtraInfo( + // size_t Hindex, Local3DPoint entryP , Local3DPoint exitP, uint32_t detID, std::vector ch, std::vector InitCharge) + // what about the duplicates : 2 SimHits associated to the same Digis ? + // + // + + bool checkTwoSimHits = false; + if (channelPrevious2 == loopNewClass->channel() && hitFirstOne2 != loopNewClass->hitIndex()) { + // case of one Digi associated to a second SimHit + checkTwoSimHits = true; + } else { + channelPrevious2 = loopNewClass->channel(); + hitFirstOne2 = loopNewClass->hitIndex(); + } + + bool checkInTheList = false; + if (!checkTwoSimHits) { + std::vector::iterator loopTempSH; + for (loopTempSH = tempSHcollector.begin(); loopTempSH != tempSHcollector.end(); ++loopTempSH) { + if (loopNewClass->hitIndex() == loopTempSH->hitIndex()) { + checkInTheList = true; + loopTempSH->addDigiInfo(loopNewClass->channel()); + } + } + if (!checkInTheList) { + PixelSimHitExtraInfo newSHEntry(loopNewClass->hitIndex(), + loopNewClass->entryPoint(), + loopNewClass->exitPoint(), + loopNewClass->channel()); + tempSHcollector.push_back(newSHEntry); + } + } + } + } + + if (applyLateReweighting_) { + // if applyLateReweighting_ is true, the charge reweighting has to be applied on top of the digis + _pixeldigialgo->lateSignalReweight( + dynamic_cast(iu), collector.data, tempSHcollector.data, tTopo, randomEngine_); + } - _pixeldigialgo->digitize( - dynamic_cast(iu), collector.data, linkcollector.data, tTopo, randomEngine_); if (!collector.data.empty()) { theDigiVector.push_back(std::move(collector)); } if (!linkcollector.data.empty()) { theDigiLinkVector.push_back(std::move(linkcollector)); } + if (!tempSHcollector.data.empty()) { + theExtraSimHitInfoVector.push_back(std::move(tempSHcollector)); + } } } + _pixeldigialgo->resetSimHitMaps(); // Step C: create collection with the cache vector of DetSet std::unique_ptr > output(new edm::DetSetVector(theDigiVector)); std::unique_ptr > outputlink( new edm::DetSetVector(theDigiLinkVector)); + std::unique_ptr > outputExtraSim( + new edm::DetSetVector(theExtraSimHitInfoVector)); // Step D: write output to file iEvent.put(std::move(output)); iEvent.put(std::move(outputlink)); + if (store_SimHitEntryExitPoints_) + iEvent.put(std::move(outputExtraSim)); randomEngine_ = nullptr; // to prevent access outside event } diff --git a/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizer.h b/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizer.h index 500e303d6e133..66995282e9a30 100644 --- a/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizer.h +++ b/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizer.h @@ -73,6 +73,9 @@ namespace cms { bool firstInitializeEvent_; bool firstFinalizeEvent_; + bool applyLateReweighting_; + const bool store_SimHitEntryExitPoints_; + bool makeDigiSimLinks_; std::unique_ptr _pixeldigialgo; /** @brief Offset to add to the index of each sim hit to account for which crossing it's in. * diff --git a/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizerAlgorithm.cc b/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizerAlgorithm.cc index 68a12192b6487..831a71b98b14f 100644 --- a/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizerAlgorithm.cc +++ b/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizerAlgorithm.cc @@ -164,8 +164,28 @@ void SiPixelDigitizerAlgorithm::init(const edm::EventSetup& es) { "present in SiPixelStatusScenarioProbabilityRcd \n"; } } + LogInfo("PixelDigitizer ") << " PixelDigitizerAlgorithm init \n"; + LogInfo("PixelDigitizer ") << " PixelDigitizerAlgorithm --> UseReweighting " << UseReweighting << "\n"; + LogInfo("PixelDigitizer ") << " PixelDigitizerAlgorithm --> store_SimHitEntryExitPoints_ " + << store_SimHitEntryExitPoints_ << "\n"; + LogInfo("PixelDigitizer ") << " PixelDigitizerAlgorithm --> makeDigiSimLinks_ " << makeDigiSimLinks_ << "\n"; TheNewSiPixelChargeReweightingAlgorithmClass->init(es); + + int collectionIndex = 0; // I don't find what are the different collections here + int tofBin = 0; + for (int i1 = 1; i1 < 3; i1++) { + for (int i2 = 0; i2 < 2; i2++) { + if (i2 == 0) { + tofBin = PixelDigiSimLink::LowTof; + } else { + tofBin = PixelDigiSimLink::HighTof; + } + subDetTofBin theSubDetTofBin = std::make_pair(i1, tofBin); + SimHitCollMap[theSubDetTofBin] = collectionIndex; + collectionIndex++; + } + } } //========================================================================= @@ -176,6 +196,8 @@ SiPixelDigitizerAlgorithm::SiPixelDigitizerAlgorithm(const edm::ParameterSet& co _signal(), makeDigiSimLinks_(conf.getUntrackedParameter("makeDigiSimLinks", true)), + store_SimHitEntryExitPoints_( + conf.exists("store_SimHitEntryExitPoints") ? conf.getParameter("store_SimHitEntryExitPoints") : false), use_ineff_from_db_(conf.getParameter("useDB")), use_module_killing_(conf.getParameter("killModules")), // boolean to kill or not modules use_deadmodule_DB_(conf.getParameter("DeadModules_DB")), // boolean to access dead modules from DB @@ -210,6 +232,7 @@ SiPixelDigitizerAlgorithm::SiPixelDigitizerAlgorithm(const edm::ParameterSet& co // ADC saturation value, 255(8bit adc. //theAdcFullScale(conf.getUntrackedParameter("AdcFullScale",255)), theAdcFullScale(conf.getParameter("AdcFullScale")), + theAdcFullScLateCR(conf.getParameter("AdcFullScLateCR")), // Noise in electrons: // Pixel cell noise, relevant for generating noisy pixels @@ -294,6 +317,7 @@ SiPixelDigitizerAlgorithm::SiPixelDigitizerAlgorithm(const edm::ParameterSet& co // Get the constants for the miss-calibration studies doMissCalibrate(conf.getParameter("MissCalibrate")), // Enable miss-calibration + doMissCalInLateCR(conf.getParameter("MissCalInLateCR")), // Enable miss-calibration theGainSmearing(conf.getParameter("GainSmearing")), // sigma of the gain smearing theOffsetSmearing(conf.getParameter("OffsetSmearing")), //sigma of the offset smearing @@ -308,7 +332,7 @@ SiPixelDigitizerAlgorithm::SiPixelDigitizerAlgorithm(const edm::ParameterSet& co fluctuate(fluctuateCharge ? new SiG4UniversalFluctuation() : nullptr), theNoiser(addNoise ? new GaussianTailNoiseGenerator() : nullptr), - calmap(doMissCalibrate ? initCal() : std::map >()), + calmap((doMissCalibrate || doMissCalInLateCR) ? initCal() : std::map >()), theSiPixelGainCalibrationService_(use_ineff_from_db_ ? new SiPixelGainCalibrationOfflineSimService(conf, iC) : nullptr), pixelEfficiencies_(conf, AddPixelInefficiency, NumberOfBarrelLayers, NumberOfEndcapDisks), @@ -345,6 +369,9 @@ SiPixelDigitizerAlgorithm::SiPixelDigitizerAlgorithm(const edm::ParameterSet& co << theElectronPerADC << " " << theAdcFullScale << " The delta cut-off is set to " << tMax << " pix-inefficiency " << AddPixelInefficiency; + LogInfo("PixelDigitizer ") << " SiPixelDigitizerAlgorithm constructed with UseReweighting " << UseReweighting + << " and store_SimHitEntryExitPoints_ " << store_SimHitEntryExitPoints_ << " \n"; + TheNewSiPixelChargeReweightingAlgorithmClass = std::make_unique(conf, iC); } @@ -1016,6 +1043,7 @@ void SiPixelDigitizerAlgorithm::setSimAccumulator(const std::map& digis, std::vector& simlinks, + std::vector& newClass_Digi_extra, const TrackerTopology* tTopo, CLHEP::HepRandomEngine* engine) { // Pixel Efficiency moved from the constructor to this method because @@ -1100,7 +1128,7 @@ void SiPixelDigitizerAlgorithm::digitize(const PixelGeomDetUnit* pixdet, } } - make_digis(thePixelThresholdInE, detID, pixdet, digis, simlinks, tTopo); + make_digis(thePixelThresholdInE, detID, pixdet, digis, simlinks, newClass_Digi_extra, tTopo); #ifdef TP_DEBUG LogDebug("PixelDigitizer") << "[SiPixelDigitizerAlgorithm] converted " << digis.size() << " PixelDigis in DetUnit" @@ -1544,15 +1572,17 @@ void SiPixelDigitizerAlgorithm::induce_signal(std::vector::const_iterat // Fill the global map with all hit pixels from this event bool reweighted = false; - // size_t ReferenceIndex4CR=0; + bool makeDSLinks = store_SimHitEntryExitPoints_ || makeDigiSimLinks_; + + size_t ReferenceIndex4CR = 0; if (UseReweighting) { if (hit.processType() == 0) { - // ReferenceIndex4CR=hitIndex; + ReferenceIndex4CR = hitIndex; reweighted = TheNewSiPixelChargeReweightingAlgorithmClass->hitSignalReweight( - hit, hit_signal, hitIndex, tofBin, topol, detID, theSignal, hit.processType(), makeDigiSimLinks_); + hit, hit_signal, hitIndex, ReferenceIndex4CR, tofBin, topol, detID, theSignal, hit.processType(), makeDSLinks); } else { std::vector::const_iterator crSimHit = inputBegin; - // ReferenceIndex4CR=FirstHitIndex; + ReferenceIndex4CR = FirstHitIndex; // if the first hit in the same detId is not associated to the same trackId, try to find a better match if ((*inputBegin).trackId() != hit.trackId()) { // loop over all the hit from the 1st in the same detId to the hit itself to find the primary particle of the same trackId @@ -1565,21 +1595,54 @@ void SiPixelDigitizerAlgorithm::induce_signal(std::vector::const_iterat } if ((*ssbegin).trackId() == hit.trackId() && (*ssbegin).processType() == 0) { crSimHit = ssbegin; - // ReferenceIndex4CR=localIndex; + ReferenceIndex4CR = localIndex; break; } } } - reweighted = TheNewSiPixelChargeReweightingAlgorithmClass->hitSignalReweight( - (*crSimHit), hit_signal, hitIndex, tofBin, topol, detID, theSignal, hit.processType(), makeDigiSimLinks_); + reweighted = TheNewSiPixelChargeReweightingAlgorithmClass->hitSignalReweight((*crSimHit), + hit_signal, + hitIndex, + ReferenceIndex4CR, + tofBin, + topol, + detID, + theSignal, + hit.processType(), + makeDSLinks); } } if (!reweighted) { for (hit_map_type::const_iterator im = hit_signal.begin(); im != hit_signal.end(); ++im) { int chan = (*im).first; - theSignal[chan] += (makeDigiSimLinks_ ? Amplitude((*im).second, &hit, hitIndex, tofBin, (*im).second) - : Amplitude((*im).second, (*im).second)); + if (ReferenceIndex4CR == 0) { + // no determination has been done previously because !UseReweighting + // we need to determine it now: + if (hit.processType() == 0) + ReferenceIndex4CR = hitIndex; + else { + ReferenceIndex4CR = FirstHitIndex; + // if the first hit in the same detId is not associated to the same trackId, try to find a better match + if ((*inputBegin).trackId() != hit.trackId()) { + // loop on all the hit from the 1st of the collection to the hit itself to find the Primary particle of the same trackId + uint32_t detId = pixdet->geographicalId().rawId(); + size_t localIndex = FirstHitIndex; + for (std::vector::const_iterator ssbegin = inputBegin; localIndex < hitIndex; + ++ssbegin, ++localIndex) { + if ((*ssbegin).detUnitId() != detId) { + continue; + } + if ((*ssbegin).trackId() == hit.trackId() && (*ssbegin).processType() == 0) { + ReferenceIndex4CR = localIndex; + break; + } + } + } + } + } + theSignal[chan] += (makeDSLinks ? Amplitude((*im).second, &hit, hitIndex, ReferenceIndex4CR, tofBin, (*im).second) + : Amplitude((*im).second, (*im).second)); #ifdef TP_DEBUG std::pair ip = PixelDigi::channelToPixel(chan); @@ -1592,12 +1655,29 @@ void SiPixelDigitizerAlgorithm::induce_signal(std::vector::const_iterat /***********************************************************************/ +void SiPixelDigitizerAlgorithm::fillSimHitMaps(std::vector simHits, const unsigned int tofBin) { + // store here the SimHit map for later + int printnum = 0; + for (std::vector::const_iterator it = simHits.begin(), itEnd = simHits.end(); it != itEnd; + ++it, ++printnum) { + unsigned int detID = (*it).detUnitId(); + unsigned int subdetID = DetId(detID).subdetId(); + subDetTofBin theSubDetTofBin = std::make_pair(subdetID, tofBin); + SimHitMap[SimHitCollMap[theSubDetTofBin]].push_back(*it); + } +} + +void SiPixelDigitizerAlgorithm::resetSimHitMaps() { SimHitMap.clear(); } + +/***********************************************************************/ + // Build pixels, check threshold, add misscalibration, ... void SiPixelDigitizerAlgorithm::make_digis(float thePixelThresholdInE, uint32_t detID, const PixelGeomDetUnit* pixdet, std::vector& digis, std::vector& simlinks, + std::vector& newClass_Digi_extra, const TrackerTopology* tTopo) const { #ifdef TP_DEBUG LogDebug("Pixel Digitizer") << " make digis " @@ -1682,6 +1762,44 @@ void SiPixelDigitizerAlgorithm::make_digis(float thePixelThresholdInE, } simi.clear(); // although should be empty already } + + if (store_SimHitEntryExitPoints_ && !(*i).second.hitInfos().empty()) { + // get info stored, like in simlinks... + for (const auto& info : (*i).second.hitInfos()) { + unsigned int CFPostoBeUsed = info.hitIndex4ChargeRew(); + // check if the association (chan, index) is already in the newClass_Digi_extra collection + // if yes, don't push a duplicated entry ; if not, push a new entry + std::vector::iterator loopNewClass; + bool already_present = false; + for (loopNewClass = newClass_Digi_extra.begin(); loopNewClass != newClass_Digi_extra.end(); ++loopNewClass) { + if (chan == (int)loopNewClass->channel() && CFPostoBeUsed == loopNewClass->hitIndex()) { + already_present = true; + loopNewClass->addCharge(info.getAmpl()); + } + } + if (!already_present) { + unsigned int tofBin = info.tofBin(); + // then inspired by https://github.com/cms-sw/cmssw/blob/master/SimTracker/TrackerHitAssociation/src/TrackerHitAssociator.cc#L566 : + subDetTofBin theSubDetTofBin = std::make_pair(DetId(detID).subdetId(), tofBin); + auto it = SimHitCollMap.find(theSubDetTofBin); + if (it != SimHitCollMap.end()) { + auto it2 = SimHitMap.find((it->second)); + + if (it2 != SimHitMap.end()) { + const PSimHit& theSimHit = (it2->second)[CFPostoBeUsed]; + newClass_Digi_extra.emplace_back(chan, + info.hitIndex4ChargeRew(), + theSimHit.entryPoint(), + theSimHit.exitPoint(), + theSimHit.processType(), + theSimHit.trackId(), + detID, + info.getAmpl()); + } + } + } + } // end for + } // end if store_SimHitEntryExitPoints_ } } } @@ -2374,3 +2492,130 @@ void SiPixelDigitizerAlgorithm::module_killing_DB(uint32_t detID) { } } } + +/******************************************************************/ + +void SiPixelDigitizerAlgorithm::lateSignalReweight(const PixelGeomDetUnit* pixdet, + std::vector& digis, + std::vector& newClass_Sim_extra, + const TrackerTopology* tTopo, + CLHEP::HepRandomEngine* engine) { + // Function to apply the Charge Reweighting on top of digi in case of PU from mixing library + // for time dependent MC + std::vector New_digis; + uint32_t detID = pixdet->geographicalId().rawId(); + + if (UseReweighting) { + LogError("PixelDigitizer ") << " ******************************** \n"; + LogError("PixelDigitizer ") << " ******************************** \n"; + LogError("PixelDigitizer ") << " ***** INCONSISTENCY !!! ***** \n"; + LogError("PixelDigitizer ") + << " applyLateReweighting_ and UseReweighting can not be true at the same time for PU ! \n"; + LogError("PixelDigitizer ") << " ---> DO NOT APPLY CHARGE REWEIGHTING TWICE !!! \n"; + LogError("PixelDigitizer ") << " ******************************** \n"; + LogError("PixelDigitizer ") << " ******************************** \n"; + return; + } + + float thePixelThresholdInE = 0.; + if (theNoiseInElectrons > 0.) { + if (pixdet->type().isTrackerPixel() && pixdet->type().isBarrel()) { // Barrel modules + int lay = tTopo->layer(detID); + if (addThresholdSmearing) { + if (pixdet->subDetector() == GeomDetEnumerators::SubDetector::PixelBarrel || + pixdet->subDetector() == GeomDetEnumerators::SubDetector::P1PXB) { + if (lay == 1) { + thePixelThresholdInE = CLHEP::RandGaussQ::shoot( + engine, theThresholdInE_BPix_L1, theThresholdSmearing_BPix_L1); // gaussian smearing + } else if (lay == 2) { + thePixelThresholdInE = CLHEP::RandGaussQ::shoot( + engine, theThresholdInE_BPix_L2, theThresholdSmearing_BPix_L2); // gaussian smearing + } else { + thePixelThresholdInE = + CLHEP::RandGaussQ::shoot(engine, theThresholdInE_BPix, theThresholdSmearing_BPix); // gaussian smearing + } + } + } else { + if (pixdet->subDetector() == GeomDetEnumerators::SubDetector::PixelBarrel || + pixdet->subDetector() == GeomDetEnumerators::SubDetector::P1PXB) { + if (lay == 1) { + thePixelThresholdInE = theThresholdInE_BPix_L1; + } else if (lay == 2) { + thePixelThresholdInE = theThresholdInE_BPix_L2; + } else { + thePixelThresholdInE = theThresholdInE_BPix; // no smearing + } + } + } + + } else if (pixdet->type().isTrackerPixel()) { // Forward disks modules + + if (addThresholdSmearing) { + thePixelThresholdInE = + CLHEP::RandGaussQ::shoot(engine, theThresholdInE_FPix, theThresholdSmearing_FPix); // gaussian smearing + } else { + thePixelThresholdInE = theThresholdInE_FPix; // no smearing + } + + } else { + throw cms::Exception("NotAPixelGeomDetUnit") << "Not a pixel geomdet unit" << detID; + } + } + + // loop on the SimHit extra info class + // apply the reweighting for that SimHit on a cluster way + bool reweighted = false; + std::vector::iterator loopTempSH; + for (loopTempSH = newClass_Sim_extra.begin(); loopTempSH != newClass_Sim_extra.end(); ++loopTempSH) { + signal_map_type theDigiSignal; + PixelSimHitExtraInfo TheNewInfo = *loopTempSH; + reweighted = TheNewSiPixelChargeReweightingAlgorithmClass->lateSignalReweight( + pixdet, digis, TheNewInfo, theDigiSignal, tTopo, engine); + if (!reweighted) { + // loop on the non-reweighthed digis associated to the considered SimHit + std::vector::const_iterator loopDigi; + for (loopDigi = digis.begin(); loopDigi != digis.end(); ++loopDigi) { + unsigned int chan = loopDigi->channel(); + // check if that digi is related to the SimHit + if (loopTempSH->isInTheList(chan)) { + float corresponding_charge = loopDigi->adc(); + theDigiSignal[chan] += Amplitude(corresponding_charge, corresponding_charge); + } + } + } + + // transform theDigiSignal into digis + int Thresh_inADC = int(thePixelThresholdInE / theElectronPerADC); + for (signal_map_const_iterator i = theDigiSignal.begin(); i != theDigiSignal.end(); ++i) { + float signalInADC = (*i).second; // signal in ADC + if (signalInADC > 0.) { + if (signalInADC >= Thresh_inADC) { + int chan = (*i).first; // channel number + std::pair ip = PixelDigi::channelToPixel(chan); + int adc = int(signalInADC); + // add MissCalibration + if (doMissCalInLateCR) { + int row = ip.first; + int col = ip.second; + adc = + int(missCalibrate(detID, tTopo, pixdet, col, row, signalInADC * theElectronPerADC)); //full misscalib. + } + + if (adc > theAdcFullScLateCR) + adc = theAdcFullScLateCR; // Check maximum value + +#ifdef TP_DEBUG + LogDebug("Pixel Digitizer") << (*i).first << " " << (*i).second << " " << signalInADC << " " << adc + << ip.first << " " << ip.second; +#endif + + // Load digis + New_digis.emplace_back(ip.first, ip.second, adc); + } + } + } // end loop on theDigiSignal + theDigiSignal.clear(); + } + digis.clear(); + digis = New_digis; +} diff --git a/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizerAlgorithm.h b/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizerAlgorithm.h index e1ae27c35def6..904ea2fb70399 100644 --- a/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizerAlgorithm.h +++ b/SimTracker/SiPixelDigitizer/plugins/SiPixelDigitizerAlgorithm.h @@ -10,6 +10,8 @@ #include "SimDataFormats/EncodedEventId/interface/EncodedEventId.h" #include "SimDataFormats/TrackingHit/interface/PSimHit.h" #include "SimTracker/Common/interface/SimHitInfoForLinks.h" +#include "SimTracker/SiPixelDigitizer/plugins/PixelDigiAddTempInfo.h" +#include "SimDataFormats/TrackerDigiSimLink/interface/PixelSimHitExtraInfo.h" #include "DataFormats/Math/interface/approx_exp.h" #include "SimDataFormats/PileupSummaryInfo/interface/PileupMixingContent.h" #include "SimDataFormats/PileupSummaryInfo/interface/PileupSummaryInfo.h" @@ -75,12 +77,21 @@ class SiPixelDigitizerAlgorithm { void digitize(const PixelGeomDetUnit* pixdet, std::vector& digis, std::vector& simlinks, + std::vector& newClass_Digi_extra, const TrackerTopology* tTopo, CLHEP::HepRandomEngine*); void calculateInstlumiFactor(PileupMixingContent* puInfo); + void fillSimHitMaps(std::vector simHits, const unsigned int tofBin); + void resetSimHitMaps(); void init_DynIneffDB(const edm::EventSetup&); std::unique_ptr chooseScenario(PileupMixingContent* puInfo, CLHEP::HepRandomEngine*); + void lateSignalReweight(const PixelGeomDetUnit* pixdet, + std::vector& digis, + std::vector& newClass_Sim_extra, + const TrackerTopology* tTopo, + CLHEP::HepRandomEngine* engine); + // for premixing void calculateInstlumiFactor(const std::vector& ps, int bunchSpacing); // TODO: try to remove the duplication of logic... @@ -103,14 +114,14 @@ class SiPixelDigitizerAlgorithm { } } - Amplitude(float amp, const PSimHit* hitp, size_t hitIndex, unsigned int tofBin, float frac) + Amplitude(float amp, const PSimHit* hitp, size_t hitIndex, size_t hitInd4CR, unsigned int tofBin, float frac) : _amp(amp), _frac(1, frac) { //in case of digi from noisypixels //the MC information are removed if (_frac[0] < -0.5) { _frac.pop_back(); } else { - _hitInfos.emplace_back(hitp, hitIndex, tofBin); + _hitInfos.emplace_back(hitp, hitIndex, tofBin, hitInd4CR, amp); } } @@ -308,10 +319,17 @@ class SiPixelDigitizerAlgorithm { typedef std::vector Parameters; typedef boost::multi_array array_2d; + typedef std::pair subDetTofBin; + typedef std::map > simhit_map; + simhit_map SimHitMap; + typedef std::map simhit_collectionMap; + simhit_collectionMap SimHitCollMap; + // Contains the accumulated hit info. signalMaps _signal; const bool makeDigiSimLinks_; + const bool store_SimHitEntryExitPoints_; const bool use_ineff_from_db_; const bool use_module_killing_; // remove or not the dead pixel modules @@ -342,6 +360,7 @@ class SiPixelDigitizerAlgorithm { //-- make_digis const float theElectronPerADC; // Gain, number of electrons per adc count. const int theAdcFullScale; // Saturation count, 255=8bit. + const int theAdcFullScLateCR; // Saturation count, 255=8bit. const float theNoiseInElectrons; // Noise (RMS) in units of electrons. const float theReadoutNoise; // Noise of the readount chain in elec, //inludes DCOL-Amp,TBM-Amp, Alt, AOH,OptRec. @@ -388,6 +407,7 @@ class SiPixelDigitizerAlgorithm { //-- calibration smearing const bool doMissCalibrate; // Switch on the calibration smearing + const bool doMissCalInLateCR; // Switch on the calibration smearing const float theGainSmearing; // The sigma of the gain fluctuation (around 1) const float theOffsetSmearing; // The sigma of the offset fluct. (around 0) @@ -443,6 +463,7 @@ class SiPixelDigitizerAlgorithm { const PixelGeomDetUnit* pixdet, std::vector& digis, std::vector& simlinks, + std::vector& newClass_Digi_extra, const TrackerTopology* tTopo) const; void pixel_inefficiency(const PixelEfficiencies& eff, const PixelGeomDetUnit* pixdet, diff --git a/SimTracker/TrackerMaterialAnalysis/test/trackingMaterialAnalyser_ForPhaseI.py b/SimTracker/TrackerMaterialAnalysis/test/trackingMaterialAnalyser_ForPhaseI.py index d23119ff4e080..6bba1bcb5dd64 100755 --- a/SimTracker/TrackerMaterialAnalysis/test/trackingMaterialAnalyser_ForPhaseI.py +++ b/SimTracker/TrackerMaterialAnalysis/test/trackingMaterialAnalyser_ForPhaseI.py @@ -16,7 +16,7 @@ # GlobalTag and geometry via it process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") from Configuration.AlCa.GlobalTag import GlobalTag - process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') + process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.load('FWCore.MessageService.MessageLogger_cfi') diff --git a/TopQuarkAnalysis/TopKinFitter/interface/CovarianceMatrix.h b/TopQuarkAnalysis/TopKinFitter/interface/CovarianceMatrix.h index 67f396ce0f80f..abaeecde0a40e 100644 --- a/TopQuarkAnalysis/TopKinFitter/interface/CovarianceMatrix.h +++ b/TopQuarkAnalysis/TopKinFitter/interface/CovarianceMatrix.h @@ -98,9 +98,9 @@ TMatrixD CovarianceMatrix::setupMatrix(const pat::PATObject& object, switch (param) { case TopKinFitter::kEtEtaPhi: CovM3(0, 0) = pow(object.resolEt(resolutionProvider), 2); - if (dynamic_cast(&object)) + if constexpr (std::is_same_v) CovM3(0, 0) *= getEtaDependentScaleFactor(object); - if (dynamic_cast(&object)) + else if constexpr (std::is_same_v) CovM3(1, 1) = pow(9999., 2); else CovM3(1, 1) = pow(object.resolEta(resolutionProvider), 2); @@ -109,7 +109,7 @@ TMatrixD CovarianceMatrix::setupMatrix(const pat::PATObject& object, break; case TopKinFitter::kEtThetaPhi: CovM3(0, 0) = pow(object.resolEt(resolutionProvider), 2); - if (dynamic_cast(&object)) + if constexpr (std::is_same_v) CovM3(0, 0) *= getEtaDependentScaleFactor(object); CovM3(1, 1) = pow(object.resolTheta(resolutionProvider), 2); CovM3(2, 2) = pow(object.resolPhi(resolutionProvider), 2); @@ -137,20 +137,20 @@ template CovarianceMatrix::ObjectType CovarianceMatrix::getObjectType(const pat::PATObject& object, const bool isBJet) { ObjectType objType; // jets - if (dynamic_cast(&object)) { + if constexpr (std::is_same_v) { if (isBJet) objType = kBJet; else objType = kUdscJet; } // muons - else if (dynamic_cast(&object)) + else if constexpr (std::is_same_v) objType = kMuon; // electrons - else if (dynamic_cast(&object)) + else if constexpr (std::is_same_v) objType = kElectron; // MET - else if (dynamic_cast(&object)) + else if constexpr (std::is_same_v) objType = kMet; // catch anything else else diff --git a/Validation/CSCRecHits/test/runCSCRecHitValidation_cfg.py b/Validation/CSCRecHits/test/runCSCRecHitValidation_cfg.py index 3163f3c8621f0..16775e38288ca 100644 --- a/Validation/CSCRecHits/test/runCSCRecHitValidation_cfg.py +++ b/Validation/CSCRecHits/test/runCSCRecHitValidation_cfg.py @@ -28,7 +28,7 @@ # Other statements from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.DQMoutput = cms.OutputModule("DQMRootOutputModule", dataset = cms.untracked.PSet( diff --git a/Validation/Geometry/interface/MaterialBudgetData.h b/Validation/Geometry/interface/MaterialBudgetData.h index 421766a5ef317..9aab876231c50 100644 --- a/Validation/Geometry/interface/MaterialBudgetData.h +++ b/Validation/Geometry/interface/MaterialBudgetData.h @@ -11,6 +11,7 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include +#include class MaterialBudgetData; class G4Step; diff --git a/Validation/Geometry/test/runMaterialBudgetVolumeDB_cfg.py b/Validation/Geometry/test/runMaterialBudgetVolumeDB_cfg.py index d694f84d40756..13bc9b2c8a0d1 100644 --- a/Validation/Geometry/test/runMaterialBudgetVolumeDB_cfg.py +++ b/Validation/Geometry/test/runMaterialBudgetVolumeDB_cfg.py @@ -8,7 +8,7 @@ process.load('Configuration.StandardSequences.GeometrySimDB_cff') process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') #process.GlobalTag = GlobalTag(process.GlobalTag, '120X_mcRun3_2021_realistic_dd4hep_v1', '') process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") diff --git a/Validation/HGCalValidation/test/python/protoHGCalSimWatcher_cfg.py b/Validation/HGCalValidation/test/python/protoHGCalSimWatcher_cfg.py index 9b0dddd5f75eb..e942a6aee55cb 100644 --- a/Validation/HGCalValidation/test/python/protoHGCalSimWatcher_cfg.py +++ b/Validation/HGCalValidation/test/python/protoHGCalSimWatcher_cfg.py @@ -2,7 +2,7 @@ # Way to use this: # cmsRun protoHGCalSimWatcher_cfg.py geometry=D77 # -# Options for geometry D49, D68, D77, D83, D84, D86 +# Options for geometry D49, D68, D77, D83, D84, D88, D92 # ############################################################################### import FWCore.ParameterSet.Config as cms @@ -13,10 +13,10 @@ ### SETUP OPTIONS options = VarParsing.VarParsing('standard') options.register('geometry', - "D86", + "D88", VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, - "geometry of operations: D49, D68, D84, D77, D83, D86") + "geometry of operations: D49, D68, D84, D77, D83, D88, D92") ### get and parse the command line arguments options.parseArguments() @@ -54,13 +54,20 @@ process.load('Configuration.Geometry.GeometryExtended2026D84Reco_cff') fileCheck = 'testHGCalSimWatcherV13.root' runMode = 0 -elif (options.geometry == "D86"): +elif (options.geometry == "D88"): from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 process = cms.Process('PROD',Phase2C11) - process.load('Configuration.Geometry.GeometryExtended2026D86_cff') - process.load('Configuration.Geometry.GeometryExtended2026D86Reco_cff') + process.load('Configuration.Geometry.GeometryExtended2026D88_cff') + process.load('Configuration.Geometry.GeometryExtended2026D88Reco_cff') fileCheck = 'testHGCalSimWatcherV16.root' runMode = 1 +elif (options.geometry == "D92"): + from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + process = cms.Process('PROD',Phase2C11) + process.load('Configuration.Geometry.GeometryExtended2026D92_cff') + process.load('Configuration.Geometry.GeometryExtended2026D92Reco_cff') + fileCheck = 'testHGCalSimWatcherV17.root' + runMode = 1 else: from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 process = cms.Process('PROD',Phase2C11M9) diff --git a/Validation/HGCalValidation/test/python/protoSimValid_cfg.py b/Validation/HGCalValidation/test/python/protoSimValid_cfg.py index 4f66788bb25b1..87a029ae6b56e 100644 --- a/Validation/HGCalValidation/test/python/protoSimValid_cfg.py +++ b/Validation/HGCalValidation/test/python/protoSimValid_cfg.py @@ -2,7 +2,7 @@ # Way to use this: # cmsRun protoSimValid_cfg.py geometry=D77 type=hgcalBHValidation # -# Options for geometry D49, D68, D77, D83, D84, D86 +# Options for geometry D49, D68, D77, D83, D84, D88, D92 # type hgcalBHValidation, hgcalSiliconValidation # ############################################################################### @@ -14,10 +14,10 @@ ### SETUP OPTIONS options = VarParsing.VarParsing('standard') options.register('geometry', - "D86", + "D88", VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, - "geometry of operations: D49, D68, D77, D83, D84, D86") + "geometry of operations: D49, D68, D77, D83, D84, D88, D92") options.register ('type', "hgcalBHValidation", VarParsing.VarParsing.multiplicity.singleton, @@ -68,15 +68,24 @@ fileName = 'hgcSilValidD84.root' else: fileName = 'hgcBHValidD84.root' -elif (options.geometry == "D86"): +elif (options.geometry == "D88"): from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 process = cms.Process('PROD',Phase2C11) - process.load('Configuration.Geometry.GeometryExtended2026D86_cff') - process.load('Configuration.Geometry.GeometryExtended2026D86Reco_cff') + process.load('Configuration.Geometry.GeometryExtended2026D88_cff') + process.load('Configuration.Geometry.GeometryExtended2026D88Reco_cff') if (options.type == "hgcalSiliconValidation"): - fileName = 'hgcSilValidD86.root' + fileName = 'hgcSilValidD88.root' else: - fileName = 'hgcBHValidD86.root' + fileName = 'hgcBHValidD88.root' +elif (options.geometry == "D92"): + from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + process = cms.Process('PROD',Phase2C11) + process.load('Configuration.Geometry.GeometryExtended2026D92_cff') + process.load('Configuration.Geometry.GeometryExtended2026D92Reco_cff') + if (options.type == "hgcalSiliconValidation"): + fileName = 'hgcSilValidD92.root' + else: + fileName = 'hgcBHValidD92.root' else: from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 process = cms.Process('PROD',Phase2C11M9) diff --git a/Validation/HGCalValidation/test/python/protoValid_cfg.py b/Validation/HGCalValidation/test/python/protoValid_cfg.py index 8f29c41afa150..690a44d3eb253 100644 --- a/Validation/HGCalValidation/test/python/protoValid_cfg.py +++ b/Validation/HGCalValidation/test/python/protoValid_cfg.py @@ -2,7 +2,7 @@ # Way to use this: # cmsRun protoValid_cfg.py geometry=D77 type=hgcalSimHitStudy defaultInput=1 # -# Options for geometry D49, D68, D77, D83, D84, D86 +# Options for geometry D49, D68, D77, D83, D84, D88, D92 # type hgcalGeomCheck, hgcalSimHitStudy, hgcalDigiStudy, # hgcalRecHitStudy, hgcalSiliconValidation # defaultInput 1, 0 @@ -16,10 +16,10 @@ ### SETUP OPTIONS options = VarParsing.VarParsing('standard') options.register('geometry', - "D86", + "D88", VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, - "geometry of operations: D49, D68, D77, D83, D84, D86") + "geometry of operations: D49, D68, D77, D83, D84, D88, D92") options.register('type', "hgcalGeomCheck", VarParsing.VarParsing.multiplicity.singleton, @@ -115,25 +115,44 @@ fileName = 'hgcSilValidD84.root' else: fileName = 'hgcGeomCheckD84.root' -elif (options.geometry == "D86"): +elif (options.geometry == "D88"): from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 process = cms.Process('PROD',Phase2C11) - process.load('Configuration.Geometry.GeometryExtended2026D86_cff') - process.load('Configuration.Geometry.GeometryExtended2026D86Reco_cff') + process.load('Configuration.Geometry.GeometryExtended2026D88_cff') + process.load('Configuration.Geometry.GeometryExtended2026D88Reco_cff') fileCheck = 'testHGCalSimWatcherV16.root' if (options.type == "hgcalSimHitStudy"): - fileName = 'hgcSimHitD86.root' + fileName = 'hgcSimHitD88.root' elif (options.type == "hgcalDigiStudy"): - fileName = 'hgcDigiD86.root' + fileName = 'hgcDigiD88.root' elif (options.type == "hgcalRecHitStudy"): - fileName = 'hgcRecHitD86.root' + fileName = 'hgcRecHitD88.root' elif (options.type == "hgcalSiliconValidation"): if (options.defaultInput == 0): - fileName = 'hgcDigValidD86.root' + fileName = 'hgcDigValidD88.root' else: - fileName = 'hgcSilValidD86.root' + fileName = 'hgcSilValidD88.root' else: - fileName = 'hgcGeomCheckD86.root' + fileName = 'hgcGeomCheckD88.root' +elif (options.geometry == "D92"): + from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + process = cms.Process('PROD',Phase2C11) + process.load('Configuration.Geometry.GeometryExtended2026D92_cff') + process.load('Configuration.Geometry.GeometryExtended2026D92Reco_cff') + fileCheck = 'testHGCalSimWatcherV17.root' + if (options.type == "hgcalSimHitStudy"): + fileName = 'hgcSimHitD92.root' + elif (options.type == "hgcalDigiStudy"): + fileName = 'hgcDigiD92.root' + elif (options.type == "hgcalRecHitStudy"): + fileName = 'hgcRecHitD92.root' + elif (options.type == "hgcalSiliconValidation"): + if (options.defaultInput == 0): + fileName = 'hgcDigValidD92.root' + else: + fileName = 'hgcSilValidD92.root' + else: + fileName = 'hgcGeomCheckD92.root' else: from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 process = cms.Process('PROD',Phase2C11M9) diff --git a/Validation/HGCalValidation/test/python/runHGCGeomCheck_cfg.py b/Validation/HGCalValidation/test/python/runHGCGeomCheck_cfg.py index a531bb05c5184..75a8592a1ddd8 100644 --- a/Validation/HGCalValidation/test/python/runHGCGeomCheck_cfg.py +++ b/Validation/HGCalValidation/test/python/runHGCGeomCheck_cfg.py @@ -2,7 +2,7 @@ # Way to use this: # cmsRun runHGCGeomCheck_cfg.py geometry=D77 # -# Options for geometry D49, D68, D77, D83, D84, D86 +# Options for geometry D49, D68, D77, D83, D84, D88, D92 # ############################################################################### import FWCore.ParameterSet.Config as cms @@ -16,7 +16,7 @@ "D86", VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, - "geometry of operations: D49, D68, D84, D77, D83, D86") + "geometry of operations: D49, D68, D84, D77, D83, D88, D92") ### get and parse the command line arguments options.parseArguments() @@ -54,13 +54,20 @@ process.load('Configuration.Geometry.GeometryExtended2026D84Reco_cff') inFile = 'file:testHGCalSimWatcherV13.root' outFile = 'hgcGeomCheckD84.root' -elif (options.geometry == "D86"): +elif (options.geometry == "D88"): from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 process = cms.Process('PROD',Phase2C11M9) - process.load('Configuration.Geometry.GeometryExtended2026D86_cff') - process.load('Configuration.Geometry.GeometryExtended2026D86Reco_cff') + process.load('Configuration.Geometry.GeometryExtended2026D88_cff') + process.load('Configuration.Geometry.GeometryExtended2026D88Reco_cff') inFile = 'file:testHGCalSimWatcherV16.root' - outFile = 'hgcGeomCheckD86.root' + outFile = 'hgcGeomCheckD88.root' +elif (options.geometry == "D92"): + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('PROD',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D92_cff') + process.load('Configuration.Geometry.GeometryExtended2026D92Reco_cff') + inFile = 'file:testHGCalSimWatcherV17.root' + outFile = 'hgcGeomCheckD92.root' else: from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 process = cms.Process('PROD',Phase2C11M9) diff --git a/Validation/HGCalValidation/test/python/runHGCalDigiStudy_cfg.py b/Validation/HGCalValidation/test/python/runHGCalDigiStudy_cfg.py index a6bcd0a923e12..2feb1359225d9 100644 --- a/Validation/HGCalValidation/test/python/runHGCalDigiStudy_cfg.py +++ b/Validation/HGCalValidation/test/python/runHGCalDigiStudy_cfg.py @@ -1,8 +1,8 @@ ############################################################################### # Way to use this: -# cmsRun runHGCalDigiStudy_cfg.py geometry=D86 +# cmsRun runHGCalDigiStudy_cfg.py geometry=D88 # -# Options for geometry D77, D83, D86 +# Options for geometry D77, D83, D88, D92 # ############################################################################### import FWCore.ParameterSet.Config as cms @@ -13,10 +13,10 @@ ### SETUP OPTIONS options = VarParsing.VarParsing('standard') options.register('geometry', - "D86", + "D88", VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, - "geometry of operations: D77, D83, D86") + "geometry of operations: D77, D83, D88, D92") ### get and parse the command line arguments options.parseArguments() @@ -31,20 +31,31 @@ process = cms.Process('PROD',Phase2C11M9) process.load('Configuration.Geometry.GeometryExtended2026D83_cff') process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff') + fileInput = 'file:step2D83tt.root' fileName = 'hgcDigiD83tt.root' -elif (options.geometry == "D86"): +elif (options.geometry == "D88"): from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 process = cms.Process('PROD',Phase2C11M9) - process.load('Configuration.Geometry.GeometryExtended2026D86_cff') - process.load('Configuration.Geometry.GeometryExtended2026D86Reco_cff') - fileName = 'hgcDigiD86tt.root' + process.load('Configuration.Geometry.GeometryExtended2026D88_cff') + process.load('Configuration.Geometry.GeometryExtended2026D88Reco_cff') + fileInput = 'file:step2D88tt.root' + fileName = 'hgcDigiD88tt.root' +elif (options.geometry == "D92"): + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('PROD',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D92_cff') + process.load('Configuration.Geometry.GeometryExtended2026D92Reco_cff') + fileInput = 'file:step2D92tt.root' + fileName = 'hgcDigiD92tt.root' else: from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 process = cms.Process('PROD',Phase2C11) process.load('Configuration.Geometry.GeometryExtended2026D77_cff') process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff') + fileInput = 'file:step2D77tt.root' fileName = 'hgcDigiD77tt.root' +print("Input file: ", fileInput) print("Output file: ", fileName) process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") @@ -57,14 +68,9 @@ process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T21', '') process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring( - 'file:step2.root', - ) - ) + fileNames = cms.untracked.vstring(fileInput) ) -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) process.TFileService = cms.Service("TFileService", fileName = cms.string(fileName), diff --git a/Validation/HGCalValidation/test/python/runHGCalRecHitStudy_cfg.py b/Validation/HGCalValidation/test/python/runHGCalRecHitStudy_cfg.py index 461d7eb3f23f1..3194a70a4ecee 100644 --- a/Validation/HGCalValidation/test/python/runHGCalRecHitStudy_cfg.py +++ b/Validation/HGCalValidation/test/python/runHGCalRecHitStudy_cfg.py @@ -1,8 +1,8 @@ ############################################################################### # Way to use this: -# cmsRun runHGCalRecHitStudy_cfg.py geometry=D86 +# cmsRun runHGCalRecHitStudy_cfg.py geometry=D82 # -# Options for geometry D77, D83, D86 +# Options for geometry D77, D83, D88, D92 # ############################################################################### import FWCore.ParameterSet.Config as cms @@ -13,10 +13,10 @@ ### SETUP OPTIONS options = VarParsing.VarParsing('standard') options.register('geometry', - "D86", + "D88", VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, - "geometry of operations: D77, D83, D86") + "geometry of operations: D77, D83, D88, D92") ### get and parse the command line arguments options.parseArguments() @@ -31,20 +31,31 @@ process = cms.Process('PROD',Phase2C11M9) process.load('Configuration.Geometry.GeometryExtended2026D83_cff') process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff') + fileInput = 'file:step3D83tt.root' fileName = 'hgcRecHitD83tt.root' -elif (options.geometry == "D86"): +elif (options.geometry == "D88"): from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 process = cms.Process('PROD',Phase2C11M9) - process.load('Configuration.Geometry.GeometryExtended2026D86_cff') - process.load('Configuration.Geometry.GeometryExtended2026D86Reco_cff') - fileName = 'hgcRecHitD86tt.root' + process.load('Configuration.Geometry.GeometryExtended2026D88_cff') + process.load('Configuration.Geometry.GeometryExtended2026D88Reco_cff') + fileInput = 'file:step3D88tt.root' + fileName = 'hgcRecHitD88tt.root' +elif (options.geometry == "D92"): + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('PROD',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D92_cff') + process.load('Configuration.Geometry.GeometryExtended2026D92Reco_cff') + fileInput = 'file:step3D92tt.root' + fileName = 'hgcRecHitD92tt.root' else: from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 process = cms.Process('PROD',Phase2C11) process.load('Configuration.Geometry.GeometryExtended2026D77_cff') process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff') + fileInput = 'file:step3D77tt.root' fileName = 'hgcRecHitD77tt.root' +print("Input file: ", fileInput) print("Output file: ", fileName) process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") @@ -59,12 +70,9 @@ process.MessageLogger.cerr.FwkReport.reportEvery = 2 process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring('file:step3.root') -) + fileNames = cms.untracked.vstring(fileInput) ) -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) process.load('Validation.HGCalValidation.hgcalRecHitStudy_cff') diff --git a/Validation/HGCalValidation/test/python/runHGCalSimHitStudy_cfg.py b/Validation/HGCalValidation/test/python/runHGCalSimHitStudy_cfg.py index 4ee22773769c0..3ae55a3fd7660 100644 --- a/Validation/HGCalValidation/test/python/runHGCalSimHitStudy_cfg.py +++ b/Validation/HGCalValidation/test/python/runHGCalSimHitStudy_cfg.py @@ -1,8 +1,8 @@ ############################################################################### # Way to use this: -# cmsRun runHGCalSimHitStudy_cfg.py geometry=D86 +# cmsRun runHGCalSimHitStudy_cfg.py geometry=D92 # -# Options for geometry D77, D83, D86 +# Options for geometry D77, D83, D88, D92 # ############################################################################### import FWCore.ParameterSet.Config as cms @@ -13,10 +13,10 @@ ### SETUP OPTIONS options = VarParsing.VarParsing('standard') options.register('geometry', - "D86", + "D88", VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, - "geometry of operations: D77, D83, D86") + "geometry of operations: D77, D83, D88, D92") ### get and parse the command line arguments options.parseArguments() @@ -31,20 +31,31 @@ process = cms.Process('PROD',Phase2C11M9) process.load('Configuration.Geometry.GeometryExtended2026D83_cff') process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff') + fileInput = 'file:step1D83tt.root' fileName = 'hgcSimHitD83tt.root' -elif (options.geometry == "D86"): +elif (options.geometry == "D88"): from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 process = cms.Process('PROD',Phase2C11M9) - process.load('Configuration.Geometry.GeometryExtended2026D86_cff') - process.load('Configuration.Geometry.GeometryExtended2026D86Reco_cff') - fileName = 'hgcSimHitD86tt.root' + process.load('Configuration.Geometry.GeometryExtended2026D88_cff') + process.load('Configuration.Geometry.GeometryExtended2026D88Reco_cff') + fileInput = 'file:step1D88tt.root' + fileName = 'hgcSimHitD88tt.root' +elif (options.geometry == "D92"): + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('PROD',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D92_cff') + process.load('Configuration.Geometry.GeometryExtended2026D92Reco_cff') + fileInput = 'file:step1D92tt.root' + fileName = 'hgcSimHitD92tt.root' else: from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 process = cms.Process('PROD',Phase2C11) process.load('Configuration.Geometry.GeometryExtended2026D77_cff') process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff') + fileInput = 'file:step1D77tt.root' fileName = 'hgcSimHitD77tt.root' +print("Input file: ", fileInput) print("Output file: ", fileName) process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") @@ -57,12 +68,9 @@ process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T21', '') process.source = cms.Source("PoolSource", - fileNames = cms.untracked.vstring('file:step1.root') -) + fileNames = cms.untracked.vstring(fileInput) ) -process.maxEvents = cms.untracked.PSet( - input = cms.untracked.int32(-1) -) +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) process.TFileService = cms.Service("TFileService", fileName = cms.string(fileName), diff --git a/Validation/HGCalValidation/test/python/runHGCalWaferStudy_cfg.py b/Validation/HGCalValidation/test/python/runHGCalWaferStudy_cfg.py index affabda532570..6a906d09b19cf 100644 --- a/Validation/HGCalValidation/test/python/runHGCalWaferStudy_cfg.py +++ b/Validation/HGCalValidation/test/python/runHGCalWaferStudy_cfg.py @@ -1,34 +1,76 @@ +############################################################################### +# Way to use this: +# cmsRun runHGCalWaferStudy_cfg.py geometry=D88 +# +# Options for geometry D49, D68, D77, D83, D84, D88, D92 +# +############################################################################### import FWCore.ParameterSet.Config as cms +import os, sys, imp, re +import FWCore.ParameterSet.VarParsing as VarParsing -#from Configuration.Eras.Era_Phase2C9_cff import Phase2C9 -#process = cms.Process('HGCGeomAnalysis',Phase2C9) -#process.load('Configuration.Geometry.GeometryExtended2026D49_cff') -#process.load('Configuration.Geometry.GeometryExtended2026D49Reco_cff') +############################################################ +### SETUP OPTIONS +options = VarParsing.VarParsing('standard') +options.register('geometry', + "D88", + VarParsing.VarParsing.multiplicity.singleton, + VarParsing.VarParsing.varType.string, + "geometry of operations: D49, D68, D77, D83, D84, D88, D92") -#from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 -#process = cms.Process('HGCGeomAnalysis',Phase2C11) -#process.load('Configuration.Geometry.GeometryExtended2026D68_cff') -#process.load('Configuration.Geometry.GeometryExtended2026D68Reco_cff') +### get and parse the command line arguments +options.parseArguments() -#from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 -#process = cms.Process('HGCGeomAnalysis',Phase2C11) -#process.load('Configuration.Geometry.GeometryExtended2026D70_cff') -#process.load('Configuration.Geometry.GeometryExtended2026D70Reco_cff') +print(options) -#from Configuration.Eras.Era_Phase2C11I13M9_cff import Phase2C11I13M9 -#process = cms.Process('HGCGeomAnalysis',Phase2C11I13M9) -#process.load('Configuration.Geometry.GeometryExtended2026D77_cff') -#process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff') +############################################################ +# Use the options -#from Configuration.Eras.Era_Phase2C11I13M9_cff import Phase2C11I13M9 -#process = cms.Process('HGCGeomAnalysis',Phase2C11I13M9) -#process.load('Configuration.Geometry.GeometryExtended2026D83_cff') -#process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff') +import FWCore.ParameterSet.Config as cms + +if (options.geometry == "D49"): + from Configuration.Eras.Era_Phase2C9_cff import Phase2C9 + process = cms.Process('HGCGeomAnalysis',Phase2C9) + process.load('Configuration.Geometry.GeometryExtended2026D49_cff') + process.load('Configuration.Geometry.GeometryExtended2026D49Reco_cff') + fileName = 'hgcWaferD49.root' +elif (options.geometry == "D68"): + from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + process = cms.Process('HGCGeomAnalysis',Phase2C11) + process.load('Configuration.Geometry.GeometryExtended2026D68_cff') + process.load('Configuration.Geometry.GeometryExtended2026D68Reco_cff') + fileName = 'hgcWaferD68.root' +elif (options.geometry == "D70"): + from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + process = cms.Process('HGCGeomAnalysis',Phase2C11) + process.load('Configuration.Geometry.GeometryExtended2026D70_cff') + process.load('Configuration.Geometry.GeometryExtended2026D70Reco_cff') + fileName = 'hgcWaferD70.root' +elif (options.geometry == "D83"): + from Configuration.Eras.Era_Phase2C11I13M9_cff import Phase2C11I13M9 + process = cms.Process('HGCGeomAnalysis',Phase2C11I13M9) + process.load('Configuration.Geometry.GeometryExtended2026D83_cff') + process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff') + fileName = 'hgcWaferD83.root' +elif (options.geometry == "D88"): + from Configuration.Eras.Era_Phase2C11I13M9_cff import Phase2C11I13M9 + process = cms.Process('HGCGeomAnalysis',Phase2C11I13M9) + process.load('Configuration.Geometry.GeometryExtended2026D88_cff') + process.load('Configuration.Geometry.GeometryExtended2026D88Reco_cff') + fileName = 'hgcWaferD88.root' +elif (options.geometry == "D92"): + from Configuration.Eras.Era_Phase2C11I13M9_cff import Phase2C11I13M9 + process = cms.Process('HGCGeomAnalysis',Phase2C11I13M9) + process.load('Configuration.Geometry.GeometryExtended2026D92_cff') + process.load('Configuration.Geometry.GeometryExtended2026D92Reco_cff') +else: + from Configuration.Eras.Era_Phase2C11I13M9_cff import Phase2C11I13M9 + process = cms.Process('HGCGeomAnalysis',Phase2C11I13M9) + process.load('Configuration.Geometry.GeometryExtended2026D77_cff') + process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff') + fileName = 'hgcWaferD77.root' -from Configuration.Eras.Era_Phase2C11I13M9_cff import Phase2C11I13M9 -process = cms.Process('HGCGeomAnalysis',Phase2C11I13M9) -process.load('Configuration.Geometry.GeometryExtended2026D86_cff') -process.load('Configuration.Geometry.GeometryExtended2026D86Reco_cff') +print("Output file: ", fileName) process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") process.load("Configuration.StandardSequences.MagneticField_cff") @@ -53,7 +95,7 @@ ) process.TFileService = cms.Service("TFileService", - fileName = cms.string('hgcWaferD86.root'), + fileName = cms.string(fileName), closeFileFast = cms.untracked.bool(True) ) diff --git a/Validation/HGCalValidation/test/python/testHGCalBHValid_cfg.py b/Validation/HGCalValidation/test/python/testHGCalBHValid_cfg.py index d117540790a55..1c894955a22d2 100644 --- a/Validation/HGCalValidation/test/python/testHGCalBHValid_cfg.py +++ b/Validation/HGCalValidation/test/python/testHGCalBHValid_cfg.py @@ -1,11 +1,57 @@ +############################################################################### +# Way to use this: +# cmsRun runHGCalBHValid_cfg.py geometry=D88 +# +# Options for geometry D77, D83, D88, D92 +# +############################################################################### import FWCore.ParameterSet.Config as cms - -from Configuration.Eras.Era_Phase2C11I13M9_cff import Phase2C11I13M9 -process = cms.Process('HGCGeomAnalysis',Phase2C11I13M9) -#process.load('Configuration.Geometry.GeometryExtended2026D77_cff') -#process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff') -process.load('Configuration.Geometry.GeometryExtended2026D83_cff') -process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff') +import os, sys, imp, re +import FWCore.ParameterSet.VarParsing as VarParsing + +#################################################################### +### SETUP OPTIONS +options = VarParsing.VarParsing('standard') +options.register('geometry', + "D77", + VarParsing.VarParsing.multiplicity.singleton, + VarParsing.VarParsing.varType.string, + "geometry of operations: D77, D83, D88, D92") + +### get and parse the command line arguments +options.parseArguments() + +print(options) + +#################################################################### +# Use the options + +if (options.geometry == "D83"): + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('HGCGeomAnalysis',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D83_cff') + process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff') + fileName = 'hgcBHValidD83.root' +elif (options.geometry == "D88"): + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('HGCGeomAnalysis',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D88_cff') + process.load('Configuration.Geometry.GeometryExtended2026D88Reco_cff') + fileName = 'hgcBHValidD88.root' +elif (options.geometry == "D92"): + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('HGCGeomAnalysis',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D92_cff') + process.load('Configuration.Geometry.GeometryExtended2026D92Reco_cff') + fileName = 'hgcBHValidD92.root' +else: + from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + process = cms.Process('HGCGeomAnalysis',Phase2C11) + process.load('Configuration.Geometry.GeometryExtended2026D77_cff') + process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff') + fileName = 'hgcBHValidD77.root' + +print("Output file: ", fileName) # import of standard configurations process.load('Configuration.StandardSequences.Services_cff') @@ -58,7 +104,7 @@ process.load('Validation.HGCalValidation.hgcalBHValidation_cfi') process.TFileService = cms.Service("TFileService", - fileName = cms.string('hgcBHValidD83.root'), + fileName = cms.string(fileName), closeFileFast = cms.untracked.bool(True) ) diff --git a/Validation/HGCalValidation/test/python/testHGCalSimHitStudy_cfg.py b/Validation/HGCalValidation/test/python/testHGCalSimHitStudy_cfg.py index 615b8e343cad6..54956b7c07bc0 100644 --- a/Validation/HGCalValidation/test/python/testHGCalSimHitStudy_cfg.py +++ b/Validation/HGCalValidation/test/python/testHGCalSimHitStudy_cfg.py @@ -1,29 +1,76 @@ +############################################################################### +# Way to use this: +# cmsRun testHGCalSimHitSTudy_cfg.py geometry=D77 +# +# Options for geometry D49, D68, D77, D83, D84, D88, D92 +# +############################################################################### import FWCore.ParameterSet.Config as cms - -#from Configuration.Eras.Era_Phase2C9_cff import Phase2C9 -#process = cms.Process('HGCGeomAnalysis',Phase2C9) -#process.load('Configuration.Geometry.GeometryExtended2026D49_cff') -#process.load('Configuration.Geometry.GeometryExtended2026D49Reco_cff') - -#from Configuration.Eras.Era_Phase2C12_cff import Phase2C12 -#process = cms.Process('HGCGeomAnalysis',Phase2C12) -#process.load('Configuration.Geometry.GeometryExtended2026D68_cff') -#process.load('Configuration.Geometry.GeometryExtended2026D68Reco_cff') - -#from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 -#process = cms.Process('HGCGeomAnalysis',Phase2C11) -#process.load('Configuration.Geometry.GeometryExtended2026D70_cff') -#process.load('Configuration.Geometry.GeometryExtended2026D70Reco_cff') - -#from Configuration.Eras.Era_Phase2C11I13M9_cff import Phase2C11I13M9 -#process = cms.Process('HGCGeomAnalysis',Phase2C11I13M9) -#process.load('Configuration.Geometry.GeometryExtended2026D77_cff') -#process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff') - -from Configuration.Eras.Era_Phase2C11I13M9_cff import Phase2C11I13M9 -process = cms.Process('HGCGeomAnalysis',Phase2C11I13M9) -process.load('Configuration.Geometry.GeometryExtended2026D83_cff') -process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff') +import os, sys, imp, re +import FWCore.ParameterSet.VarParsing as VarParsing + +#################################################################### +### SETUP OPTIONS +options = VarParsing.VarParsing('standard') +options.register('geometry', + "D88", + VarParsing.VarParsing.multiplicity.singleton, + VarParsing.VarParsing.varType.string, + "geometry of operations: D49, D68, D84, D77, D83, D88, D92") + +### get and parse the command line arguments +options.parseArguments() + +print(options) + +#################################################################### +# Use the options + +if (options.geometry == "D49"): + from Configuration.Eras.Era_Phase2C9_cff import Phase2C9 + process = cms.Process('HGCSimHitStudy',Phase2C9) + process.load('Configuration.Geometry.GeometryExtended2026D49_cff') + process.load('Configuration.Geometry.GeometryExtended2026D49Reco_cff') + fileName = 'HGCSimHitV11.root' +elif (options.geometry == "D68"): + from Configuration.Eras.Era_Phase2C12_cff import Phase2C12 + process = cms.Process('HGCSimHitStudy',Phase2C12) + process.load('Configuration.Geometry.GeometryExtended2026D68_cff') + process.load('Configuration.Geometry.GeometryExtended2026D68Reco_cff') + fileName = 'HGCSimHitV12.root' +elif (options.geometry == "D83"): + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('HGCSimHitStudy',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D83_cff') + process.load('Configuration.Geometry.GeometryExtended2026D83Reco_cff') + fileName = 'HGCSimHitV15.root' +elif (options.geometry == "D84"): + from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + process = cms.Process('HGCSimHitStudy',Phase2C11) + process.load('Configuration.Geometry.GeometryExtended2026D84_cff') + process.load('Configuration.Geometry.GeometryExtended2026D84Reco_cff') + fileName = 'HGCSimHitV13.root' +elif (options.geometry == "D88"): + from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + process = cms.Process('HGCSimHitStudy',Phase2C11) + process.load('Configuration.Geometry.GeometryExtended2026D88_cff') + process.load('Configuration.Geometry.GeometryExtended2026D88Reco_cff') + fileName = 'HGCSimHitV16.root' +elif (options.geometry == "D92"): + from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + process = cms.Process('HGCSimHitStudy',Phase2C11) + process.load('Configuration.Geometry.GeometryExtended2026D92_cff') + process.load('Configuration.Geometry.GeometryExtended2026D92Reco_cff') + fileName = 'HGCSimHitV17.root' +else: + from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + process = cms.Process('HGCSimHitStudy',Phase2C11M9) + process.load('Configuration.Geometry.GeometryExtended2026D77_cff') + process.load('Configuration.Geometry.GeometryExtended2026D77Reco_cff') + fileName = 'HGCSimHitV14.root' + runMode = 0 + +print("Output file: ", fileName) process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") process.load("IOMC.EventVertexGenerators.VtxSmearedGauss_cfi") @@ -37,11 +84,6 @@ from Configuration.AlCa.autoCond import autoCond process.GlobalTag.globaltag = autoCond['phase2_realistic'] -# -# -# -# - process.load("IOMC.RandomEngine.IOMC_cff") process.RandomNumberGeneratorService.generator.initialSeed = 456789 process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 @@ -78,7 +120,7 @@ ) process.TFileService = cms.Service("TFileService", - fileName = cms.string('hgcSimHit83.root'), + fileName = cms.string(fileName), closeFileFast = cms.untracked.bool(True) ) diff --git a/Validation/HGCalValidation/test/python/testHGCalSimWatcherV16_cfg.py b/Validation/HGCalValidation/test/python/testHGCalSimWatcherV16_cfg.py index 2739f1de6aef5..a1a0d453b9c94 100644 --- a/Validation/HGCalValidation/test/python/testHGCalSimWatcherV16_cfg.py +++ b/Validation/HGCalValidation/test/python/testHGCalSimWatcherV16_cfg.py @@ -9,8 +9,8 @@ process.load('FWCore.MessageService.MessageLogger_cfi') process.load('Configuration.EventContent.EventContent_cff') process.load('SimGeneral.MixingModule.mixNoPU_cfi') -process.load('Configuration.Geometry.GeometryExtended2026D86Reco_cff') -process.load('Configuration.Geometry.GeometryExtended2026D86_cff') +process.load('Configuration.Geometry.GeometryExtended2026D88Reco_cff') +process.load('Configuration.Geometry.GeometryExtended2026D88_cff') process.load('Configuration.StandardSequences.MagneticField_cff') process.load('Configuration.StandardSequences.Generator_cff') process.load('IOMC.EventVertexGenerators.VtxSmearedRealistic50ns13TeVCollision_cfi') diff --git a/Validation/HGCalValidation/test/python/testHGCalSimWatcherV17_cfg.py b/Validation/HGCalValidation/test/python/testHGCalSimWatcherV17_cfg.py new file mode 100644 index 0000000000000..855eff3cf0a4a --- /dev/null +++ b/Validation/HGCalValidation/test/python/testHGCalSimWatcherV17_cfg.py @@ -0,0 +1,156 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Eras.Era_Phase2C11I13M9_cff import Phase2C11I13M9 +process = cms.Process('testHGCalRecoLocal',Phase2C11I13M9) + +# import of standard configurations +process.load('Configuration.StandardSequences.Services_cff') +process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi') +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration.EventContent.EventContent_cff') +process.load('SimGeneral.MixingModule.mixNoPU_cfi') +process.load('Configuration.Geometry.GeometryExtended2026D92Reco_cff') +process.load('Configuration.Geometry.GeometryExtended2026D92_cff') +process.load('Configuration.StandardSequences.MagneticField_cff') +process.load('Configuration.StandardSequences.Generator_cff') +process.load('IOMC.EventVertexGenerators.VtxSmearedRealistic50ns13TeVCollision_cfi') +process.load('GeneratorInterface.Core.genFilterSummary_cff') +process.load('Configuration.StandardSequences.SimIdeal_cff') +process.load('Configuration.StandardSequences.EndOfProcess_cff') +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') +process.load('Configuration.StandardSequences.Digi_cff') +process.load('Configuration.StandardSequences.SimL1Emulator_cff') +process.load('Configuration.StandardSequences.L1TrackTrigger_cff') +process.load('Configuration.StandardSequences.DigiToRaw_cff') +process.load('HLTrigger.Configuration.HLT_Fake2_cff') +process.load('Configuration.StandardSequences.RawToDigi_cff') +process.load('Configuration.StandardSequences.L1Reco_cff') +process.load('Configuration.StandardSequences.Reconstruction_cff') +process.load('Configuration.StandardSequences.RecoSim_cff') +process.load('Configuration.StandardSequences.EndOfProcess_cff') + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1000) +) + +process.MessageLogger.cerr.FwkReport.reportEvery = 5 +if hasattr(process,'MessageLogger'): + process.MessageLogger.ValidHGCal=dict() + process.MessageLogger.HGCalGeom=dict() + +# Input source +process.source = cms.Source("EmptySource") + +process.options = cms.untracked.PSet( + wantSummary = cms.untracked.bool(True), + numberOfConcurrentRuns = cms.untracked.uint32(1), + numberOfStreams = cms.untracked.uint32(0), + numberOfThreads = cms.untracked.uint32(1), + printDependencies = cms.untracked.bool(False), + sizeOfStackForThreadsInKB = cms.optional.untracked.uint32, +) + +# Production Info +process.configurationMetadata = cms.untracked.PSet( + version = cms.untracked.string(''), + annotation = cms.untracked.string(''), + name = cms.untracked.string('Applications') +) + + +# Output definition +process.output = cms.OutputModule("PoolOutputModule", + splitLevel = cms.untracked.int32(0), + eventAutoFlushCompressedSize = cms.untracked.int32(5242880), + outputCommands = cms.untracked.vstring( + 'keep *_*hbhe*_*_*', + 'keep *_g4SimHits_*_*', +# 'keep *_mix_*_*', + 'keep *_*HGC*_*_*', + ), + fileName = cms.untracked.string('file:testHGCalSimWatcherV17.root'), + dataset = cms.untracked.PSet( + filterName = cms.untracked.string(''), + dataTier = cms.untracked.string('GEN-SIM-DIGI-RAW-RECO') + ), + SelectEvents = cms.untracked.PSet( + SelectEvents = cms.vstring('generation_step') + ) +) + +# Additional output definition +process.g4SimHits.Watchers = cms.VPSet(cms.PSet( + SimG4HGCalValidation = cms.PSet( + Names = cms.vstring( + 'HGCalEECellSensitive', + 'HGCalHESiliconCellSensitive', + 'HGCalHEScintillatorSensitive', + ), + Types = cms.vint32(0,0,0), + DetTypes = cms.vint32(0,1,2), + LabelLayerInfo = cms.string("HGCalInfoLayer"), + Verbosity = cms.untracked.int32(0), + ), + type = cms.string('SimG4HGCalValidation') +)) + +# Other statements +process.genstepfilter.triggerConditions=cms.vstring("generation_step") +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T21', '') + +process.generator = cms.EDProducer("FlatRandomPtGunProducer", + PGunParameters = cms.PSet( + MaxPt = cms.double(20.0), + MinPt = cms.double(20.0), + #PartID = cms.vint32(11), #--->electron + PartID = cms.vint32(13), #--->muon + #PartID = cms.vint32(211), #--->pion + MaxEta = cms.double(3.0), + MaxPhi = cms.double(3.14159265359), + MinEta = cms.double(1.2), + MinPhi = cms.double(-3.14159265359) + ), + Verbosity = cms.untracked.int32(0), + psethack = cms.string('single muon pt 35'), + AddAntiParticle = cms.bool(False), + firstRun = cms.untracked.uint32(1) +) + + +#Modified to produce hgceedigis +process.mix.digitizers = cms.PSet(process.theDigitizersValid) + +process.ProductionFilterSequence = cms.Sequence(process.generator) + +# Path and EndPath definitions +process.generation_step = cms.Path(process.pgen) +process.simulation_step = cms.Path(process.psim) +process.genfiltersummary_step = cms.EndPath(process.genFilterSummary) +process.digitisation_step = cms.Path(process.pdigi_valid) +process.L1simulation_step = cms.Path(process.SimL1Emulator) +process.L1TrackTrigger_step = cms.Path(process.L1TrackTrigger) +process.digi2raw_step = cms.Path(process.DigiToRaw) +process.raw2digi_step = cms.Path(process.RawToDigi) +process.L1Reco_step = cms.Path(process.L1Reco) +process.reconstruction_step = cms.Path(process.localreco) +process.recosim_step = cms.Path(process.recosim) +process.out_step = cms.EndPath(process.output) + +# Schedule definition +process.schedule = cms.Schedule(process.generation_step, + process.simulation_step, + process.digitisation_step, + process.L1simulation_step, + process.L1TrackTrigger_step, + process.digi2raw_step, +# process.raw2digi_step, +# process.L1Reco_step, +# process.reconstruction_step, +# process.recosim_step, + process.out_step + ) + +# filter all path with the production filter sequence +for path in process.paths: + if getattr(process,path)._seq is not None: getattr(process,path)._seq = process.ProductionFilterSequence * getattr(process,path)._seq diff --git a/Validation/HGCalValidation/test/python/testHGCalWaferValidation_cfg.py b/Validation/HGCalValidation/test/python/testHGCalWaferValidation_cfg.py index d91a71d84ceb4..f77aa05e1ce8d 100644 --- a/Validation/HGCalValidation/test/python/testHGCalWaferValidation_cfg.py +++ b/Validation/HGCalValidation/test/python/testHGCalWaferValidation_cfg.py @@ -2,7 +2,7 @@ # Way to use this: # cmsRun testHGCalWaferValidation_cfg.py geometry=D83 # -# Options for geometry D77, D83, D86 +# Options for geometry D77, D82, D83, D88, D92 # ############################################################################### import FWCore.ParameterSet.Config as cms @@ -16,11 +16,11 @@ "D83", VarParsing.VarParsing.multiplicity.singleton, VarParsing.VarParsing.varType.string, - "geometry of operations: D77, D83, D86") + "geometry of operations: D77, D82, D83, D88, D92") ### get and parse the command line arguments options.parseArguments() -#print(options) +print(options) #################################################################### # Use the options @@ -30,11 +30,21 @@ process = cms.Process('TEST',Phase2C11M9) process.load('Configuration.Geometry.GeometryExtended2026D77_cff') fileName = 'Validation/HGCalValidation/data/geomnew_corrected_360.txt' -elif (options.geometry == "D86"): +elif (options.geometry == "D82"): from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 process = cms.Process('TEST',Phase2C11) - process.load('Configuration.Geometry.GeometryExtended2026D86_cff') + process.load('Configuration.Geometry.GeometryExtended2026D82_cff') + fileName = 'Validation/HGCalValidation/data/geomnew_corrected_360.txt' +elif (options.geometry == "D88"): + from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + process = cms.Process('TEST',Phase2C11) + process.load('Configuration.Geometry.GeometryExtended2026D88_cff') fileName = 'Validation/HGCalValidation/data/geomnew_corrected_360_V1.txt' +elif (options.geometry == "D92"): + from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + process = cms.Process('TEST',Phase2C11) + process.load('Configuration.Geometry.GeometryExtended2026D92_cff') + fileName = 'Validation/HGCalValidation/data/geomnew_corrected_360_V2.txt' else: from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 process = cms.Process('TEST',Phase2C11M9) @@ -43,10 +53,6 @@ process.load('Validation.HGCalValidation.hgcalWaferValidation_cfi') process.hgcalWaferValidation.GeometryFileName = cms.FileInPath(fileName) -#if (options.geometry == "D84"): -# process.hgcalWaferValidation.GeometryFileName = cms.FileInPath('Validation/HGCalValidation/data/geomnew_corrected_360_V1.txt') -#else: -# process.hgcalWaferValidation.GeometryFileName = cms.FileInPath('Validation/HGCalValidation/data/geomnew_corrected_360.txt') process.load("FWCore.MessageService.MessageLogger_cfi") process.MessageLogger = cms.Service("MessageLogger", diff --git a/Validation/MtdValidation/plugins/BtlDigiHitsValidation.cc b/Validation/MtdValidation/plugins/BtlDigiHitsValidation.cc index adadeb322e195..e32ab7320199d 100644 --- a/Validation/MtdValidation/plugins/BtlDigiHitsValidation.cc +++ b/Validation/MtdValidation/plugins/BtlDigiHitsValidation.cc @@ -50,7 +50,7 @@ class BtlDigiHitsValidation : public DQMEDAnalyzer { // ------------ member data ------------ const std::string folder_; - const bool LocalPosDebug_; + const bool optionalPlots_; edm::EDGetTokenT btlDigiHitsToken_; @@ -90,7 +90,7 @@ class BtlDigiHitsValidation : public DQMEDAnalyzer { // ------------ constructor and destructor -------------- BtlDigiHitsValidation::BtlDigiHitsValidation(const edm::ParameterSet& iConfig) : folder_(iConfig.getParameter("folder")), - LocalPosDebug_(iConfig.getParameter("LocalPositionDebug")) { + optionalPlots_(iConfig.getParameter("optionalPlots")) { btlDigiHitsToken_ = consumes(iConfig.getParameter("inputTag")); mtdgeoToken_ = esConsumes(); mtdtopoToken_ = esConsumes(); @@ -143,7 +143,7 @@ void BtlDigiHitsValidation::analyze(const edm::Event& iEvent, const edm::EventSe meOccupancy_[iside]->Fill(global_point.z(), global_point.phi()); - if (LocalPosDebug_) { + if (optionalPlots_) { meLocalOccupancy_[iside]->Fill(local_point.x(), local_point.y()); meHitXlocal_[iside]->Fill(local_point.x()); meHitYlocal_[iside]->Fill(local_point.y()); @@ -206,7 +206,7 @@ void BtlDigiHitsValidation::bookHistograms(DQMStore::IBooker& ibook, 126, -3.15, 3.15); - if (LocalPosDebug_) { + if (optionalPlots_) { meLocalOccupancy_[0] = ibook.book2D("BtlLocalOccupancyL", "BTL DIGI hits local occupancy (L);X_{DIGI} [cm]; Y_{DIGI} [cm]", 100, @@ -292,7 +292,7 @@ void BtlDigiHitsValidation::fillDescriptions(edm::ConfigurationDescriptions& des desc.add("folder", "MTD/BTL/DigiHits"); desc.add("inputTag", edm::InputTag("mix", "FTLBarrel")); - desc.add("LocalPositionDebug", false); + desc.add("optionalPlots", false); descriptions.add("btlDigiHitsDefaultValid", desc); } diff --git a/Validation/MtdValidation/plugins/BtlLocalRecoValidation.cc b/Validation/MtdValidation/plugins/BtlLocalRecoValidation.cc index 8f237cd3f3b4b..046e233e8120d 100644 --- a/Validation/MtdValidation/plugins/BtlLocalRecoValidation.cc +++ b/Validation/MtdValidation/plugins/BtlLocalRecoValidation.cc @@ -68,7 +68,7 @@ class BtlLocalRecoValidation : public DQMEDAnalyzer { const std::string folder_; const double hitMinEnergy_; - const bool LocalPosDebug_; + const bool optionalPlots_; const bool uncalibRecHitsPlots_; const double hitMinAmplitude_; @@ -182,7 +182,7 @@ bool BtlLocalRecoValidation::isSameCluster(const FTLCluster& clu1, const FTLClus BtlLocalRecoValidation::BtlLocalRecoValidation(const edm::ParameterSet& iConfig) : folder_(iConfig.getParameter("folder")), hitMinEnergy_(iConfig.getParameter("HitMinimumEnergy")), - LocalPosDebug_(iConfig.getParameter("LocalPositionDebug")), + optionalPlots_(iConfig.getParameter("optionalPlots")), uncalibRecHitsPlots_(iConfig.getParameter("UncalibRecHitsPlots")), hitMinAmplitude_(iConfig.getParameter("HitMinimumAmplitude")) { btlRecHitsToken_ = consumes(iConfig.getParameter("recHitsTag")); @@ -217,6 +217,20 @@ void BtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS auto mtdTrkHitHandle = makeValid(iEvent.getHandle(mtdTrackingHitToken_)); MixCollection btlSimHits(btlSimHitsHandle.product()); +#ifdef EDM_ML_DEBUG + for (const auto& hits : *mtdTrkHitHandle) { + if (MTDDetId(hits.id()).mtdSubDetector() == MTDDetId::MTDType::BTL) { + LogDebug("BtlLocalRecoValidation") << "MTD cluster DetId " << hits.id() << " # cluster " << hits.size(); + for (const auto& hit : hits) { + LogDebug("BtlLocalRecoValidation") + << "MTD_TRH: " << hit.localPosition().x() << "," << hit.localPosition().y() << " : " + << hit.localPositionError().xx() << "," << hit.localPositionError().yy() << " : " << hit.time() << " : " + << hit.timeError(); + } + } + } +#endif + // --- Loop over the BTL SIM hits std::unordered_map m_btlSimHits; for (auto const& simHit : btlSimHits) { @@ -267,7 +281,7 @@ void BtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS meOccupancy_->Fill(global_point.z(), global_point.phi()); - if (LocalPosDebug_) { + if (optionalPlots_) { meLocalOccupancy_->Fill(local_point.x() + recHit.position(), local_point.y()); meHitXlocal_->Fill(local_point.x()); meHitYlocal_->Fill(local_point.y()); @@ -391,12 +405,14 @@ void BtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS cluEneSIM += m_btlSimHits[recHit.id().rawId()].energy; cluTimeSIM += m_btlSimHits[recHit.id().rawId()].time * m_btlSimHits[recHit.id().rawId()].energy; + break; + } // recHit loop } // ihit loop // Find the MTDTrackingRecHit corresponding to the cluster - MTDTrackingRecHit* comp(nullptr); + const MTDTrackingRecHit* comp(nullptr); bool matchClu = false; const auto& trkHits = (*mtdTrkHitHandle)[detIdObject]; for (const auto& trkHit : trkHits) { @@ -435,7 +451,7 @@ void BtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS meCluZRes_->Fill(z_res); - if (LocalPosDebug_) { + if (optionalPlots_) { if (matchClu && comp != nullptr) { meCluLocalXRes_->Fill(xlocal_res); meCluLocalYRes_->Fill(ylocal_res); @@ -569,7 +585,7 @@ void BtlLocalRecoValidation::bookHistograms(DQMStore::IBooker& ibook, meHitTimeError_ = ibook.book1D("BtlHitTimeError", "BTL RECO hits ToA error;#sigma^{ToA}_{RECO} [ns]", 50, 0., 0.1); meOccupancy_ = ibook.book2D( "BtlOccupancy", "BTL RECO hits occupancy;Z_{RECO} [cm]; #phi_{RECO} [rad]", 65, -260., 260., 126, -3.2, 3.2); - if (LocalPosDebug_) { + if (optionalPlots_) { meLocalOccupancy_ = ibook.book2D( "BtlLocalOccupancy", "BTL RECO hits local occupancy;X_{RECO} [cm]; Y_{RECO} [cm]", 100, 10., 10., 60, -3., 3.); meHitXlocal_ = ibook.book1D("BtlHitXlocal", "BTL RECO local X;X_{RECO}^{LOC} [cm]", 100, -10., 10.); @@ -687,7 +703,7 @@ void BtlLocalRecoValidation::bookHistograms(DQMStore::IBooker& ibook, meCluPhiRes_ = ibook.book1D("BtlCluPhiRes", "BTL cluster #phi resolution;#phi_{RECO}-#phi_{SIM} [rad]", 100, -0.03, 0.03); meCluZRes_ = ibook.book1D("BtlCluZRes", "BTL cluster Z resolution;Z_{RECO}-Z_{SIM} [cm]", 100, -0.2, 0.2); - if (LocalPosDebug_) { + if (optionalPlots_) { meCluLocalXRes_ = ibook.book1D("BtlCluLocalXRes", "BTL cluster local X resolution;X_{RECO}-X_{SIM} [cm]", 100, -3.1, 3.1); meCluLocalYRes_ = @@ -763,7 +779,7 @@ void BtlLocalRecoValidation::fillDescriptions(edm::ConfigurationDescriptions& de desc.add("recCluTag", edm::InputTag("mtdClusters", "FTLBarrel")); desc.add("trkHitTag", edm::InputTag("mtdTrackingRecHits")); desc.add("HitMinimumEnergy", 1.); // [MeV] - desc.add("LocalPositionDebug", false); + desc.add("optionalPlots", false); desc.add("UncalibRecHitsPlots", false); desc.add("HitMinimumAmplitude", 30.); // [pC] diff --git a/Validation/MtdValidation/plugins/EtlDigiHitsValidation.cc b/Validation/MtdValidation/plugins/EtlDigiHitsValidation.cc index 37d54871027cf..cf1ba3c004b45 100644 --- a/Validation/MtdValidation/plugins/EtlDigiHitsValidation.cc +++ b/Validation/MtdValidation/plugins/EtlDigiHitsValidation.cc @@ -46,7 +46,7 @@ class EtlDigiHitsValidation : public DQMEDAnalyzer { // ------------ member data ------------ const std::string folder_; - const bool LocalPosDebug_; + const bool optionalPlots_; edm::EDGetTokenT etlDigiHitsToken_; @@ -82,7 +82,7 @@ class EtlDigiHitsValidation : public DQMEDAnalyzer { // ------------ constructor and destructor -------------- EtlDigiHitsValidation::EtlDigiHitsValidation(const edm::ParameterSet& iConfig) : folder_(iConfig.getParameter("folder")), - LocalPosDebug_(iConfig.getParameter("LocalPositionDebug")) { + optionalPlots_(iConfig.getParameter("optionalPlots")) { etlDigiHitsToken_ = consumes(iConfig.getParameter("inputTag")); mtdgeoToken_ = esConsumes(); mtdtopoToken_ = esConsumes(); @@ -167,7 +167,7 @@ void EtlDigiHitsValidation::analyze(const edm::Event& iEvent, const edm::EventSe meHitTime_[idet]->Fill(sample.toa()); meOccupancy_[idet]->Fill(global_point.x(), global_point.y(), weight); - if (LocalPosDebug_) { + if (optionalPlots_) { if ((idet == 0) || (idet == 1)) { meLocalOccupancy_[0]->Fill(local_point.x(), local_point.y()); meHitXlocal_[0]->Fill(local_point.x()); @@ -294,7 +294,7 @@ void EtlDigiHitsValidation::bookHistograms(DQMStore::IBooker& ibook, 135, -135., 135.); - if (LocalPosDebug_) { + if (optionalPlots_) { meLocalOccupancy_[0] = ibook.book2D("EtlLocalOccupancyZneg", "ETL DIGI hits local occupancy (-Z);X_{DIGI} [cm];Y_{DIGI} [cm]", 100, @@ -519,7 +519,7 @@ void EtlDigiHitsValidation::fillDescriptions(edm::ConfigurationDescriptions& des desc.add("folder", "MTD/ETL/DigiHits"); desc.add("inputTag", edm::InputTag("mix", "FTLEndcap")); - desc.add("LocalPositionDebug", false); + desc.add("optionalPlots", false); descriptions.add("etlDigiHitsDefaultValid", desc); } diff --git a/Validation/MtdValidation/plugins/EtlLocalRecoValidation.cc b/Validation/MtdValidation/plugins/EtlLocalRecoValidation.cc index 1023b0573a82f..b3df952c9f2d1 100644 --- a/Validation/MtdValidation/plugins/EtlLocalRecoValidation.cc +++ b/Validation/MtdValidation/plugins/EtlLocalRecoValidation.cc @@ -66,7 +66,7 @@ class EtlLocalRecoValidation : public DQMEDAnalyzer { const std::string folder_; const float hitMinEnergy1Dis_; const float hitMinEnergy2Dis_; - const bool LocalPosDebug_; + const bool optionalPlots_; const bool uncalibRecHitsPlots_; const double hitMinAmplitude_; @@ -157,7 +157,7 @@ EtlLocalRecoValidation::EtlLocalRecoValidation(const edm::ParameterSet& iConfig) : folder_(iConfig.getParameter("folder")), hitMinEnergy1Dis_(iConfig.getParameter("hitMinimumEnergy1Dis")), hitMinEnergy2Dis_(iConfig.getParameter("hitMinimumEnergy2Dis")), - LocalPosDebug_(iConfig.getParameter("LocalPositionDebug")), + optionalPlots_(iConfig.getParameter("optionalPlots")), uncalibRecHitsPlots_(iConfig.getParameter("UncalibRecHitsPlots")), hitMinAmplitude_(iConfig.getParameter("HitMinimumAmplitude")) { etlRecHitsToken_ = consumes(iConfig.getParameter("recHitsTag")); @@ -201,6 +201,20 @@ void EtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS auto mtdTrkHitHandle = makeValid(iEvent.getHandle(mtdTrackingHitToken_)); MixCollection etlSimHits(etlSimHitsHandle.product()); +#ifdef EDM_ML_DEBUG + for (const auto& hits : *mtdTrkHitHandle) { + if (MTDDetId(hits.id()).mtdSubDetector() == MTDDetId::MTDType::ETL) { + LogDebug("EtlLocalRecoValidation") << "MTD cluster DetId " << hits.id() << " # cluster " << hits.size(); + for (const auto& hit : hits) { + LogDebug("EtlLocalRecoValidation") + << "MTD_TRH: " << hit.localPosition().x() << "," << hit.localPosition().y() << " : " + << hit.localPositionError().xx() << "," << hit.localPositionError().yy() << " : " << hit.time() << " : " + << hit.timeError(); + } + } + } +#endif + // --- Loop over the ETL SIM hits std::unordered_map m_etlSimHits[4]; for (auto const& simHit : etlSimHits) { @@ -293,7 +307,7 @@ void EtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS meOccupancy_[idet]->Fill(global_point.x(), global_point.y(), weight); - if (LocalPosDebug_) { + if (optionalPlots_) { if ((idet == 0) || (idet == 1)) { meLocalOccupancy_[0]->Fill(local_point.x(), local_point.y()); meHitXlocal_[0]->Fill(local_point.x()); @@ -450,6 +464,8 @@ void EtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS cluEneSIM += m_etlSimHits[idet][recHit.id().rawId()].energy; cluTimeSIM += m_etlSimHits[idet][recHit.id().rawId()].time * m_etlSimHits[idet][recHit.id().rawId()].energy; + break; + } // recHit loop } // ihit loop @@ -493,7 +509,7 @@ void EtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS meCluTPullvsEta_[iside]->Fill(cluGlobalPosSIM.eta(), time_res / cluster.timeError()); meCluTPullvsE_[iside]->Fill(cluEneSIM, time_res / cluster.timeError()); - if (LocalPosDebug_) { + if (optionalPlots_) { if (matchClu && comp != nullptr) { meCluXPull_[iside]->Fill(x_res / std::sqrt(comp->globalPositionError().cxx())); meCluYPull_[iside]->Fill(y_res / std::sqrt(comp->globalPositionError().cyy())); @@ -648,7 +664,7 @@ void EtlLocalRecoValidation::bookHistograms(DQMStore::IBooker& ibook, 135, -135., 135.); - if (LocalPosDebug_) { + if (optionalPlots_) { meLocalOccupancy_[0] = ibook.book2D("EtlLocalOccupancyZneg", "ETL RECO hits local occupancy (-Z);X_{RECO} [cm];Y_{RECO} [cm]", 100, @@ -1002,7 +1018,7 @@ void EtlLocalRecoValidation::bookHistograms(DQMStore::IBooker& ibook, ibook.book1D("EtlCluZResZneg", "ETL cluster Z resolution (-Z);Z_{RECO}-Z_{SIM} [cm]", 100, -0.003, 0.003); meCluZRes_[1] = ibook.book1D("EtlCluZResZpos", "ETL cluster Z resolution (+Z);Z_{RECO}-Z_{SIM} [cm]", 100, -0.003, 0.003); - if (LocalPosDebug_) { + if (optionalPlots_) { meCluXPull_[0] = ibook.book1D("EtlCluXPullZneg", "ETL cluster X pull (-Z);X_{RECO}-X_{SIM}/sigmaX_[RECO] [cm]", 100, -5., 5.); meCluXPull_[1] = @@ -1093,7 +1109,7 @@ void EtlLocalRecoValidation::fillDescriptions(edm::ConfigurationDescriptions& de desc.add("trkHitTag", edm::InputTag("mtdTrackingRecHits")); desc.add("hitMinimumEnergy1Dis", 1.); // [MeV] desc.add("hitMinimumEnergy2Dis", 0.001); // [MeV] - desc.add("LocalPositionDebug", false); + desc.add("optionalPlots", false); desc.add("UncalibRecHitsPlots", false); desc.add("HitMinimumAmplitude", 0.33); // [MIP] diff --git a/Validation/MtdValidation/plugins/MtdTracksHarvester.cc b/Validation/MtdValidation/plugins/MtdTracksHarvester.cc index 1acc4a9b322f7..719c8ac7329cf 100644 --- a/Validation/MtdValidation/plugins/MtdTracksHarvester.cc +++ b/Validation/MtdValidation/plugins/MtdTracksHarvester.cc @@ -36,6 +36,14 @@ class MtdTracksHarvester : public DQMEDHarvester { MonitorElement* meMVAEtaSelEff_; MonitorElement* meMVAPtMatchEff_; MonitorElement* meMVAEtaMatchEff_; + MonitorElement* meTPPtSelEff_; + MonitorElement* meTPEtaSelEff_; + MonitorElement* meTPPtMatchEff_; + MonitorElement* meTPEtaMatchEff_; + MonitorElement* meTPmtdPtSelEff_; + MonitorElement* meTPmtdEtaSelEff_; + MonitorElement* meTPmtdPtMatchEff_; + MonitorElement* meTPmtdEtaMatchEff_; }; // ------------ constructor and destructor -------------- @@ -83,9 +91,17 @@ void MtdTracksHarvester::dqmEndJob(DQMStore::IBooker& ibook, DQMStore::IGetter& MonitorElement* meMVATrackEffPtTot = igetter.get(folder_ + "MVAEffPtTot"); MonitorElement* meMVATrackMatchedEffPtTot = igetter.get(folder_ + "MVAMatchedEffPtTot"); MonitorElement* meMVATrackMatchedEffPtMtd = igetter.get(folder_ + "MVAMatchedEffPtMtd"); + MonitorElement* meTrackMatchedTPEffPtTot = igetter.get(folder_ + "MatchedTPEffPtTot"); + MonitorElement* meTrackMatchedTPEffPtMtd = igetter.get(folder_ + "MatchedTPEffPtMtd"); + MonitorElement* meTrackMatchedTPmtdEffPtTot = igetter.get(folder_ + "MatchedTPmtdEffPtTot"); + MonitorElement* meTrackMatchedTPmtdEffPtMtd = igetter.get(folder_ + "MatchedTPmtdEffPtMtd"); MonitorElement* meMVATrackEffEtaTot = igetter.get(folder_ + "MVAEffEtaTot"); MonitorElement* meMVATrackMatchedEffEtaTot = igetter.get(folder_ + "MVAMatchedEffEtaTot"); MonitorElement* meMVATrackMatchedEffEtaMtd = igetter.get(folder_ + "MVAMatchedEffEtaMtd"); + MonitorElement* meTrackMatchedTPEffEtaTot = igetter.get(folder_ + "MatchedTPEffEtaTot"); + MonitorElement* meTrackMatchedTPEffEtaMtd = igetter.get(folder_ + "MatchedTPEffEtaMtd"); + MonitorElement* meTrackMatchedTPmtdEffEtaTot = igetter.get(folder_ + "MatchedTPmtdEffEtaTot"); + MonitorElement* meTrackMatchedTPmtdEffEtaMtd = igetter.get(folder_ + "MatchedTPmtdEffEtaMtd"); if (!meBTLTrackEffEtaTot || !meBTLTrackEffPhiTot || !meBTLTrackEffPtTot || !meBTLTrackEffEtaMtd || !meBTLTrackEffPhiMtd || !meBTLTrackEffPtMtd || !meETLTrackEffEtaTotZneg || !meETLTrackEffPhiTotZneg || @@ -93,7 +109,8 @@ void MtdTracksHarvester::dqmEndJob(DQMStore::IBooker& ibook, DQMStore::IGetter& !meETLTrackEffEtaTotZpos || !meETLTrackEffPhiTotZpos || !meETLTrackEffPtTotZpos || !meETLTrackEffEtaMtdZpos || !meETLTrackEffPhiMtdZpos || !meETLTrackEffPtMtdZpos || !meMVATrackEffPtTot || !meMVATrackMatchedEffPtTot || !meMVATrackMatchedEffPtMtd || !meMVATrackEffEtaTot || !meMVATrackMatchedEffEtaTot || - !meMVATrackMatchedEffEtaMtd) { + !meMVATrackMatchedEffEtaMtd || !meTrackMatchedTPEffPtTot || !meTrackMatchedTPEffPtMtd || + !meTrackMatchedTPmtdEffPtTot || !meTrackMatchedTPmtdEffPtMtd) { edm::LogError("MtdTracksHarvester") << "Monitoring histograms not found!" << std::endl; return; } @@ -204,6 +221,70 @@ void MtdTracksHarvester::dqmEndJob(DQMStore::IBooker& ibook, DQMStore::IGetter& meMVAEtaMatchEff_->getTH1()->SetMinimum(0.); computeEfficiency1D(meMVATrackMatchedEffEtaMtd, meMVATrackMatchedEffEtaTot, meMVAEtaMatchEff_); + meTPPtSelEff_ = ibook.book1D("TPPtSelEff", + "Track selected efficiency TP VS Pt;Pt [GeV];Efficiency", + meMVATrackEffPtTot->getNbinsX(), + meMVATrackEffPtTot->getTH1()->GetXaxis()->GetXmin(), + meMVATrackEffPtTot->getTH1()->GetXaxis()->GetXmax()); + meTPPtSelEff_->getTH1()->SetMinimum(0.); + computeEfficiency1D(meTrackMatchedTPEffPtTot, meMVATrackEffPtTot, meTPPtSelEff_); + + meTPEtaSelEff_ = ibook.book1D("TPEtaSelEff", + "Track selected efficiency TP VS Eta;Eta;Efficiency", + meMVATrackEffEtaTot->getNbinsX(), + meMVATrackEffEtaTot->getTH1()->GetXaxis()->GetXmin(), + meMVATrackEffEtaTot->getTH1()->GetXaxis()->GetXmax()); + meTPEtaSelEff_->getTH1()->SetMinimum(0.); + computeEfficiency1D(meTrackMatchedTPEffEtaTot, meMVATrackEffEtaTot, meTPEtaSelEff_); + + meTPPtMatchEff_ = ibook.book1D("TPPtMatchEff", + "Track matched to TP efficiency VS Pt;Pt [GeV];Efficiency", + meTrackMatchedTPEffPtTot->getNbinsX(), + meTrackMatchedTPEffPtTot->getTH1()->GetXaxis()->GetXmin(), + meTrackMatchedTPEffPtTot->getTH1()->GetXaxis()->GetXmax()); + meTPPtMatchEff_->getTH1()->SetMinimum(0.); + computeEfficiency1D(meTrackMatchedTPEffPtMtd, meTrackMatchedTPEffPtTot, meTPPtMatchEff_); + + meTPEtaMatchEff_ = ibook.book1D("TPEtaMatchEff", + "Track matched to TP efficiency VS Eta;Eta;Efficiency", + meTrackMatchedTPEffEtaTot->getNbinsX(), + meTrackMatchedTPEffEtaTot->getTH1()->GetXaxis()->GetXmin(), + meTrackMatchedTPEffEtaTot->getTH1()->GetXaxis()->GetXmax()); + meTPEtaMatchEff_->getTH1()->SetMinimum(0.); + computeEfficiency1D(meTrackMatchedTPEffEtaMtd, meTrackMatchedTPEffEtaTot, meTPEtaMatchEff_); + + meTPmtdPtSelEff_ = ibook.book1D("TPmtdPtSelEff", + "Track selected efficiency TP-mtd hit VS Pt;Pt [GeV];Efficiency", + meMVATrackEffPtTot->getNbinsX(), + meMVATrackEffPtTot->getTH1()->GetXaxis()->GetXmin(), + meMVATrackEffPtTot->getTH1()->GetXaxis()->GetXmax()); + meTPmtdPtSelEff_->getTH1()->SetMinimum(0.); + computeEfficiency1D(meTrackMatchedTPmtdEffPtTot, meMVATrackEffPtTot, meTPmtdPtSelEff_); + + meTPmtdEtaSelEff_ = ibook.book1D("TPmtdEtaSelEff", + "Track selected efficiency TPmtd hit VS Eta;Eta;Efficiency", + meMVATrackEffEtaTot->getNbinsX(), + meMVATrackEffEtaTot->getTH1()->GetXaxis()->GetXmin(), + meMVATrackEffEtaTot->getTH1()->GetXaxis()->GetXmax()); + meTPmtdEtaSelEff_->getTH1()->SetMinimum(0.); + computeEfficiency1D(meTrackMatchedTPmtdEffEtaTot, meMVATrackEffEtaTot, meTPmtdEtaSelEff_); + + meTPmtdPtMatchEff_ = ibook.book1D("TPmtdPtMatchEff", + "Track matched to TP-mtd hit efficiency VS Pt;Pt [GeV];Efficiency", + meTrackMatchedTPmtdEffPtTot->getNbinsX(), + meTrackMatchedTPmtdEffPtTot->getTH1()->GetXaxis()->GetXmin(), + meTrackMatchedTPmtdEffPtTot->getTH1()->GetXaxis()->GetXmax()); + meTPmtdPtMatchEff_->getTH1()->SetMinimum(0.); + computeEfficiency1D(meTrackMatchedTPmtdEffPtMtd, meTrackMatchedTPmtdEffPtTot, meTPmtdPtMatchEff_); + + meTPmtdEtaMatchEff_ = ibook.book1D("TPmtdEtaMatchEff", + "Track matched to TP-mtd hit efficiency VS Eta;Eta;Efficiency", + meTrackMatchedTPmtdEffEtaTot->getNbinsX(), + meTrackMatchedTPmtdEffEtaTot->getTH1()->GetXaxis()->GetXmin(), + meTrackMatchedTPmtdEffEtaTot->getTH1()->GetXaxis()->GetXmax()); + meTPmtdEtaMatchEff_->getTH1()->SetMinimum(0.); + computeEfficiency1D(meTrackMatchedTPmtdEffEtaMtd, meTrackMatchedTPmtdEffEtaTot, meTPmtdEtaMatchEff_); + meBtlPhiEff_->getTH1()->SetMinimum(0.); meBtlPtEff_->getTH1()->SetMinimum(0.); for (int i = 0; i < 2; i++) { diff --git a/Validation/MtdValidation/plugins/MtdTracksValidation.cc b/Validation/MtdValidation/plugins/MtdTracksValidation.cc index 9e597de061836..f4102e664172b 100644 --- a/Validation/MtdValidation/plugins/MtdTracksValidation.cc +++ b/Validation/MtdValidation/plugins/MtdTracksValidation.cc @@ -33,6 +33,13 @@ #include "Geometry/MTDGeometryBuilder/interface/ProxyMTDTopology.h" #include "Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h" +#include "SimDataFormats/TrackingAnalysis/interface/TrackingParticle.h" +#include "SimDataFormats/Associations/interface/TrackToTrackingParticleAssociator.h" +#include "SimDataFormats/TrackingAnalysis/interface/TrackingParticleFwd.h" +#include "SimDataFormats/TrackingAnalysis/interface/TrackingVertexContainer.h" +#include "SimDataFormats/CrossingFrame/interface/MixCollection.h" +#include "SimDataFormats/TrackingHit/interface/PSimHit.h" + #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" #include "SimGeneral/HepPDTRecord/interface/ParticleDataTable.h" #include "HepMC/GenRanges.h" @@ -51,8 +58,11 @@ class MtdTracksValidation : public DQMEDAnalyzer { void analyze(const edm::Event&, const edm::EventSetup&) override; const bool mvaGenSel(const HepMC::GenParticle&, const float&); + const bool mvaTPSel(const TrackingParticle&); const bool mvaRecSel(const reco::TrackBase&, const reco::Vertex&, const double&, const double&); - const bool mvaGenRecMatch(const HepMC::GenParticle&, const double&, const reco::TrackBase&); + const bool mvaGenRecMatch(const HepMC::GenParticle&, const double&, const reco::TrackBase&, const bool&); + const edm::Ref>* getMatchedTP(const reco::TrackBaseRef&, const double&); + const bool tpWithMTD(const TrackingParticle&, const std::unordered_set&); // ------------ member data ------------ @@ -69,11 +79,18 @@ class MtdTracksValidation : public DQMEDAnalyzer { static constexpr double deltaPTcut_ = 0.05; // dPT < 5% static constexpr double deltaDRcut_ = 0.03; // DeltaR separation + const reco::RecoToSimCollection* r2s_; + const reco::SimToRecoCollection* s2r_; + edm::EDGetTokenT GenRecTrackToken_; edm::EDGetTokenT RecTrackToken_; edm::EDGetTokenT> RecVertexToken_; edm::EDGetTokenT HepMCProductToken_; + edm::EDGetTokenT simToRecoAssociationToken_; + edm::EDGetTokenT recoToSimAssociationToken_; + edm::EDGetTokenT> btlSimHitsToken_; + edm::EDGetTokenT> etlSimHitsToken_; edm::EDGetTokenT> trackAssocToken_; edm::EDGetTokenT> pathLengthToken_; @@ -123,9 +140,17 @@ class MtdTracksValidation : public DQMEDAnalyzer { MonitorElement* meMVATrackEffPtTot_; MonitorElement* meMVATrackMatchedEffPtTot_; MonitorElement* meMVATrackMatchedEffPtMtd_; + MonitorElement* meTrackMatchedTPEffPtTot_; + MonitorElement* meTrackMatchedTPEffPtMtd_; + MonitorElement* meTrackMatchedTPmtdEffPtTot_; + MonitorElement* meTrackMatchedTPmtdEffPtMtd_; MonitorElement* meMVATrackEffEtaTot_; MonitorElement* meMVATrackMatchedEffEtaTot_; MonitorElement* meMVATrackMatchedEffEtaMtd_; + MonitorElement* meTrackMatchedTPEffEtaTot_; + MonitorElement* meTrackMatchedTPEffEtaMtd_; + MonitorElement* meTrackMatchedTPmtdEffEtaTot_; + MonitorElement* meTrackMatchedTPmtdEffEtaMtd_; MonitorElement* meMVATrackResTot_; MonitorElement* meMVATrackPullTot_; MonitorElement* meMVATrackZposResTot_; @@ -142,6 +167,12 @@ MtdTracksValidation::MtdTracksValidation(const edm::ParameterSet& iConfig) RecTrackToken_ = consumes(iConfig.getParameter("inputTagT")); RecVertexToken_ = consumes>(iConfig.getParameter("inputTagV")); HepMCProductToken_ = consumes(iConfig.getParameter("inputTagH")); + simToRecoAssociationToken_ = + consumes(iConfig.getParameter("TPtoRecoTrackAssoc")); + recoToSimAssociationToken_ = + consumes(iConfig.getParameter("TPtoRecoTrackAssoc")); + btlSimHitsToken_ = consumes>(iConfig.getParameter("btlSimHits")); + etlSimHitsToken_ = consumes>(iConfig.getParameter("etlSimHits")); trackAssocToken_ = consumes>(iConfig.getParameter("trackAssocSrc")); pathLengthToken_ = consumes>(iConfig.getParameter("pathLengthSrc")); tmtdToken_ = consumes>(iConfig.getParameter("tmtd")); @@ -353,8 +384,34 @@ void MtdTracksValidation::analyze(const edm::Event& iEvent, const edm::EventSetu auto pdt = iSetup.getHandle(particleTableToken_); const HepPDT::ParticleDataTable* pdTable = pdt.product(); + auto simToRecoH = makeValid(iEvent.getHandle(simToRecoAssociationToken_)); + s2r_ = simToRecoH.product(); + + auto recoToSimH = makeValid(iEvent.getHandle(recoToSimAssociationToken_)); + r2s_ = recoToSimH.product(); + + // find all signal event trackId corresponding to an MTD simHit + std::unordered_set mtdTrackId; + + auto btlSimHitsHandle = makeValid(iEvent.getHandle(btlSimHitsToken_)); + MixCollection btlSimHits(btlSimHitsHandle.product()); + for (const auto& btlSH : btlSimHits) { + if (btlSH.eventId().bunchCrossing() == 0 && btlSH.eventId().event() == 0) { + mtdTrackId.insert(btlSH.trackId()); + } + } + + auto etlSimHitsHandle = makeValid(iEvent.getHandle(etlSimHitsToken_)); + MixCollection etlSimHits(etlSimHitsHandle.product()); + for (const auto& etlSH : btlSimHits) { + if (etlSH.eventId().bunchCrossing() == 0 && etlSH.eventId().event() == 0) { + mtdTrackId.insert(etlSH.trackId()); + } + } + // select events with reco vertex close to true simulated primary vertex - if (std::abs(primRecoVtx.z() - zsim) < deltaZcut_) { + + if (std::abs(primRecoVtx.z() - zsim) < deltaZcut_ || primRecoVtx.isFake()) { index = 0; for (const auto& trackGen : *GenRecTrackHandle) { const reco::TrackRef trackref(iEvent.getHandle(GenRecTrackToken_), index); @@ -367,6 +424,7 @@ void MtdTracksValidation::analyze(const edm::Event& iEvent, const edm::EventSetu } bool noCrack = std::abs(trackGen.eta()) < trackMaxBtlEta_ || std::abs(trackGen.eta()) > trackMinEtlEta_; + const bool vtxFake = primRecoVtx.isFake(); // reco-gen matching used for MVA quality flag if (mvaRecSel(trackGen, primRecoVtx, t0Safe[trackref], Sigmat0Safe[trackref])) { @@ -389,7 +447,7 @@ void MtdTracksValidation::analyze(const edm::Event& iEvent, const edm::EventSetu ? pdTable->particle(HepPDT::ParticleID(genP->pdg_id()))->charge() : 0.f; if (mvaGenSel(*genP, charge)) { - if (mvaGenRecMatch(*genP, zsim, trackGen)) { + if (mvaGenRecMatch(*genP, zsim, trackGen, vtxFake)) { meMVATrackZposResTot_->Fill(dZ); if (noCrack) { meMVATrackMatchedEffPtTot_->Fill(trackGen.pt()); @@ -407,6 +465,36 @@ void MtdTracksValidation::analyze(const edm::Event& iEvent, const edm::EventSetu } } } + + // TrackingParticle based matching + const reco::TrackBaseRef trkrefb(trackref); + auto tp_info = getMatchedTP(trkrefb, zsim); + + if (tp_info != nullptr) { + const bool withMTD = tpWithMTD(**tp_info, mtdTrackId); + if (noCrack) { + meTrackMatchedTPEffPtTot_->Fill(trackGen.pt()); + if (withMTD) { + meTrackMatchedTPmtdEffPtTot_->Fill(trackGen.pt()); + } + } + meTrackMatchedTPEffEtaTot_->Fill(std::abs(trackGen.eta())); + if (withMTD) { + meTrackMatchedTPmtdEffEtaTot_->Fill(std::abs(trackGen.eta())); + } + if (pullT > -9999.) { + if (noCrack) { + meTrackMatchedTPEffPtMtd_->Fill(trackGen.pt()); + if (withMTD) { + meTrackMatchedTPmtdEffPtMtd_->Fill(trackGen.pt()); + } + } + meTrackMatchedTPEffEtaMtd_->Fill(std::abs(trackGen.eta())); + if (withMTD) { + meTrackMatchedTPmtdEffEtaMtd_->Fill(std::abs(trackGen.eta())); + } + } + } } } } @@ -475,11 +563,31 @@ void MtdTracksValidation::bookHistograms(DQMStore::IBooker& ibook, edm::Run cons ibook.book1D("MVAMatchedEffPtTot", "Pt of tracks associated to LV matched to GEN; track pt [GeV] ", 110, 0., 11.); meMVATrackMatchedEffPtMtd_ = ibook.book1D( "MVAMatchedEffPtMtd", "Pt of tracks associated to LV matched to GEN with time; track pt [GeV] ", 110, 0., 11.); + meTrackMatchedTPEffPtTot_ = + ibook.book1D("MatchedTPEffPtTot", "Pt of tracks associated to LV matched to TP; track pt [GeV] ", 110, 0., 11.); + meTrackMatchedTPEffPtMtd_ = ibook.book1D( + "MatchedTPEffPtMtd", "Pt of tracks associated to LV matched to TP with time; track pt [GeV] ", 110, 0., 11.); + meTrackMatchedTPmtdEffPtTot_ = ibook.book1D( + "MatchedTPmtdEffPtTot", "Pt of tracks associated to LV matched to TP-mtd hit; track pt [GeV] ", 110, 0., 11.); + meTrackMatchedTPmtdEffPtMtd_ = + ibook.book1D("MatchedTPmtdEffPtMtd", + "Pt of tracks associated to LV matched to TP-mtd hit with time; track pt [GeV] ", + 110, + 0., + 11.); meMVATrackEffEtaTot_ = ibook.book1D("MVAEffEtaTot", "Pt of tracks associated to LV; track eta ", 66, 0., 3.3); meMVATrackMatchedEffEtaTot_ = ibook.book1D("MVAMatchedEffEtaTot", "Pt of tracks associated to LV matched to GEN; track eta ", 66, 0., 3.3); meMVATrackMatchedEffEtaMtd_ = ibook.book1D( "MVAMatchedEffEtaMtd", "Pt of tracks associated to LV matched to GEN with time; track eta ", 66, 0., 3.3); + meTrackMatchedTPEffEtaTot_ = + ibook.book1D("MatchedTPEffEtaTot", "Pt of tracks associated to LV matched to TP; track eta ", 66, 0., 3.3); + meTrackMatchedTPEffEtaMtd_ = ibook.book1D( + "MatchedTPEffEtaMtd", "Pt of tracks associated to LV matched to TP with time; track eta ", 66, 0., 3.3); + meTrackMatchedTPmtdEffEtaTot_ = ibook.book1D( + "MatchedTPmtdEffEtaTot", "Pt of tracks associated to LV matched to TP-mtd hit; track eta ", 66, 0., 3.3); + meTrackMatchedTPmtdEffEtaMtd_ = ibook.book1D( + "MatchedTPmtdEffEtaMtd", "Pt of tracks associated to LV matched to TP-mtd hit with time; track eta ", 66, 0., 3.3); meMVATrackResTot_ = ibook.book1D( "MVATrackRes", "t_{rec} - t_{sim} for LV associated tracks; t_{rec} - t_{sim} [ns] ", 120, -0.15, 0.15); meMVATrackPullTot_ = @@ -498,6 +606,9 @@ void MtdTracksValidation::fillDescriptions(edm::ConfigurationDescriptions& descr desc.add("inputTagT", edm::InputTag("trackExtenderWithMTD")); desc.add("inputTagV", edm::InputTag("offlinePrimaryVertices4D")); desc.add("inputTagH", edm::InputTag("generatorSmeared")); + desc.add("TPtoRecoTrackAssoc", edm::InputTag("trackingParticleRecoTrackAsssociation")); + desc.add("btlSimHits", edm::InputTag("mix", "g4SimHitsFastTimerHitsBarrel")); + desc.add("etlSimHits", edm::InputTag("mix", "g4SimHitsFastTimerHitsEndcap")); desc.add("tmtd", edm::InputTag("trackExtenderWithMTD:generalTracktmtd")); desc.add("sigmatmtd", edm::InputTag("trackExtenderWithMTD:generalTracksigmatmtd")); desc.add("t0Src", edm::InputTag("trackExtenderWithMTD:generalTrackt0")); @@ -527,12 +638,22 @@ const bool MtdTracksValidation::mvaGenSel(const HepMC::GenParticle& gp, const fl return match; } +const bool MtdTracksValidation::mvaTPSel(const TrackingParticle& tp) { + bool match = false; + if (tp.status() != 1) { + return match; + } + match = tp.charge() != 0 && tp.pt() > pTcut_ && std::abs(tp.eta()) < etacutGEN_; + return match; +} + const bool MtdTracksValidation::mvaRecSel(const reco::TrackBase& trk, const reco::Vertex& vtx, const double& t0, const double& st0) { bool match = false; - match = trk.pt() > pTcut_ && std::abs(trk.eta()) < etacutREC_ && std::abs(trk.vz() - vtx.z()) <= deltaZcut_; + match = trk.pt() > pTcut_ && std::abs(trk.eta()) < etacutREC_ && + (std::abs(trk.vz() - vtx.z()) <= deltaZcut_ || vtx.isFake()); if (st0 > 0.) { match = match && std::abs(t0 - vtx.t()) < 3. * st0; } @@ -541,13 +662,45 @@ const bool MtdTracksValidation::mvaRecSel(const reco::TrackBase& trk, const bool MtdTracksValidation::mvaGenRecMatch(const HepMC::GenParticle& genP, const double& zsim, - const reco::TrackBase& trk) { + const reco::TrackBase& trk, + const bool& vtxFake) { bool match = false; double dR = reco::deltaR(genP.momentum(), trk.momentum()); double genPT = genP.momentum().perp(); - match = - std::abs(genPT - trk.pt()) < trk.pt() * deltaPTcut_ && dR < deltaDRcut_ && std::abs(trk.vz() - zsim) < deltaZcut_; + match = std::abs(genPT - trk.pt()) < trk.pt() * deltaPTcut_ && dR < deltaDRcut_ && + (std::abs(trk.vz() - zsim) < deltaZcut_ || vtxFake); return match; } +const edm::Ref>* MtdTracksValidation::getMatchedTP(const reco::TrackBaseRef& recoTrack, + const double& zsim) { + auto found = r2s_->find(recoTrack); + + // reco track not matched to any TP + if (found == r2s_->end()) + return nullptr; + + //matched TP equal to any TP associated to signal sim vertex + for (const auto& tp : found->val) { + if (tp.first->eventId().bunchCrossing() == 0 && tp.first->eventId().event() == 0 && + std::abs(tp.first->parentVertex()->position().z() - zsim) < deltaZcut_) { + return &tp.first; + } + } + + // reco track not matched to any TP from vertex + return nullptr; +} + +const bool MtdTracksValidation::tpWithMTD(const TrackingParticle& tp, const std::unordered_set& trkList) { + for (const auto& simTrk : tp.g4Tracks()) { + for (const auto& mtdTrk : trkList) { + if (mtdTrk == simTrk.trackId()) { + return true; + } + } + } + return false; +} + DEFINE_FWK_MODULE(MtdTracksValidation); diff --git a/Validation/MtdValidation/test/mtdValidation_cfg.py b/Validation/MtdValidation/test/mtdValidation_cfg.py index f4b14c2aba859..ec8a452fc8a2a 100644 --- a/Validation/MtdValidation/test/mtdValidation_cfg.py +++ b/Validation/MtdValidation/test/mtdValidation_cfg.py @@ -49,10 +49,10 @@ process.load("Validation.MtdValidation.mtdTracksValid_cfi") process.load("Validation.MtdValidation.vertices4DValid_cfi") -process.btlDigiHitsValid.LocalPositionDebug = True -process.etlDigiHitsValid.LocalPositionDebug = True -process.btlLocalRecoValid.LocalPositionDebug = True -process.etlLocalRecoValid.LocalPositionDebug = True +process.btlDigiHitsValid.optionalPlots = True +process.etlDigiHitsValid.optionalPlots = True +process.btlLocalRecoValid.optionalPlots = True +process.etlLocalRecoValid.optionalPlots = True process.vertices4DValid.optionalPlots = True process.validation = cms.Sequence(btlValidation + etlValidation + process.mtdTracksValid + process.vertices4DValid) diff --git a/Validation/MuonCSCDigis/test/runCSCDigiHarvesting_cfg.py b/Validation/MuonCSCDigis/test/runCSCDigiHarvesting_cfg.py index b0d6fe7b3736a..144decaa8badc 100644 --- a/Validation/MuonCSCDigis/test/runCSCDigiHarvesting_cfg.py +++ b/Validation/MuonCSCDigis/test/runCSCDigiHarvesting_cfg.py @@ -35,7 +35,7 @@ # Other statements from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') # Path and EndPath definitions if options.doSim: diff --git a/Validation/MuonCSCDigis/test/runCSCDigiValidation_cfg.py b/Validation/MuonCSCDigis/test/runCSCDigiValidation_cfg.py index c28f2c200105f..339b3b9942ae1 100644 --- a/Validation/MuonCSCDigis/test/runCSCDigiValidation_cfg.py +++ b/Validation/MuonCSCDigis/test/runCSCDigiValidation_cfg.py @@ -38,7 +38,7 @@ # Other statements from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2022_realistic', '') process.DQMoutput = cms.OutputModule("DQMRootOutputModule", dataset = cms.untracked.PSet( diff --git a/Validation/RecoParticleFlow/README.md b/Validation/RecoParticleFlow/README.md index 637e08849e902..64e344ef7a7d6 100644 --- a/Validation/RecoParticleFlow/README.md +++ b/Validation/RecoParticleFlow/README.md @@ -145,7 +145,7 @@ Take note that the CMSSW python3 configuration for running the RECO sequence is ~~~ # For example (default for 2021): #CONDITIONS=auto:phase1_2018_realistic ERA=Run2_2018 # for 2018 scenarios -CONDITIONS=auto:phase1_2021_realistic ERA=Run3 # for run 3 +CONDITIONS=auto:phase1_2022_realistic ERA=Run3 # for run 3 #CONDITIONS=auto:phase2_realistic ERA=Phase2C9 # for phase2 #Running with 2 threads allows to use more memory on grid NTHREADS=2 TMPDIR=tmp diff --git a/Validation/RecoParticleFlow/test/pfanalysis_ntuple.py b/Validation/RecoParticleFlow/test/pfanalysis_ntuple.py index 233f90d58f077..7b1af90db05f4 100644 --- a/Validation/RecoParticleFlow/test/pfanalysis_ntuple.py +++ b/Validation/RecoParticleFlow/test/pfanalysis_ntuple.py @@ -20,7 +20,7 @@ process.load("SimTracker.TrackAssociation.trackingParticleRecoTrackAsssociation_cfi") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, "auto:phase1_2021_realistic") +process.GlobalTag = GlobalTag(process.GlobalTag, "auto:phase1_2022_realistic") from FastSimulation.Event.ParticleFilter_cfi import * process.maxEvents = cms.untracked.PSet(input=cms.untracked.int32(-1)) diff --git a/Validation/RecoParticleFlow/test/run_relval.sh b/Validation/RecoParticleFlow/test/run_relval.sh index 9d149ffac8768..0e8839c62e0e5 100755 --- a/Validation/RecoParticleFlow/test/run_relval.sh +++ b/Validation/RecoParticleFlow/test/run_relval.sh @@ -20,7 +20,7 @@ fi # #set default conditions - run3 2021 -CONDITIONS=auto:phase1_2021_realistic ERA=Run3 GEOM=DB.Extended CUSTOM= +CONDITIONS=auto:phase1_2022_realistic ERA=Run3 GEOM=DB.Extended CUSTOM= # #conditions - 2018 #CONDITIONS=auto:phase1_2018_realistic ERA=Run2_2018 GEOM=DB.Extended CUSTOM=