4 #include <mdet/MComponentGroup.h>
5 #include <mdet/MDetectorComponent.h>
6 #include <mdet/PMT_helper.h>
10 #include <mdet/Pixel.h>
12 #include <utl/ShadowPtr_fwd.h>
14 #include <boost/iterator/indirect_iterator.hpp>
229 void Update(
bool invalidateData,
bool invalidateComponents);
306 template<
class Predicate>
307 NeighborsContainer::const_iterator
IsNeighbor(
const Pixel& src,
const Pixel& dst,
const Predicate&
p)
const;
311 PixelGroup::SizeType
GetRows()
const;
315 PixelGroup::SizeType
GetCols()
const;
342 #endif // _mdet_PMT_h
std::vector< double > CrossTalkContainer
Typedef for mdet::Pixel crosstalk container.
pointer with built-in initialization, deletion, deep copying
NeighborConstIterator NeighborsBegin(const Pixel &p) const
Begin iterator over neighbors of the given pixel.
Defines within it the common (templated) type for muon detector hierarchy components groups...
double GetCrossTalkNormalizationFactor(const mdet::Pixel &pix) const
Helper method to manage the conversion factor for cross-talk.
PixelGroup::ConstIterator PixelConstIterator
Convenience typedef for const iterator over the contained mdet::Pixel instances.
NeighborConstIterator NeighborsEnd(const Pixel &p) const
End iterator over neighbors of the given pixel.
static const double kCentralPixelSelfTalk
Assumed value for central pixel self-talk.
Defines within it the common (templated) type for muon detector hierarchy components.
double GetCrossTalk(const Pixel &src, const Pixel &dst) const
Returns the cross-talk coefficient for dst seen as a neighbor of src.
void InitPixels()
Initilization and validations related to pixels.
static const char *const kComponentName
PixelGroup::Iterator PixelIterator
Non-const private alias.
std::vector< const Pixel * > NeighborsContainer
Typedef for mdet::Pixel neighbor container.
const PixelGroup & GetPixels() const
Accesses the group of pixels.
const Module & GetModule() const
The module to which this PMT belongs.
const Pixel & ComputePulseDestination(const Pixel &src) const
Computes a destination pixel according to crosstalk effect.
static const unsigned int kNumNeighborsCorner
Number of neighbors for a pixel on the corner of the PMT's cathode. The assumed layout for the neighb...
double GetCrossTalkProportion(const Pixel &src, const Pixel &dst) const
The cross-talk proportion coefficient for dst seen as a neighbor of \ src.
static const unsigned int kNumNeighborsSide
Number of neighbors for a pixel on the side of the PMT's cathode.
PixelGroup::SizeType GetRows() const
Retrieves the number of rows.
Multiple-pixel photo-multiplier tube.
PixelGroup::SizeType GetCols() const
Retrieves the number of columns.
PixelConstIterator PixelsBegin() const
Begin iterator over the contained pixels.
bool IsNeighbor(const Pixel &src, const Pixel &dst) const
Tells whether dst is one of the neighbors of src.
std::map< std::string, std::string > IndexMap
void Update(bool invalidateData, bool invalidateComponents)
Perform update in this component and forward to subcomponents.
int fFirstIdPMT
Minimum id among PMT's ids.
Type
The type of file that we are acutally opening.
PMT(int pId, const det::VManager::IndexMap &parentMap, const Module &parent)
Constructs the tube.
PixelConstIterator PixelsEnd() const
End iterator over the contained pixels.
MComponentGroup< PMT, Pixel, det::ParentCreator >::Type PixelGroup
Type for the set of associated mdet::Pixel.
static const unsigned int kNumNeighborsInside
Number of neighbors for a pixel inside (ie in the middle) the PMT's cathode.
boost::indirect_iterator< NeighborsContainer::const_iterator > NeighborConstIterator
Convenience typedef for iteration over neighbors.
static const char *const kComponentId
boost::indirect_iterator< NeighborsContainer::const_iterator > NeighborConstIterator
Convenience typedef for iteration over neighbors.