CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes
L1Comparator Class Reference

#include <L1Comparator.h>

Inheritance diagram for L1Comparator:
edm::global::EDProducer< edm::RunCache< std::array< bool, dedefs::DEnsys > > > edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Classes

struct  EventInfo
 

Public Member Functions

 L1Comparator (const edm::ParameterSet &)
 
- Public Member Functions inherited from edm::global::EDProducer< edm::RunCache< std::array< bool, dedefs::DEnsys > > >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Types

using RunCache = std::array< bool, dedefs::DEnsys >
 

Private Member Functions

template<class myCol >
bool CompareCollections (edm::Handle< myCol > data, edm::Handle< myCol > emul, std::ostream &dumpStream) const
 
template<class T >
bool CompareCollections (edm::Handle< T > data, edm::Handle< T > emul, std::ostream &) const
 
template<class T >
bool dumpCandidate (const T &dt, const T &em, std::ostream &s) const
 
void endJob () override
 
std::shared_ptr< RunCacheglobalBeginRun (edm::Run const &, const edm::EventSetup &) const final
 
void globalEndRun (edm::Run const &, edm::EventSetup const &) const final
 
template<class T >
void process (const edm::Handle< T > data, const edm::Handle< T > emul, const int sys, const int cid, EventInfo &eventInfo) const
 
template<class T >
void process (T const *, T const *, const int, const int, EventInfo &eventInfo) const
 
void produce (edm::StreamID, edm::Event &, const edm::EventSetup &) const override
 
int verbose () const
 

Private Attributes

const std::array< bool, dedefs::DEnsysm_doSys
 
std::ofstream m_dumpFile
 
const std::string m_dumpFileName
 
const int m_dumpMode
 
std::mutex m_fileGuard
 
std::atomic< bool > m_match
 
const bool m_stage1_layer2_
 
std::atomic< int > nevt_
 
edm::EDGetTokenT< L1CaloEmCollectiontokenCaloEm_ [2]
 
edm::EDGetTokenT< L1CaloRegionCollectiontokenCaloRegion_ [2]
 
edm::EDGetTokenT< L1GctEmCandCollectiontokenGctEmCand_isoEm_ [2]
 
edm::EDGetTokenT< L1GctEmCandCollectiontokenGctEmCand_nonIsoEm_ [2]
 
edm::EDGetTokenT< L1GctEtHadCollectiontokenGctEtHad_ [2]
 
edm::EDGetTokenT< L1GctEtMissCollectiontokenGctEtMiss_ [2]
 
edm::EDGetTokenT< L1GctEtTotalCollectiontokenGctEtTotal_ [2]
 
edm::EDGetTokenT< L1GctHFBitCountsCollectiontokenGctHFBitCounts_ [2]
 
edm::EDGetTokenT< L1GctHFRingEtSumsCollectiontokenGctHFRingEtSums_ [2]
 
edm::EDGetTokenT< L1GctHtMissCollectiontokenGctHtMiss_ [2]
 
edm::EDGetTokenT< L1GctJetCandCollectiontokenGctJetCand_cenJets_ [2]
 
edm::EDGetTokenT< L1GctJetCandCollectiontokenGctJetCand_forJets_ [2]
 
edm::EDGetTokenT< L1GctJetCandCollectiontokenGctJetCand_isoTauJets_ [2]
 
edm::EDGetTokenT< L1GctJetCandCollectiontokenGctJetCand_tauJets_ [2]
 
edm::EDGetTokenT< L1GctJetCountsCollectiontokenGctJetCounts_ [2]
 
edm::EDGetTokenT< LTCDigiCollectiontokenLTCDigi_ [2]
 
edm::EDGetTokenT< L1MuDTChambPhContainertokenMuDTChambPh_ [2]
 
edm::EDGetTokenT< L1MuDTChambThContainertokenMuDTChambTh_ [2]
 
edm::EDGetTokenT< L1MuDTTrackContainertokenMuDTTrack_ [2]
 
edm::EDGetTokenT< L1MuGMTCandCollectiontokenMuGMTCand_ [2]
 
edm::EDGetTokenT< L1MuGMTReadoutCollectiontokenMuReadoutCand_ [2]
 
edm::EDGetTokenT< L1MuRegionalCandCollectiontokenMuRegionalCandRPCb_ [2]
 
edm::EDGetTokenT< L1MuRegionalCandCollectiontokenMuRegionalCandRPCf_ [2]
 
const int verbose_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 43 of file L1Comparator.h.

Member Typedef Documentation

◆ RunCache

using L1Comparator::RunCache = std::array<bool, dedefs::DEnsys>
private

Definition at line 48 of file L1Comparator.h.

Constructor & Destructor Documentation

◆ L1Comparator()

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

assertions/temporary

dump level: -1(all),0(none),1(disagree),2(loc.disagree),3(loc.agree)

create d|e record product

Definition at line 29 of file L1Comparator.cc.

30  : m_stage1_layer2_{iConfig.getParameter<bool>("stage1_layer2_")},
31  verbose_{iConfig.getUntrackedParameter<int>("VerboseFlag", 0)},
32  m_doSys{fillDoSys(iConfig)},
33  m_dumpFileName{iConfig.getUntrackedParameter<std::string>("DumpFile", "")},
34  m_dumpMode{iConfig.getUntrackedParameter<int>("DumpMode", 0)},
35  m_fileGuard{} {
36  if (verbose())
37  std::cout << "\nL1COMPARATOR constructor...\n" << std::flush;
38 
39  if (verbose()) {
40  std::cout << "[L1Comparator] do sys? ";
41  for (int i = 0; i < DEnsys; i++)
42  std::cout << m_doSys[i] << " ";
43  std::cout << std::endl;
44 
45  std::cout << "[L1Comparator] list of systems to process: ";
46  for (int i = 0; i < DEnsys; i++)
47  if (m_doSys[i])
48  std::cout << SystLabel[i] << " ";
49  std::cout << std::endl;
50  }
51 
53  assert(ETP == 0);
54  assert(HTP == 1);
55  assert(RCT == 2);
56  assert(GCT == 3);
57  assert(DTP == 4);
58  assert(DTF == 5);
59  assert(CTP == 6);
60  assert(CTF == 7);
61  assert(RPC == 8);
62  assert(LTC == 9);
63  assert(GMT == 10);
64  assert(GLT == 11);
65 
67  if (m_dumpMode) {
69  if (!m_dumpFile.good())
70  edm::LogInfo("L1ComparatorDumpFileOpenError")
71  << " L1Comparator::L1Comparator() : "
72  << " couldn't open dump file " << m_dumpFileName.c_str() << std::endl;
73  }
74 
75  m_match = true;
76  nevt_ = -1;
77 
79  produces<L1DataEmulRecord>().setBranchAlias("L1DataEmulRecord");
80 
81  // -- RCT [regional calorimeter trigger]
82  if (m_doSys[RCT]) {
83  edm::InputTag tag0 = iConfig.getParameter<edm::InputTag>("RCTsourceData");
84  edm::InputTag tag1 = iConfig.getParameter<edm::InputTag>("RCTsourceEmul");
85 
86  tokenCaloEm_[0] = consumes<L1CaloEmCollection>(tag0);
87  tokenCaloEm_[1] = consumes<L1CaloEmCollection>(tag1);
88  tokenCaloRegion_[0] = consumes<L1CaloRegionCollection>(tag0);
89  tokenCaloRegion_[1] = consumes<L1CaloRegionCollection>(tag1);
90  }
91 
92  // -- GCT [global calorimeter trigger]
93  if (m_doSys[GCT]) {
95  tags[0] = iConfig.getParameter<edm::InputTag>("GCTsourceData");
96  tags[1] = iConfig.getParameter<edm::InputTag>("GCTsourceEmul");
97 
98  if (m_stage1_layer2_ == false) {
99  for (int i = 0; i < 2; ++i) {
100  edm::InputTag const& tag = tags[i];
101  std::string const& label = tag.label();
102  tokenGctEmCand_isoEm_[i] = consumes<L1GctEmCandCollection>(edm::InputTag(label, "isoEm"));
103  tokenGctEmCand_nonIsoEm_[i] = consumes<L1GctEmCandCollection>(edm::InputTag(label, "nonIsoEm"));
104  tokenGctJetCand_cenJets_[i] = consumes<L1GctJetCandCollection>(edm::InputTag(label, "cenJets"));
105  tokenGctJetCand_forJets_[i] = consumes<L1GctJetCandCollection>(edm::InputTag(label, "forJets"));
106  tokenGctJetCand_tauJets_[i] = consumes<L1GctJetCandCollection>(edm::InputTag(label, "tauJets"));
107  tokenGctEtTotal_[i] = consumes<L1GctEtTotalCollection>(tag);
108  tokenGctEtHad_[i] = consumes<L1GctEtHadCollection>(tag);
109  tokenGctEtMiss_[i] = consumes<L1GctEtMissCollection>(tag);
110  tokenGctHFRingEtSums_[i] = consumes<L1GctHFRingEtSumsCollection>(tag);
111  tokenGctHFBitCounts_[i] = consumes<L1GctHFBitCountsCollection>(tag);
112  tokenGctHtMiss_[i] = consumes<L1GctHtMissCollection>(tag);
113  tokenGctJetCounts_[i] = consumes<L1GctJetCountsCollection>(tag);
114  }
115  }
116  if (m_stage1_layer2_ == true) {
117  for (int i = 0; i < 2; ++i) {
118  edm::InputTag const& tag = tags[i];
119  std::string const& label = tag.label();
120  tokenGctEmCand_isoEm_[i] = consumes<L1GctEmCandCollection>(edm::InputTag(label, "isoEm"));
121  tokenGctEmCand_nonIsoEm_[i] = consumes<L1GctEmCandCollection>(edm::InputTag(label, "nonIsoEm"));
122  tokenGctJetCand_cenJets_[i] = consumes<L1GctJetCandCollection>(edm::InputTag(label, "cenJets"));
123  tokenGctJetCand_forJets_[i] = consumes<L1GctJetCandCollection>(edm::InputTag(label, "forJets"));
124  tokenGctJetCand_tauJets_[i] = consumes<L1GctJetCandCollection>(edm::InputTag(label, "tauJets"));
125  tokenGctJetCand_isoTauJets_[i] = consumes<L1GctJetCandCollection>(edm::InputTag(label, "isoTauJets"));
126  tokenGctEtTotal_[i] = consumes<L1GctEtTotalCollection>(tag);
127  tokenGctEtHad_[i] = consumes<L1GctEtHadCollection>(tag);
128  tokenGctEtMiss_[i] = consumes<L1GctEtMissCollection>(tag);
129  tokenGctHFRingEtSums_[i] = consumes<L1GctHFRingEtSumsCollection>(tag);
130  tokenGctHFBitCounts_[i] = consumes<L1GctHFBitCountsCollection>(tag);
131  tokenGctHtMiss_[i] = consumes<L1GctHtMissCollection>(tag);
132  tokenGctJetCounts_[i] = consumes<L1GctJetCountsCollection>(tag);
133  }
134  }
135  }
136 
137  // -- DTP [drift tube trigger primitive]
138  if (m_doSys[DTP]) {
139  edm::InputTag tag0 = iConfig.getParameter<edm::InputTag>("DTPsourceData");
140  edm::InputTag tag1 = iConfig.getParameter<edm::InputTag>("DTPsourceEmul");
141 
142  tokenMuDTChambPh_[0] = consumes<L1MuDTChambPhContainer>(tag0);
143  tokenMuDTChambPh_[1] = consumes<L1MuDTChambPhContainer>(tag1);
144  tokenMuDTChambTh_[0] = consumes<L1MuDTChambThContainer>(tag0);
145  tokenMuDTChambTh_[1] = consumes<L1MuDTChambThContainer>(tag1);
146  }
147 
148  // -- DTF [drift tube track finder]
149  if (m_doSys[DTF]) {
150  edm::InputTag tag0 = iConfig.getParameter<edm::InputTag>("DTFsourceData");
151  edm::InputTag tag1 = iConfig.getParameter<edm::InputTag>("DTFsourceEmul");
152 
153  tokenMuDTTrack_[0] = consumes<L1MuDTTrackContainer>(edm::InputTag(tag0.label(), "DATA"));
154  tokenMuDTTrack_[1] = consumes<L1MuDTTrackContainer>(edm::InputTag(tag1.label(), "DTTF"));
155  }
156 
157  // -- RPC [resistive plate chambers regional trigger]
158  if (m_doSys[RPC]) {
159  edm::InputTag tag0 = iConfig.getParameter<edm::InputTag>("RPCsourceData");
160  edm::InputTag tag1 = iConfig.getParameter<edm::InputTag>("RPCsourceEmul");
161 
162  tokenMuRegionalCandRPCb_[0] = consumes<L1MuRegionalCandCollection>(edm::InputTag(tag0.label(), "RPCb"));
163  tokenMuRegionalCandRPCb_[1] = consumes<L1MuRegionalCandCollection>(edm::InputTag(tag1.label(), "RPCb"));
164  tokenMuRegionalCandRPCf_[0] = consumes<L1MuRegionalCandCollection>(edm::InputTag(tag0.label(), "RPCf"));
165  tokenMuRegionalCandRPCf_[1] = consumes<L1MuRegionalCandCollection>(edm::InputTag(tag1.label(), "RPCf"));
166  }
167 
168  // -- LTC [local trigger controller]
169  if (m_doSys[LTC]) {
170  // FIXME
171  // There should be a real input tag here, but there was none in the original code.
172  edm::InputTag dummyTag;
173  tokenLTCDigi_[0] = consumes<LTCDigiCollection>(dummyTag);
174  tokenLTCDigi_[1] = consumes<LTCDigiCollection>(dummyTag);
175  }
176 
177  // -- GMT [global muon trigger]
178  if (m_doSys[GMT]) {
179  edm::InputTag tag0 = iConfig.getParameter<edm::InputTag>("GMTsourceData");
180  edm::InputTag tag1 = iConfig.getParameter<edm::InputTag>("GMTsourceEmul");
181 
182  tokenMuGMTCand_[0] = consumes<L1MuGMTCandCollection>(tag0);
183  tokenMuGMTCand_[1] = consumes<L1MuGMTCandCollection>(tag1);
184  tokenMuReadoutCand_[0] = consumes<L1MuGMTReadoutCollection>(tag0);
185  tokenMuReadoutCand_[1] = consumes<L1MuGMTReadoutCollection>(tag1);
186  }
187 
188  if (verbose())
189  std::cout << "\nL1Comparator constructor...done.\n" << std::flush;
190 }

References edm::ParameterSet::getParameter().

Member Function Documentation

◆ CompareCollections() [1/2]

template<class myCol >
bool L1Comparator::CompareCollections ( edm::Handle< myCol >  data,
edm::Handle< myCol >  emul,
std::ostream &  dumpStream 
) const
private

Definition at line 866 of file L1Comparator.cc.

868  {
869  bool match = true;
870  typedef typename myCol::size_type col_sz;
871  typedef typename myCol::iterator col_it;
872  col_sz ndata = data->size();
873  col_sz nemul = emul->size();
874  if (ndata != nemul) {
875  match &= false;
876  dumpStream << " #cand mismatch!"
877  << "\tdata: " << ndata << "\temul: " << nemul << std::endl;
878  }
879  col_it itd = data->begin();
880  col_it itm = emul->begin();
881  for (col_sz i = 0; i < ndata; i++) {
882  match &= dumpCandidate(*itd++, *itm++, dumpStream);
883  }
884  return match;
885 }

References data, dumpCandidate(), mps_fire::i, and match().

◆ CompareCollections() [2/2]

template<class T >
bool L1Comparator::CompareCollections ( edm::Handle< T data,
edm::Handle< T emul,
std::ostream &   
) const
private

◆ dumpCandidate()

template<class T >
bool L1Comparator::dumpCandidate ( const T dt,
const T em,
std::ostream &  s 
) const
private

Definition at line 888 of file L1Comparator.cc.

888  {
889  if (dt == em)
890  return true;
891  s << dt << std::endl;
892  s << em << std::endl << std::endl;
893  return false;
894 }

References dt, and alignCSCRings::s.

Referenced by CompareCollections().

◆ endJob()

void L1Comparator::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::global::EDProducerBase.

Definition at line 241 of file L1Comparator.cc.

241  {
242  if (m_dumpMode)
243  m_dumpFile << "\n\n-------\n"
244  << "Global data|emulator agreement: " << m_match << std::endl;
245  m_dumpFile.close();
246 }

References m_dumpFile, m_dumpMode, and m_match.

◆ globalBeginRun()

std::shared_ptr< L1Comparator::RunCache > L1Comparator::globalBeginRun ( edm::Run const &  iRun,
const edm::EventSetup iSetup 
) const
finalprivate

Definition at line 192 of file L1Comparator.cc.

193  {
194  if (verbose())
195  std::cout << "\nL1COMPARATOR beginRun...\n" << std::flush;
196 
197  auto runDoSys = std::make_shared<RunCache>();
198  // disable subsystem if not included in current run configuration
199  try {
201  iSetup.get<L1TriggerKeyRcd>().get(pKey);
202  *runDoSys = m_doSys;
203 
204  (*runDoSys)[RCT] &= (!(pKey->subsystemKey(L1TriggerKey::kRCT).empty()));
205  (*runDoSys)[GCT] &= (!(pKey->subsystemKey(L1TriggerKey::kGCT).empty()));
206  (*runDoSys)[DTF] &= (!(pKey->subsystemKey(L1TriggerKey::kDTTF).empty()));
207  (*runDoSys)[CTF] &= (!(pKey->subsystemKey(L1TriggerKey::kCSCTF).empty()));
208  (*runDoSys)[RPC] &= (!(pKey->subsystemKey(L1TriggerKey::kRPC).empty()));
209  (*runDoSys)[GMT] &= (!(pKey->subsystemKey(L1TriggerKey::kGMT).empty()));
210  (*runDoSys)[GLT] &= (!(pKey->subsystemKey(L1TriggerKey::kGT).empty()));
211 
212  if (verbose()) {
213  if (pKey->subsystemKey(L1TriggerKey::kRCT).empty())
214  std::cout << "RCT key is empty. Sub-systems is disabled (" << (*runDoSys)[RCT] << ")\n";
215  if (pKey->subsystemKey(L1TriggerKey::kGCT).empty())
216  std::cout << "GCT key is empty. Sub-systems is disabled (" << (*runDoSys)[GCT] << ")\n";
217  if (pKey->subsystemKey(L1TriggerKey::kDTTF).empty())
218  std::cout << "DTTF key is empty. Sub-systems is disabled (" << (*runDoSys)[DTF] << ")\n";
219  if (pKey->subsystemKey(L1TriggerKey::kCSCTF).empty())
220  std::cout << "CSCTF key is empty. Sub-systems is disabled (" << (*runDoSys)[CTF] << ")\n";
221  if (pKey->subsystemKey(L1TriggerKey::kRPC).empty())
222  std::cout << "RPC key is empty. Sub-systems is disabled (" << (*runDoSys)[RPC] << ")\n";
223  if (pKey->subsystemKey(L1TriggerKey::kGMT).empty())
224  std::cout << "GMT key is empty. Sub-systems is disabled (" << (*runDoSys)[GMT] << ")\n";
225  if (pKey->subsystemKey(L1TriggerKey::kGT).empty())
226  std::cout << "GT key is empty. Sub-systems is disabled (" << (*runDoSys)[GLT] << ")\n";
227  std::cout << "TSC key = " << pKey->tscKey() << std::endl;
228  }
229 
230  //access subsystem key if needed, eg:
231  //std::cout << "RCT key:" << pKey->subsystemKey( L1TriggerKey::kRCT ) << std::endl;
232  } catch (cms::Exception& ex) {
233  edm::LogWarning("L1Comparator") << "No L1TriggerKey found." << std::endl;
234  }
235 
236  if (verbose())
237  std::cout << "L1COMPARATOR beginRun... done\n" << std::flush;
238  return runDoSys;
239 }

References gather_cfg::cout, dedefs::CTF, dedefs::DTF, dedefs::GCT, edm::EventSetup::get(), get, dedefs::GLT, GMT, L1TriggerKey::kCSCTF, L1TriggerKey::kDTTF, L1TriggerKey::kGCT, L1TriggerKey::kGMT, L1TriggerKey::kGT, L1TriggerKey::kRCT, L1TriggerKey::kRPC, m_doSys, dedefs::RCT, l1t::mtf7::RPC, L1TriggerKey::subsystemKey(), L1TriggerKey::tscKey(), and verbose().

◆ globalEndRun()

void L1Comparator::globalEndRun ( edm::Run const &  ,
edm::EventSetup const &   
) const
inlinefinalprivate

Definition at line 51 of file L1Comparator.h.

51 {}

◆ process() [1/2]

template<class T >
void L1Comparator::process ( const edm::Handle< T data,
const edm::Handle< T emul,
const int  sys,
const int  cid,
EventInfo eventInfo 
) const
inlineprivate

Definition at line 69 of file L1Comparator.h.

70  {
71  if (data.isValid() && emul.isValid())
72  process(data.product(), emul.product(), sys, cid, eventInfo);
73  }

References data, ZMuMuAnalysisNtupler_cff::eventInfo, edm::HandleBase::isValid(), process(), and edm::Handle< T >::product().

◆ process() [2/2]

template<class T >
void L1Comparator::process ( T const *  data,
T const *  emul,
const int  sys,
const int  cid,
EventInfo eventInfo 
) const
private

tmp: for getting a clean dump (avoid empty entries)

perform comparison

gather results

over-write system-id: needed eg for GMT input, CSC tf reg cand, CTP&CTF

over-write data type: needed eg for GCT jet types, regional muon sources

append d|e digis to the record's collection

Definition at line 768 of file L1Comparator.cc.

768  {
769  if (verbose())
770  std::cout << "L1Comparator::process -ing system:" << sys << " (" << SystLabel[sys] << "), data type " << cid
771  << "...\n"
772  << std::flush;
773  if (verbose())
774  std::cout << "L1Comparator::process debug "
775  << " (size " << data->size() << "," << emul->size() << ")"
776  << ".\n"
777  << std::flush;
778 
780  bool prt = false;
781  if (!m_dumpMode)
782  prt = false;
783  else if (m_dumpMode == -1)
784  prt = true;
785  else if (m_dumpMode > 0) {
786  DEcompare<T> tmp(data, emul);
787  if (tmp.get_ncand(0) == 0 && tmp.get_ncand(1) == 0)
788  prt = false;
789  else
790  prt = !tmp.do_compare(eventInfo.dumpToFile_, 0);
791  }
792 
793  //declare de compare object
794  DEcompare<T> cmp(data, emul);
795 
796  int ndata = cmp.get_ncand(0);
797  int nemul = cmp.get_ncand(1);
798 
799  if (verbose())
800  std::cout << "L1Comparator::process "
801  << " system:" << SystLabel[sys] << "(id " << sys << ")"
802  << " type:" << cmp.GetName(0) << "(" << cmp.de_type() << ")"
803  << " ndata:" << ndata << " nemul:" << nemul << " (size " << data->size() << "," << emul->size() << ")"
804  << ".\n"
805  << std::flush;
806 
807  if (ndata == 0 && nemul == 0) {
808  if (verbose())
809  std::cout << "L1Comparator::process "
810  << "empty collections -- exiting!\n"
811  << std::flush;
812  return;
813  }
814 
815  eventInfo.dumpToFile_ << std::setiosflags(std::ios::showpoint | std::ios::fixed | std::ios::right |
816  std::ios::adjustfield);
817  std::cout << std::setiosflags(std::ios::showpoint | std::ios::fixed | std::ios::right | std::ios::adjustfield);
818 
819  if (eventInfo.dumpEvent_ && prt) {
820  eventInfo.dumpToFile_ << "\nEntry: " << eventInfo.nevt_ << " (event:" << eventInfo.evtNum_
821  << " | run:" << eventInfo.runNum_ << ")\n"
822  << std::flush;
823  eventInfo.dumpEvent_ = false;
824  }
825 
826  if (prt)
827  eventInfo.dumpToFile_ << "\n sys:" << SystLabel[sys] << " (" << sys << "), type:" << cid //cmp.GetName()
828  << " ...\n";
829 
830  if (verbose())
831  std::cout << "L1Comparator::process print:\n" << std::flush << cmp.print() << std::flush;
832 
834  eventInfo.DEmatchEvt[sys] &= cmp.do_compare(eventInfo.dumpToFile_, m_dumpMode);
835 
837  L1DEDigiCollection dg = cmp.getDEDigis();
838 
839  if (verbose())
840  for (L1DEDigiCollection::iterator it = dg.begin(); it != dg.end(); it++)
841  std::cout << *it << "\n";
842 
844  for (L1DEDigiCollection::iterator it = dg.begin(); it != dg.end(); it++)
845  it->setSid(sys);
847  for (L1DEDigiCollection::iterator it = dg.begin(); it != dg.end(); it++)
848  it->setCid(cid);
849 
851  eventInfo.m_dedigis.insert(eventInfo.m_dedigis.end(), dg.begin(), dg.end());
852  for (int i = 0; i < 2; i++)
853  eventInfo.DEncand[sys][i] += cmp.get_ncand(i);
854 
855  if (verbose())
856  std::cout << "L1Comparator::process "
857  << " system:" << SystLabel[sys] << " type:" << cmp.GetName(0) << " ndata:" << eventInfo.DEncand[sys][0]
858  << " nemul:" << eventInfo.DEncand[sys][1] << " (size " << data->size() << "," << emul->size() << ")"
859  << " ndigis:" << dg.size() << " agree? " << eventInfo.DEmatchEvt[sys] << std::endl;
860 
861  if (verbose())
862  std::cout << "L1Comparator::process -ing system:" << sys << " (" << SystLabel[sys] << ")...done.\n" << std::flush;
863 }

References fileCollector::cmp, gather_cfg::cout, data, ZMuMuAnalysisNtupler_cff::eventInfo, alignBH_cfg::fixed, mps_fire::i, m_dumpMode, dedefs::SystLabel, createJobs::tmp, and verbose().

Referenced by process().

◆ produce()

void L1Comparator::produce ( edm::StreamID  ,
edm::Event iEvent,
const edm::EventSetup iSetup 
) const
overrideprivatevirtual

– Get the data and emulated collections --------------------------—

— done getting collections. —

processing : compare the pairs of collections

Implements edm::global::EDProducerBase.

Definition at line 248 of file L1Comparator.cc.

248  {
250  eventInfo.nevt_ = ++nevt_;
251  eventInfo.evtNum_ = iEvent.id().event();
252  eventInfo.runNum_ = iEvent.id().run();
253 
254  if (verbose())
255  std::cout << "\nL1COMPARATOR entry:" << eventInfo.nevt_ << " | evt:" << eventInfo.evtNum_
256  << " | run:" << eventInfo.runNum_ << "\n"
257  << std::flush;
258 
260 
261  // -- RCT [regional calorimeter trigger]
266  auto const runIndex = iEvent.getRun().index();
267  auto& runDoSys = *runCache(runIndex);
268 
269  if (runDoSys[RCT]) {
270  iEvent.getByToken(tokenCaloEm_[0], rct_em_data);
271  iEvent.getByToken(tokenCaloEm_[1], rct_em_emul);
272  iEvent.getByToken(tokenCaloRegion_[0], rct_rgn_data);
273  iEvent.getByToken(tokenCaloRegion_[1], rct_rgn_emul);
274  }
275 
276  // -- GCT [global calorimeter trigger]
277  edm::Handle<L1GctEmCandCollection> gct_isolaem_data;
278  edm::Handle<L1GctEmCandCollection> gct_isolaem_emul;
279  edm::Handle<L1GctEmCandCollection> gct_noisoem_data;
280  edm::Handle<L1GctEmCandCollection> gct_noisoem_emul;
281  edm::Handle<L1GctJetCandCollection> gct_cenjets_data;
282  edm::Handle<L1GctJetCandCollection> gct_cenjets_emul;
283  edm::Handle<L1GctJetCandCollection> gct_forjets_data;
284  edm::Handle<L1GctJetCandCollection> gct_forjets_emul;
285  edm::Handle<L1GctJetCandCollection> gct_taujets_data;
286  edm::Handle<L1GctJetCandCollection> gct_taujets_emul;
287  edm::Handle<L1GctJetCandCollection> gct_isotaujets_data;
288  edm::Handle<L1GctJetCandCollection> gct_isotaujets_emul;
289 
292  edm::Handle<L1GctEtMissCollection> gct_etmiss_data;
293  edm::Handle<L1GctEtMissCollection> gct_etmiss_emul;
294  edm::Handle<L1GctEtTotalCollection> gct_ettota_data;
295  edm::Handle<L1GctEtTotalCollection> gct_ettota_emul;
296  edm::Handle<L1GctHtMissCollection> gct_htmiss_data;
297  edm::Handle<L1GctHtMissCollection> gct_htmiss_emul;
304 
305  if (runDoSys[GCT]) {
306  if (m_stage1_layer2_ == false) {
307  iEvent.getByToken(tokenGctEmCand_isoEm_[0], gct_isolaem_data);
308  iEvent.getByToken(tokenGctEmCand_isoEm_[1], gct_isolaem_emul);
309  iEvent.getByToken(tokenGctEmCand_nonIsoEm_[0], gct_noisoem_data);
310  iEvent.getByToken(tokenGctEmCand_nonIsoEm_[1], gct_noisoem_emul);
311  iEvent.getByToken(tokenGctJetCand_cenJets_[0], gct_cenjets_data);
312  iEvent.getByToken(tokenGctJetCand_cenJets_[1], gct_cenjets_emul);
313  iEvent.getByToken(tokenGctJetCand_forJets_[0], gct_forjets_data);
314  iEvent.getByToken(tokenGctJetCand_forJets_[1], gct_forjets_emul);
315  iEvent.getByToken(tokenGctJetCand_tauJets_[0], gct_taujets_data);
316  iEvent.getByToken(tokenGctJetCand_tauJets_[1], gct_taujets_emul);
317  iEvent.getByToken(tokenGctEtHad_[0], gct_ht_data);
318  iEvent.getByToken(tokenGctEtHad_[1], gct_ht_emul);
319  iEvent.getByToken(tokenGctEtMiss_[0], gct_etmiss_data);
320  iEvent.getByToken(tokenGctEtMiss_[1], gct_etmiss_emul);
321  iEvent.getByToken(tokenGctEtTotal_[0], gct_ettota_data);
322  iEvent.getByToken(tokenGctEtTotal_[1], gct_ettota_emul);
323  iEvent.getByToken(tokenGctHtMiss_[0], gct_htmiss_data);
324  iEvent.getByToken(tokenGctHtMiss_[1], gct_htmiss_emul);
325  iEvent.getByToken(tokenGctHFRingEtSums_[0], gct_hfring_data);
326  iEvent.getByToken(tokenGctHFRingEtSums_[1], gct_hfring_emul);
327  iEvent.getByToken(tokenGctHFBitCounts_[0], gct_hfbcnt_data);
328  iEvent.getByToken(tokenGctHFBitCounts_[1], gct_hfbcnt_emul);
329  iEvent.getByToken(tokenGctJetCounts_[0], gct_jetcnt_data);
330  iEvent.getByToken(tokenGctJetCounts_[1], gct_jetcnt_emul);
331  }
332  if (m_stage1_layer2_ == true) {
333  iEvent.getByToken(tokenGctEmCand_isoEm_[0], gct_isolaem_data);
334  iEvent.getByToken(tokenGctEmCand_isoEm_[1], gct_isolaem_emul);
335  iEvent.getByToken(tokenGctEmCand_nonIsoEm_[0], gct_noisoem_data);
336  iEvent.getByToken(tokenGctEmCand_nonIsoEm_[1], gct_noisoem_emul);
337  iEvent.getByToken(tokenGctJetCand_cenJets_[0], gct_cenjets_data);
338  iEvent.getByToken(tokenGctJetCand_cenJets_[1], gct_cenjets_emul);
339  iEvent.getByToken(tokenGctJetCand_forJets_[0], gct_forjets_data);
340  iEvent.getByToken(tokenGctJetCand_forJets_[1], gct_forjets_emul);
341  iEvent.getByToken(tokenGctJetCand_tauJets_[0], gct_taujets_data);
342  iEvent.getByToken(tokenGctJetCand_tauJets_[1], gct_taujets_emul);
343  iEvent.getByToken(tokenGctJetCand_isoTauJets_[0], gct_isotaujets_data);
344  iEvent.getByToken(tokenGctJetCand_isoTauJets_[1], gct_isotaujets_emul);
345  iEvent.getByToken(tokenGctEtHad_[0], gct_ht_data);
346  iEvent.getByToken(tokenGctEtHad_[1], gct_ht_emul);
347  iEvent.getByToken(tokenGctEtMiss_[0], gct_etmiss_data);
348  iEvent.getByToken(tokenGctEtMiss_[1], gct_etmiss_emul);
349  iEvent.getByToken(tokenGctEtTotal_[0], gct_ettota_data);
350  iEvent.getByToken(tokenGctEtTotal_[1], gct_ettota_emul);
351  iEvent.getByToken(tokenGctHtMiss_[0], gct_htmiss_data);
352  iEvent.getByToken(tokenGctHtMiss_[1], gct_htmiss_emul);
353  iEvent.getByToken(tokenGctHFRingEtSums_[0], gct_hfring_data);
354  iEvent.getByToken(tokenGctHFRingEtSums_[1], gct_hfring_emul);
355  iEvent.getByToken(tokenGctHFBitCounts_[0], gct_hfbcnt_data);
356  iEvent.getByToken(tokenGctHFBitCounts_[1], gct_hfbcnt_emul);
357  iEvent.getByToken(tokenGctJetCounts_[0], gct_jetcnt_data);
358  iEvent.getByToken(tokenGctJetCounts_[1], gct_jetcnt_emul);
359  }
360  }
361 
362  // -- DTP [drift tube trigger primitive]
367  if (runDoSys[DTP]) {
368  iEvent.getByToken(tokenMuDTChambPh_[0], dtp_ph_data_);
369  iEvent.getByToken(tokenMuDTChambPh_[1], dtp_ph_emul_);
370  iEvent.getByToken(tokenMuDTChambTh_[0], dtp_th_data_);
371  iEvent.getByToken(tokenMuDTChambTh_[1], dtp_th_emul_);
372  }
373  L1MuDTChambPhDigiCollection const* dtp_ph_data = nullptr;
374  L1MuDTChambPhDigiCollection const* dtp_ph_emul = nullptr;
375  L1MuDTChambThDigiCollection const* dtp_th_data = nullptr;
376  L1MuDTChambThDigiCollection const* dtp_th_emul = nullptr;
377 
378  if (dtp_ph_data_.isValid())
379  dtp_ph_data = dtp_ph_data_->getContainer();
380  if (dtp_ph_emul_.isValid())
381  dtp_ph_emul = dtp_ph_emul_->getContainer();
382  if (dtp_th_data_.isValid())
383  dtp_th_data = dtp_th_data_->getContainer();
384  if (dtp_th_emul_.isValid())
385  dtp_th_emul = dtp_th_emul_->getContainer();
386 
387  // -- DTF [drift tube track finder]
388  edm::Handle<L1MuDTTrackContainer> dtf_trk_data_;
389  edm::Handle<L1MuDTTrackContainer> dtf_trk_emul_;
390  L1MuRegionalCandCollection const* dtf_trk_data = nullptr;
391  L1MuRegionalCandCollection const* dtf_trk_emul = nullptr;
392  if (runDoSys[DTF]) {
393  iEvent.getByToken(tokenMuDTTrack_[0], dtf_trk_data_);
394  iEvent.getByToken(tokenMuDTTrack_[1], dtf_trk_emul_);
395  }
396  //extract the regional cands
397  typedef std::vector<L1MuDTTrackCand> L1MuDTTrackCandCollection;
398  L1MuRegionalCandCollection dtf_trk_data_v, dtf_trk_emul_v;
399  dtf_trk_data_v.clear();
400  dtf_trk_emul_v.clear();
401  if (dtf_trk_data_.isValid()) {
402  L1MuDTTrackCandCollection const* dttc = dtf_trk_data_->getContainer();
403  for (L1MuDTTrackCandCollection::const_iterator it = dttc->begin(); it != dttc->end(); it++)
404  dtf_trk_data_v.push_back(L1MuRegionalCand(*it));
405  }
406  if (dtf_trk_emul_.isValid()) {
407  L1MuDTTrackCandCollection const* dttc = dtf_trk_emul_->getContainer();
408  for (L1MuDTTrackCandCollection::const_iterator it = dttc->begin(); it != dttc->end(); it++)
409  dtf_trk_emul_v.push_back(L1MuRegionalCand(*it));
410  }
411  dtf_trk_data = &dtf_trk_data_v;
412  dtf_trk_emul = &dtf_trk_emul_v;
413 
414  // -- RPC [resistive plate chambers regional trigger]
419  if (runDoSys[RPC]) {
420  iEvent.getByToken(tokenMuRegionalCandRPCb_[0], rpc_cen_data);
421  iEvent.getByToken(tokenMuRegionalCandRPCb_[1], rpc_cen_emul);
422  iEvent.getByToken(tokenMuRegionalCandRPCf_[0], rpc_for_data);
423  iEvent.getByToken(tokenMuRegionalCandRPCf_[1], rpc_for_emul);
424  }
425 
426  // -- LTC [local trigger controller]
429  if (runDoSys[LTC]) {
430  iEvent.getByToken(tokenLTCDigi_[0], ltc_data);
431  iEvent.getByToken(tokenLTCDigi_[1], ltc_emul);
432  }
433 
434  // -- GMT [global muon trigger]
441  //tbd: may compare extended candidates
442  L1MuGMTCandCollection const* gmt_can_data(new L1MuGMTCandCollection);
443  L1MuGMTCandCollection const* gmt_can_emul(new L1MuGMTCandCollection);
444  if (runDoSys[GMT]) {
445  iEvent.getByToken(tokenMuGMTCand_[0], gmt_data);
446  iEvent.getByToken(tokenMuGMTCand_[1], gmt_emul);
447  iEvent.getByToken(tokenMuReadoutCand_[0], gmt_rdt_data_);
448  iEvent.getByToken(tokenMuReadoutCand_[1], gmt_rdt_emul_);
449  }
450  L1MuGMTCandCollection gmt_can_data_vec, gmt_can_emul_vec;
451  L1MuRegionalCandCollection gmt_rdt_data_vec, gmt_rdt_emul_vec;
452  gmt_can_data_vec.clear();
453  gmt_can_emul_vec.clear();
454  gmt_rdt_data_vec.clear();
455  gmt_rdt_emul_vec.clear();
456  if (gmt_rdt_data_.isValid() && gmt_rdt_emul_.isValid()) {
457  typedef std::vector<L1MuGMTReadoutRecord>::const_iterator GmtRrIt;
458  //get record vector for data
459  std::vector<L1MuGMTReadoutRecord> gmt_rdt_data_bx = gmt_rdt_data_->getRecords();
460  for (GmtRrIt igmtrr = gmt_rdt_data_bx.begin(); igmtrr != gmt_rdt_data_bx.end(); igmtrr++) {
461  //get gmt cands
462  typedef std::vector<L1MuGMTExtendedCand>::const_iterator GmtECIt;
463  std::vector<L1MuGMTExtendedCand> gmc;
464  gmc = igmtrr->getGMTCands();
465  for (GmtECIt iter1 = gmc.begin(); iter1 != gmc.end(); iter1++) {
466  L1MuGMTCand cand(iter1->getDataWord(), iter1->bx());
467  cand.setPhiValue(iter1->phiValue());
468  cand.setEtaValue(iter1->etaValue());
469  cand.setPtValue(iter1->ptValue());
470  gmt_can_data_vec.push_back(cand);
471  }
472  //get reg cands
473  typedef L1MuRegionalCandCollection::const_iterator GmtRCIt;
475  rmc.clear();
476  rmc = igmtrr->getDTBXCands();
477  gmt_rdt_data_vec.insert(gmt_rdt_data_vec.end(), rmc.begin(), rmc.end());
478  rmc.clear();
479  rmc = igmtrr->getCSCCands();
480  gmt_rdt_data_vec.insert(gmt_rdt_data_vec.end(), rmc.begin(), rmc.end());
481  rmc.clear();
482  rmc = igmtrr->getBrlRPCCands();
483  gmt_rdt_data_vec.insert(gmt_rdt_data_vec.end(), rmc.begin(), rmc.end());
484  rmc.clear();
485  rmc = igmtrr->getFwdRPCCands();
486  gmt_rdt_data_vec.insert(gmt_rdt_data_vec.end(), rmc.begin(), rmc.end());
487  }
488  //get record vector for emul
489  std::vector<L1MuGMTReadoutRecord> gmt_rdt_emul_bx = gmt_rdt_emul_->getRecords();
490  for (GmtRrIt igmtrr = gmt_rdt_emul_bx.begin(); igmtrr != gmt_rdt_emul_bx.end(); igmtrr++) {
491  //get gmt cands
492  typedef std::vector<L1MuGMTExtendedCand>::const_iterator GmtECIt;
493  std::vector<L1MuGMTExtendedCand> gmc;
494  gmc = igmtrr->getGMTCands();
495  for (GmtECIt iter1 = gmc.begin(); iter1 != gmc.end(); iter1++) {
496  gmt_can_emul_vec.push_back(L1MuGMTCand(iter1->getDataWord(), iter1->bx()));
497  }
498  //get reg cands
499  typedef L1MuRegionalCandCollection::const_iterator GmtRCIt;
501  rmc.clear();
502  rmc = igmtrr->getDTBXCands();
503  gmt_rdt_emul_vec.insert(gmt_rdt_emul_vec.end(), rmc.begin(), rmc.end());
504  rmc.clear();
505  rmc = igmtrr->getCSCCands();
506  gmt_rdt_emul_vec.insert(gmt_rdt_emul_vec.end(), rmc.begin(), rmc.end());
507  rmc.clear();
508  rmc = igmtrr->getBrlRPCCands();
509  gmt_rdt_emul_vec.insert(gmt_rdt_emul_vec.end(), rmc.begin(), rmc.end());
510  rmc.clear();
511  rmc = igmtrr->getFwdRPCCands();
512  gmt_rdt_emul_vec.insert(gmt_rdt_emul_vec.end(), rmc.begin(), rmc.end());
513  }
514  }
515  gmt_rdt_data = &gmt_rdt_data_vec;
516  gmt_rdt_emul = &gmt_rdt_emul_vec;
517  gmt_can_data = &gmt_can_data_vec;
518  gmt_can_emul = &gmt_can_emul_vec;
519 
521 
522  //check collections validity
523  bool isValidDE[DEnsys][2]; // = {false};
524  for (int i = 0; i < DEnsys; i++)
525  for (int j = 0; j < 2; j++)
526  isValidDE[i][j] = false;
527 
528  isValidDE[RCT][0] = rct_em_data.isValid();
529  isValidDE[RCT][1] = rct_em_emul.isValid();
530  isValidDE[RCT][0] &= rct_rgn_data.isValid();
531  isValidDE[RCT][1] = rct_rgn_emul.isValid();
532 
533  if (m_stage1_layer2_ == false) {
534  isValidDE[GCT][0] = gct_isolaem_data.isValid();
535  isValidDE[GCT][1] = gct_isolaem_emul.isValid();
536  isValidDE[GCT][0] &= gct_noisoem_data.isValid();
537  isValidDE[GCT][1] &= gct_noisoem_emul.isValid();
538  isValidDE[GCT][0] &= gct_cenjets_data.isValid();
539  isValidDE[GCT][1] &= gct_cenjets_emul.isValid();
540  isValidDE[GCT][0] &= gct_forjets_data.isValid();
541  isValidDE[GCT][1] &= gct_forjets_emul.isValid();
542  isValidDE[GCT][0] &= gct_taujets_data.isValid();
543  isValidDE[GCT][1] &= gct_taujets_emul.isValid();
544  isValidDE[GCT][0] &= gct_etmiss_data.isValid();
545  isValidDE[GCT][1] &= gct_etmiss_emul.isValid();
546  isValidDE[GCT][0] &= gct_ettota_data.isValid();
547  isValidDE[GCT][1] &= gct_ettota_emul.isValid();
548  isValidDE[GCT][0] &= gct_htmiss_data.isValid();
549  isValidDE[GCT][1] &= gct_htmiss_emul.isValid();
550  isValidDE[GCT][0] &= gct_hfring_data.isValid();
551  isValidDE[GCT][1] &= gct_hfring_emul.isValid();
552  isValidDE[GCT][0] &= gct_hfbcnt_data.isValid();
553  isValidDE[GCT][1] &= gct_hfbcnt_emul.isValid();
554  //isValidDE[GCT][0]&= gct_jetcnt_data .isValid(); isValidDE[GCT][1]&= gct_jetcnt_emul .isValid(); #temporary
555  }
556  if (m_stage1_layer2_ == true) {
557  isValidDE[GCT][0] = gct_isolaem_data.isValid();
558  isValidDE[GCT][1] = gct_isolaem_emul.isValid();
559  isValidDE[GCT][0] &= gct_noisoem_data.isValid();
560  isValidDE[GCT][1] &= gct_noisoem_emul.isValid();
561  isValidDE[GCT][0] &= gct_cenjets_data.isValid();
562  isValidDE[GCT][1] &= gct_cenjets_emul.isValid();
563  isValidDE[GCT][0] &= gct_forjets_data.isValid();
564  isValidDE[GCT][1] &= gct_forjets_emul.isValid();
565  isValidDE[GCT][0] &= gct_taujets_data.isValid();
566  isValidDE[GCT][1] &= gct_taujets_emul.isValid();
567  isValidDE[GCT][0] &= gct_isotaujets_data.isValid();
568  isValidDE[GCT][1] &= gct_isotaujets_emul.isValid();
569  isValidDE[GCT][0] &= gct_etmiss_data.isValid();
570  isValidDE[GCT][1] &= gct_etmiss_emul.isValid();
571  isValidDE[GCT][0] &= gct_ettota_data.isValid();
572  isValidDE[GCT][1] &= gct_ettota_emul.isValid();
573  isValidDE[GCT][0] &= gct_htmiss_data.isValid();
574  isValidDE[GCT][1] &= gct_htmiss_emul.isValid();
575  isValidDE[GCT][0] &= gct_hfring_data.isValid();
576  isValidDE[GCT][1] &= gct_hfring_emul.isValid();
577  isValidDE[GCT][0] &= gct_hfbcnt_data.isValid();
578  isValidDE[GCT][1] &= gct_hfbcnt_emul.isValid();
579  }
580  isValidDE[DTP][0] = dtp_ph_data_.isValid();
581  isValidDE[DTP][1] = dtp_ph_emul_.isValid();
582  isValidDE[DTP][0] &= dtp_th_data_.isValid();
583  isValidDE[DTP][1] &= dtp_th_emul_.isValid();
584 
585  isValidDE[DTF][0] = dtf_trk_data_.isValid();
586  isValidDE[DTF][1] = dtf_trk_emul_.isValid();
587 
588  isValidDE[RPC][0] = rpc_cen_data.isValid();
589  isValidDE[RPC][1] = rpc_cen_emul.isValid();
590  isValidDE[RPC][0] &= rpc_for_data.isValid();
591  isValidDE[RPC][1] &= rpc_for_emul.isValid();
592 
593  isValidDE[LTC][0] = ltc_data.isValid();
594  isValidDE[LTC][1] = ltc_emul.isValid();
595 
596  isValidDE[GMT][0] = gmt_data.isValid();
597  isValidDE[GMT][1] = gmt_emul.isValid();
598  //isValidDE[GMT][0]&= gmt_rdt_data_.isValid(); isValidDE[GMT][1]&= gmt_rdt_emul_.isValid();
599 
600  bool isValid[DEnsys];
601  for (int i = 0; i < DEnsys; i++) {
602  isValid[i] = true;
603  for (int j = 0; j < 2; j++) {
604  isValid[i] &= isValidDE[i][j];
605  }
606  }
607 
608  if (verbose()) {
609  std::cout << "L1Comparator sys isValid? (evt:" << eventInfo.nevt_ << ") ";
610  std::cout << "\n\t&: ";
611  for (int i = 0; i < DEnsys; i++)
612  std::cout << isValid[i] << " ";
613  std::cout << "\n\td: ";
614  for (int i = 0; i < DEnsys; i++)
615  std::cout << isValidDE[i][0] << " ";
616  std::cout << "\n\te: ";
617  for (int i = 0; i < DEnsys; i++)
618  std::cout << isValidDE[i][1] << " ";
619  std::cout << std::endl;
620  }
621 
622  //reset flags...
623  //for(int i=0; i<DEnsys; i++) isValid[i]=true;
624 
625  if (verbose())
626  std::cout << "L1Comparator start processing the collections.\n" << std::flush;
627 
629  if (runDoSys[RCT] && isValid[RCT])
630  process<L1CaloEmCollection>(rct_em_data, rct_em_emul, RCT, RCTem, eventInfo);
631  if (runDoSys[RCT] && isValid[RCT])
632  process<L1CaloRegionCollection>(rct_rgn_data, rct_rgn_emul, RCT, RCTrgn, eventInfo);
633 
634  if (m_stage1_layer2_ == false) {
635  if (runDoSys[GCT] && isValid[GCT])
636  process<L1GctEmCandCollection>(gct_isolaem_data, gct_isolaem_emul, GCT, GCTisolaem, eventInfo);
637  if (runDoSys[GCT] && isValid[GCT])
638  process<L1GctEmCandCollection>(gct_noisoem_data, gct_noisoem_emul, GCT, GCTnoisoem, eventInfo);
639  if (runDoSys[GCT] && isValid[GCT])
640  process<L1GctJetCandCollection>(gct_cenjets_data, gct_cenjets_emul, GCT, GCTcenjets, eventInfo);
641  if (runDoSys[GCT] && isValid[GCT])
642  process<L1GctJetCandCollection>(gct_forjets_data, gct_forjets_emul, GCT, GCTforjets, eventInfo);
643  if (runDoSys[GCT] && isValid[GCT])
644  process<L1GctJetCandCollection>(gct_taujets_data, gct_taujets_emul, GCT, GCTtaujets, eventInfo);
645  if (runDoSys[GCT] && isValid[GCT])
646  process<L1GctEtHadCollection>(gct_ht_data, gct_ht_emul, GCT, GCTethad, eventInfo);
647  if (runDoSys[GCT] && isValid[GCT])
648  process<L1GctEtMissCollection>(gct_etmiss_data, gct_etmiss_emul, GCT, GCTetmiss, eventInfo);
649  if (runDoSys[GCT] && isValid[GCT])
650  process<L1GctEtTotalCollection>(gct_ettota_data, gct_ettota_emul, GCT, GCTettot, eventInfo);
651  if (runDoSys[GCT] && isValid[GCT])
652  process<L1GctHtMissCollection>(gct_htmiss_data, gct_htmiss_emul, GCT, GCThtmiss, eventInfo);
653  if (runDoSys[GCT] && isValid[GCT])
654  process<L1GctHFRingEtSumsCollection>(gct_hfring_data, gct_hfring_emul, GCT, GCThfring, eventInfo);
655  if (runDoSys[GCT] && isValid[GCT])
656  process<L1GctHFBitCountsCollection>(gct_hfbcnt_data, gct_hfbcnt_emul, GCT, GCThfbit, eventInfo);
657  //if(runDoSys[GCT]&&isValid[GCT]) process<L1GctJetCountsCollection> ( gct_jetcnt_data, gct_jetcnt_emul, GCT,GCTjetcnt);#missing in emulator
658  }
659  if (m_stage1_layer2_ == true) {
660  if (runDoSys[GCT] && isValid[GCT])
661  process<L1GctEmCandCollection>(gct_isolaem_data, gct_isolaem_emul, GCT, GCTisolaem, eventInfo);
662  if (runDoSys[GCT] && isValid[GCT])
663  process<L1GctEmCandCollection>(gct_noisoem_data, gct_noisoem_emul, GCT, GCTnoisoem, eventInfo);
664  if (runDoSys[GCT] && isValid[GCT])
665  process<L1GctJetCandCollection>(gct_cenjets_data, gct_cenjets_emul, GCT, GCTcenjets, eventInfo);
666  if (runDoSys[GCT] && isValid[GCT])
667  process<L1GctJetCandCollection>(gct_forjets_data, gct_forjets_emul, GCT, GCTforjets, eventInfo);
668  if (runDoSys[GCT] && isValid[GCT])
669  process<L1GctJetCandCollection>(gct_taujets_data, gct_taujets_emul, GCT, GCTtaujets, eventInfo);
670  if (runDoSys[GCT] && isValid[GCT])
671  process<L1GctJetCandCollection>(gct_isotaujets_data, gct_isotaujets_emul, GCT, GCTisotaujets, eventInfo);
672  if (runDoSys[GCT] && isValid[GCT])
673  process<L1GctEtHadCollection>(gct_ht_data, gct_ht_emul, GCT, GCTethad, eventInfo);
674  if (runDoSys[GCT] && isValid[GCT])
675  process<L1GctEtMissCollection>(gct_etmiss_data, gct_etmiss_emul, GCT, GCTetmiss, eventInfo);
676  if (runDoSys[GCT] && isValid[GCT])
677  process<L1GctEtTotalCollection>(gct_ettota_data, gct_ettota_emul, GCT, GCTettot, eventInfo);
678  if (runDoSys[GCT] && isValid[GCT])
679  process<L1GctHtMissCollection>(gct_htmiss_data, gct_htmiss_emul, GCT, GCThtmiss, eventInfo);
680  if (runDoSys[GCT] && isValid[GCT])
681  process<L1GctHFRingEtSumsCollection>(gct_hfring_data, gct_hfring_emul, GCT, GCThfring, eventInfo);
682  if (runDoSys[GCT] && isValid[GCT])
683  process<L1GctHFBitCountsCollection>(gct_hfbcnt_data, gct_hfbcnt_emul, GCT, GCThfbit, eventInfo);
684  //if(runDoSys[GCT]&&isValid[GCT]) process<L1GctJetCountsCollection> ( gct_jetcnt_data, gct_jetcnt_emul, GCT,GCTjetcnt);#missing in emulator
685  }
686 
687  if (runDoSys[DTP] && isValid[DTP])
688  process<L1MuDTChambPhDigiCollection>(dtp_ph_data, dtp_ph_emul, DTP, DTtpPh, eventInfo);
689  if (runDoSys[DTP] && isValid[DTP])
690  process<L1MuDTChambThDigiCollection>(dtp_th_data, dtp_th_emul, DTP, DTtpTh, eventInfo);
691 
692  if (runDoSys[DTF] && isValid[DTF])
693  process<L1MuRegionalCandCollection>(dtf_trk_data, dtf_trk_emul, DTF, DTtftrk, eventInfo);
694 
695  if (runDoSys[RPC] && isValid[RPC])
696  process<L1MuRegionalCandCollection>(rpc_cen_data, rpc_cen_emul, RPC, RPCcen, eventInfo);
697  if (runDoSys[RPC] && isValid[RPC])
698  process<L1MuRegionalCandCollection>(rpc_for_data, rpc_for_emul, RPC, RPCfor, eventInfo);
699 
700  if (runDoSys[GMT] && isValid[GMT])
701  process<L1MuGMTCandCollection>(gmt_data, gmt_emul, GMT, GMTmain, eventInfo);
702  if (runDoSys[GMT] && isValid[GMT])
703  process<L1MuRegionalCandCollection>(gmt_rdt_data, gmt_rdt_emul, GMT, GMTrdt, eventInfo);
704  if (runDoSys[GMT] && isValid[GMT])
705  process<L1MuGMTCandCollection>(gmt_can_data, gmt_can_emul, GMT, GMTcnd, eventInfo);
706 
707  // >>---- GLT ---- <<
708  GltDEDigi gltdigimon;
709 
710  if (verbose())
711  std::cout << "L1Comparator done processing all collections.\n" << std::flush;
712 
713  if (verbose()) {
714  std::cout << "[L1Comparator] sys match? << evt." << eventInfo.nevt_ << ": ";
715  for (int i = 0; i < DEnsys; i++)
716  std::cout << eventInfo.DEmatchEvt[i] << " ";
717  std::cout << std::endl;
718  }
719 
720  // >>---- Event match? ---- <<
721 
722  bool evt_match = true;
723  for (int i = 0; i < DEnsys; i++)
724  evt_match &= eventInfo.DEmatchEvt[i];
725 
726  /* char ok[10];
727  if(evt_match) sprintf(ok,"GOOD :]");
728  else sprintf(ok,"BAD !!!");
729  char dumptofile[1000];
730  sprintf(dumptofile,"\n -> event data and emulator match... %s\n", ok);
731  m_dumpFile<<dumptofile;
732  */
733 
734  // >>---- Global match? ---- <<
735  if (not evt_match) {
736  m_match = false;
737  }
738  {
739  if (m_dumpMode) {
740  std::lock_guard<std::mutex> guard(m_fileGuard);
741  m_dumpFile << eventInfo.dumpToFile_.rdbuf() << std::flush;
742  }
743  }
744  //if collection is empty, add empty digi
745  if (eventInfo.m_dedigis.empty()) {
746  if (verbose())
747  std::cout << "\n [L1Comparator] adding empty collection to DErecord\n";
748  eventInfo.m_dedigis.push_back(L1DataEmulDigi());
749  }
750 
751  // >>---- d|e record ---- <<
752  std::unique_ptr<L1DataEmulRecord> record(new L1DataEmulRecord(
753  evt_match, runDoSys, eventInfo.DEmatchEvt, eventInfo.DEncand, eventInfo.m_dedigis, gltdigimon));
754  if (verbose()) {
755  std::cout << "\n [L1Comparator] printing DErecord"
756  << "(entry:" << eventInfo.nevt_ << "|evt:" << eventInfo.evtNum_ << "|run:" << eventInfo.runNum_ << "):\n"
757  << std::flush;
758  std::cout << *record << "\n" << std::flush;
759  }
760 
761  iEvent.put(std::move(record));
762 
763  if (verbose())
764  std::cout << "L1comparator::analize() end. " << eventInfo.nevt_ << std::endl;
765 }

References gather_cfg::cout, dedefs::DEnsys, dedefs::DTF, dedefs::DTP, dedefs::DTtftrk, dedefs::DTtpPh, dedefs::DTtpTh, ZMuMuAnalysisNtupler_cff::eventInfo, dedefs::GCT, dedefs::GCTcenjets, dedefs::GCTethad, dedefs::GCTetmiss, dedefs::GCTettot, dedefs::GCTforjets, dedefs::GCThfbit, dedefs::GCThfring, dedefs::GCThtmiss, dedefs::GCTisolaem, dedefs::GCTisotaujets, dedefs::GCTnoisoem, dedefs::GCTtaujets, L1MuDTTrackContainer::getContainer(), L1MuDTChambPhContainer::getContainer(), L1MuDTChambThContainer::getContainer(), L1MuGMTReadoutCollection::getRecords(), GMT, dedefs::GMTcnd, dedefs::GMTmain, dedefs::GMTrdt, mps_fire::i, iEvent, edm::HandleBase::isValid(), dqmiolumiharvest::j, dedefs::LTC, m_dumpFile, m_dumpMode, m_fileGuard, m_match, m_stage1_layer2_, eostools::move(), nevt_, dedefs::RCT, dedefs::RCTem, dedefs::RCTrgn, GlobalPosition_Frontier_DevDB_cff::record, l1t::mtf7::RPC, dedefs::RPCcen, dedefs::RPCfor, csv2json::runIndex, tokenCaloEm_, tokenCaloRegion_, tokenGctEmCand_isoEm_, tokenGctEmCand_nonIsoEm_, tokenGctEtHad_, tokenGctEtMiss_, tokenGctEtTotal_, tokenGctHFBitCounts_, tokenGctHFRingEtSums_, tokenGctHtMiss_, tokenGctJetCand_cenJets_, tokenGctJetCand_forJets_, tokenGctJetCand_isoTauJets_, tokenGctJetCand_tauJets_, tokenGctJetCounts_, tokenLTCDigi_, tokenMuDTChambPh_, tokenMuDTChambTh_, tokenMuDTTrack_, tokenMuGMTCand_, tokenMuReadoutCand_, tokenMuRegionalCandRPCb_, tokenMuRegionalCandRPCf_, and verbose().

◆ verbose()

int L1Comparator::verbose ( ) const
inlineprivate

Definition at line 80 of file L1Comparator.h.

80 { return verbose_; }

References verbose_.

Referenced by globalBeginRun(), process(), and produce().

Member Data Documentation

◆ m_doSys

const std::array<bool, dedefs::DEnsys> L1Comparator::m_doSys
private

Definition at line 111 of file L1Comparator.h.

Referenced by globalBeginRun().

◆ m_dumpFile

std::ofstream L1Comparator::m_dumpFile
mutableprivate

Definition at line 113 of file L1Comparator.h.

Referenced by endJob(), and produce().

◆ m_dumpFileName

const std::string L1Comparator::m_dumpFileName
private

Definition at line 112 of file L1Comparator.h.

◆ m_dumpMode

const int L1Comparator::m_dumpMode
private

Definition at line 114 of file L1Comparator.h.

Referenced by endJob(), process(), and produce().

◆ m_fileGuard

std::mutex L1Comparator::m_fileGuard
mutableprivate

Definition at line 115 of file L1Comparator.h.

Referenced by produce().

◆ m_match

std::atomic<bool> L1Comparator::m_match
mutableprivate

Definition at line 116 of file L1Comparator.h.

Referenced by endJob(), and produce().

◆ m_stage1_layer2_

const bool L1Comparator::m_stage1_layer2_
private

Definition at line 81 of file L1Comparator.h.

Referenced by produce().

◆ nevt_

std::atomic<int> L1Comparator::nevt_
mutableprivate

Definition at line 84 of file L1Comparator.h.

Referenced by produce().

◆ tokenCaloEm_

edm::EDGetTokenT<L1CaloEmCollection> L1Comparator::tokenCaloEm_[2]
private

Definition at line 87 of file L1Comparator.h.

Referenced by produce().

◆ tokenCaloRegion_

edm::EDGetTokenT<L1CaloRegionCollection> L1Comparator::tokenCaloRegion_[2]
private

Definition at line 88 of file L1Comparator.h.

Referenced by produce().

◆ tokenGctEmCand_isoEm_

edm::EDGetTokenT<L1GctEmCandCollection> L1Comparator::tokenGctEmCand_isoEm_[2]
private

Definition at line 89 of file L1Comparator.h.

Referenced by produce().

◆ tokenGctEmCand_nonIsoEm_

edm::EDGetTokenT<L1GctEmCandCollection> L1Comparator::tokenGctEmCand_nonIsoEm_[2]
private

Definition at line 90 of file L1Comparator.h.

Referenced by produce().

◆ tokenGctEtHad_

edm::EDGetTokenT<L1GctEtHadCollection> L1Comparator::tokenGctEtHad_[2]
private

Definition at line 96 of file L1Comparator.h.

Referenced by produce().

◆ tokenGctEtMiss_

edm::EDGetTokenT<L1GctEtMissCollection> L1Comparator::tokenGctEtMiss_[2]
private

Definition at line 97 of file L1Comparator.h.

Referenced by produce().

◆ tokenGctEtTotal_

edm::EDGetTokenT<L1GctEtTotalCollection> L1Comparator::tokenGctEtTotal_[2]
private

Definition at line 95 of file L1Comparator.h.

Referenced by produce().

◆ tokenGctHFBitCounts_

edm::EDGetTokenT<L1GctHFBitCountsCollection> L1Comparator::tokenGctHFBitCounts_[2]
private

Definition at line 99 of file L1Comparator.h.

Referenced by produce().

◆ tokenGctHFRingEtSums_

edm::EDGetTokenT<L1GctHFRingEtSumsCollection> L1Comparator::tokenGctHFRingEtSums_[2]
private

Definition at line 98 of file L1Comparator.h.

Referenced by produce().

◆ tokenGctHtMiss_

edm::EDGetTokenT<L1GctHtMissCollection> L1Comparator::tokenGctHtMiss_[2]
private

Definition at line 100 of file L1Comparator.h.

Referenced by produce().

◆ tokenGctJetCand_cenJets_

edm::EDGetTokenT<L1GctJetCandCollection> L1Comparator::tokenGctJetCand_cenJets_[2]
private

Definition at line 91 of file L1Comparator.h.

Referenced by produce().

◆ tokenGctJetCand_forJets_

edm::EDGetTokenT<L1GctJetCandCollection> L1Comparator::tokenGctJetCand_forJets_[2]
private

Definition at line 92 of file L1Comparator.h.

Referenced by produce().

◆ tokenGctJetCand_isoTauJets_

edm::EDGetTokenT<L1GctJetCandCollection> L1Comparator::tokenGctJetCand_isoTauJets_[2]
private

Definition at line 94 of file L1Comparator.h.

Referenced by produce().

◆ tokenGctJetCand_tauJets_

edm::EDGetTokenT<L1GctJetCandCollection> L1Comparator::tokenGctJetCand_tauJets_[2]
private

Definition at line 93 of file L1Comparator.h.

Referenced by produce().

◆ tokenGctJetCounts_

edm::EDGetTokenT<L1GctJetCountsCollection> L1Comparator::tokenGctJetCounts_[2]
private

Definition at line 101 of file L1Comparator.h.

Referenced by produce().

◆ tokenLTCDigi_

edm::EDGetTokenT<LTCDigiCollection> L1Comparator::tokenLTCDigi_[2]
private

Definition at line 104 of file L1Comparator.h.

Referenced by produce().

◆ tokenMuDTChambPh_

edm::EDGetTokenT<L1MuDTChambPhContainer> L1Comparator::tokenMuDTChambPh_[2]
private

Definition at line 102 of file L1Comparator.h.

Referenced by produce().

◆ tokenMuDTChambTh_

edm::EDGetTokenT<L1MuDTChambThContainer> L1Comparator::tokenMuDTChambTh_[2]
private

Definition at line 103 of file L1Comparator.h.

Referenced by produce().

◆ tokenMuDTTrack_

edm::EDGetTokenT<L1MuDTTrackContainer> L1Comparator::tokenMuDTTrack_[2]
private

Definition at line 105 of file L1Comparator.h.

Referenced by produce().

◆ tokenMuGMTCand_

edm::EDGetTokenT<L1MuGMTCandCollection> L1Comparator::tokenMuGMTCand_[2]
private

Definition at line 108 of file L1Comparator.h.

Referenced by produce().

◆ tokenMuReadoutCand_

edm::EDGetTokenT<L1MuGMTReadoutCollection> L1Comparator::tokenMuReadoutCand_[2]
private

Definition at line 109 of file L1Comparator.h.

Referenced by produce().

◆ tokenMuRegionalCandRPCb_

edm::EDGetTokenT<L1MuRegionalCandCollection> L1Comparator::tokenMuRegionalCandRPCb_[2]
private

Definition at line 106 of file L1Comparator.h.

Referenced by produce().

◆ tokenMuRegionalCandRPCf_

edm::EDGetTokenT<L1MuRegionalCandCollection> L1Comparator::tokenMuRegionalCandRPCf_[2]
private

Definition at line 107 of file L1Comparator.h.

Referenced by produce().

◆ verbose_

const int L1Comparator::verbose_
private

Definition at line 85 of file L1Comparator.h.

Referenced by verbose().

l1t::mtf7::RPC
RPC Data Record : block->header().getID() = 4.
Definition: Block.h:20
dedefs::HTP
Definition: DEtrait.h:40
dedefs::SystLabel
const std::string SystLabel[DEnsys]
Definition: DEtrait.h:42
alignBH_cfg.fixed
fixed
Definition: alignBH_cfg.py:54
L1DEDigiCollection
std::vector< L1DataEmulDigi > L1DEDigiCollection
Definition: DEtrait.h:101
L1Comparator::m_fileGuard
std::mutex m_fileGuard
Definition: L1Comparator.h:115
mps_fire.i
i
Definition: mps_fire.py:428
L1TriggerKey::kRPC
Definition: L1TriggerKey.h:27
edm::Handle::product
T const * product() const
Definition: Handle.h:70
dedefs::GMTrdt
Definition: DEtrait.h:86
L1Comparator::verbose_
const int verbose_
Definition: L1Comparator.h:85
L1MuGMTCandCollection
std::vector< L1MuGMTCand > L1MuGMTCandCollection
Definition: DEtrait.h:99
L1Comparator::tokenGctEtTotal_
edm::EDGetTokenT< L1GctEtTotalCollection > tokenGctEtTotal_[2]
Definition: L1Comparator.h:95
L1TriggerKeyRcd
Definition: L1TriggerKeyRcd.h:30
L1Comparator::tokenCaloEm_
edm::EDGetTokenT< L1CaloEmCollection > tokenCaloEm_[2]
Definition: L1Comparator.h:87
dedefs::DTtpPh
Definition: DEtrait.h:68
L1TriggerKey::kGMT
Definition: L1TriggerKey.h:27
gather_cfg.cout
cout
Definition: gather_cfg.py:144
dedefs::CTP
Definition: DEtrait.h:40
L1Comparator::tokenMuDTChambPh_
edm::EDGetTokenT< L1MuDTChambPhContainer > tokenMuDTChambPh_[2]
Definition: L1Comparator.h:102
dedefs::GMTmain
Definition: DEtrait.h:84
GlobalPosition_Frontier_DevDB_cff.record
record
Definition: GlobalPosition_Frontier_DevDB_cff.py:10
cms::cuda::assert
assert(be >=bs)
L1Comparator::tokenGctJetCand_cenJets_
edm::EDGetTokenT< L1GctJetCandCollection > tokenGctJetCand_cenJets_[2]
Definition: L1Comparator.h:91
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
DEcompare
Definition: DEcompare.h:25
L1Comparator::tokenGctJetCand_forJets_
edm::EDGetTokenT< L1GctJetCandCollection > tokenGctJetCand_forJets_[2]
Definition: L1Comparator.h:92
L1Comparator::nevt_
std::atomic< int > nevt_
Definition: L1Comparator.h:84
L1Comparator::tokenMuReadoutCand_
edm::EDGetTokenT< L1MuGMTReadoutCollection > tokenMuReadoutCand_[2]
Definition: L1Comparator.h:109
L1Comparator::tokenGctHtMiss_
edm::EDGetTokenT< L1GctHtMissCollection > tokenGctHtMiss_[2]
Definition: L1Comparator.h:100
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
L1Comparator::tokenCaloRegion_
edm::EDGetTokenT< L1CaloRegionCollection > tokenCaloRegion_[2]
Definition: L1Comparator.h:88
edm::Handle
Definition: AssociativeIterator.h:50
L1Comparator::tokenGctHFRingEtSums_
edm::EDGetTokenT< L1GctHFRingEtSumsCollection > tokenGctHFRingEtSums_[2]
Definition: L1Comparator.h:98
dedefs::RCTem
Definition: DEtrait.h:51
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
L1MuGMTCand
Definition: L1MuGMTCand.h:39
L1Comparator::process
void process(T const *, T const *, const int, const int, EventInfo &eventInfo) const
Definition: L1Comparator.cc:768
L1MuDTChambPhContainer::getContainer
Phi_Container const * getContainer() const
Definition: L1MuDTChambPhContainer.cc:41
L1Comparator::m_dumpFile
std::ofstream m_dumpFile
Definition: L1Comparator.h:113
dedefs::DTP
Definition: DEtrait.h:40
dt
float dt
Definition: AMPTWrapper.h:136
L1MuDTChambThDigiCollection
std::vector< L1MuDTChambThDigi > L1MuDTChambThDigiCollection
Definition: DEtrait.h:93
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
dedefs::GCThfring
Definition: DEtrait.h:64
alignCSCRings.s
s
Definition: alignCSCRings.py:92
L1Comparator::tokenGctJetCand_isoTauJets_
edm::EDGetTokenT< L1GctJetCandCollection > tokenGctJetCand_isoTauJets_[2]
Definition: L1Comparator.h:94
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
L1DataEmulDigi
Definition: L1DataEmulDigi.h:17
dedefs::GCTisotaujets
Definition: DEtrait.h:66
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
dedefs::GCTcenjets
Definition: DEtrait.h:57
dedefs::DTtftrk
Definition: DEtrait.h:71
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition: GlobalPosition_Frontier_DevDB_cff.py:11
dedefs::GCT
Definition: DEtrait.h:40
L1Comparator::m_dumpMode
const int m_dumpMode
Definition: L1Comparator.h:114
L1Comparator::tokenMuGMTCand_
edm::EDGetTokenT< L1MuGMTCandCollection > tokenMuGMTCand_[2]
Definition: L1Comparator.h:108
edm::ESHandle
Definition: DTSurvey.h:22
dedefs::GCTethad
Definition: DEtrait.h:60
L1MuRegionalCand
Definition: L1MuRegionalCand.h:26
dedefs::ETP
Definition: DEtrait.h:40
L1Comparator::tokenMuDTTrack_
edm::EDGetTokenT< L1MuDTTrackContainer > tokenMuDTTrack_[2]
Definition: L1Comparator.h:105
dedefs::GCTnoisoem
Definition: DEtrait.h:56
L1Comparator::verbose
int verbose() const
Definition: L1Comparator.h:80
L1Comparator::tokenLTCDigi_
edm::EDGetTokenT< LTCDigiCollection > tokenLTCDigi_[2]
Definition: L1Comparator.h:104
L1Comparator::m_match
std::atomic< bool > m_match
Definition: L1Comparator.h:116
L1Comparator::m_doSys
const std::array< bool, dedefs::DEnsys > m_doSys
Definition: L1Comparator.h:111
L1TriggerKey::kRCT
Definition: L1TriggerKey.h:27
dedefs::DTtpTh
Definition: DEtrait.h:69
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
ZMuMuAnalysisNtupler_cff.eventInfo
eventInfo
Definition: ZMuMuAnalysisNtupler_cff.py:15
dedefs::GCTisolaem
Definition: DEtrait.h:55
L1MuDTChambPhDigiCollection
std::vector< L1MuDTChambPhDigi > L1MuDTChambPhDigiCollection
Definition: DEtrait.h:92
L1TriggerKey::kDTTF
Definition: L1TriggerKey.h:27
dedefs::GCTettot
Definition: DEtrait.h:62
csv2json.runIndex
runIndex
Definition: csv2json.py:29
L1Comparator::tokenGctEmCand_nonIsoEm_
edm::EDGetTokenT< L1GctEmCandCollection > tokenGctEmCand_nonIsoEm_[2]
Definition: L1Comparator.h:90
dedefs::GLT
Definition: DEtrait.h:40
L1MuGMTReadoutCollection::getRecords
std::vector< L1MuGMTReadoutRecord > const & getRecords() const
Definition: L1MuGMTReadoutCollection.h:52
dedefs::DTF
Definition: DEtrait.h:40
dedefs::GCThtmiss
Definition: DEtrait.h:63
match
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
dedefs::GCTforjets
Definition: DEtrait.h:58
cand
Definition: decayParser.h:32
dedefs::GCTtaujets
Definition: DEtrait.h:59
iEvent
int iEvent
Definition: GenABIO.cc:224
L1MuDTChambThContainer::getContainer
The_Container const * getContainer() const
Definition: L1MuDTChambThContainer.cc:41
L1TriggerKey::kGCT
Definition: L1TriggerKey.h:27
dedefs::RCTrgn
Definition: DEtrait.h:52
dedefs::LTC
Definition: DEtrait.h:40
GMT
Definition: L1GtDefinitions.h:28
L1Comparator::tokenGctEtHad_
edm::EDGetTokenT< L1GctEtHadCollection > tokenGctEtHad_[2]
Definition: L1Comparator.h:96
get
#define get
dedefs::RPCcen
Definition: DEtrait.h:81
L1Comparator::tokenGctEtMiss_
edm::EDGetTokenT< L1GctEtMissCollection > tokenGctEtMiss_[2]
Definition: L1Comparator.h:97
GltDEDigi
Definition: L1DataEmulDigi.h:89
dedefs::DEnsys
const int DEnsys
Definition: DEtrait.h:38
L1Comparator::tokenGctEmCand_isoEm_
edm::EDGetTokenT< L1GctEmCandCollection > tokenGctEmCand_isoEm_[2]
Definition: L1Comparator.h:89
L1TriggerKey::tscKey
const std::string & tscKey() const
Definition: L1TriggerKey.h:69
L1TriggerKey::kGT
Definition: L1TriggerKey.h:27
eostools.move
def move(src, dest)
Definition: eostools.py:511
L1Comparator::tokenMuRegionalCandRPCf_
edm::EDGetTokenT< L1MuRegionalCandCollection > tokenMuRegionalCandRPCf_[2]
Definition: L1Comparator.h:107
L1Comparator::tokenGctJetCounts_
edm::EDGetTokenT< L1GctJetCountsCollection > tokenGctJetCounts_[2]
Definition: L1Comparator.h:101
fileCollector.cmp
cmp
Definition: fileCollector.py:125
L1Comparator::tokenMuDTChambTh_
edm::EDGetTokenT< L1MuDTChambThContainer > tokenMuDTChambTh_[2]
Definition: L1Comparator.h:103
L1Comparator::tokenGctHFBitCounts_
edm::EDGetTokenT< L1GctHFBitCountsCollection > tokenGctHFBitCounts_[2]
Definition: L1Comparator.h:99
L1Comparator::tokenGctJetCand_tauJets_
edm::EDGetTokenT< L1GctJetCandCollection > tokenGctJetCand_tauJets_[2]
Definition: L1Comparator.h:93
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
L1TriggerKey::kCSCTF
Definition: L1TriggerKey.h:27
L1Comparator::m_stage1_layer2_
const bool m_stage1_layer2_
Definition: L1Comparator.h:81
L1MuRegionalCandCollection
std::vector< L1MuRegionalCand > L1MuRegionalCandCollection
Definition: RPCRecHitFilter.cc:53
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
triggerMatcherToHLTDebug_cfi.tags
tags
Definition: triggerMatcherToHLTDebug_cfi.py:9
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
dedefs::GCTetmiss
Definition: DEtrait.h:61
dedefs::GMTcnd
Definition: DEtrait.h:85
L1MuDTTrackContainer::getContainer
TrackContainer const * getContainer() const
Definition: L1MuDTTrackContainer.cc:46
cms::Exception
Definition: Exception.h:70
dedefs::GCThfbit
Definition: DEtrait.h:65
L1TriggerKey::subsystemKey
const std::string & subsystemKey(L1Subsystems subsystem) const
Definition: L1TriggerKey.h:71
L1Comparator::dumpCandidate
bool dumpCandidate(const T &dt, const T &em, std::ostream &s) const
Definition: L1Comparator.cc:888
L1Comparator::m_dumpFileName
const std::string m_dumpFileName
Definition: L1Comparator.h:112
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
L1DataEmulRecord
Definition: L1DataEmulRecord.h:16
edm::Log
Definition: MessageLogger.h:70
dedefs::RCT
Definition: DEtrait.h:40
dedefs::CTF
Definition: DEtrait.h:40
edm::InputTag
Definition: InputTag.h:15
label
const char * label
Definition: PFTauDecayModeTools.cc:11
L1Comparator::tokenMuRegionalCandRPCb_
edm::EDGetTokenT< L1MuRegionalCandCollection > tokenMuRegionalCandRPCb_[2]
Definition: L1Comparator.h:106
AlignmentAlgorithmBase::EventInfo
define event information passed to algorithms
Definition: AlignmentAlgorithmBase.h:72
dedefs::RPCfor
Definition: DEtrait.h:82