Belle II Software  release-05-01-25
SensitiveDetector.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010-2015 Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Martin Ritter, Igal Jaegle *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #ifndef SENSITIVEDETECTOR_H
12 #define SENSITIVEDETECTOR_H
13 
14 #include <simulation/kernel/SensitiveDetectorBase.h>
15 #include <framework/datastore/StoreArray.h>
16 #include <framework/datastore/RelationArray.h>
17 #include <beast/fangs/dataobjects/FANGSSimHit.h>
18 #include <beast/fangs/simulation/SensorTraversal.h>
19 
20 #include <stack>
21 namespace Belle2 {
27  namespace fangs {
28 
30  class SensitiveDetector: public Simulation::SensitiveDetectorBase {
31  public:
34  protected:
39  bool step(G4Step* step, G4TouchableHistory*) override;
40  private:
42  bool finishTrack();
43 
45  StoreArray<MCParticle> m_mcParticles;
47  StoreArray<FANGSSimHit> m_simHits;
49  RelationArray m_relMCSimHit{m_mcParticles, m_simHits};
50 
52  std::stack<SensorTraversal> m_tracks;
53  };
54 
55  } //claw namespace
57 } //Belle2 namespace
58 
59 #endif
Belle2::fangs::SensitiveDetector::finishTrack
bool finishTrack()
finish a track
Definition: SensitiveDetector.cc:119
Belle2::fangs::SensitiveDetector::m_tracks
std::stack< SensorTraversal > m_tracks
Stack of tracks to keep track of particles.
Definition: SensitiveDetector.h:60
Belle2::fangs::SensitiveDetector::m_simHits
StoreArray< FANGSSimHit > m_simHits
store array of the SimHits
Definition: SensitiveDetector.h:55
Belle2::fangs::SensitiveDetector::m_mcParticles
StoreArray< MCParticle > m_mcParticles
store array of the MCParticles
Definition: SensitiveDetector.h:53
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::fangs::SensitiveDetector::step
bool step(G4Step *step, G4TouchableHistory *) override
Step processing method.
Definition: SensitiveDetector.cc:55
Belle2::PXD::SensitiveDetector
VXD::SensitiveDetector< PXDSimHit, PXDTrueHit > SensitiveDetector
The PXD Sensitive Detector class.
Definition: SensitiveDetector.h:36
Belle2::fangs::SensitiveDetector::SensitiveDetector
SensitiveDetector()
Constructor.
Definition: SensitiveDetector.cc:40
Belle2::fangs::SensitiveDetector::m_relMCSimHit
RelationArray m_relMCSimHit
relation array of the MCParticle -> SimHit relation
Definition: SensitiveDetector.h:57