CMS 3D CMS Logo

L1AnalysisL1UpgradeTfMuon.cc
Go to the documentation of this file.
2 #include <cmath>
4 
6 
8  unsigned maxL1UpgradeTfMuon) {
9  for (int ibx = muon.getFirstBX(); ibx <= muon.getLastBX(); ++ibx) {
11  it != muon.end(ibx) && l1upgradetfmuon_.nTfMuons < maxL1UpgradeTfMuon;
12  ++it) {
13  if (it->hwPt() > 0) {
14  l1upgradetfmuon_.tfMuonHwPt.push_back(it->hwPt());
15  l1upgradetfmuon_.tfMuonHwEta.push_back(it->hwEta());
16  l1upgradetfmuon_.tfMuonHwPhi.push_back(it->hwPhi());
17  l1upgradetfmuon_.tfMuonGlobalPhi.push_back(
18  l1t::MicroGMTConfiguration::calcGlobalPhi(it->hwPhi(), it->trackFinderType(), it->processor()));
19  l1upgradetfmuon_.tfMuonHwSign.push_back(it->hwSign());
20  l1upgradetfmuon_.tfMuonHwSignValid.push_back(it->hwSignValid());
21  l1upgradetfmuon_.tfMuonHwQual.push_back(it->hwQual());
22  l1upgradetfmuon_.tfMuonLink.push_back(it->link());
23  l1upgradetfmuon_.tfMuonProcessor.push_back(it->processor());
24  l1upgradetfmuon_.tfMuonTrackFinderType.push_back(it->trackFinderType());
25  l1upgradetfmuon_.tfMuonHwHF.push_back(it->hwHF());
26  l1upgradetfmuon_.tfMuonBx.push_back(ibx);
27  std::map<std::string, int> decoded_track_address;
28  if (it->trackFinderType() == l1t::tftype::bmtf) {
29  int detSide = it->trackSubAddress(l1t::RegionalMuonCand::kWheelSide);
30  int wheelNum = it->trackSubAddress(l1t::RegionalMuonCand::kWheelNum);
31  int stat1 = it->trackSubAddress(l1t::RegionalMuonCand::kStat1);
32  int stat2 = it->trackSubAddress(l1t::RegionalMuonCand::kStat2);
33  int stat3 = it->trackSubAddress(l1t::RegionalMuonCand::kStat3);
34  int stat4 = it->trackSubAddress(l1t::RegionalMuonCand::kStat4);
35 
36  int wheel = pow(-1, detSide) * wheelNum;
37  l1upgradetfmuon_.tfMuonWh.push_back(wheel);
38  l1upgradetfmuon_.tfMuonTrAdd.push_back(stat1);
39  l1upgradetfmuon_.tfMuonTrAdd.push_back(stat2);
40  l1upgradetfmuon_.tfMuonTrAdd.push_back(stat3);
41  l1upgradetfmuon_.tfMuonTrAdd.push_back(stat4);
42  decoded_track_address["wheel"] = wheel;
43  decoded_track_address["station1"] = stat1;
44  decoded_track_address["station2"] = stat2;
45  decoded_track_address["station3"] = stat3;
46  decoded_track_address["station4"] = stat4;
47  } else if (it->trackFinderType() == l1t::omtf_neg || it->trackFinderType() == l1t::omtf_pos) {
48  decoded_track_address["kLayers"] = it->trackSubAddress(l1t::RegionalMuonCand::kLayers);
49  decoded_track_address["kWeight"] = it->trackSubAddress(l1t::RegionalMuonCand::kWeight);
50  } else if (it->trackFinderType() == l1t::emtf_neg || it->trackFinderType() == l1t::emtf_pos) {
51  decoded_track_address["kME1Seg"] = it->trackSubAddress(l1t::RegionalMuonCand::kME1Seg);
52  decoded_track_address["kME1Ch"] = it->trackSubAddress(l1t::RegionalMuonCand::kME1Ch);
53  decoded_track_address["kME2Seg"] = it->trackSubAddress(l1t::RegionalMuonCand::kME2Seg);
54  decoded_track_address["kME2Ch"] = it->trackSubAddress(l1t::RegionalMuonCand::kME2Ch);
55  decoded_track_address["kME3Seg"] = it->trackSubAddress(l1t::RegionalMuonCand::kME3Seg);
56  decoded_track_address["kME3Ch"] = it->trackSubAddress(l1t::RegionalMuonCand::kME3Ch);
57  decoded_track_address["kME4Seg"] = it->trackSubAddress(l1t::RegionalMuonCand::kME4Seg);
58  decoded_track_address["kME4Ch"] = it->trackSubAddress(l1t::RegionalMuonCand::kME4Ch);
59  decoded_track_address["kTrkNum"] = it->trackSubAddress(l1t::RegionalMuonCand::kTrkNum);
60  decoded_track_address["kBX"] = it->trackSubAddress(l1t::RegionalMuonCand::kBX);
61  }
62  l1upgradetfmuon_.tfMuonDecodedTrAdd.push_back(decoded_track_address);
63  l1upgradetfmuon_.tfMuonHwTrAdd.push_back(l1t::RegionalMuonRawDigiTranslator::generateRawTrkAddress(
64  *it, true)); // TODO: We're assuming that we're dealing with Kalman muons here.
65  l1upgradetfmuon_.nTfMuons++;
66  }
67  }
68  }
69 }
l1t::RegionalMuonCand::kME1Ch
Definition: RegionalMuonCand.h:32
l1t::RegionalMuonCand::kStat2
Definition: RegionalMuonCand.h:16
l1t::RegionalMuonCand::kLayers
Definition: RegionalMuonCand.h:27
l1t::RegionalMuonCand::kME3Seg
Definition: RegionalMuonCand.h:35
l1t::bmtf
Definition: RegionalMuonCandFwd.h:8
l1t::emtf_neg
Definition: RegionalMuonCandFwd.h:8
l1t::RegionalMuonCand::kWheelNum
Definition: RegionalMuonCand.h:14
L1Analysis::L1AnalysisL1UpgradeTfMuon::SetTfMuon
void SetTfMuon(const l1t::RegionalMuonCandBxCollection &muon, unsigned maxL1UpgradeTfMuon)
Definition: L1AnalysisL1UpgradeTfMuon.cc:7
muon
Definition: MuonCocktails.h:17
l1t::omtf_pos
Definition: RegionalMuonCandFwd.h:8
l1t::RegionalMuonCand::kME2Ch
Definition: RegionalMuonCand.h:34
L1Analysis::L1AnalysisL1UpgradeTfMuon::L1AnalysisL1UpgradeTfMuon
L1AnalysisL1UpgradeTfMuon()
Definition: L1AnalysisL1UpgradeTfMuon.cc:3
l1t::RegionalMuonCand::kBX
Definition: RegionalMuonCand.h:40
BXVector< RegionalMuonCand >::const_iterator
std::vector< RegionalMuonCand >::const_iterator const_iterator
Definition: BXVector.h:18
l1t::RegionalMuonCand::kME1Seg
Definition: RegionalMuonCand.h:31
l1t::RegionalMuonCand::kStat4
Definition: RegionalMuonCand.h:18
l1t::RegionalMuonCand::kStat3
Definition: RegionalMuonCand.h:17
L1Analysis::L1AnalysisL1UpgradeTfMuon::~L1AnalysisL1UpgradeTfMuon
~L1AnalysisL1UpgradeTfMuon()
Definition: L1AnalysisL1UpgradeTfMuon.cc:5
l1t::MicroGMTConfiguration::calcGlobalPhi
static int calcGlobalPhi(int locPhi, tftype t, int proc)
Definition: MicroGMTConfiguration.cc:11
BXVector< RegionalMuonCand >
l1t::RegionalMuonCand::kStat1
Definition: RegionalMuonCand.h:15
l1t::RegionalMuonRawDigiTranslator::generateRawTrkAddress
static int generateRawTrkAddress(const RegionalMuonCand &, bool isKalman)
Definition: RegionalMuonRawDigiTranslator.cc:135
l1UpgradeTfMuonTree_cfi.maxL1UpgradeTfMuon
maxL1UpgradeTfMuon
Definition: l1UpgradeTfMuonTree_cfi.py:10
makeMuonMisalignmentScenario.wheel
wheel
Definition: makeMuonMisalignmentScenario.py:319
l1t::RegionalMuonCand::kWheelSide
Definition: RegionalMuonCand.h:13
l1t::RegionalMuonCand::kME4Seg
Definition: RegionalMuonCand.h:37
l1t::RegionalMuonCand::kWeight
Definition: RegionalMuonCand.h:27
l1t::RegionalMuonCand::kTrkNum
Definition: RegionalMuonCand.h:39
l1t::emtf_pos
Definition: RegionalMuonCandFwd.h:8
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
l1t::RegionalMuonCand::kME2Seg
Definition: RegionalMuonCand.h:33
l1t::RegionalMuonCand::kME3Ch
Definition: RegionalMuonCand.h:36
L1AnalysisL1UpgradeTfMuon.h
l1t::omtf_neg
Definition: RegionalMuonCandFwd.h:8
l1t::RegionalMuonCand::kME4Ch
Definition: RegionalMuonCand.h:38