15 file =
new TFile(
"qwe.root",
"RECREATE");
16 tree =
new TTree(
"dy",
"QWE");
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");
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");
92 int station = (*csc).first.station() - 1;
93 int cscId = (*csc).first.triggerCscId() - 1;
94 int sector = (*csc).first.triggerSector() - 1 + ((*csc).first.endcap() == 1 ? 0 : 6);
96 int tbin = lct->getBX();
99 std::cout <<
"LCT in station=" << (station + 1) <<
" sector=" << (sector + 1) <<
" cscId=" << (cscId + 1)
100 <<
" bx=" << tbin << std::endl;
109 std::vector<csctf::TrackStub> vstubs = dtStubs->get();
110 for (std::vector<csctf::TrackStub>::const_iterator stub = vstubs.begin(); stub != vstubs.end(); stub++) {
113 std::cout <<
" DT data: tbin=" << stub->BX() <<
" (CSC) sector=" << stub->sector()
114 <<
" (CSC) subsector=" << stub->subsector() <<
" station=" << stub->station()
115 <<
" endcap=" << stub->endcap() <<
" phi=" << stub->phiPacked() <<
" phiBend=" << stub->getBend()
116 <<
" quality=" << stub->getQuality() <<
" id=" << stub->getMPCLink() <<
" mb_bxn=" << stub->cscid()
121 edm::LogInfo(
"CSCTFAnalyzer") <<
" No valid CSCTriggerContainer<csctf::TrackStub> products found";
170 std::vector<csc::L1Track>
result;
172 for (L1CSCTrackCollection::const_iterator tmp_trk = tracks->begin(); tmp_trk != tracks->end(); tmp_trk++) {
184 for (
int bx = -3;
bx <= 3; ++
bx) {
185 std::vector<csc::L1Track> tks = stripped_tracks.
get(
bx);
186 std::sort(tks.begin(), tks.end(), std::greater<csc::L1Track>());
189 for (std::vector<csc::L1Track>::iterator itr = tks.begin(); itr != tks.end(); itr++) {
191 itr->localPhi() + ((itr->sector() - 1) * 24) + 6;
194 itr->setPhiPacked(gbl_phi & 0xff);
195 unsigned eta_sign = (itr->endcap() == 1 ? 0 : 1);
197 itr->setEtaPacked(gbl_eta & 0x3f);
198 itr->setQualityPacked((itr->rank() >> 4) & 0x3);
199 itr->setPtPacked(itr->rank() & 0x1f);
201 result.push_back(*itr);
205 for (L1CSCTrackCollection::const_iterator _trk = tracks->begin(); _trk != tracks->end(); _trk++) {
244 <<
" me1D=" << trk->
me1ID() <<
" me2D=" << trk->
me2ID() <<
" me3D=" << trk->
me3ID()
245 <<
" me4D=" << trk->
me4ID() <<
" mb1D=" << trk->
mb1ID() <<
" pTaddr=" << std::hex
254 for (L1CSCTrackCollection::const_iterator trk = tracks.
product()->begin(); trk != tracks.
product()->end(); trk++) {
257 ephi1 = trk->first.localPhi();
258 eeta1 = trk->first.eta_packed();
259 ept1 = trk->first.pt_packed();
260 ech1 = trk->first.charge_packed();
261 ebx1 = trk->first.BX();
264 ephi2 = trk->first.localPhi();
265 eeta2 = trk->first.eta_packed();
266 ept2 = trk->first.pt_packed();
267 ech2 = trk->first.charge_packed();
268 ebx2 = trk->first.BX();
271 ephi3 = trk->first.localPhi();
272 eeta3 = trk->first.eta_packed();
273 ept3 = trk->first.pt_packed();
274 ech3 = trk->first.charge_packed();
275 ebx3 = trk->first.BX();
281 std::cout <<
"Emulator: TRK in endcap=" << trk->first.endcap() <<
" sector=" << trk->first.sector()
282 <<
" bx=" << trk->first.BX() <<
" (rank=" << trk->first.rank()
283 <<
" localPhi=" << trk->first.localPhi() <<
" etaPacked=" << trk->first.eta_packed()
284 <<
" me1D=" << trk->first.me1ID() <<
" me2D=" << trk->first.me2ID() <<
" me3D=" << trk->first.me3ID()
285 <<
" me4D=" << trk->first.me4ID() <<
" mb1D=" << trk->first.mb1ID() <<
" pTaddr=" << std::hex
286 << trk->first.ptLUTAddress() <<
std::dec <<
")" << std::endl;
unsigned mode(void) const
T getUntrackedParameter(std::string const &, T const &) const
std::vector< T > get() const
void analyze(edm::Event const &e, edm::EventSetup const &iSetup) override
unsigned charge_packed() const
return charge packed as in hardware (0=pos, 1=neg)
virtual float getCenter(unsigned packed) const =0
get the center of bin represented by packed
void push_back(const T &data)
void endJob(void) override
edm::InputTag lctProducer
const L1MuScale * getPhiScale() const
get the phi scale
unsigned ptLUTAddress() const
unsigned eta_packed() const
return eta packed as in hardware
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
unsigned localPhi() const
unsigned outputLink() const
T const * product() const
std::pair< const_iterator, const_iterator > Range
void setOutputLink(unsigned oPL)
std::vector< DigiType >::const_iterator const_iterator
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
virtual float getLowEdge(unsigned packed) const =0
get the low edge of bin represented by packed
CSCTFanalyzer(edm::ParameterSet const &pset)
edm::InputTag emulTrackProducer
unsigned pt_packed() const
return pt packed as in hardware
T const * product() const
edm::InputTag dataTrackProducer
unsigned phi_packed() const
return phi packed as in hardware