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.

22  :
23  theConfig(cfg),
24  g4SimTrackSrc(cfg.getParameter<edm::InputTag>("g4SimTrackSrc")){
25 
26  inputTokenDTPh = consumes<L1MuDTChambPhContainer>(theConfig.getParameter<edm::InputTag>("srcDTPh"));
27  inputTokenDTTh = consumes<L1MuDTChambThContainer>(theConfig.getParameter<edm::InputTag>("srcDTTh"));
28  inputTokenCSC = consumes<CSCCorrelatedLCTDigiCollection>(theConfig.getParameter<edm::InputTag>("srcCSC"));
29  inputTokenRPC = consumes<RPCDigiCollection>(theConfig.getParameter<edm::InputTag>("srcRPC"));
30  inputTokenSimHit = consumes<edm::SimTrackContainer>(theConfig.getParameter<edm::InputTag>("g4SimTrackSrc"));
31 
33 
34  makeGoldenPatterns = theConfig.getParameter<bool>("makeGoldenPatterns");
35  makeConnectionsMaps = theConfig.getParameter<bool>("makeConnectionsMaps");
36  mergeXMLFiles = theConfig.getParameter<bool>("mergeXMLFiles");
37 
38  myOMTFConfig = nullptr;
39 }
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 42 of file OMTFPatternMaker.cc.

References myOMTF, myOMTFConfig, and myOMTFConfigMaker.

42  {
43 
44  delete myOMTFConfig;
45  delete myOMTFConfigMaker;
46  delete myOMTF;
47 
48 }
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 233 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.

233  {
234 
235  if(mergeXMLFiles) return;
236 
238  const SimTrack* aSimMuon = findSimMuon(iEvent,evSetup);
239  if(!aSimMuon){
240  edm::LogError("OMTFPatternMaker")<<"No SimMuon found in the event!";
241  return;
242  }
243 
245 
250 
252  if(!theConfig.getParameter<bool>("dropDTPrimitives")){
253  iEvent.getByToken(inputTokenDTPh,dtPhDigis);
254  iEvent.getByToken(inputTokenDTTh,dtThDigis);
255  }
256  if(!theConfig.getParameter<bool>("dropRPCPrimitives")) iEvent.getByToken(inputTokenRPC,rpcDigis);
257  if(!theConfig.getParameter<bool>("dropCSCPrimitives")) iEvent.getByToken(inputTokenCSC,cscDigis);
258 
259  //l1t::tftype mtfType = l1t::tftype::bmtf;
261  //l1t::tftype mtfType = l1t::tftype::emtf_pos;
262 
264  for(unsigned int iProcessor=0;iProcessor<6;++iProcessor){
265 
267  OMTFinput myInput = myInputMaker->buildInputForProcessor(dtPhDigis.product(),
268  dtThDigis.product(),
269  cscDigis.product(),
270  rpcDigis.product(),
271  iProcessor,
272  mtfType);
273 
277 
278  if(makeGoldenPatterns) myOMTF->fillCounts(iProcessor,myInput, aSimMuon);
279 
280  }
281 }
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:517
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:74
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 88 of file OMTFPatternMaker.cc.

References myOMTF, and myOMTFConfig.

88  {
89 
91  myOMTF = new OMTFProcessor();
92 }
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 51 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(), and L1TMuonOverlapParams::setGeneralParams().

51  {
52 
53  const L1TMuonOverlapParamsRcd& omtfParamsRcd = iSetup.get<L1TMuonOverlapParamsRcd>();
54 
55  edm::ESHandle<L1TMuonOverlapParams> omtfParamsHandle;
56  omtfParamsRcd.get(omtfParamsHandle);
57 
58  const L1TMuonOverlapParams* omtfParams = omtfParamsHandle.product();
59 
60  if (!omtfParams) {
61  edm::LogError("L1TMuonOverlapTrackProducer") << "Could not retrieve parameters from Event Setup" << std::endl;
62  }
63 
66 
69  L1TMuonOverlapParams omtfParamsMutable = *omtfParams;
70  std::vector<int> generalParams = *omtfParamsMutable.generalParams();
71  nPdfAddrBits = omtfParams->nPdfAddrBits();
72 
74  omtfParamsMutable.setGeneralParams(generalParams);
75 
76  myOMTFConfig->configure(&omtfParamsMutable);
77  myOMTF->configure(myOMTFConfig, omtfParams);
79 
81  if(!mergeXMLFiles){
82  const std::map<Key,GoldenPattern*> & theGPs = myOMTF->getPatterns();
83  for(auto itGP: theGPs) itGP.second->reset();
84  }
85 }
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.
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 95 of file OMTFPatternMaker.cc.

References OMTFProcessor::averagePatterns(), OMTFConfiguration::configure(), gather_cfg::cout, XMLConfigWriter::finaliseXMLDocument(), 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().

95  {
96 
99  const std::map<Key,GoldenPattern*> & myGPmap = myOMTF->getPatterns();
100  for(auto itGP: myGPmap){
101  if(!itGP.second->hasCounts()) continue;
102  itGP.second->normalise(nPdfAddrBits);
103  }
104 
105  GoldenPattern dummyGP(Key(0,0,0), myOMTFConfig);
106  dummyGP.reset();
107 
109  L1TMuonOverlapParams omtfParamsMutable = *myOMTFConfig->getRawParams();
110  std::vector<int> generalParams = *omtfParamsMutable.generalParams();
112  omtfParamsMutable.setGeneralParams(generalParams);
113  myOMTFConfig->configure(&omtfParamsMutable);
114 
115  for(auto itGP: myGPmap){
117  unsigned int iPt = theConfig.getParameter<int>("ptCode")+1;
118  if(iPt>31) iPt = 200*2+1;
119  else iPt = RPCConst::ptFromIpt(iPt)*2.0+1;//MicroGMT has 0.5 GeV step size, with lower bin edge (uGMT_pt_code - 1)*step_size
121  if(itGP.first.thePtCode==iPt &&
122  itGP.first.theCharge==theConfig.getParameter<int>("charge")){
123  std::cout<<*itGP.second<<std::endl;
124  myWriter->writeGPData(*itGP.second, dummyGP, dummyGP, dummyGP);
125  }
126  }
127  std::string fName = "GPs.xml";
128  myWriter->finaliseXMLDocument(fName);
129  }
130 
133  std::string fName = "Connections.xml";
134  unsigned int iProcessor = 0;
145  }
146 
147  if(mergeXMLFiles){
148 
150  dummy->reset();
151 
152  std::string fName = "OMTF";
154  const std::map<Key,GoldenPattern*> & myGPmap = myOMTF->getPatterns();
155  for(auto itGP: myGPmap){
156  myWriter->writeGPData(*itGP.second,*dummy, *dummy, *dummy);
157  }
158  fName = "GPs.xml";
163  fName = "OMTF";
165  myOMTF->averagePatterns(-1);
167  writeMergedGPs();
168  fName = "GPs_4x.xml";
170  }
171 }
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:28
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 284 of file OMTFPatternMaker.cc.

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

Referenced by analyze().

284  {
285 
286  const SimTrack * result = nullptr;
288  ev.getByToken(inputTokenSimHit,simTks);
289 
290  for (std::vector<SimTrack>::const_iterator it=simTks->begin(); it< simTks->end(); it++) {
291  const SimTrack & aTrack = *it;
292  if ( !(aTrack.type() == 13 || aTrack.type() == -13) )continue;
293  if(previous && ROOT::Math::VectorUtil::DeltaR(aTrack.momentum(),previous->momentum())<0.07) continue;
294  if ( !result || aTrack.momentum().pt() > result->momentum().pt()) result = &aTrack;
295  }
296  return result;
297 }
edm::EDGetTokenT< edm::SimTrackContainer > inputTokenSimHit
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
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 174 of file OMTFPatternMaker.cc.

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

Referenced by endJob().

174  {
175 
176  const std::map<Key,GoldenPattern*> & myGPmap = myOMTF->getPatterns();
177 
179  dummy->reset();
180 
181  unsigned int iPtMin = 9;
182  Key aKey = Key(0, iPtMin, 1);
183  while(myGPmap.find(aKey)!=myGPmap.end()){
184 
185  GoldenPattern *aGP1 = myGPmap.find(aKey)->second;
186  GoldenPattern *aGP2 = dummy;
187  GoldenPattern *aGP3 = dummy;
188  GoldenPattern *aGP4 = dummy;
189 
190  ++aKey.thePtCode;
191  while(myGPmap.find(aKey)==myGPmap.end() && aKey.thePtCode<=401) ++aKey.thePtCode;
192  if(aKey.thePtCode<=401 && myGPmap.find(aKey)!=myGPmap.end()) aGP2 = myGPmap.find(aKey)->second;
193 
194  if(aKey.thePtCode>71){
195  ++aKey.thePtCode;
196  while(myGPmap.find(aKey)==myGPmap.end() && aKey.thePtCode<=401) ++aKey.thePtCode;
197  if(aKey.thePtCode<=401 && myGPmap.find(aKey)!=myGPmap.end()) aGP3 = myGPmap.find(aKey)->second;
198 
199  ++aKey.thePtCode;
200  while(myGPmap.find(aKey)==myGPmap.end() && aKey.thePtCode<=401) ++aKey.thePtCode;
201  if(aKey.thePtCode<=401 && myGPmap.find(aKey)!=myGPmap.end()) aGP4 = myGPmap.find(aKey)->second;
202  }
203  ++aKey.thePtCode;
204  while(myGPmap.find(aKey)==myGPmap.end() && aKey.thePtCode<=401) ++aKey.thePtCode;
205  myWriter->writeGPData(*aGP1,*aGP2, *aGP3, *aGP4);
206 
208  Key aTmpKey = aGP1->key();
209  aTmpKey.theCharge = -1;
210  if(myGPmap.find(aTmpKey)!=myGPmap.end()) aGP1 = myGPmap.find(aTmpKey)->second;
211  else aGP1 = dummy;
212 
213  aTmpKey = aGP2->key();
214  aTmpKey.theCharge = -1;
215  if(myGPmap.find(aTmpKey)!=myGPmap.end()) aGP2 = myGPmap.find(aTmpKey)->second;
216  else aGP2 = dummy;
217 
218  aTmpKey = aGP3->key();
219  aTmpKey.theCharge = -1;
220  if(myGPmap.find(aTmpKey)!=myGPmap.end()) aGP3 = myGPmap.find(aTmpKey)->second;
221  else aGP3 = dummy;
222 
223  aTmpKey = aGP4->key();
224  aTmpKey.theCharge = -1;
225  if(myGPmap.find(aTmpKey)!=myGPmap.end()) aGP4 = myGPmap.find(aTmpKey)->second;
226  else aGP4 = dummy;
227 
228  myWriter->writeGPData(*aGP1,*aGP2, *aGP3, *aGP4);
229  }
230 }
Key key() const
Definition: GoldenPattern.h:58
OMTFConfiguration * myOMTFConfig
OMTF objects.
int theCharge
Definition: GoldenPattern.h:35
unsigned int thePtCode
Definition: GoldenPattern.h:34
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 75 of file OMTFPatternMaker.h.

edm::InputTag OMTFPatternMaker::g4SimTrackSrc
private

Definition at line 55 of file OMTFPatternMaker.h.

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

Definition at line 59 of file OMTFPatternMaker.h.

Referenced by analyze(), and OMTFPatternMaker().

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

Definition at line 57 of file OMTFPatternMaker.h.

Referenced by analyze(), and OMTFPatternMaker().

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

Definition at line 58 of file OMTFPatternMaker.h.

Referenced by analyze(), and OMTFPatternMaker().

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

Definition at line 60 of file OMTFPatternMaker.h.

Referenced by analyze(), and OMTFPatternMaker().

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

Definition at line 61 of file OMTFPatternMaker.h.

Referenced by findSimMuon(), and OMTFPatternMaker().

bool OMTFPatternMaker::makeConnectionsMaps
private

Definition at line 65 of file OMTFPatternMaker.h.

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

bool OMTFPatternMaker::makeGoldenPatterns
private

Definition at line 65 of file OMTFPatternMaker.h.

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

bool OMTFPatternMaker::mergeXMLFiles
private

Definition at line 65 of file OMTFPatternMaker.h.

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

OMTFinputMaker* OMTFPatternMaker::myInputMaker
private

Definition at line 72 of file OMTFPatternMaker.h.

Referenced by analyze(), and OMTFPatternMaker().

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

OMTF objects.

Definition at line 71 of file OMTFPatternMaker.h.

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

OMTFConfigMaker* OMTFPatternMaker::myOMTFConfigMaker
private

Definition at line 76 of file OMTFPatternMaker.h.

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

XMLConfigWriter* OMTFPatternMaker::myWriter
private

Definition at line 77 of file OMTFPatternMaker.h.

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

unsigned int OMTFPatternMaker::nPdfAddrBits
private

Original pdf width. read from configuration.

Definition at line 68 of file OMTFPatternMaker.h.

Referenced by beginRun(), and endJob().

edm::ParameterSet OMTFPatternMaker::theConfig
private

Definition at line 54 of file OMTFPatternMaker.h.

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