CounterSimData.h
Go to the documentation of this file.
1 #ifndef _mevt_CounterSimData_h_
2 #define _mevt_CounterSimData_h_
3 
4 #include <utl/ShadowPtr.h>
5 #include <utl/Particle.h>
6 
7 #include <list>
8 #include <boost/iterator/indirect_iterator.hpp>
9 
10 
11 namespace mevt {
12 
13  class Counter;
14 
15 
26 
27  private:
29  typedef std::list<GrdParticlePtr> InternalGrdParticleContainer;
30  typedef InternalGrdParticleContainer::iterator InternalGrdParticleIterator;
31  typedef InternalGrdParticleContainer::const_iterator InternalConstGrdParticleIterator;
32 
33  public:
34  typedef boost::indirect_iterator<InternalGrdParticleIterator, utl::Particle&> GrdParticleIterator;
35  typedef boost::indirect_iterator<InternalConstGrdParticleIterator, const utl::Particle&> ConstGrdParticleIterator;
36 
38 
40 
42 
44 
46 
47  void ClearGrdParticleList();
48 
49  unsigned int GetNumberOfGrdParticles() const;
50 
51  private:
53  typedef std::list<UGrdParticlePtr> InternalUGrdParticleContainer;
54  typedef InternalUGrdParticleContainer::iterator InternalUGrdParticleIterator;
55  typedef InternalUGrdParticleContainer::const_iterator InternalConstUGrdParticleIterator;
56 
57  public:
58  typedef boost::indirect_iterator<InternalUGrdParticleIterator, utl::Particle&> UGrdParticleIterator;
59  typedef boost::indirect_iterator<InternalConstUGrdParticleIterator, const utl::Particle&> ConstUGrdParticleIterator;
60 
62 
64 
66 
68 
70 
71  void ClearUGrdParticleList();
72 
73  unsigned int GetNumberOfUGrdParticles() const;
74 
75  //to conform with SdStation a member is added that indicates whether a counter is inside the minimum radius to the core and therefore does not receive particles from the ShowerRegenerator
76  bool IsInsideMinRadius() const { return fHoleCounter; }
77 
78  void SetIsInsideMinRadius(const bool isIn = true) { fHoleCounter = isIn; }
79 
80  private:
83 
84  unsigned int fNGrdParticles = 0;
86 
87  unsigned int fNUGrdParticles = 0;
89 
90  bool fHoleCounter = false;
91 
95  friend class Counter;
96 
104  /*
105  * The usual case is just to have primitive types
106  * in here. So this class is like POD but a little
107  * spiced in the sense that its construction is
108  * privileged.
109  */
110 
111  };
112 
113 }
114 
115 
116 #endif
boost::indirect_iterator< InternalGrdParticleIterator, utl::Particle & > GrdParticleIterator
pointer with built-in initialization, deletion, deep copying
Definition: ShadowPtr.h:163
UGrdParticleIterator UGrdParticlesBegin()
void AddUGrdParticle(const utl::Particle &particle)
utl::ShadowPtr< utl::Particle > UGrdParticlePtr
InternalUGrdParticleContainer::iterator InternalUGrdParticleIterator
GrdParticleIterator GrdParticlesBegin()
UGrdParticleIterator UGrdParticlesEnd()
Counter level event data.
Describes a particle for Simulation.
Definition: Particle.h:26
std::list< GrdParticlePtr > InternalGrdParticleContainer
ConstUGrdParticleIterator UGrdParticlesBegin() const
InternalGrdParticleContainer::iterator InternalGrdParticleIterator
unsigned int GetNumberOfUGrdParticles() const
bool IsInsideMinRadius() const
ConstGrdParticleIterator GrdParticlesEnd() const
InternalGrdParticleContainer::const_iterator InternalConstGrdParticleIterator
boost::indirect_iterator< InternalConstUGrdParticleIterator, const utl::Particle & > ConstUGrdParticleIterator
ConstUGrdParticleIterator UGrdParticlesEnd() const
ConstGrdParticleIterator GrdParticlesBegin() const
utl::ShadowPtr< utl::Particle > GrdParticlePtr
void SetIsInsideMinRadius(const bool isIn=true)
unsigned int fNUGrdParticles
InternalUGrdParticleContainer fUGrdParticles
Counter level simulation data.
boost::indirect_iterator< InternalUGrdParticleIterator, utl::Particle & > UGrdParticleIterator
unsigned int fNGrdParticles
void AddGrdParticle(const utl::Particle &particle)
struct particle_info particle[80]
boost::indirect_iterator< InternalConstGrdParticleIterator, const utl::Particle & > ConstGrdParticleIterator
std::list< UGrdParticlePtr > InternalUGrdParticleContainer
InternalGrdParticleContainer fGrdParticles
GrdParticleIterator GrdParticlesEnd()
InternalUGrdParticleContainer::const_iterator InternalConstUGrdParticleIterator
unsigned int GetNumberOfGrdParticles() const

, generated on Tue Sep 26 2023.