SiPMArray.h
Go to the documentation of this file.
1 #ifndef _mdet_SiPMArray_h
2 #define _mdet_SiPMArray_h
3 
4 #include <mdet/MComponentGroup.h>
5 #include <mdet/MDetectorComponent.h>
6 //
7 
8 #include <mdet/SiPM.h>
9 //
10 #include <utl/ShadowPtr_fwd.h> // just forward it, to declare friendship.
11 //
12 #include <boost/iterator/indirect_iterator.hpp>
13 
14 namespace mdet {
15 
16  class Module;
17 
18  class SiPM;
19 
36  class SiPMArray :
37  public MDetectorComponent<SiPMArray>::Type {
38  private:
47  typedef SiPMGroup::Iterator SiPMIterator;
48 
49  public:
50  typedef SiPMGroup::ConstIterator SiPMConstIterator;
51 
52  static const char* const kComponentName;
53 
54  static const char* const kComponentId;
55 
60  return fSiPMs.Begin();
61  }
66  return fSiPMs.End();
67  }
68  const SiPM& ComputePulseDestination(const SiPM& src) const;
69 
70  const Module& GetModule() const;
71  private:
76  void Update(bool invalidateData, bool invalidateComponents);
77 
78  SiPMArray(int pId, const det::VManager::IndexMap& parentMap, const Module& parent);
82  void InitSiPMs();
86  ~SiPMArray() { }
90  const SiPMGroup& GetSiPMs() const {
91  return fSiPMs;
92  }
96  SiPMGroup::SizeType GetRows() const;
100  SiPMGroup::SizeType GetCols() const;
106  friend class Module;
113  friend class utl::ShadowPtr<SiPMArray>;
114 
116 
117  const Module& fModule;
122 
123  };
124 
125 }
126 
127 #endif // _mdet_SiPMArray_h
128 
SiPMConstIterator SiPMsBegin() const
Begin iterator over the contained sipms.
Definition: SiPMArray.h:59
void InitSiPMs()
Initilization and validations related to sipms.
Definition: SiPMArray.cc:121
pointer with built-in initialization, deletion, deep copying
Definition: ShadowPtr.h:163
SiPMGroup fSiPMs
Definition: SiPMArray.h:115
Defines within it the common (templated) type for muon detector hierarchy components groups...
SiPMGroup::SizeType GetRows() const
Retrieves the number of rows.
Definition: SiPMArray.cc:77
Defines within it the common (templated) type for muon detector hierarchy components.
SiPMConstIterator SiPMsEnd() const
End iterator over the contained sipms.
Definition: SiPMArray.h:65
~SiPMArray()
Destructor (!).
Definition: SiPMArray.h:86
static const char *const kComponentName
Definition: SiPMArray.h:52
const Module & GetModule() const
Definition: SiPMArray.cc:104
64 SiPM Array
Definition: SiPMArray.h:36
MComponentGroup< SiPMArray, SiPM, det::ParentCreator >::Type SiPMGroup
Type for the set of associated mdet::SiPM.
Definition: SiPMArray.h:43
Array of Scintillator.
SiPMGroup::SizeType GetCols() const
Retrieves the number of columns.
Definition: SiPMArray.cc:96
SiPMGroup::ConstIterator SiPMConstIterator
Definition: SiPMArray.h:50
SiPMGroup::Iterator SiPMIterator
Non-const private alias.
Definition: SiPMArray.h:47
SiPMArray(int pId, const det::VManager::IndexMap &parentMap, const Module &parent)
Definition: SiPMArray.cc:111
std::map< std::string, std::string > IndexMap
Definition: VManager.h:133
static const char *const kComponentId
Definition: SiPMArray.h:54
void Update(bool invalidateData, bool invalidateComponents)
Perform update in this component and forward to subcomponents.
Definition: SiPMArray.cc:191
const Module & fModule
Definition: SiPMArray.h:117
const SiPM & ComputePulseDestination(const SiPM &src) const
int fFirstIdSiPMArray
Minimum id among SiPM Array ids.
Definition: SiPMArray.h:121
Type
The type of file that we are acutally opening.
Definition: IoCodes.h:33
const SiPMGroup & GetSiPMs() const
Accesses the group of sipms.
Definition: SiPMArray.h:90

, generated on Tue Sep 26 2023.