CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Attributes
CSCTFanalyzer Class Reference

#include <CSCTFanalyzer.h>

Inheritance diagram for CSCTFanalyzer:
edm::EDAnalyzer 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::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
 
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,
L1MuTriggerScalesRcd
scalesToken
 
TTree * tree
 
const L1MuTriggerScalests
 
int verbose
 

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 wantsInputProcessBlocks ()
 
static bool wantsProcessBlocks ()
 
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)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (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 () noexcept
 
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...
 
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 ( 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, edm::ParameterSet::getUntrackedParameter(), HLT_FULL_cff::InputTag, lctProducer, mbProducer, nDataMuons, nEmulMuons, scalesToken, tree, ts, and verbose.

8  : edm::EDAnalyzer() {
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
edm::InputTag dataTrackProducer
Definition: CSCTFanalyzer.h:20
CSCTFanalyzer::~CSCTFanalyzer ( void  )
inlineoverride

Definition at line 51 of file CSCTFanalyzer.h.

51 {}

Member Function Documentation

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

Implements edm::EDAnalyzer.

Definition at line 75 of file CSCTFanalyzer.cc.

References makePileupJSON::bx, csc::L1Track::BX(), L1MuRegionalCand::charge_packed(), gather_cfg::cout, omtf::DataWord64::csc, 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, 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(), edm::Event::getByLabel(), 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< class >::product(), L1MuRegionalCand::pt_packed(), csc::L1Track::ptLUTAddress(), CSCTriggerContainer< T >::push_back(), csc::L1Track::rank(), mps_fire::result, scalesToken, csc::L1Track::sector(), csc::L1Track::setOutputLink(), relativeConstraints::station, tracks, tree, 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 mode(void) const
Definition: L1Track.h:90
std::vector< T > get() const
unsigned me1ID() const
Definition: L1Track.h:40
unsigned me2ID() const
Definition: L1Track.h:41
virtual float getLowEdge(unsigned packed) const =0
get the low edge of bin represented by packed
unsigned charge_packed() const
return charge packed as in hardware (0=pos, 1=neg)
auto const & tracks
cannot be loose
edm::InputTag mbProducer
Definition: CSCTFanalyzer.h:20
virtual float getCenter(unsigned packed) const =0
get the center of bin represented by packed
void push_back(const T &data)
tuple result
Definition: mps_fire.py:311
edm::InputTag lctProducer
Definition: CSCTFanalyzer.h:20
unsigned mb1ID() const
Definition: L1Track.h:44
const L1MuScale * getPhiScale() const
get the phi scale
unsigned ptLUTAddress() const
Definition: L1Track.h:58
unsigned eta_packed() const
return eta packed as in hardware
unsigned sector() const
Definition: L1Track.h:47
bool isValid() const
Definition: HandleBase.h:70
unsigned rank() const
Definition: L1Track.cc:120
Log< level::Info, false > LogInfo
unsigned localPhi() const
Definition: L1Track.h:37
edm::ESGetToken< L1MuTriggerScales, L1MuTriggerScalesRcd > scalesToken
Definition: CSCTFanalyzer.h:21
unsigned outputLink() const
Definition: L1Track.h:63
T const * product() const
Definition: Handle.h:70
std::pair< const_iterator, const_iterator > Range
T const * product() const
Definition: ESHandle.h:86
std::vector< DigiType >::const_iterator const_iterator
std::string const & label() const
Definition: InputTag.h:36
const L1MuScale * getRegionalEtaScale(int isys) const
get the regioanl muon trigger eta scale, isys = 0(DT), 1(bRPC), 2(CSC), 3(fwdRPC) ...
const L1MuTriggerScales * ts
Definition: CSCTFanalyzer.h:43
unsigned endcap() const
Definition: L1Track.h:46
edm::InputTag emulTrackProducer
Definition: CSCTFanalyzer.h:20
unsigned me4ID() const
Definition: L1Track.h:43
tuple cout
Definition: gather_cfg.py:144
unsigned pt_packed() const
return pt packed as in hardware
std::string const & instance() const
Definition: InputTag.h:37
edm::InputTag dataTrackProducer
Definition: CSCTFanalyzer.h:20
int BX() const
Definition: L1Track.h:53
unsigned me3ID() const
Definition: L1Track.h:42
unsigned phi_packed() const
return phi packed as in hardware
void CSCTFanalyzer::beginJob ( void  )
inlineoverridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 48 of file CSCTFanalyzer.h.

48 {}
void CSCTFanalyzer::endJob ( void  )
overridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 69 of file CSCTFanalyzer.cc.

References file, and tree.

69  {
70  tree->Write();
71  file->Write();
72  file->Close();
73 }

Member Data Documentation

edm::InputTag CSCTFanalyzer::dataTrackProducer
private

Definition at line 20 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dbx1
private

Definition at line 26 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dbx2
private

Definition at line 28 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dbx3
private

Definition at line 30 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dch1
private

Definition at line 26 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dch2
private

Definition at line 28 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dch3
private

Definition at line 30 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

double CSCTFanalyzer::deta1
private

Definition at line 25 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

double CSCTFanalyzer::deta2
private

Definition at line 27 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

double CSCTFanalyzer::deta3
private

Definition at line 29 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dlcts1
private

Definition at line 33 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dlcts2
private

Definition at line 33 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dlcts3
private

Definition at line 33 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dmode1
private

Definition at line 32 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dmode2
private

Definition at line 32 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dmode3
private

Definition at line 32 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

double CSCTFanalyzer::dphi1
private

Definition at line 25 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

double CSCTFanalyzer::dphi2
private

Definition at line 27 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

double CSCTFanalyzer::dphi3
private

Definition at line 29 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dpt1
private

Definition at line 26 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dpt2
private

Definition at line 28 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::dpt3
private

Definition at line 30 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::drank1
private

Definition at line 31 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::drank2
private

Definition at line 31 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::drank3
private

Definition at line 31 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::ebx1
private

Definition at line 35 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::ebx2
private

Definition at line 37 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::ebx3
private

Definition at line 39 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::ech1
private

Definition at line 35 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::ech2
private

Definition at line 37 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::ech3
private

Definition at line 39 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

double CSCTFanalyzer::eeta1
private

Definition at line 34 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

double CSCTFanalyzer::eeta2
private

Definition at line 36 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

double CSCTFanalyzer::eeta3
private

Definition at line 38 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::emode1
private

Definition at line 41 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::emode2
private

Definition at line 41 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::emode3
private

Definition at line 41 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

edm::InputTag CSCTFanalyzer::emulTrackProducer
private

Definition at line 20 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

double CSCTFanalyzer::ephi1
private

Definition at line 34 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

double CSCTFanalyzer::ephi2
private

Definition at line 36 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

double CSCTFanalyzer::ephi3
private

Definition at line 38 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::ept1
private

Definition at line 35 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::ept2
private

Definition at line 37 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::ept3
private

Definition at line 39 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::erank1
private

Definition at line 40 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::erank2
private

Definition at line 40 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::erank3
private

Definition at line 40 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

TFile* CSCTFanalyzer::file
private

Definition at line 23 of file CSCTFanalyzer.h.

Referenced by CSCTFanalyzer(), and endJob().

edm::InputTag CSCTFanalyzer::lctProducer
private

Definition at line 20 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

edm::InputTag CSCTFanalyzer::mbProducer
private

Definition at line 20 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::nDataMuons
private

Definition at line 24 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::nEmulMuons
private

Definition at line 24 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

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

Definition at line 21 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

TTree* CSCTFanalyzer::tree
private
const L1MuTriggerScales* CSCTFanalyzer::ts
private

Definition at line 43 of file CSCTFanalyzer.h.

Referenced by analyze(), and CSCTFanalyzer().

int CSCTFanalyzer::verbose
private