35 : fp_(conf_.getParameter<edm::FileInPath>(
"file")),
36 t_topo_fp_(conf_.getParameter<edm::FileInPath>(
"topologyInput")),
37 myLabel_(conf_.getParameter<std::
string>(
"appendToDataLabel")),
38 BPixParameters_(conf_.getParameter<
Parameters>(
"BPixParameters")),
39 FPixParameters_(conf_.getParameter<
Parameters>(
"FPixParameters")),
40 ModuleParameters_(conf_.getParameter<
Parameters>(
"ModuleParameters")),
41 bPixLorentzAnglePerTesla_((float)conf_.getUntrackedParameter<double>(
"bPixLorentzAnglePerTesla", -9999.)),
42 fPixLorentzAnglePerTesla_((float)conf_.getUntrackedParameter<double>(
"fPixLorentzAnglePerTesla", -9999.)) {
43 edm::LogInfo(
"SiPixelFakeLorentzAngleESSource::SiPixelFakeLorentzAngleESSource");
46 findingRecord<SiPixelLorentzAngleRcd>();
50 using namespace edm::es;
51 unsigned int nmodules = 0;
54 const std::vector<uint32_t>& DetIds =
reader.getAllDetIds();
59 for (
const auto& detit : DetIds) {
61 const DetId detid(detit);
62 auto rawId = detid.
rawId();
64 int side = tTopo.side(detid);
68 int layer = tTopo.pxbLayer(detid);
70 int ladder = tTopo.pxbLadder(detid);
72 int module = tTopo.pxbModule(detid);
79 LogDebug(
"SiPixelFakeLorentzAngleESSource") <<
" pixel barrel:"
80 <<
" layer=" << layer <<
" ladder=" << ladder <<
" module=" << module
81 <<
" rawId=" << rawId <<
" side " << side;
89 <<
"ERROR!: detid " << rawId <<
" already exists" << std::endl;
93 if (it.getParameter<
unsigned int>(
"rawid") == detid.
rawId()) {
94 float lorentzangle = (float)it.getParameter<
double>(
"angle");
96 obj->putLorentzAngle(detid.
rawId(), lorentzangle);
98 <<
" LA= " << lorentzangle <<
" individual value " << detid.
rawId() << std::endl;
101 edm::LogError(
"SiPixelFakeLorentzAngleESSource") <<
"ERROR!: detid already exists" << std::endl;
107 if (it.exists(
"layer"))
108 if (it.getParameter<
int>(
"layer") !=
layer)
110 if (it.exists(
"ladder"))
111 if (it.getParameter<
int>(
"ladder") !=
ladder)
113 if (it.exists(
"module"))
114 if (it.getParameter<
int>(
"module") !=
module)
116 if (it.exists(
"side"))
117 if (it.getParameter<
int>(
"side") != side)
120 float lorentzangle = (float)it.getParameter<
double>(
"angle");
121 obj->putLorentzAngle(detid.
rawId(), lorentzangle);
122 edm::LogInfo(
"SiPixelFakeLorentzAngleESSource") <<
" LA= " << lorentzangle << std::endl;
124 }
else if (found == 1) {
126 <<
"detid already given in ModuleParameters, skipping ..." << std::endl;
129 <<
" ERROR!: detid " << rawId <<
" already exists" << std::endl;
147 LogDebug(
"SiPixelFakeLorentzAngleESSource") <<
" pixel endcap:"
148 <<
" side=" << side <<
" disk=" << disk <<
" blade =" << blade
149 <<
" pannel=" << panel <<
" ring=" << ring <<
" rawId=" << rawId;
156 edm::LogError(
"SiPixelFakeLorentzAngleESSource") <<
" ERROR! detid already exists" << std::endl;
160 if (it.getParameter<
unsigned int>(
"rawid") == detid.
rawId()) {
161 float lorentzangle = (float)it.getParameter<
double>(
"angle");
163 obj->putLorentzAngle(detid.
rawId(), lorentzangle);
165 <<
" LA= " << lorentzangle <<
" individual value " << detid.
rawId() << std::endl;
169 <<
"ERROR!: detid " << rawId <<
" already exists" << std::endl;
175 if (it.exists(
"side"))
176 if (it.getParameter<
int>(
"side") != side)
178 if (it.exists(
"disk"))
179 if (it.getParameter<
int>(
"disk") != disk)
181 if (it.exists(
"ring"))
182 if (it.getParameter<
int>(
"ring") !=
ring)
184 if (it.exists(
"blade"))
185 if (it.getParameter<
int>(
"blade") != blade)
187 if (it.exists(
"panel"))
188 if (it.getParameter<
int>(
"panel") != panel)
190 if (it.exists(
"HVgroup"))
191 if (it.getParameter<
int>(
"HVgroup") !=
HVgroup(panel, ring))
194 float lorentzangle = (float)it.getParameter<
double>(
"angle");
195 obj->putLorentzAngle(detid.
rawId(), lorentzangle);
196 edm::LogInfo(
"SiPixelFakeLorentzAngleESSource") <<
" LA= " << lorentzangle << std::endl;
198 }
else if (found == 1) {
200 <<
" detid " << rawId <<
" already given in ModuleParameters, skipping ..." << std::endl;
203 <<
"ERROR!: detid" << rawId <<
"already exists" << std::endl;
209 edm::LogInfo(
"SiPixelFakeLorentzAngleESSource") <<
"Modules = " << nmodules << std::endl;
211 return std::unique_ptr<SiPixelLorentzAngle>(
obj);
222 if (1 == panel && (1 == module || 2 == module)) {
224 }
else if (1 == panel && (3 == module || 4 == module)) {
226 }
else if (2 == panel && 1 == module) {
228 }
else if (2 == panel && (2 == module || 3 == module)) {
232 <<
" ERROR! in SiPixelFakeLorentzAngleESSource::HVgroup(...), panel = " << panel <<
", module = " << module
240 desc.
setComment(
"ESSource to supply per-module SiPixelLorentzAngle payloads in the EventSetup");
243 "file",
edm::FileInPath(
"SLHCUpgradeSimulations/Geometry/data/PhaseI/PixelSkimmedGeometry_phase1.txt"))
244 ->setComment(
"Tracker skimmed geometry");
246 edm::FileInPath(
"Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml"))
247 ->setComment(
"Tracker Topology");
249 desc.
add<
std::string>(
"appendToDataLabel",
"")->setComment(
"label to which write the data");
258 desc_BPixParameters.
add<
double>(
"angle");
259 std::vector<edm::ParameterSet> default_BPixParametersToAdd;
260 desc.
addVPSet(
"BPixParameters", desc_BPixParameters, default_BPixParametersToAdd)
261 ->
setComment(
"LA values for given BPix regions");
270 desc_FPixParameters.
add<
double>(
"angle");
271 std::vector<edm::ParameterSet> default_FPixParametersToAdd;
272 desc.
addVPSet(
"FPixParameters", desc_FPixParameters, default_FPixParametersToAdd)
273 ->
setComment(
"LA values for given FPix regions");
276 desc_ModuleParameters.
add<
unsigned int>(
"rawid");
277 desc_ModuleParameters.
add<
double>(
"angle");
278 std::vector<edm::ParameterSet> default_ModuleParametersToAdd;
279 desc.
addVPSet(
"ModuleParameters", desc_ModuleParameters, default_ModuleParametersToAdd)
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
void setComment(std::string const &value)
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
ParameterDescriptionBase * addOptional(U const &iLabel, T const &value)
ParameterDescriptionBase * addVPSet(U const &iLabel, ParameterSetDescription const &validator, std::vector< ParameterSet > const &defaults)
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
Parameters FPixParameters_
static const IOVSyncValue & endOfTime()
constexpr uint32_t rawId() const
get the raw id
const edm::FileInPath fp_
Log< level::Error, false > LogError
constexpr std::array< uint8_t, layerIndexSize > layer
std::vector< edm::ParameterSet > Parameters
int bladeName() const
blade id
void setComment(std::string const &value)
float bPixLorentzAnglePerTesla_
static const IOVSyncValue & beginOfTime()
int HVgroup(int panel, int module)
virtual std::unique_ptr< SiPixelLorentzAngle > produce(const SiPixelLorentzAngleRcd &)
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
SiPixelFakeLorentzAngleESSource(const edm::ParameterSet &)
const edm::FileInPath t_topo_fp_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Log< level::Info, false > LogInfo
float fPixLorentzAnglePerTesla_
void setIntervalFor(const edm::eventsetup::EventSetupRecordKey &, const edm::IOVSyncValue &, edm::ValidityInterval &) override
int pannelName() const
pannel id
TrackerTopology fromTrackerParametersXMLFile(const std::string &xmlFileName)
std::string fullPath() const
int diskName() const
disk id
Log< level::Warning, false > LogWarning
int ringName() const
ring Id
Parameters ModuleParameters_
Parameters BPixParameters_