L1Trigger
TrackFindingTracklet
src
CandidateMatchMemory.cc
Go to the documentation of this file.
1
#include "
L1Trigger/TrackFindingTracklet/interface/CandidateMatchMemory.h
"
2
#include "
L1Trigger/TrackFindingTracklet/interface/Settings.h
"
3
#include "
L1Trigger/TrackFindingTracklet/interface/Tracklet.h
"
4
#include "
L1Trigger/TrackFindingTracklet/interface/Stub.h
"
5
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
6
#include "
FWCore/Utilities/interface/Exception.h
"
7
8
#include <iomanip>
9
#include <filesystem>
10
11
using namespace
std
;
12
using namespace
trklet
;
13
14
CandidateMatchMemory::CandidateMatchMemory(
string
name
,
Settings
const
& settings,
unsigned
int
iSector)
15
:
MemoryBase
(
name
, settings, iSector) {}
16
17
void
CandidateMatchMemory::addMatch
(std::pair<Tracklet*, int> tracklet,
const
Stub
* stub) {
18
std::pair<std::pair<Tracklet*, int>,
const
Stub
*>
tmp
(tracklet, stub);
19
20
//Check for consistency
21
for
(
auto
&
match
:
matches_
) {
22
if
(tracklet.first->TCID() <
match
.first.first->TCID()) {
23
throw
cms::Exception
(
"LogicError"
) << __FILE__ <<
" "
<< __LINE__ <<
" In "
<<
getName
() <<
" adding tracklet "
24
<< tracklet.first <<
" with lower TCID : "
<< tracklet.first->TCID()
25
<<
" than earlier TCID "
<<
match
.first.first->TCID();
26
}
27
}
28
matches_
.push_back(
tmp
);
29
}
30
31
void
CandidateMatchMemory::writeCM
(
bool
first
) {
32
const
string
dirM =
settings_
.
memPath
() +
"Matches/"
;
33
34
std::ostringstream oss;
35
oss << dirM <<
"CandidateMatches_"
<<
getName
() <<
"_"
<< std::setfill(
'0'
) << std::setw(2) << (
iSector_
+ 1)
36
<<
".dat"
;
37
auto
const
&
fname
= oss.str();
38
39
if
(
first
) {
40
bx_
= 0;
41
event_
= 1;
42
43
if
(not std::filesystem::exists(dirM)) {
44
int
fail = system((
string
(
"mkdir -p "
) + dirM).c_str());
45
if
(fail)
46
throw
cms::Exception
(
"BadDir"
) << __FILE__ <<
" "
<< __LINE__ <<
" could not create directory "
<< dirM;
47
}
48
out_
.open(
fname
);
49
if
(
out_
.fail())
50
throw
cms::Exception
(
"BadFile"
) << __FILE__ <<
" "
<< __LINE__ <<
" could not create file "
<<
fname
;
51
52
}
else
53
out_
.open(
fname
, std::ofstream::app);
54
55
out_
<<
"BX = "
<< (bitset<3>)
bx_
<<
" Event : "
<<
event_
<< endl;
56
57
for
(
unsigned
int
j
= 0;
j
<
matches_
.size();
j
++) {
58
string
stubid =
matches_
[
j
].second->stubindex().str();
// stub ID
59
int
projindex =
matches_
[
j
].first.second;
// Allproj index
60
FPGAWord
tmp
;
61
if
(projindex >= (1 << 7)) {
62
projindex = (1 << 7) - 1;
63
}
64
tmp
.set(projindex, 7,
true
, __LINE__, __FILE__);
65
out_
<<
"0x"
;
66
out_
<< std::setfill(
'0'
) << std::setw(2);
67
out_
<< hex <<
j
<<
dec
;
68
out_
<<
" "
<<
tmp
.str() <<
"|"
<< stubid <<
" "
<<
trklet::hexFormat
(
tmp
.str() + stubid) << endl;
69
}
70
out_
.close();
71
72
bx_
++;
73
event_
++;
74
if
(
bx_
> 7)
75
bx_
= 0;
76
}
Settings.h
trklet::MemoryBase::settings_
Settings const & settings_
Definition:
MemoryBase.h:50
MessageLogger.h
CandidateMatchMemory.h
trklet::Settings
Definition:
Settings.h:31
trklet::CandidateMatchMemory::addMatch
void addMatch(std::pair< Tracklet *, int > tracklet, const Stub *stub)
Definition:
CandidateMatchMemory.cc:17
trklet::Settings::memPath
std::string const & memPath() const
Definition:
Settings.h:169
trklet::MemoryBase::event_
int event_
Definition:
MemoryBase.h:48
trklet::MemoryBase::out_
std::ofstream out_
Definition:
MemoryBase.h:46
createJobs.tmp
tmp
align.sh
Definition:
createJobs.py:716
trklet::MemoryBase::bx_
int bx_
Definition:
MemoryBase.h:47
trklet::MemoryBase::getName
std::string const & getName() const
Definition:
MemoryBase.h:19
trklet::Stub
Definition:
Stub.h:16
first
auto first
Definition:
CAHitNtupletGeneratorKernelsImpl.h:112
trklet::FPGAWord
Definition:
FPGAWord.h:9
trklet::MemoryBase
Definition:
MemoryBase.h:13
match
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition:
Utils.h:10
trklet
Definition:
AllProjectionsMemory.h:9
alignmentValidation.fname
string fname
main script
Definition:
alignmentValidation.py:959
std
Definition:
JetResolutionObject.h:76
Exception
Definition:
hltDiff.cc:245
Skims_PA_cff.name
name
Definition:
Skims_PA_cff.py:17
trklet::CandidateMatchMemory::writeCM
void writeCM(bool first)
Definition:
CandidateMatchMemory.cc:31
Exception.h
trklet::hexFormat
std::string hexFormat(const std::string &binary)
Definition:
Util.h:15
cms::Exception
Definition:
Exception.h:70
dqmiolumiharvest.j
j
Definition:
dqmiolumiharvest.py:66
Stub.h
TauDecayModes.dec
dec
Definition:
TauDecayModes.py:143
trklet::CandidateMatchMemory::matches_
std::vector< std::pair< std::pair< Tracklet *, int >, const Stub * > > matches_
Definition:
CandidateMatchMemory.h:34
Tracklet.h
trklet::MemoryBase::iSector_
unsigned int iSector_
Definition:
MemoryBase.h:44
Generated for CMSSW Reference Manual by
1.8.16