|
ATLAS Offline Software
|
Go to the documentation of this file.
22 const std::vector<CaloSampling::CaloSample> &
layers)
24 if (
layers.empty())
return false;
42 const std::vector<CaloSampling::CaloSample> &
layers)
44 if (
layers.empty())
return false;
67 const std::vector<CaloSampling::CaloSample> &
layers)
69 if (
layers.empty())
return false;
81 const std::vector<CaloSampling::CaloSample> &
layers)
83 if (
layers.empty())
return false;
95 const std::vector<CaloSampling::CaloSample> &
layers)
97 if (
layers.empty())
return false;
109 const std::vector<CaloSampling::CaloSample> &
layers)
111 if (
layers.empty())
return false;
123 const std::vector<CaloSampling::CaloSample> &
layers)
125 if (
layers.empty())
return false;
142 const std::vector<CaloSampling::CaloSample> &
layers)
144 if (
layers.empty())
return false;
161 const std::vector<CaloSampling::CaloSample> &
layers)
163 if (
layers.empty())
return false;
180 const std::vector<CaloSampling::CaloSample> &
layers)
189 const std::vector<CaloSampling::CaloSample> &
layers)
220 stream <<
"|" << std::endl;
231 for (
const auto &rsRawConfCol : rawConfCol )
241 if ( clRingsConf.empty() ) {
242 throw std::runtime_error(std::string(
243 "Cannot add the JointLayer/JointSection bounderies "
244 "into an empty RawConfCollection."));
247 unsigned startOfEMJointSection(0),
248 endOfEMJointSection(0),
249 startOfHADJointSection(0),
250 endOfHADJointSection(0),
253 bool isWithinEMJointSection(
false),
254 isWithinHADJointSection(
false);
257 for (
const auto &rawConf : clRingsConf ){
262 if ( !isWithinEMJointSection && isEM ) {
263 startOfEMJointSection = currentRingIdx;
264 isWithinEMJointSection =
true;
266 if ( !isWithinHADJointSection && isHAD ) {
267 startOfHADJointSection = currentRingIdx;
268 isWithinHADJointSection =
true;
271 if ( isWithinEMJointSection && !isEM ) {
272 endOfEMJointSection = currentRingIdx;
273 isWithinEMJointSection =
false;
275 if ( isWithinHADJointSection && !isHAD ) {
276 endOfHADJointSection = currentRingIdx;
277 isWithinHADJointSection =
false;
280 currentRingIdx += rawConf.nRings;
284 if ( isWithinEMJointSection ) {
285 endOfEMJointSection = currentRingIdx;
286 }
else if ( isWithinHADJointSection ) {
287 endOfHADJointSection = currentRingIdx;
292 for (
auto &rawConf : clRingsConf ){
294 rawConf.layerStartIdx = currentRingIdx;
295 currentRingIdx += rawConf.nRings;
296 rawConf.layerEndIdx = currentRingIdx;
298 switch (rawConf.calJointSection) {
301 rawConf.sectionStartIdx = startOfEMJointSection;
302 rawConf.sectionEndIdx = endOfEMJointSection;
307 rawConf.sectionStartIdx = startOfHADJointSection;
308 rawConf.sectionEndIdx = endOfHADJointSection;
312 throw std::runtime_error(std::string(
313 "Found unknown JointSection type."));
322 stream <<
"RawConfCollection is : " << std::endl;
323 for (
unsigned rsIdx = 0; rsIdx < rawCol.size(); ++rsIdx) {
324 stream <<
"RawConf #" << rsIdx <<
" : ";
335 for(
const auto &rsConf : clRingsConf ) {
336 if ( rsConf.calJointSection == sec ) {
337 startEdge = rsConf.sectionStartIdx;
338 endEdge = rsConf.sectionEndIdx;
350 for(
const auto &rsConf : clRingsConf ) {
351 if ( rsConf.calJointLayer ==
layer ) {
352 startEdge = rsConf.layerStartIdx;
353 endEdge = rsConf.layerEndIdx;
372 for (
const auto& rsRawConf : rawConfCol ) {
386 throw std::runtime_error(std::string(
"Retrieved nullptr when trying to create"
387 " RawConfCollection."));
393 for (
const auto *
const rsConf : *
container ) {
394 rawConfCol.push_back( rsConf->getRawConf() );
403 const std::vector<CaloSampling::CaloSample> &
layers,
404 const float etaWidth,
const float phiWidth,
408 const bool doEtaAxesDivision,
const bool doPhiAxesDivision,
409 const unsigned layerStartIdx,
const unsigned layerEndIdx,
410 const unsigned sectionStartIdx,
const unsigned sectionEndIdx){
451 const unsigned nRings,
452 const std::vector<CaloSampling::CaloSample> &
layers,
453 const float etaWidth,
const float phiWidth,
457 const bool doEtaAxesDivision,
458 const bool doPhiAxesDivision):
463 cellMaxDEtaDist(cellMaxDEtaDist),
465 calJointLayer(calJointLayer),
466 calJointSection(calJointSection),
467 doEtaAxesDivision(doEtaAxesDivision),
468 doPhiAxesDivision(doPhiAxesDivision),
477 const std::vector<CaloSampling::CaloSample> &
layers,
537 return reinterpret_cast<const std::vector<CaloSampling::CaloSample>&
>(
543 const std::vector<CaloSampling::CaloSample>&
layers) {
545 acc.set( *
this ,
reinterpret_cast<const std::vector<unsigned>&
>(
layers) );
551 return acc( *this ).size();
563 acc( *this ).push_back(
c);
569 acc( *this ).clear();
630 return static_cast<bool>( acc( *
this) );
642 return static_cast<bool>( acc( *
this ) );
689 if (
this != &rsConf ){
713 stream <<
"|" << std::endl;
unsigned layerEndIdx
Hold the end of this layer on a non-segmented representation:
void setCalJointLayer(Ringer::CalJointLayer calJointLayer)
Set this RingSet CalJointLayer.
Class holding the RingSet configuration used for the Reconstruction.
AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1, float, IP2D_pb, setIP2D_pb) AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1
static bool isEMSection(const std::vector< CaloSampling::CaloSample > &layers)
Static methods:
CaloSampling::CaloSample layerAt(const unsigned idx) const
Get ith layer.
void setSectionEndIdx(unsigned sectionEndIdx)
Set end section configuration index.
static void print(const RawConf &raw, std::ostream &stream)
Prints rawConf.
RingSetConf_v1 & operator=(const RingSetConf_v1 &clrings)
Assignment Operator.
unsigned layerEndIdx() const
Returns end of section index for this RingSet Configuration when this configuration is concatened int...
unsigned layerStartIdx
Hold the start of this layer on a non-segmented representation:
unsigned nRings() const
Get nRings.
void setdoEtaAxesDivision(bool doEtaAxesDivision)
Set doEtaAxesDivision.
Helper class to provide type-safe access to aux data.
static bool isHADSection(const std::vector< CaloSampling::CaloSample > &layers)
float phiWidth
Ring Width in phi.
static bool isEM2Layer(const std::vector< CaloSampling::CaloSample > &layers)
static bool isHAD1Layer(const std::vector< CaloSampling::CaloSample > &layers)
void setLayerEndIdx(unsigned layerEndIdx)
Set end layer configuration index.
std::vector< RawConf > RawConfCollection
typedef The raw configuration structure data holder
void setCellMaxDEtaDist(float cellMaxDEtaDist)
Set maxCellDEtaDist.
float cellMaxDPhiDist
Maximum distance cell in phi to seed.
Ringer::CalJointLayer calJointLayer() const
Retrieve this RingSet conf CalJointLayer.
unsigned nLayers() const
RingSet layers size:
unsigned sectionEndIdx() const
Returns end of section index for this RingSet Configuration when this configuration is concatened int...
Ringer::CalJointLayer calJointLayer
The Calorimeter Joint Layer of this RingSet (see CaloRingsDefs.h)
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Helper class to provide constant type-safe access to aux data.
static void getRawConfCol(RawConfCollection &rawConfCol, const RingSetConfContainer_v1 *container)
Retrieve RawConfCollection from RingSetConf container.
unsigned nRings
Ringset number of Rings.
bool const RAWDATA *ch2 const
void addLayer(const CaloSampling::CaloSample c)
Add layer.
float etaWidth
Ring Width in eta.
static Ringer::CalJointLayer whichLayer(const std::vector< CaloSampling::CaloSample > &layers)
static bool isPSLayer(const std::vector< CaloSampling::CaloSample > &layers)
const std::vector< CaloSampling::CaloSample > & layers() const
get layers
static bool isHAD2Layer(const std::vector< CaloSampling::CaloSample > &layers)
static bool isEM1Layer(const std::vector< CaloSampling::CaloSample > &layers)
void setCalJointSection(Ringer::CalJointSection calJointSection)
Set this RingSet CalJointSection.
setPhiWidth cellMaxDPhiDist
static void addRawConfColBounderies(RawConfCollection &clRingsConf)
Add to RawConfCollection its JointLayer/JointSection bounderies.
static bool isHAD3Layer(const std::vector< CaloSampling::CaloSample > &layers)
unsigned sectionEndIdx
Hold the end of this section on a non-segmented representation:
const RingSetConf_v1::RawConf getRawConf() const
Retrieve raw RingSet Configuration struct.
RawConf()
Configuration Struct ctors.
std::vector< CaloSampling::CaloSample > layers
Ringset layers.
unsigned sectionStartIdx
Hold the start of this section on a non-segmented representation:
void setNRings(unsigned nRings)
Set nRings.
void setPhiWidth(float phiWidth)
Set phiWidth.
static bool isEM3Layer(const std::vector< CaloSampling::CaloSample > &layers)
unsigned sectionStartIdx() const
Returns start of section index for this RingSet Configuration when this configuration is concatened i...
void clearLayers()
Clear layers.
bool doPhiAxesDivision() const
Return the phiAxesDivision configuration.
float etaWidth() const
Returns the etaWidth configuration step used for this RingSet.
CalJointLayer
the joint calorimeter layers.
unsigned layerStartIdx() const
Returns start of layer index for this RingSet Configuration when this configuration is concatened int...
static void getEdges(const RawConfCollection &clRingsConf, const Ringer::CalJointSection sec, unsigned &startEdge, unsigned &endEdge)
Get CalJointSection start and end edges.
bool doEtaAxesDivision
Hold the option of eta axes division.
void setSectionStartIdx(unsigned sectionEndIdx)
Set start section configuration index.
Ringer::CalJointSection calJointSection
The Calorimeter Joint Section (see CaloRingsDefs.h)
void makePrivateStore()
Create a new (empty) private store for this object.
AuxElement & operator=(const AuxElement &other)
Assignment.
float cellMaxDEtaDist() const
Return the maximun cell distance in eta w.r.t seed.
bool hasStore() const
Return true if this object has an associated store.
RingSetConf_v1()
Empty ctor:
Ringer::CalJointSection calJointSection() const
Retrieve this RingSet conf CalJointSection.
void setEtaWidth(float etaWidth)
Set etaWidth.
bool doPhiAxesDivision
Hold the option of phi axes division.
float cellMaxDEtaDist
Maximum distance cell in eta to seed.
float phiWidth() const
Returns the phiWidth configuration step used for this RingSet.
setLayerEndIdx sectionEndIdx
void setLayerStartIdx(unsigned layerStartIdx)
Set start layer configuration index.
bool doEtaAxesDivision() const
Return the etaAxesDivision configuration.
DataVector< xAOD::RingSetConf_v1 > RingSetConfContainer_v1
The container is a simple typedef for now.
const SG::AuxVectorData * container() const
Return the container holding this element.
static unsigned totalNumberOfRings(const RawConfCollection &clRingsConf)
Get the totalNumber of Rings contained in this configuration:
static Ringer::CalJointSection whichSection(const std::vector< CaloSampling::CaloSample > &layers)
static void fillRingSetConfContainer(const RawConfCollection &rawConfCol, RingSetConfContainer_v1 *container)
Creates RingSetConfContainer from RawConfCollection.
float cellMaxDPhiDist() const
Return the maximun cell distance in phi w.r.t seed.
void setdoPhiAxesDivision(bool doPhiAxesDivision)
Set doPhiAxesDivision.
CalJointSection
the joint calorimeter sections.
void setCellMaxDPhiDist(float cellMaxDPhiDist)
Set maxCellDPhiDist.
void setLayers(const std::vector< CaloSampling::CaloSample > &layers)
set layers