CMS 3D CMS Logo

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

#include <OMTFPatternMaker.h>

Inheritance diagram for OMTFPatternMaker:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
void beginRun (edm::Run const &run, edm::EventSetup const &iSetup) override
 
void endJob () override
 
 OMTFPatternMaker (const edm::ParameterSet &cfg)
 
 ~OMTFPatternMaker () override
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
 ~EDAnalyzer () 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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (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
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
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 Member Functions

const SimTrackfindSimMuon (const edm::Event &ev, const edm::EventSetup &es, const SimTrack *previous=0)
 
void writeMergedGPs ()
 

Private Attributes

xercesc::DOMElement * aTopElement
 
edm::InputTag g4SimTrackSrc
 
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollectioninputTokenCSC
 
edm::EDGetTokenT< L1MuDTChambPhContainerinputTokenDTPh
 
edm::EDGetTokenT< L1MuDTChambThContainerinputTokenDTTh
 
edm::EDGetTokenT< RPCDigiCollectioninputTokenRPC
 
edm::EDGetTokenT< edm::SimTrackContainerinputTokenSimHit
 
bool makeConnectionsMaps
 
bool makeGoldenPatterns
 
bool mergeXMLFiles
 
OMTFinputMakermyInputMaker
 
OMTFProcessormyOMTF
 
OMTFConfigurationmyOMTFConfig
 OMTF objects. More...
 
OMTFConfigMakermyOMTFConfigMaker
 
XMLConfigWritermyWriter
 
unsigned int nPdfAddrBits
 Original pdf width. read from configuration. More...
 
edm::ParameterSet theConfig
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
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<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 35 of file OMTFPatternMaker.h.

Constructor & Destructor Documentation

OMTFPatternMaker::OMTFPatternMaker ( const edm::ParameterSet cfg)

Definition at line 22 of file OMTFPatternMaker.cc.

References edm::ParameterSet::getParameter(), inputTokenCSC, inputTokenDTPh, inputTokenDTTh, inputTokenRPC, inputTokenSimHit, makeConnectionsMaps, makeGoldenPatterns, mergeXMLFiles, myInputMaker, myOMTFConfig, and theConfig.

23  : theConfig(cfg), g4SimTrackSrc(cfg.getParameter<edm::InputTag>("g4SimTrackSrc")) {
24  inputTokenDTPh = consumes<L1MuDTChambPhContainer>(theConfig.getParameter<edm::InputTag>("srcDTPh"));
25  inputTokenDTTh = consumes<L1MuDTChambThContainer>(theConfig.getParameter<edm::InputTag>("srcDTTh"));
26  inputTokenCSC = consumes<CSCCorrelatedLCTDigiCollection>(theConfig.getParameter<edm::InputTag>("srcCSC"));
27  inputTokenRPC = consumes<RPCDigiCollection>(theConfig.getParameter<edm::InputTag>("srcRPC"));
28  inputTokenSimHit = consumes<edm::SimTrackContainer>(theConfig.getParameter<edm::InputTag>("g4SimTrackSrc"));
29 
31 
32  makeGoldenPatterns = theConfig.getParameter<bool>("makeGoldenPatterns");
33  makeConnectionsMaps = theConfig.getParameter<bool>("makeConnectionsMaps");
34  mergeXMLFiles = theConfig.getParameter<bool>("mergeXMLFiles");
35 
36  myOMTFConfig = nullptr;
37 }
T getParameter(std::string const &) const
edm::EDGetTokenT< edm::SimTrackContainer > inputTokenSimHit
OMTFConfiguration * myOMTFConfig
OMTF objects.
edm::EDGetTokenT< L1MuDTChambPhContainer > inputTokenDTPh
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > inputTokenCSC
edm::InputTag g4SimTrackSrc
edm::EDGetTokenT< RPCDigiCollection > inputTokenRPC
edm::EDGetTokenT< L1MuDTChambThContainer > inputTokenDTTh
OMTFinputMaker * myInputMaker
edm::ParameterSet theConfig
OMTFPatternMaker::~OMTFPatternMaker ( )
override

Definition at line 40 of file OMTFPatternMaker.cc.

References myOMTF, myOMTFConfig, and myOMTFConfigMaker.

40  {
41  delete myOMTFConfig;
42  delete myOMTFConfigMaker;
43  delete myOMTF;
44 }
OMTFConfiguration * myOMTFConfig
OMTF objects.
OMTFConfigMaker * myOMTFConfigMaker
OMTFProcessor * myOMTF

Member Function Documentation

void OMTFPatternMaker::analyze ( const edm::Event iEvent,
const edm::EventSetup evSetup 
)
override

Get the simulated muon parameters

Filter digis by dropping digis from selected (by cfg.py) subsystems

Loop over all processors, each covering 60 deg in phi

Input data with phi ranges shifted for each processor, so it fits 11 bits range

Connections maps are made by hand. makeConnetionsMap method provides tables for checking their consistency.

Definition at line 243 of file OMTFPatternMaker.cc.

References OMTFinputMaker::buildInputForProcessor(), OMTFProcessor::fillCounts(), findSimMuon(), edm::Event::getByToken(), edm::ParameterSet::getParameter(), OMTFinputMaker::initialize(), inputTokenCSC, inputTokenDTPh, inputTokenDTTh, inputTokenRPC, makeConnectionsMaps, OMTFConfigMaker::makeConnetionsMap(), makeGoldenPatterns, mergeXMLFiles, myInputMaker, myOMTF, myOMTFConfig, myOMTFConfigMaker, l1t::omtf_pos, edm::Handle< T >::product(), and theConfig.

243  {
244  if (mergeXMLFiles)
245  return;
246 
248  const SimTrack* aSimMuon = findSimMuon(iEvent, evSetup);
249  if (!aSimMuon) {
250  edm::LogError("OMTFPatternMaker") << "No SimMuon found in the event!";
251  return;
252  }
253 
255 
260 
262  if (!theConfig.getParameter<bool>("dropDTPrimitives")) {
263  iEvent.getByToken(inputTokenDTPh, dtPhDigis);
264  iEvent.getByToken(inputTokenDTTh, dtThDigis);
265  }
266  if (!theConfig.getParameter<bool>("dropRPCPrimitives"))
267  iEvent.getByToken(inputTokenRPC, rpcDigis);
268  if (!theConfig.getParameter<bool>("dropCSCPrimitives"))
269  iEvent.getByToken(inputTokenCSC, cscDigis);
270 
271  //l1t::tftype mtfType = l1t::tftype::bmtf;
273  //l1t::tftype mtfType = l1t::tftype::emtf_pos;
274 
276  for (unsigned int iProcessor = 0; iProcessor < 6; ++iProcessor) {
279  dtPhDigis.product(), dtThDigis.product(), cscDigis.product(), rpcDigis.product(), iProcessor, mtfType);
280 
284  myOMTFConfigMaker->makeConnetionsMap(iProcessor, myInput);
285 
286  if (makeGoldenPatterns)
287  myOMTF->fillCounts(iProcessor, myInput, aSimMuon);
288  }
289 }
T getParameter(std::string const &) const
void fillCounts(unsigned int iProcessor, const OMTFinput &aInput, const SimTrack *aSimMuon)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
OMTFinput buildInputForProcessor(const L1MuDTChambPhContainer *dtPhDigis, const L1MuDTChambThContainer *dtThDigis, const CSCCorrelatedLCTDigiCollection *cscDigis, const RPCDigiCollection *rpcDigis, unsigned int iProcessor, l1t::tftype type=l1t::tftype::omtf_pos, int bx=0)
Method translating trigger digis into input matrix with global phi coordinates.
OMTFConfiguration * myOMTFConfig
OMTF objects.
void initialize(const edm::EventSetup &es, const OMTFConfiguration *)
void makeConnetionsMap(unsigned int iProcessor, const OMTFinput &aInput)
edm::EDGetTokenT< L1MuDTChambPhContainer > inputTokenDTPh
OMTFConfigMaker * myOMTFConfigMaker
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > inputTokenCSC
const SimTrack * findSimMuon(const edm::Event &ev, const edm::EventSetup &es, const SimTrack *previous=0)
OMTFProcessor * myOMTF
T const * product() const
Definition: Handle.h:69
edm::EDGetTokenT< RPCDigiCollection > inputTokenRPC
edm::EDGetTokenT< L1MuDTChambThContainer > inputTokenDTTh
OMTFinputMaker * myInputMaker
edm::ParameterSet theConfig
void OMTFPatternMaker::beginJob ( void  )
overridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 85 of file OMTFPatternMaker.cc.

References myOMTF, and myOMTFConfig.

85  {
87  myOMTF = new OMTFProcessor();
88 }
OMTFConfiguration * myOMTFConfig
OMTF objects.
OMTFProcessor * myOMTF
void OMTFPatternMaker::beginRun ( edm::Run const &  run,
edm::EventSetup const &  iSetup 
)
overridevirtual

Initialise XML writer with default pdf.

For making the patterns use extended pdf width in phi, as pdf are later shifted by the mean value For low pt muons non shifted pdfs would go out of the default pdf range.

Clear existing GoldenPatterns

Reimplemented from edm::EDAnalyzer.

Definition at line 47 of file OMTFPatternMaker.cc.

References OMTFProcessor::configure(), OMTFConfiguration::configure(), L1TMuonOverlapParams::GENERAL_ADDRBITS, L1TMuonOverlapParams::generalParams(), edm::EventSetup::get(), edm::eventsetup::EventSetupRecordImplementation< T >::get(), OMTFProcessor::getPatterns(), mergeXMLFiles, myOMTF, myOMTFConfig, myOMTFConfigMaker, myWriter, nPdfAddrBits, L1TMuonOverlapParams::nPdfAddrBits(), fakeOmtfParams_cff::omtfParams, and L1TMuonOverlapParams::setGeneralParams().

47  {
48  const L1TMuonOverlapParamsRcd& omtfParamsRcd = iSetup.get<L1TMuonOverlapParamsRcd>();
49 
50  edm::ESHandle<L1TMuonOverlapParams> omtfParamsHandle;
51  omtfParamsRcd.get(omtfParamsHandle);
52 
53  const L1TMuonOverlapParams* omtfParams = omtfParamsHandle.product();
54 
55  if (!omtfParams) {
56  edm::LogError("L1TMuonOverlapTrackProducer") << "Could not retrieve parameters from Event Setup" << std::endl;
57  }
58 
61 
64  L1TMuonOverlapParams omtfParamsMutable = *omtfParams;
65  std::vector<int> generalParams = *omtfParamsMutable.generalParams();
66  nPdfAddrBits = omtfParams->nPdfAddrBits();
67 
68  if (!mergeXMLFiles)
70  omtfParamsMutable.setGeneralParams(generalParams);
71 
72  myOMTFConfig->configure(&omtfParamsMutable);
73  myOMTF->configure(myOMTFConfig, omtfParams);
75 
77  if (!mergeXMLFiles) {
78  const std::map<Key, GoldenPattern*>& theGPs = myOMTF->getPatterns();
79  for (auto itGP : theGPs)
80  itGP.second->reset();
81  }
82 }
bool configure(const OMTFConfiguration *omtfParams, const L1TMuonOverlapParams *omtfPatterns)
Fill GP map with patterns from CondFormats object.
OMTFConfiguration * myOMTFConfig
OMTF objects.
PRODUCT const & get(ESGetToken< PRODUCT, T > const &iToken) const
OMTFConfigMaker * myOMTFConfigMaker
const std::vector< int > * generalParams() const
General definitions.
omtfParams
OMTF ESProducer.
void setGeneralParams(const std::vector< int > &paramsVec)
XMLConfigWriter * myWriter
OMTFProcessor * myOMTF
void configure(const L1TMuonOverlapParams *omtfParams)
int nPdfAddrBits() const
Access to specific general settings.
unsigned int nPdfAddrBits
Original pdf width. read from configuration.
const std::map< Key, GoldenPattern * > & getPatterns() const
Return map of GoldenPatterns.
void OMTFPatternMaker::endJob ( void  )
overridevirtual

Put back default value of the pdf width.

Order important: printPhiMap updates global vector in OMTFConfiguration

Write GPs merged by 4 above iPt=71, and by 2 below// /////////////////////////////////////////////////// 4x merging

Reimplemented from edm::EDAnalyzer.

Definition at line 91 of file OMTFPatternMaker.cc.

References OMTFProcessor::averagePatterns(), OMTFConfiguration::configure(), gather_cfg::cout, XMLConfigWriter::finaliseXMLDocument(), MainPageGenerator::fName, L1TMuonOverlapParams::GENERAL_ADDRBITS, L1TMuonOverlapParams::generalParams(), OMTFConfiguration::getMeasurements4D(), edm::ParameterSet::getParameter(), OMTFProcessor::getPatterns(), OMTFConfiguration::getRawParams(), XMLConfigWriter::initialiseXMLDocument(), makeConnectionsMaps, makeGoldenPatterns, mergeXMLFiles, myOMTF, myOMTFConfig, myOMTFConfigMaker, myWriter, nPdfAddrBits, OMTFConfigMaker::printConnections(), OMTFConfigMaker::printPhiMap(), RPCConst::ptFromIpt(), GoldenPattern::reset(), L1TMuonOverlapParams::setGeneralParams(), AlCaHLTBitMon_QueryRunRegistry::string, theConfig, XMLConfigWriter::writeConnectionsData(), XMLConfigWriter::writeGPData(), and writeMergedGPs().

91  {
94  const std::map<Key, GoldenPattern*>& myGPmap = myOMTF->getPatterns();
95  for (auto itGP : myGPmap) {
96  if (!itGP.second->hasCounts())
97  continue;
98  itGP.second->normalise(nPdfAddrBits);
99  }
100 
101  GoldenPattern dummyGP(Key(0, 0, 0), myOMTFConfig);
102  dummyGP.reset();
103 
105  L1TMuonOverlapParams omtfParamsMutable = *myOMTFConfig->getRawParams();
106  std::vector<int> generalParams = *omtfParamsMutable.generalParams();
108  omtfParamsMutable.setGeneralParams(generalParams);
109  myOMTFConfig->configure(&omtfParamsMutable);
110 
111  for (auto itGP : myGPmap) {
113  unsigned int iPt = theConfig.getParameter<int>("ptCode") + 1;
114  if (iPt > 31)
115  iPt = 200 * 2 + 1;
116  else
117  iPt = RPCConst::ptFromIpt(iPt) * 2.0 +
118  1; //MicroGMT has 0.5 GeV step size, with lower bin edge (uGMT_pt_code - 1)*step_size
120  if (itGP.first.thePtCode == iPt && itGP.first.theCharge == theConfig.getParameter<int>("charge")) {
121  std::cout << *itGP.second << std::endl;
122  myWriter->writeGPData(*itGP.second, dummyGP, dummyGP, dummyGP);
123  }
124  }
125  std::string fName = "GPs.xml";
127  }
128 
131  std::string fName = "Connections.xml";
132  unsigned int iProcessor = 0;
143  }
144 
145  if (mergeXMLFiles) {
147  dummy->reset();
148 
149  std::string fName = "OMTF";
151  const std::map<Key, GoldenPattern*>& myGPmap = myOMTF->getPatterns();
152  for (auto itGP : myGPmap) {
153  myWriter->writeGPData(*itGP.second, *dummy, *dummy, *dummy);
154  }
155  fName = "GPs.xml";
160  fName = "OMTF";
162  myOMTF->averagePatterns(-1);
164  writeMergedGPs();
165  fName = "GPs_4x.xml";
167  }
168 }
void writeConnectionsData(const std::vector< std::vector< OMTFConfiguration::vector2D > > &measurements4D)
T getParameter(std::string const &) const
void averagePatterns(int charge)
OMTFConfiguration * myOMTFConfig
OMTF objects.
void initialiseXMLDocument(const std::string &docName)
OMTFConfigMaker * myOMTFConfigMaker
const std::vector< int > * generalParams() const
General definitions.
void printConnections(std::ostream &out, unsigned int iProcessor, unsigned int iCone)
void setGeneralParams(const std::vector< int > &paramsVec)
const L1TMuonOverlapParams * getRawParams() const
XMLConfigWriter * myWriter
OMTFProcessor * myOMTF
static double ptFromIpt(const int ipt)
Definition: RPCConst.cc:29
void configure(const L1TMuonOverlapParams *omtfParams)
void reset()
Reset contents of all data vectors, keeping the vectors size.
void printPhiMap(std::ostream &out)
void finaliseXMLDocument(const std::string &fName)
unsigned int nPdfAddrBits
Original pdf width. read from configuration.
const std::map< Key, GoldenPattern * > & getPatterns() const
Return map of GoldenPatterns.
void writeGPData(const GoldenPattern &aGP)
edm::ParameterSet theConfig
vector4D & getMeasurements4D()
const SimTrack * OMTFPatternMaker::findSimMuon ( const edm::Event ev,
const edm::EventSetup es,
const SimTrack previous = 0 
)
private

Definition at line 292 of file OMTFPatternMaker.cc.

References DEFINE_FWK_MODULE, electronAnalyzer_cfi::DeltaR, edm::Event::getByToken(), inputTokenSimHit, CoreSimTrack::momentum(), mps_fire::result, and CoreSimTrack::type().

Referenced by analyze().

294  {
295  const SimTrack* result = nullptr;
297  ev.getByToken(inputTokenSimHit, simTks);
298 
299  for (std::vector<SimTrack>::const_iterator it = simTks->begin(); it < simTks->end(); it++) {
300  const SimTrack& aTrack = *it;
301  if (!(aTrack.type() == 13 || aTrack.type() == -13))
302  continue;
303  if (previous && ROOT::Math::VectorUtil::DeltaR(aTrack.momentum(), previous->momentum()) < 0.07)
304  continue;
305  if (!result || aTrack.momentum().pt() > result->momentum().pt())
306  result = &aTrack;
307  }
308  return result;
309 }
edm::EDGetTokenT< edm::SimTrackContainer > inputTokenSimHit
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
int type() const
particle type (HEP PDT convension)
Definition: CoreSimTrack.h:22
const math::XYZTLorentzVectorD & momentum() const
Definition: CoreSimTrack.h:19
void OMTFPatternMaker::writeMergedGPs ( )
private

Write the opposite charge.

Definition at line 171 of file OMTFPatternMaker.cc.

References OMTFProcessor::getPatterns(), GoldenPattern::key(), myOMTF, myOMTFConfig, myWriter, GoldenPattern::reset(), Key::theCharge, Key::thePtCode, and XMLConfigWriter::writeGPData().

Referenced by endJob().

171  {
172  const std::map<Key, GoldenPattern*>& myGPmap = myOMTF->getPatterns();
173 
175  dummy->reset();
176 
177  unsigned int iPtMin = 9;
178  Key aKey = Key(0, iPtMin, 1);
179  while (myGPmap.find(aKey) != myGPmap.end()) {
180  GoldenPattern* aGP1 = myGPmap.find(aKey)->second;
181  GoldenPattern* aGP2 = dummy;
182  GoldenPattern* aGP3 = dummy;
183  GoldenPattern* aGP4 = dummy;
184 
185  ++aKey.thePtCode;
186  while (myGPmap.find(aKey) == myGPmap.end() && aKey.thePtCode <= 401)
187  ++aKey.thePtCode;
188  if (aKey.thePtCode <= 401 && myGPmap.find(aKey) != myGPmap.end())
189  aGP2 = myGPmap.find(aKey)->second;
190 
191  if (aKey.thePtCode > 71) {
192  ++aKey.thePtCode;
193  while (myGPmap.find(aKey) == myGPmap.end() && aKey.thePtCode <= 401)
194  ++aKey.thePtCode;
195  if (aKey.thePtCode <= 401 && myGPmap.find(aKey) != myGPmap.end())
196  aGP3 = myGPmap.find(aKey)->second;
197 
198  ++aKey.thePtCode;
199  while (myGPmap.find(aKey) == myGPmap.end() && aKey.thePtCode <= 401)
200  ++aKey.thePtCode;
201  if (aKey.thePtCode <= 401 && myGPmap.find(aKey) != myGPmap.end())
202  aGP4 = myGPmap.find(aKey)->second;
203  }
204  ++aKey.thePtCode;
205  while (myGPmap.find(aKey) == myGPmap.end() && aKey.thePtCode <= 401)
206  ++aKey.thePtCode;
207  myWriter->writeGPData(*aGP1, *aGP2, *aGP3, *aGP4);
208 
210  Key aTmpKey = aGP1->key();
211  aTmpKey.theCharge = -1;
212  if (myGPmap.find(aTmpKey) != myGPmap.end())
213  aGP1 = myGPmap.find(aTmpKey)->second;
214  else
215  aGP1 = dummy;
216 
217  aTmpKey = aGP2->key();
218  aTmpKey.theCharge = -1;
219  if (myGPmap.find(aTmpKey) != myGPmap.end())
220  aGP2 = myGPmap.find(aTmpKey)->second;
221  else
222  aGP2 = dummy;
223 
224  aTmpKey = aGP3->key();
225  aTmpKey.theCharge = -1;
226  if (myGPmap.find(aTmpKey) != myGPmap.end())
227  aGP3 = myGPmap.find(aTmpKey)->second;
228  else
229  aGP3 = dummy;
230 
231  aTmpKey = aGP4->key();
232  aTmpKey.theCharge = -1;
233  if (myGPmap.find(aTmpKey) != myGPmap.end())
234  aGP4 = myGPmap.find(aTmpKey)->second;
235  else
236  aGP4 = dummy;
237 
238  myWriter->writeGPData(*aGP1, *aGP2, *aGP3, *aGP4);
239  }
240 }
Key key() const
Definition: GoldenPattern.h:56
OMTFConfiguration * myOMTFConfig
OMTF objects.
int theCharge
Definition: GoldenPattern.h:36
unsigned int thePtCode
Definition: GoldenPattern.h:35
XMLConfigWriter * myWriter
OMTFProcessor * myOMTF
void reset()
Reset contents of all data vectors, keeping the vectors size.
const std::map< Key, GoldenPattern * > & getPatterns() const
Return map of GoldenPatterns.
void writeGPData(const GoldenPattern &aGP)

Member Data Documentation

xercesc::DOMElement* OMTFPatternMaker::aTopElement
private

Definition at line 73 of file OMTFPatternMaker.h.

edm::InputTag OMTFPatternMaker::g4SimTrackSrc
private

Definition at line 53 of file OMTFPatternMaker.h.

edm::EDGetTokenT<CSCCorrelatedLCTDigiCollection> OMTFPatternMaker::inputTokenCSC
private

Definition at line 57 of file OMTFPatternMaker.h.

Referenced by analyze(), and OMTFPatternMaker().

edm::EDGetTokenT<L1MuDTChambPhContainer> OMTFPatternMaker::inputTokenDTPh
private

Definition at line 55 of file OMTFPatternMaker.h.

Referenced by analyze(), and OMTFPatternMaker().

edm::EDGetTokenT<L1MuDTChambThContainer> OMTFPatternMaker::inputTokenDTTh
private

Definition at line 56 of file OMTFPatternMaker.h.

Referenced by analyze(), and OMTFPatternMaker().

edm::EDGetTokenT<RPCDigiCollection> OMTFPatternMaker::inputTokenRPC
private

Definition at line 58 of file OMTFPatternMaker.h.

Referenced by analyze(), and OMTFPatternMaker().

edm::EDGetTokenT<edm::SimTrackContainer> OMTFPatternMaker::inputTokenSimHit
private

Definition at line 59 of file OMTFPatternMaker.h.

Referenced by findSimMuon(), and OMTFPatternMaker().

bool OMTFPatternMaker::makeConnectionsMaps
private

Definition at line 63 of file OMTFPatternMaker.h.

Referenced by analyze(), endJob(), and OMTFPatternMaker().

bool OMTFPatternMaker::makeGoldenPatterns
private

Definition at line 63 of file OMTFPatternMaker.h.

Referenced by analyze(), endJob(), and OMTFPatternMaker().

bool OMTFPatternMaker::mergeXMLFiles
private

Definition at line 63 of file OMTFPatternMaker.h.

Referenced by analyze(), beginRun(), endJob(), and OMTFPatternMaker().

OMTFinputMaker* OMTFPatternMaker::myInputMaker
private

Definition at line 70 of file OMTFPatternMaker.h.

Referenced by analyze(), and OMTFPatternMaker().

OMTFProcessor* OMTFPatternMaker::myOMTF
private
OMTFConfiguration* OMTFPatternMaker::myOMTFConfig
private

OMTF objects.

Definition at line 69 of file OMTFPatternMaker.h.

Referenced by analyze(), beginJob(), beginRun(), endJob(), OMTFPatternMaker(), writeMergedGPs(), and ~OMTFPatternMaker().

OMTFConfigMaker* OMTFPatternMaker::myOMTFConfigMaker
private

Definition at line 74 of file OMTFPatternMaker.h.

Referenced by analyze(), beginRun(), endJob(), and ~OMTFPatternMaker().

XMLConfigWriter* OMTFPatternMaker::myWriter
private

Definition at line 75 of file OMTFPatternMaker.h.

Referenced by beginRun(), endJob(), and writeMergedGPs().

unsigned int OMTFPatternMaker::nPdfAddrBits
private

Original pdf width. read from configuration.

Definition at line 66 of file OMTFPatternMaker.h.

Referenced by beginRun(), and endJob().

edm::ParameterSet OMTFPatternMaker::theConfig
private

Definition at line 52 of file OMTFPatternMaker.h.

Referenced by analyze(), endJob(), and OMTFPatternMaker().