CMS 3D CMS Logo

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

#include <CSCTFanalyzer.h>

Inheritance diagram for CSCTFanalyzer:
edm::one::EDAnalyzer<> edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

void analyze (edm::Event const &e, edm::EventSetup const &iSetup) override
 
void beginJob () override
 
 CSCTFanalyzer (edm::ParameterSet const &pset)
 
void endJob (void) override
 
 ~CSCTFanalyzer (void) override
 
- Public Member Functions inherited from edm::one::EDAnalyzer<>
 EDAnalyzer ()=default
 
 EDAnalyzer (const EDAnalyzer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
const EDAnalyzeroperator= (const EDAnalyzer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () 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
 
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::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, 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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Attributes

edm::InputTag dataTrackProducer
 
int dbx1
 
int dbx2
 
int dbx3
 
int dch1
 
int dch2
 
int dch3
 
double deta1
 
double deta2
 
double deta3
 
int dlcts1
 
int dlcts2
 
int dlcts3
 
int dmode1
 
int dmode2
 
int dmode3
 
double dphi1
 
double dphi2
 
double dphi3
 
int dpt1
 
int dpt2
 
int dpt3
 
int drank1
 
int drank2
 
int drank3
 
int ebx1
 
int ebx2
 
int ebx3
 
int ech1
 
int ech2
 
int ech3
 
double eeta1
 
double eeta2
 
double eeta3
 
int emode1
 
int emode2
 
int emode3
 
edm::InputTag emulTrackProducer
 
double ephi1
 
double ephi2
 
double ephi3
 
int ept1
 
int ept2
 
int ept3
 
int erank1
 
int erank2
 
int erank3
 
TFile * file
 
edm::InputTag lctProducer
 
edm::InputTag mbProducer
 
int nDataMuons
 
int nEmulMuons
 
edm::ESGetToken< L1MuTriggerScales, L1MuTriggerScalesRcdscalesToken
 
TTree * tree
 
const L1MuTriggerScalests
 
int verbose
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
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<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Definition at line 18 of file CSCTFanalyzer.h.

Constructor & Destructor Documentation

◆ CSCTFanalyzer()

CSCTFanalyzer::CSCTFanalyzer ( edm::ParameterSet const &  pset)
explicit

Definition at line 8 of file CSCTFanalyzer.cc.

References dataTrackProducer, dbx1, dbx2, dbx3, dch1, dch2, dch3, deta1, deta2, deta3, dlcts1, dlcts2, dlcts3, dmode1, dmode2, dmode3, dphi1, dphi2, dphi3, dpt1, dpt2, dpt3, drank1, drank2, drank3, ebx1, ebx2, ebx3, ech1, ech2, ech3, eeta1, eeta2, eeta3, emode1, emode2, emode3, emulTrackProducer, ephi1, ephi2, ephi3, ept1, ept2, ept3, erank1, erank2, erank3, file, ProducerED_cfi::InputTag, lctProducer, mbProducer, nDataMuons, nEmulMuons, muonDTDigis_cfi::pset, scalesToken, ts, and verbose.

8  {
9  verbose = pset.getUntrackedParameter<unsigned int>("verbose", 0);
10  dataTrackProducer = pset.getUntrackedParameter<edm::InputTag>("dataTrackProducer", edm::InputTag("csctfDigis"));
11  emulTrackProducer = pset.getUntrackedParameter<edm::InputTag>("emulTrackProducer", edm::InputTag("csctfTrackDigis"));
12  lctProducer = pset.getUntrackedParameter<edm::InputTag>("lctProducer", edm::InputTag("csctfDigis"));
13  mbProducer = pset.getUntrackedParameter<edm::InputTag>("mbProducer", edm::InputTag("csctfDigis"));
14  scalesToken = esConsumes<L1MuTriggerScales, L1MuTriggerScalesRcd>();
15  file = new TFile("qwe.root", "RECREATE");
16  tree = new TTree("dy", "QWE");
17  tree->Branch("nDataMuons", &nDataMuons, "nDataMuons/I");
18  tree->Branch("dphi1", &dphi1, "dphi1/D");
19  tree->Branch("dphi2", &dphi2, "dphi2/D");
20  tree->Branch("dphi3", &dphi3, "dphi3/D");
21  tree->Branch("deta1", &deta1, "deta1/D");
22  tree->Branch("deta2", &deta2, "deta2/D");
23  tree->Branch("deta3", &deta3, "deta3/D");
24  tree->Branch("dpt1", &dpt1, "dpt1/I");
25  tree->Branch("dpt2", &dpt2, "dpt2/I");
26  tree->Branch("dpt3", &dpt3, "dpt3/I");
27  tree->Branch("dch1", &dch1, "dch1/I");
28  tree->Branch("dch2", &dch2, "dch2/I");
29  tree->Branch("dch3", &dch3, "dch3/I");
30  tree->Branch("dbx1", &dbx1, "dbx1/I");
31  tree->Branch("dbx2", &dbx2, "dbx2/I");
32  tree->Branch("dbx3", &dbx3, "dbx3/I");
33  tree->Branch("drank1", &drank1, "drank1/I");
34  tree->Branch("drank2", &drank2, "drank2/I");
35  tree->Branch("drank3", &drank3, "drank3/I");
36  tree->Branch("dmode1", &dmode1, "dmode1/I");
37  tree->Branch("dmode2", &dmode2, "dmode2/I");
38  tree->Branch("dmode3", &dmode3, "dmode3/I");
39  tree->Branch("dlcts1", &dlcts1, "dlcts1/I");
40  tree->Branch("dlcts2", &dlcts2, "dlcts2/I");
41  tree->Branch("dlcts3", &dlcts3, "dlcts3/I");
42 
43  tree->Branch("nEmulMuons", &nEmulMuons, "nEmulMuons/I");
44  tree->Branch("ephi1", &ephi1, "ephi1/D");
45  tree->Branch("ephi2", &ephi2, "ephi2/D");
46  tree->Branch("ephi3", &ephi3, "ephi3/D");
47  tree->Branch("eeta1", &eeta1, "eeta1/D");
48  tree->Branch("eeta2", &eeta2, "eeta2/D");
49  tree->Branch("eeta3", &eeta3, "eeta3/D");
50  tree->Branch("ept1", &ept1, "ept1/I");
51  tree->Branch("ept2", &ept2, "ept2/I");
52  tree->Branch("ept3", &ept3, "ept3/I");
53  tree->Branch("ech1", &ech1, "ech1/I");
54  tree->Branch("ech2", &ech2, "ech2/I");
55  tree->Branch("ech3", &ech3, "ech3/I");
56  tree->Branch("ebx1", &ebx1, "ebx1/I");
57  tree->Branch("ebx2", &ebx2, "ebx2/I");
58  tree->Branch("ebx3", &ebx3, "ebx3/I");
59  tree->Branch("erank1", &erank1, "erank1/I");
60  tree->Branch("erank2", &erank2, "erank2/I");
61  tree->Branch("erank3", &erank3, "erank3/I");
62  tree->Branch("emode1", &emode1, "emode1/I");
63  tree->Branch("emode2", &emode2, "emode2/I");
64  tree->Branch("emode3", &emode3, "emode3/I");
65 
66  ts = nullptr;
67 }
edm::InputTag mbProducer
Definition: CSCTFanalyzer.h:20
edm::InputTag lctProducer
Definition: CSCTFanalyzer.h:20
edm::ESGetToken< L1MuTriggerScales, L1MuTriggerScalesRcd > scalesToken
Definition: CSCTFanalyzer.h:21
const L1MuTriggerScales * ts
Definition: CSCTFanalyzer.h:43
edm::InputTag emulTrackProducer
Definition: CSCTFanalyzer.h:20
Definition: tree.py:1
edm::InputTag dataTrackProducer
Definition: CSCTFanalyzer.h:20

◆ ~CSCTFanalyzer()

CSCTFanalyzer::~CSCTFanalyzer ( void  )
inlineoverride

Definition at line 51 of file CSCTFanalyzer.h.

51 {}

Member Function Documentation

◆ analyze()

void CSCTFanalyzer::analyze ( edm::Event const &  e,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 75 of file CSCTFanalyzer.cc.

References csc::L1Track::BX(), simKBmtfDigis_cfi::bx, L1MuRegionalCand::charge_packed(), gather_cfg::cout, dataTrackProducer, dbx1, dbx2, dbx3, dch1, dch2, dch3, TauDecayModes::dec, deta1, deta2, deta3, dlcts1, dlcts2, dlcts3, dmode1, dmode2, dmode3, dphi1, dphi2, dphi3, dpt1, dpt2, dpt3, drank1, drank2, drank3, MillePedeFileConverter_cfg::e, ebx1, ebx2, ebx3, ech1, ech2, ech3, eeta1, eeta2, eeta3, emode1, emode2, emode3, emulTrackProducer, csc::L1Track::endcap(), ephi1, ephi2, ephi3, ept1, ept2, ept3, erank1, erank2, erank3, L1MuRegionalCand::ETA_LENGTH, L1MuRegionalCand::eta_packed(), CSCTriggerContainer< T >::get(), L1MuScale::getCenter(), edm::EventSetup::getHandle(), L1MuScale::getLowEdge(), L1MuTriggerScales::getPhiScale(), L1MuTriggerScales::getRegionalEtaScale(), edm::InputTag::instance(), edm::HandleBase::isValid(), edm::InputTag::label(), lctProducer, csc::L1Track::localPhi(), csc::L1Track::mb1ID(), mbProducer, csc::L1Track::me1ID(), csc::L1Track::me2ID(), csc::L1Track::me3ID(), csc::L1Track::me4ID(), csc::L1Track::mode(), nDataMuons, nEmulMuons, csc::L1Track::outputLink(), L1MuRegionalCand::phi_packed(), edm::Handle< T >::product(), edm::ESHandle< T >::product(), L1MuRegionalCand::pt_packed(), csc::L1Track::ptLUTAddress(), CSCTriggerContainer< T >::push_back(), csc::L1Track::rank(), mps_fire::result, scalesToken, hgcalTBTopologyTester_cfi::sector, csc::L1Track::sector(), csc::L1Track::setOutputLink(), jetUpdater_cfi::sort, relativeConstraints::station, pwdgSkimBPark_cfi::tracks, ts, and verbose.

75  {
76  if (!ts) {
77  edm::ESHandle<L1MuTriggerScales> scales = es.getHandle(scalesToken);
78  ts = scales.product();
79  }
80 
81  if (lctProducer.label() != "null") {
83  e.getByLabel(lctProducer.label(), lctProducer.instance(), LCTs);
84 
85  for (CSCCorrelatedLCTDigiCollection::DigiRangeIterator csc = LCTs.product()->begin(); csc != LCTs.product()->end();
86  csc++) {
87  int lctId = 0;
88 
89  CSCCorrelatedLCTDigiCollection::Range range1 = LCTs.product()->get((*csc).first);
90  for (CSCCorrelatedLCTDigiCollection::const_iterator lct = range1.first; lct != range1.second; lct++, lctId++) {
91  int station = (*csc).first.station() - 1;
92  int cscId = (*csc).first.triggerCscId() - 1;
93  int sector = (*csc).first.triggerSector() - 1 + ((*csc).first.endcap() == 1 ? 0 : 6);
94  //int subSector = CSCTriggerNumbering::triggerSubSectorFromLabels((*csc).first);
95  int tbin = lct->getBX();
96  //int fpga = ( subSector ? subSector-1 : station+1 );
97  if ((verbose & 1) == 1)
98  std::cout << "LCT in station=" << (station + 1) << " sector=" << (sector + 1) << " cscId=" << (cscId + 1)
99  << " bx=" << tbin << std::endl;
100  }
101  }
102  }
103 
104  if (mbProducer.label() != "null") {
106  e.getByLabel(mbProducer.label(), mbProducer.instance(), dtStubs);
107  if (dtStubs.isValid()) {
108  std::vector<csctf::TrackStub> vstubs = dtStubs->get();
109  for (std::vector<csctf::TrackStub>::const_iterator stub = vstubs.begin(); stub != vstubs.end(); stub++) {
110  //int dtSector =(stub->sector()-1)*2 + stub->subsector()-1;
111  //int dtEndcap = stub->endcap()-1;
112  std::cout << " DT data: tbin=" << stub->BX() << " (CSC) sector=" << stub->sector()
113  << " (CSC) subsector=" << stub->subsector() << " station=" << stub->station()
114  << " endcap=" << stub->endcap() << " phi=" << stub->phiPacked() << " phiBend=" << stub->getBend()
115  << " quality=" << stub->getQuality() << " id=" << stub->getMPCLink() << " mb_bxn=" << stub->cscid()
116  << std::endl;
117  }
118 
119  } else
120  edm::LogInfo("CSCTFAnalyzer") << " No valid CSCTriggerContainer<csctf::TrackStub> products found";
121  }
122 
123  nDataMuons = 0;
124  nEmulMuons = 0;
125  dphi1 = -1;
126  deta1 = -1;
127  dpt1 = -1;
128  dch1 = -1, dbx1 = -10;
129  dphi2 = -1;
130  deta2 = -1;
131  dpt2 = -1;
132  dch2 = -1, dbx2 = -10;
133  dphi3 = -1;
134  deta3 = -1;
135  dpt3 = -1;
136  dch3 = -1, dbx3 = -10;
137  drank1 = -1;
138  drank2 = -1;
139  drank3 = -1;
140  dmode1 = -1;
141  dmode2 = -1;
142  dmode3 = -1;
143  dlcts1 = 0;
144  dlcts2 = 0;
145  dlcts3 = 0;
146  ephi1 = -1;
147  eeta1 = -1;
148  ept1 = -1;
149  ech1 = -1, ebx1 = -10;
150  ephi2 = -1;
151  eeta2 = -1;
152  ept2 = -1;
153  ech2 = -1, ebx2 = -10;
154  ephi3 = -1;
155  eeta3 = -1;
156  ept3 = -1;
157  ech3 = -1, ebx3 = -10;
158  erank1 = -1;
159  erank2 = -1;
160  erank3 = -1;
161  emode1 = -1;
162  emode2 = -1;
163  emode3 = -1;
164 
165  if (dataTrackProducer.label() != "null") {
168  // Muon sorter emulation:
169  std::vector<csc::L1Track> result;
170  CSCTriggerContainer<csc::L1Track> stripped_tracks;
171  for (L1CSCTrackCollection::const_iterator tmp_trk = tracks->begin(); tmp_trk != tracks->end(); tmp_trk++) {
172  csc::L1Track qqq(tmp_trk->first);
173  qqq.setOutputLink(0);
174  CSCCorrelatedLCTDigiCollection qwe = tmp_trk->second;
175  for (CSCCorrelatedLCTDigiCollection::DigiRangeIterator csc = qwe.begin(); csc != qwe.end(); csc++) {
176  CSCCorrelatedLCTDigiCollection::Range range1 = qwe.get((*csc).first);
177  for (CSCCorrelatedLCTDigiCollection::const_iterator lct = range1.first; lct != range1.second; lct++)
178  qqq.setOutputLink(qqq.outputLink() | (1 << (*csc).first.station()));
179  }
180  stripped_tracks.push_back(qqq);
181  }
182  // First we sort and crop the incoming tracks based on their rank.
183  for (int bx = -3; bx <= 3; ++bx) { // switch back into signed BX
184  std::vector<csc::L1Track> tks = stripped_tracks.get(bx);
185  std::sort(tks.begin(), tks.end(), std::greater<csc::L1Track>());
186  if (tks.size() > 4)
187  tks.resize(4); // resize to max number of muons the MS can output
188  for (std::vector<csc::L1Track>::iterator itr = tks.begin(); itr != tks.end(); itr++) {
189  unsigned gbl_phi =
190  itr->localPhi() + ((itr->sector() - 1) * 24) + 6; // for now, convert using this.. LUT in the future
191  if (gbl_phi > 143)
192  gbl_phi -= 143;
193  itr->setPhiPacked(gbl_phi & 0xff);
194  unsigned eta_sign = (itr->endcap() == 1 ? 0 : 1);
195  int gbl_eta = itr->eta_packed() | eta_sign << (L1MuRegionalCand::ETA_LENGTH - 1);
196  itr->setEtaPacked(gbl_eta & 0x3f);
197  itr->setQualityPacked((itr->rank() >> 4) & 0x3);
198  itr->setPtPacked(itr->rank() & 0x1f);
199  if (!itr->empty())
200  result.push_back(*itr);
201  }
202  }
203  // for(std::vector<csc::L1Track>::const_iterator trk=result.begin(); trk!=result.end(); trk++){
204  for (L1CSCTrackCollection::const_iterator _trk = tracks->begin(); _trk != tracks->end(); _trk++) {
205  const csc::L1Track* trk = &(_trk->first);
206  switch (nDataMuons) {
207  case 0:
208  dphi1 = ts->getPhiScale()->getLowEdge(trk->phi_packed());
210  dpt1 = trk->pt_packed();
211  dch1 = trk->charge_packed();
212  dbx1 = trk->BX();
213  dmode1 = trk->mode();
214  drank1 = trk->rank();
215  dlcts1 = trk->outputLink();
216  break;
217  case 1:
218  dphi2 = ts->getPhiScale()->getLowEdge(trk->phi_packed());
220  dpt2 = trk->pt_packed();
221  dch2 = trk->charge_packed();
222  dbx2 = trk->BX();
223  dmode2 = trk->mode();
224  drank2 = trk->rank();
225  dlcts2 = trk->outputLink();
226  break;
227  case 2:
228  dphi3 = ts->getPhiScale()->getLowEdge(trk->phi_packed());
230  dpt3 = trk->pt_packed();
231  dch3 = trk->charge_packed();
232  dbx3 = trk->BX();
233  dmode3 = trk->mode();
234  drank3 = trk->rank();
235  dlcts3 = trk->outputLink();
236  break;
237  default:
238  break;
239  }
240  if ((verbose & 2) == 2)
241  std::cout << "Data: TRK in endcap=" << trk->endcap() << " sector=" << trk->sector() << " bx=" << trk->BX()
242  << " (rank=" << trk->rank() << " localPhi=" << trk->localPhi() << " etaPacked=" << trk->eta_packed()
243  << " me1D=" << trk->me1ID() << " me2D=" << trk->me2ID() << " me3D=" << trk->me3ID()
244  << " me4D=" << trk->me4ID() << " mb1D=" << trk->mb1ID() << " pTaddr=" << std::hex
245  << trk->ptLUTAddress() << std::dec << ")" << std::endl;
246  nDataMuons++;
247  }
248  }
249 
250  if (emulTrackProducer.label() != "null") {
253  for (L1CSCTrackCollection::const_iterator trk = tracks.product()->begin(); trk != tracks.product()->end(); trk++) {
254  switch (nEmulMuons) {
255  case 0:
256  ephi1 = trk->first.localPhi();
257  eeta1 = trk->first.eta_packed();
258  ept1 = trk->first.pt_packed();
259  ech1 = trk->first.charge_packed();
260  ebx1 = trk->first.BX();
261  break;
262  case 1:
263  ephi2 = trk->first.localPhi();
264  eeta2 = trk->first.eta_packed();
265  ept2 = trk->first.pt_packed();
266  ech2 = trk->first.charge_packed();
267  ebx2 = trk->first.BX();
268  break;
269  case 2:
270  ephi3 = trk->first.localPhi();
271  eeta3 = trk->first.eta_packed();
272  ept3 = trk->first.pt_packed();
273  ech3 = trk->first.charge_packed();
274  ebx3 = trk->first.BX();
275  break;
276  default:
277  break;
278  }
279  if ((verbose & 2) == 2)
280  std::cout << "Emulator: TRK in endcap=" << trk->first.endcap() << " sector=" << trk->first.sector()
281  << " bx=" << trk->first.BX() << " (rank=" << trk->first.rank()
282  << " localPhi=" << trk->first.localPhi() << " etaPacked=" << trk->first.eta_packed()
283  << " me1D=" << trk->first.me1ID() << " me2D=" << trk->first.me2ID() << " me3D=" << trk->first.me3ID()
284  << " me4D=" << trk->first.me4ID() << " mb1D=" << trk->first.mb1ID() << " pTaddr=" << std::hex
285  << trk->first.ptLUTAddress() << std::dec << ")" << std::endl;
286  nEmulMuons++;
287  }
288  }
289 
290  tree->Fill();
291 }
unsigned rank() const
Definition: L1Track.cc:100
unsigned mb1ID() const
Definition: L1Track.h:44
unsigned pt_packed() const
return pt packed as in hardware
std::string const & instance() const
Definition: InputTag.h:37
virtual float getLowEdge(unsigned packed) const =0
get the low edge of bin represented by packed
T const * product() const
Definition: Handle.h:70
unsigned sector() const
Definition: L1Track.h:47
unsigned charge_packed() const
return charge packed as in hardware (0=pos, 1=neg)
unsigned me2ID() const
Definition: L1Track.h:41
edm::InputTag mbProducer
Definition: CSCTFanalyzer.h:20
std::string const & label() const
Definition: InputTag.h:36
unsigned phi_packed() const
return phi packed as in hardware
const L1MuScale * getPhiScale() const
get the phi scale
std::vector< T > get() const
virtual float getCenter(unsigned packed) const =0
get the center of bin represented by packed
unsigned outputLink() const
Definition: L1Track.h:63
void push_back(const T &data)
int BX() const
Definition: L1Track.h:53
T const * product() const
Definition: ESHandle.h:86
edm::InputTag lctProducer
Definition: CSCTFanalyzer.h:20
const L1MuScale * getRegionalEtaScale(int isys) const
get the regioanl muon trigger eta scale, isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC) ...
unsigned eta_packed() const
return eta packed as in hardware
unsigned localPhi() const
Definition: L1Track.h:37
Definition: L1Track.h:19
Log< level::Info, false > LogInfo
edm::ESGetToken< L1MuTriggerScales, L1MuTriggerScalesRcd > scalesToken
Definition: CSCTFanalyzer.h:21
std::pair< const_iterator, const_iterator > Range
std::vector< DigiType >::const_iterator const_iterator
unsigned mode(void) const
Definition: L1Track.h:90
unsigned me4ID() const
Definition: L1Track.h:43
bool isValid() const
Definition: HandleBase.h:70
unsigned me1ID() const
Definition: L1Track.h:40
unsigned endcap() const
Definition: L1Track.h:46
const L1MuTriggerScales * ts
Definition: CSCTFanalyzer.h:43
edm::InputTag emulTrackProducer
Definition: CSCTFanalyzer.h:20
Definition: tree.py:1
unsigned me3ID() const
Definition: L1Track.h:42
unsigned ptLUTAddress() const
Definition: L1Track.h:58
edm::InputTag dataTrackProducer
Definition: CSCTFanalyzer.h:20

◆ beginJob()

void CSCTFanalyzer::beginJob ( void  )
inlineoverridevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 48 of file CSCTFanalyzer.h.

48 {}

◆ endJob()

void CSCTFanalyzer::endJob ( void  )
overridevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 69 of file CSCTFanalyzer.cc.

References file.

69  {
70  tree->Write();
71  file->Write();
72  file->Close();
73 }
Definition: tree.py:1

Member Data Documentation

◆ dataTrackProducer

edm::InputTag CSCTFanalyzer::dataTrackProducer
private

Definition at line 20 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dbx1

int CSCTFanalyzer::dbx1
private

Definition at line 26 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dbx2

int CSCTFanalyzer::dbx2
private

Definition at line 28 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dbx3

int CSCTFanalyzer::dbx3
private

Definition at line 30 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dch1

int CSCTFanalyzer::dch1
private

Definition at line 26 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dch2

int CSCTFanalyzer::dch2
private

Definition at line 28 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dch3

int CSCTFanalyzer::dch3
private

Definition at line 30 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ deta1

double CSCTFanalyzer::deta1
private

Definition at line 25 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ deta2

double CSCTFanalyzer::deta2
private

Definition at line 27 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ deta3

double CSCTFanalyzer::deta3
private

Definition at line 29 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dlcts1

int CSCTFanalyzer::dlcts1
private

Definition at line 33 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dlcts2

int CSCTFanalyzer::dlcts2
private

Definition at line 33 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dlcts3

int CSCTFanalyzer::dlcts3
private

Definition at line 33 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dmode1

int CSCTFanalyzer::dmode1
private

Definition at line 32 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dmode2

int CSCTFanalyzer::dmode2
private

Definition at line 32 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dmode3

int CSCTFanalyzer::dmode3
private

Definition at line 32 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dphi1

double CSCTFanalyzer::dphi1
private

Definition at line 25 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dphi2

double CSCTFanalyzer::dphi2
private

Definition at line 27 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dphi3

double CSCTFanalyzer::dphi3
private

Definition at line 29 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dpt1

int CSCTFanalyzer::dpt1
private

Definition at line 26 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dpt2

int CSCTFanalyzer::dpt2
private

Definition at line 28 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ dpt3

int CSCTFanalyzer::dpt3
private

Definition at line 30 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ drank1

int CSCTFanalyzer::drank1
private

Definition at line 31 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ drank2

int CSCTFanalyzer::drank2
private

Definition at line 31 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ drank3

int CSCTFanalyzer::drank3
private

Definition at line 31 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ ebx1

int CSCTFanalyzer::ebx1
private

Definition at line 35 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ ebx2

int CSCTFanalyzer::ebx2
private

Definition at line 37 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ ebx3

int CSCTFanalyzer::ebx3
private

Definition at line 39 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ ech1

int CSCTFanalyzer::ech1
private

Definition at line 35 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ ech2

int CSCTFanalyzer::ech2
private

Definition at line 37 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ ech3

int CSCTFanalyzer::ech3
private

Definition at line 39 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ eeta1

double CSCTFanalyzer::eeta1
private

Definition at line 34 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ eeta2

double CSCTFanalyzer::eeta2
private

Definition at line 36 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ eeta3

double CSCTFanalyzer::eeta3
private

Definition at line 38 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ emode1

int CSCTFanalyzer::emode1
private

Definition at line 41 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ emode2

int CSCTFanalyzer::emode2
private

Definition at line 41 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ emode3

int CSCTFanalyzer::emode3
private

Definition at line 41 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ emulTrackProducer

edm::InputTag CSCTFanalyzer::emulTrackProducer
private

Definition at line 20 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ ephi1

double CSCTFanalyzer::ephi1
private

Definition at line 34 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ ephi2

double CSCTFanalyzer::ephi2
private

Definition at line 36 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ ephi3

double CSCTFanalyzer::ephi3
private

Definition at line 38 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ ept1

int CSCTFanalyzer::ept1
private

Definition at line 35 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ ept2

int CSCTFanalyzer::ept2
private

Definition at line 37 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ ept3

int CSCTFanalyzer::ept3
private

Definition at line 39 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ erank1

int CSCTFanalyzer::erank1
private

Definition at line 40 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ erank2

int CSCTFanalyzer::erank2
private

Definition at line 40 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ erank3

int CSCTFanalyzer::erank3
private

Definition at line 40 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ file

TFile* CSCTFanalyzer::file
private

◆ lctProducer

edm::InputTag CSCTFanalyzer::lctProducer
private

Definition at line 20 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ mbProducer

edm::InputTag CSCTFanalyzer::mbProducer
private

Definition at line 20 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ nDataMuons

int CSCTFanalyzer::nDataMuons
private

Definition at line 24 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ nEmulMuons

int CSCTFanalyzer::nEmulMuons
private

Definition at line 24 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ scalesToken

edm::ESGetToken<L1MuTriggerScales, L1MuTriggerScalesRcd> CSCTFanalyzer::scalesToken
private

Definition at line 21 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ tree

TTree* CSCTFanalyzer::tree
private

◆ ts

const L1MuTriggerScales* CSCTFanalyzer::ts
private

Definition at line 43 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

◆ verbose

int CSCTFanalyzer::verbose
private