|
|
Builds ideal, real and misaligned geometries.
More...
|
using | EventSetupRecordKey = eventsetup::EventSetupRecordKey |
|
using | KeyedProxiesVector = std::vector< std::pair< DataKey, std::shared_ptr< DataProxy > >> |
|
template<typename T > |
auto | setWhatProduced (T *iThis, const char *iLabel) |
|
template<typename T > |
auto | setWhatProduced (T *iThis, const es::Label &iLabel={}) |
|
template<typename T > |
auto | setWhatProduced (T *iThis, const std::string &iLabel) |
|
template<typename T , typename TDecorator > |
auto | setWhatProduced (T *iThis, const TDecorator &iDec, const es::Label &iLabel={}) |
|
template<typename T , typename TReturn , typename TRecord > |
auto | setWhatProduced (T *iThis, TReturn(T ::*iMethod)(const TRecord &), const es::Label &iLabel={}) |
|
template<typename T , typename TReturn , typename TRecord , typename TArg > |
ESConsumesCollectorT< TRecord > | setWhatProduced (T *iThis, TReturn(T ::*iMethod)(const TRecord &), const TArg &iDec, const es::Label &iLabel={}) |
|
template<class TFactory > |
void | registerFactory (std::unique_ptr< TFactory > iFactory, const std::string &iLabel=std::string()) |
|
virtual void | registerFactoryWithKey (const EventSetupRecordKey &iRecord, std::unique_ptr< eventsetup::ProxyFactoryBase > iFactory, const std::string &iLabel=std::string()) |
|
KeyedProxiesVector | registerProxies (const EventSetupRecordKey &, unsigned int iovIndex) override |
|
template<class T > |
void | usingRecord () |
|
void | usingRecordWithKey (const EventSetupRecordKey &key) |
|
Builds ideal, real and misaligned geometries.
First, it creates a tree of DetGeomDesc from DDCompView. For real and misaligned geometries, it applies alignment corrections (RPAlignmentCorrections) found in corresponding ...GeometryRecord.
Second, it creates CTPPSGeometry from DetGeoDesc tree.
Definition at line 51 of file CTPPSGeometryESModule.cc.
◆ CTPPSGeometryESModule()
◆ ~CTPPSGeometryESModule()
CTPPSGeometryESModule::~CTPPSGeometryESModule |
( |
| ) |
|
|
inlineoverride |
◆ applyAlignments()
Definition at line 120 of file CTPPSGeometryESModule.cc.
125 std::deque<const DetGeomDesc*>
buffer;
126 std::deque<DetGeomDesc*> bufferNew;
127 buffer.emplace_back(&idealGD);
128 bufferNew.emplace_back(newGD);
134 bufferNew.pop_front();
170 bufferNew.emplace_back(cD);
References DetGeomDesc::addComponent(), DetGeomDesc::applyAlignment(), edmScanValgrind::buffer, DetGeomDesc::components(), DDD_CTPPS_DIAMONDS_RP_NAME, DDD_CTPPS_DIAMONDS_SEGMENT_NAME, DDD_CTPPS_PIXELS_RP_NAME, DDD_CTPPS_PIXELS_SENSOR_NAME, DDD_CTPPS_UFSD_SEGMENT_NAME, DDD_TOTEM_RP_RP_NAME, DDD_TOTEM_RP_SENSOR_NAME, DDD_TOTEM_TIMING_RP_NAME, DDD_TOTEM_TIMING_SENSOR_TMPL, DetGeomDesc::geographicalID(), CTPPSRPAlignmentCorrectionsData::getFullSensorCorrection(), CTPPSRPAlignmentCorrectionsData::getRPCorrection(), mps_fire::i, Skims_PA_cff::name, DetGeomDesc::name(), year_2016_postTS2_cff::rpId, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by produceGD().
◆ buildDetGeomDesc()
Definition at line 176 of file CTPPSGeometryESModule.cc.
191 const std::vector<int>& copy_num = fv->
copyNumbers();
193 if (copy_num.size() < 3)
195 <<
"size of copyNumbers for strip sensor is " << copy_num.size() <<
". It must be >= 3.";
198 const unsigned int decRPId = copy_num[copy_num.size() - 3];
199 const unsigned int arm = decRPId / 100;
200 const unsigned int station = (decRPId % 100) / 10;
201 const unsigned int rp = decRPId % 10;
202 const unsigned int detector = copy_num[copy_num.size() - 1];
208 unsigned int decRPId = fv->
copyno();
211 if (decRPId >= 10000) {
212 decRPId = decRPId % 10000;
213 const unsigned int armIdx = (decRPId / 100) % 10;
214 const unsigned int stIdx = (decRPId / 10) % 10;
215 const unsigned int rpIdx = decRPId % 10;
218 const unsigned int armIdx = (decRPId / 100) % 10;
219 const unsigned int stIdx = (decRPId / 10) % 10;
220 const unsigned int rpIdx = decRPId % 10;
226 const std::vector<int>& copy_num = fv->
copyNumbers();
228 if (copy_num.size() < 4)
230 <<
"size of copyNumbers for TOTEM timing sensor is " << copy_num.size() <<
". It must be >= 4.";
232 const unsigned int decRPId = copy_num[copy_num.size() - 4];
233 const unsigned int arm = decRPId / 100,
station = (decRPId % 100) / 10, rp = decRPId % 10;
234 const unsigned int plane = copy_num[copy_num.size() - 2], channel = copy_num[copy_num.size() - 1];
245 const std::vector<int>& copy_num = fv->
copyNumbers();
247 if (copy_num.size() < 4)
249 <<
"size of copyNumbers for pixel sensor is " << copy_num.size() <<
". It must be >= 4.";
252 const unsigned int decRPId = copy_num[copy_num.size() - 4] % 10000;
253 const unsigned int arm = decRPId / 100;
254 const unsigned int station = (decRPId % 100) / 10;
255 const unsigned int rp = decRPId % 10;
256 const unsigned int detector = copy_num[copy_num.size() - 2] - 1;
262 const std::vector<int>& copy_num = fv->
copyNumbers();
264 const unsigned int id = copy_num[copy_num.size() - 1];
265 const unsigned int arm = copy_num[1] - 1;
266 const unsigned int station = 1;
267 const unsigned int rp = 6;
268 const unsigned int plane = (
id / 100);
269 const unsigned int channel =
id % 100;
276 const std::vector<int>& copy_num = fv->
copyNumbers();
279 if (copy_num.size() < 2)
281 <<
"size of copyNumbers for diamond RP is " << copy_num.size() <<
". It must be >= 2.";
283 const unsigned int arm = copy_num[1] - 1;
284 const unsigned int station = 1;
285 const unsigned int rp = 6;
References DetGeomDesc::addComponent(), DDFilteredView::copyno(), DDFilteredView::copyNumbers(), DDD_CTPPS_DIAMONDS_RP_NAME, DDD_CTPPS_DIAMONDS_SEGMENT_NAME, DDD_CTPPS_PIXELS_RP_NAME, DDD_CTPPS_PIXELS_SENSOR_NAME, DDD_CTPPS_UFSD_SEGMENT_NAME, DDD_TOTEM_RP_RP_NAME, DDD_TOTEM_RP_SENSOR_NAME, DDD_TOTEM_TIMING_RP_NAME, DDD_TOTEM_TIMING_SENSOR_TMPL, hgcalTestNeighbor_cfi::detector, DDFilteredView::firstChild(), DDFilteredView::logicalPart(), Skims_PA_cff::name, DDName::name(), DDBase< N, C >::name(), DDFilteredView::nextSibling(), DDFilteredView::parent(), DetGeomDesc::setGeographicalID(), relativeConstraints::station, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by produceIdealGD().
◆ fillDescriptions()
◆ produceGD()
template<typename REC >
std::unique_ptr< DetGeomDesc > CTPPSGeometryESModule::produceGD |
( |
IdealGeometryRecord const & |
iIdealRec, |
|
|
const std::optional< REC > & |
iAlignRec, |
|
|
GDTokens< REC > const & |
iTokens, |
|
|
const char * |
name |
|
) |
| |
|
private |
Definition at line 321 of file CTPPSGeometryESModule.cc.
327 auto const& idealGD = iIdealRec.get(iTokens.idealGDToken_);
332 alignments = iAlignRec->getHandle(iTokens.alignmentToken_);
338 << alignments->
getSensorMap().size() <<
" sensor alignments applied.";
346 return std::unique_ptr<DetGeomDesc>(newGD);
References CTPPSGeometryESModule::GDTokens< ALIGNMENT_REC >::alignmentToken_, applyAlignments(), edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::get(), CTPPSRPAlignmentCorrectionsData::getRPMap(), CTPPSRPAlignmentCorrectionsData::getSensorMap(), CTPPSGeometryESModule::GDTokens< ALIGNMENT_REC >::idealGDToken_, edm::ESHandleBase::isValid(), Skims_PA_cff::name, edm::ESHandle< T >::product(), and verbosity_.
Referenced by produceMisalignedGD(), and produceRealGD().
◆ produceIdealGD()
◆ produceMisalignedGD()
◆ produceMisalignedTG()
◆ produceRealGD()
◆ produceRealTG()
◆ compactViewToken_
◆ dgdMisToken_
◆ dgdRealToken_
◆ gdMisTokens_
◆ gdRealTokens_
◆ verbosity_
const unsigned int CTPPSGeometryESModule::verbosity_ |
|
private |
const DepRecordT getRecord() const
T const * product() const
void applyAlignment(const CTPPSRPAlignmentCorrectionData &)
alignment
static void applyAlignments(const DetGeomDesc &, const CTPPSRPAlignmentCorrectionsData *, DetGeomDesc *&)
const std::string DDD_CTPPS_UFSD_SEGMENT_NAME
ParameterDescriptionBase * add(U const &iLabel, T const &value)
const std::string DDD_CTPPS_PIXELS_SENSOR_NAME
const mapType & getRPMap() const
returns the map of RP alignment corrections
void addComponent(DetGeomDesc *)
components (children) management
Container components() const
access to the tree structure
const mapType & getSensorMap() const
returns the map of sensor alignment corrections
const DDLogicalPart & logicalPart() const
The logical-part of the current node in the filtered-view.
nav_type copyNumbers() const
return the stack of copy numbers
auto setWhatProduced(T *iThis, const es::Label &iLabel={})
const std::string DDD_CTPPS_PIXELS_RP_NAME
std::unique_ptr< DetGeomDesc > produceGD(IdealGeometryRecord const &, const std::optional< REC > &, GDTokens< REC > const &, const char *name)
const std::string DDD_TOTEM_TIMING_RP_NAME
T getUntrackedParameter(std::string const &, T const &) const
const GDTokens< RPMisalignedAlignmentRecord > gdMisTokens_
bool parent()
set the current node to the parent node ...
std::unique_ptr< DetGeomDesc > produceRealGD(const VeryForwardRealGeometryRecord &)
const std::string DDD_CTPPS_DIAMONDS_SEGMENT_NAME
void setGeographicalID(DetId id)
ID stuff.
CTPPSRPAlignmentCorrectionData & getRPCorrection(unsigned int id)
returns the correction value from the RP map
bool firstChild()
set the current node to the first child ...
DetId geographicalID() const
void add(std::string const &label, ParameterSetDescription const &psetDescription)
const edm::ESGetToken< DetGeomDesc, VeryForwardMisalignedGeometryRecord > dgdMisToken_
Compact representation of the geometrical detector hierarchy.
std::unique_ptr< CTPPSGeometry > produceRealTG(const VeryForwardRealGeometryRecord &)
bool nextSibling()
set the current node to the next sibling ...
ProductT const & get(ESGetToken< ProductT, DepRecordT > const &iToken) const
const GDTokens< RPRealAlignmentRecord > gdRealTokens_
std::unique_ptr< DetGeomDesc > produceIdealGD(const IdealGeometryRecord &)
Detector ID class for CTPPS Totem Timing detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bits ...
const unsigned int verbosity_
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
Detector ID class for CTPPS Timing Diamond detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bit...
const std::string DDD_CTPPS_DIAMONDS_RP_NAME
const std::string & name() const
std::unique_ptr< DetGeomDesc > produceMisalignedGD(const VeryForwardMisalignedGeometryRecord &)
const std::string DDD_TOTEM_TIMING_SENSOR_TMPL
const edm::ESGetToken< DDCompactView, IdealGeometryRecord > compactViewToken_
Geometrical description of a sensor.
const std::string & name() const
Returns the name.
const std::string DDD_TOTEM_RP_RP_NAME
DDD names of RP volumes.
T getParameter(std::string const &) const
A DDFilter that always returns true.
std::optional< DepRecordT > tryToGetRecord() const
const edm::ESGetToken< DetGeomDesc, VeryForwardRealGeometryRecord > dgdRealToken_
const std::string DDD_TOTEM_RP_SENSOR_NAME
DDD names of sensors.
CTPPSRPAlignmentCorrectionData getFullSensorCorrection(unsigned int id, bool useRPErrors=false) const
Detector ID class for TOTEM Si strip detectors.
int copyno() const
Copy number associated with the current node.
static void buildDetGeomDesc(DDFilteredView *fv, DetGeomDesc *gd)
std::unique_ptr< CTPPSGeometry > produceMisalignedTG(const VeryForwardMisalignedGeometryRecord &)