OnlineDB
SiStripO2O
plugins
SiStripPopConHandlerUnitTest.h
Go to the documentation of this file.
1
#ifndef SISTRIPPOPCON_UNITTEST_HANDLER_H
2
#define SISTRIPPOPCON_UNITTEST_HANDLER_H
3
4
#include "
FWCore/ParameterSet/interface/ParameterSetfwd.h
"
5
#include "
FWCore/ServiceRegistry/interface/Service.h
"
6
#include "
FWCore/MessageLogger/interface/MessageLogger.h
"
7
#include "
FWCore/ParameterSet/interface/ParameterSetfwd.h
"
8
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
9
10
#include "
CondCore/PopCon/interface/PopConSourceHandler.h
"
11
#include "
CondCore/CondDB/interface/Types.h
"
12
13
#include "
OnlineDB/SiStripESSources/interface/SiStripCondObjBuilderFromDb.h
"
14
#include "
OnlineDB/SiStripConfigDb/interface/SiStripDbParams.h
"
15
#include "
OnlineDB/SiStripConfigDb/interface/SiStripPartition.h
"
16
17
#include <sstream>
18
#include <vector>
19
#include <string>
20
#include <iostream>
21
#include <typeinfo>
22
#include <time.h>
23
24
#include "CLHEP/Random/RandFlat.h"
25
#include "CLHEP/Random/RandGauss.h"
26
27
#include "
CondFormats/SiStripObjects/interface/SiStripNoises.h
"
28
#include "
CalibTracker/SiStripCommon/interface/SiStripDetInfoFileReader.h
"
29
30
namespace
popcon
{
31
32
template
<
typename
T>
33
class
SiStripPopConHandlerUnitTest
:
public
popcon::PopConSourceHandler
<T> {
34
public
:
35
enum
DataType
{
UNDEFINED
= 0,
_Cabling
= 1,
_Pedestal
= 2,
_Noise
= 3,
_Threshold
= 4,
_BadStrip
= 5 };
36
37
//---------------------------------------
38
//
39
SiStripPopConHandlerUnitTest
(
const
edm::ParameterSet
&
pset
)
40
:
m_name
(
pset
.getUntrackedParameter<
std
::
string
>(
"name"
,
"SiStripPopPopConConfigDbObjHandler"
)),
41
m_since
(
pset
.getUntrackedParameter<uint32_t>(
"since"
, 5)),
42
m_debugMode
(
pset
.getUntrackedParameter<
bool
>(
"debug"
,
false
)){};
43
44
//---------------------------------------
45
//
46
~SiStripPopConHandlerUnitTest
(){};
47
48
//---------------------------------------
49
//
50
void
getNewObjects
() {
51
edm::LogInfo
(
"SiStripPopPopConConfigDbObjHandler"
) <<
"[getNewObjects] for PopCon application "
<<
m_name
;
52
53
if
(
m_debugMode
) {
54
std::stringstream
ss
;
55
ss
<<
"\n\n------- "
<<
m_name
<<
" - > getNewObjects\n"
;
56
if
(this->
tagInfo
().
size
) {
57
//check whats already inside of database
58
ss <<
"got offlineInfo"
<< this->
tagInfo
().
name
<<
", size "
<< this->
tagInfo
().
size
59
<<
" , last object valid since "
<< this->
tagInfo
().
lastInterval
.
since
<<
" token "
60
<< this->
tagInfo
().
lastInterval
.
payloadId
<<
"\n\n UserText "
<< this->
userTextLog
() <<
"\n LogDBEntry \n"
61
<< this->
logDBEntry
().
logId
<<
"\n"
62
<< this->
logDBEntry
().
destinationDB
<<
"\n"
63
<< this->
logDBEntry
().
provenance
<<
"\n"
64
<< this->
logDBEntry
().
usertext
<<
"\n"
65
<< this->
logDBEntry
().
iovtag
<<
"\n"
66
<< this->
logDBEntry
().
iovtimetype
<<
"\n"
67
<< this->
logDBEntry
().
payloadIdx
<<
"\n"
68
<< this->
logDBEntry
().payloadName <<
"\n"
69
<< this->
logDBEntry
().
payloadToken
<<
"\n"
70
<< this->
logDBEntry
().payloadContainer <<
"\n"
71
<< this->
logDBEntry
().
exectime
<<
"\n"
72
<< this->
logDBEntry
().
execmessage
<<
"\n"
73
<<
"\n\n-- user text "
74
<< this->
logDBEntry
().
usertext
.substr(this->
logDBEntry
().usertext.find_last_of(
"@"
));
75
}
else
{
76
ss
<<
" First object for this tag "
;
77
}
78
edm::LogInfo
(
"SiStripPopPopConConfigDbObjHandler"
) <<
ss
.str();
79
}
80
if
(
isTransferNeeded
())
81
setForTransfer
();
82
83
edm::LogInfo
(
"SiStripPopPopConConfigDbObjHandler"
)
84
<<
"[getNewObjects] for PopCon application "
<<
m_name
<<
" Done\n--------------\n"
;
85
}
86
87
//---------------------------------------
88
//
89
std::string
id
()
const
{
return
m_name
; }
90
91
private
:
92
//methods
93
94
DataType
getDataType
() {
95
if
(
typeid
(
T
) ==
typeid
(
SiStripFedCabling
)) {
96
edm::LogInfo
(
"SiStripPopPopConConfigDbObjHandler"
)
97
<<
"[getDataType] for PopCon application "
<<
m_name
<<
" "
<<
typeid
(
T
).
name
();
98
return
_Cabling
;
99
}
100
return
UNDEFINED
;
101
}
102
103
//---------------------------------------
104
//
105
bool
isTransferNeeded
() {
106
edm::LogInfo
(
"SiStripPopPopConConfigDbObjHandler"
) <<
"[isTransferNeeded] checking for transfer"
<< std::endl;
107
std::stringstream ss_logdb,
ss
;
108
std::stringstream ss1;
109
110
//get log information from previous upload
111
if
(this->
tagInfo
().
size
)
112
ss_logdb << this->
logDBEntry
().
usertext
.substr(this->
logDBEntry
().usertext.find_last_of(
"@"
));
113
else
114
ss_logdb <<
""
;
115
116
ss
<<
"@ "
<< clock();
117
118
if
(!strcmp(
ss
.str().c_str(), ss_logdb.str().c_str())) {
119
//string are equal, no need to do transfer
120
edm::LogInfo
(
"SiStripPopPopConConfigDbObjHandler"
)
121
<<
"[isTransferNeeded] the selected conditions are already uploaded in the last iov ("
122
<< this->
tagInfo
().
lastInterval
.
since
<<
") open for the object "
<< this->
logDBEntry
().payloadName
123
<<
" in the db "
<< this->
logDBEntry
().
destinationDB
<<
" parameters: "
<< ss.str()
124
<<
"\n NO TRANSFER NEEDED"
;
125
return
false
;
126
}
127
this->
m_userTextLog
= ss.str();
128
edm::LogInfo
(
"SiStripPopPopConConfigDbObjHandler"
)
129
<<
"[isTransferNeeded] the selected conditions will be uploaded: "
<<
ss
.str() <<
"\n A- "
<<
ss
.str()
130
<<
"\n B- "
<< ss_logdb.str() <<
"\n Fine"
;
131
132
return
true
;
133
}
134
135
//---------------------------------------
136
//
137
void
setForTransfer
() {
138
edm::LogInfo
(
"SiStripPopPopConConfigDbObjHandler"
)
139
<<
"[setForTransfer] "
<<
m_name
<<
" getting data to be transferred "
<< std::endl;
140
141
T
*
obj
= 0;
142
143
fillObject
(
obj
);
144
145
if
(!this->
tagInfo
().
size
)
146
m_since
= 1;
147
else
if
(
m_debugMode
)
148
m_since
= this->
tagInfo
().
lastInterval
.
since
+ 1;
149
150
if
(obj != 0) {
151
edm::LogInfo
(
"SiStripPopPopConConfigDbObjHandler"
) <<
"setting since = "
<<
m_since
<< std::endl;
152
this->
m_to_transfer
.push_back(std::make_pair(
obj
,
m_since
));
153
}
else
{
154
edm::LogError
(
"SiStripPopPopConConfigDbObjHandler"
)
155
<<
"[setForTransfer] "
<<
m_name
<<
" : NULL pointer of obj "
<<
typeid
(
T
).
name
()
156
<<
" reported by SiStripCondObjBuilderFromDb\n Transfer aborted"
<< std::endl;
157
}
158
}
159
160
private
:
161
// data members
162
std::string
m_name
;
163
unsigned
long
long
m_since
;
164
bool
m_debugMode
;
165
edm::Service<SiStripCondObjBuilderFromDb>
condObjBuilder
;
166
167
void
fillObject
(
T
*&
obj
) {
168
if
(
typeid
(
T
) ==
typeid
(
SiStripNoises
)) {
169
obj
=
new
SiStripNoises
();
170
171
const
auto
detInfo =
172
SiStripDetInfoFileReader::read
(
edm::FileInPath
{
SiStripDetInfoFileReader::kDefaultFile
}.fullPath());
173
int
count
= -1;
174
for
(
const
auto
& it : detInfo.getAllData()) {
175
count
++;
176
//Generate Noise for det detid
177
SiStripNoises::InputVector
theSiStripVector;
178
for
(
int
strip
= 0;
strip
< 128 * it.second.nApvs; ++
strip
) {
179
float
MeanNoise = 5;
180
float
RmsNoise = 1;
181
182
float
noise
= CLHEP::RandGauss::shoot(MeanNoise, RmsNoise);
183
184
//double badStripProb = .5;
185
//bool disable = (CLHEP::RandFlat::shoot(1.) < badStripProb ? true:false);
186
187
obj
->setData(
noise
, theSiStripVector);
188
if
(
count
< 6)
189
edm::LogInfo
(
"SiStripNoisesBuilder"
) <<
"detid "
<< it.first <<
" \t"
190
<<
" strip "
<<
strip
<<
" \t"
<<
noise
<<
" \t"
191
<< theSiStripVector.back() / 10 <<
" \t"
<< std::endl;
192
}
193
194
if
(!
obj
->put(it.first, theSiStripVector))
195
edm::LogError
(
"SiStripNoisesBuilder"
)
196
<<
"[SiStripNoisesBuilder::analyze] detid already exists"
<< std::endl;
197
}
198
}
199
}
200
};
201
202
}
// namespace popcon
203
204
#endif //SISTRIPPOPCON_UNITTEST_HANDLER_H
popcon::SiStripPopConHandlerUnitTest::SiStripPopConHandlerUnitTest
SiStripPopConHandlerUnitTest(const edm::ParameterSet &pset)
Definition:
SiStripPopConHandlerUnitTest.h:39
popcon::SiStripPopConHandlerUnitTest::fillObject
void fillObject(T *&obj)
Definition:
SiStripPopConHandlerUnitTest.h:167
PopConSourceHandler.h
SiStripPartition.h
electrons_cff.bool
bool
Definition:
electrons_cff.py:366
popcon::SiStripPopConHandlerUnitTest::isTransferNeeded
bool isTransferNeeded()
Definition:
SiStripPopConHandlerUnitTest.h:105
popcon::PopConSourceHandler::m_to_transfer
OldContainer m_to_transfer
Definition:
PopConSourceHandler.h:162
MessageLogger.h
funct::false
false
Definition:
Factorize.h:29
SiStripNoises
Definition:
SiStripNoises.h:25
popcon::SiStripPopConHandlerUnitTest::setForTransfer
void setForTransfer()
Definition:
SiStripPopConHandlerUnitTest.h:137
popcon::SiStripPopConHandlerUnitTest::m_debugMode
bool m_debugMode
Definition:
SiStripPopConHandlerUnitTest.h:164
digitizers_cfi.strip
strip
Definition:
digitizers_cfi.py:19
SiStripCondObjBuilderFromDb.h
popcon::SiStripPopConHandlerUnitTest::~SiStripPopConHandlerUnitTest
~SiStripPopConHandlerUnitTest()
Definition:
SiStripPopConHandlerUnitTest.h:46
SiStripNoises.h
edm::LogInfo
Log< level::Info, false > LogInfo
Definition:
MessageLogger.h:125
SiStripDbParams.h
SiStripFedCabling
Contains cabling info at the device level, including DetId, APV pair numbers, hardware addresses,...
Definition:
SiStripFedCabling.h:25
popcon::SiStripPopConHandlerUnitTest::_Cabling
Definition:
SiStripPopConHandlerUnitTest.h:35
cond::LogDBEntry_t::execmessage
std::string execmessage
Definition:
Types.h:98
SiStripDetInfoFileReader::read
SiStripDetInfo read(std::string filePath)
Definition:
SiStripDetInfoFileReader.cc:11
cond::TagInfo_t::name
std::string name
Definition:
Types.h:72
contentValuesCheck.ss
ss
Definition:
contentValuesCheck.py:33
edm::FileInPath
Definition:
FileInPath.h:61
popcon::SiStripPopConHandlerUnitTest::m_since
unsigned long long m_since
Definition:
SiStripPopConHandlerUnitTest.h:163
popcon::SiStripPopConHandlerUnitTest::m_name
std::string m_name
Definition:
SiStripPopConHandlerUnitTest.h:162
Service.h
cond::LogDBEntry_t::provenance
std::string provenance
Definition:
Types.h:89
popcon::SiStripPopConHandlerUnitTest::_Threshold
Definition:
SiStripPopConHandlerUnitTest.h:35
submitPVResolutionJobs.count
count
Definition:
submitPVResolutionJobs.py:352
SiStripDetInfoFileReader.h
popcon::SiStripPopConHandlerUnitTest::condObjBuilder
edm::Service< SiStripCondObjBuilderFromDb > condObjBuilder
Definition:
SiStripPopConHandlerUnitTest.h:165
popcon::SiStripPopConHandlerUnitTest::DataType
DataType
Definition:
SiStripPopConHandlerUnitTest.h:35
popcon::SiStripPopConHandlerUnitTest::id
std::string id() const
Definition:
SiStripPopConHandlerUnitTest.h:89
getGTfromDQMFile.obj
obj
Definition:
getGTfromDQMFile.py:32
popcon::SiStripPopConHandlerUnitTest
Definition:
SiStripPopConHandlerUnitTest.h:33
cond::LogDBEntry_t::payloadToken
std::string payloadToken
Definition:
Types.h:96
edm::ParameterSet
Definition:
ParameterSet.h:47
popcon::PopConSourceHandler::tagInfo
cond::TagInfo_t const & tagInfo() const
Definition:
PopConSourceHandler.h:78
cond::Iov_t::payloadId
Hash payloadId
Definition:
Types.h:55
cond::LogDBEntry_t::usertext
std::string usertext
Definition:
Types.h:90
cond::Iov_t::since
Time_t since
Definition:
Types.h:53
popcon::SiStripPopConHandlerUnitTest::_Pedestal
Definition:
SiStripPopConHandlerUnitTest.h:35
edm::Service< SiStripCondObjBuilderFromDb >
cond::LogDBEntry_t::iovtag
std::string iovtag
Definition:
Types.h:91
cond::LogDBEntry_t::destinationDB
std::string destinationDB
Definition:
Types.h:88
edm::LogError
Log< level::Error, false > LogError
Definition:
MessageLogger.h:123
popcon::PopConSourceHandler
Definition:
PopConSourceHandler.h:30
gpuVertexFinder::noise
__shared__ int noise
Definition:
gpuFitVertices.h:50
popcon::SiStripPopConHandlerUnitTest::UNDEFINED
Definition:
SiStripPopConHandlerUnitTest.h:35
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
popcon::SiStripPopConHandlerUnitTest::_Noise
Definition:
SiStripPopConHandlerUnitTest.h:35
cond::TagInfo_t::lastInterval
Iov_t lastInterval
Definition:
Types.h:73
cond::LogDBEntry_t::iovtimetype
std::string iovtimetype
Definition:
Types.h:92
std
Definition:
JetResolutionObject.h:76
popcon
Definition:
Exception.h:6
T
long double T
Definition:
Basic3DVectorLD.h:48
popcon::SiStripPopConHandlerUnitTest::_BadStrip
Definition:
SiStripPopConHandlerUnitTest.h:35
SiStripDetInfoFileReader::kDefaultFile
constexpr static char const *const kDefaultFile
Definition:
SiStripDetInfoFileReader.h:10
cond::LogDBEntry_t::logId
unsigned long long logId
Definition:
Types.h:87
ParameterSetfwd.h
Skims_PA_cff.name
name
Definition:
Skims_PA_cff.py:17
popcon::SiStripPopConHandlerUnitTest::getDataType
DataType getDataType()
Definition:
SiStripPopConHandlerUnitTest.h:94
popcon::SiStripPopConHandlerUnitTest::getNewObjects
void getNewObjects()
Definition:
SiStripPopConHandlerUnitTest.h:50
SiStripNoises::InputVector
std::vector< uint16_t > InputVector
Definition:
SiStripNoises.h:50
ParameterSet.h
Types.h
edm::Log
Definition:
MessageLogger.h:70
cond::LogDBEntry_t::payloadIdx
unsigned int payloadIdx
Definition:
Types.h:93
popcon::PopConSourceHandler::m_userTextLog
std::string m_userTextLog
Definition:
PopConSourceHandler.h:168
popcon::PopConSourceHandler::logDBEntry
cond::LogDBEntry_t const & logDBEntry() const
Definition:
PopConSourceHandler.h:84
popcon::PopConSourceHandler::userTextLog
std::string const & userTextLog() const
Definition:
PopConSourceHandler.h:111
muonDTDigis_cfi.pset
pset
Definition:
muonDTDigis_cfi.py:27
cond::TagInfo_t::size
size_t size
Definition:
Types.h:74
findQualityFiles.size
size
Write out results.
Definition:
findQualityFiles.py:443
cond::LogDBEntry_t::exectime
std::string exectime
Definition:
Types.h:97
Generated for CMSSW Reference Manual by
1.8.16