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/claws/dataobjects/CLAWSSimHit.h>
18 #include <beast/claws/simulation/SensorTraversal.h>
19 #include <G4EmSaturation.hh>
20 
21 #include <stack>
22 namespace Belle2 {
28  namespace claws {
29 
31  class SensitiveDetector: public Simulation::SensitiveDetectorBase {
32  public:
35  protected:
40  bool step(G4Step* step, G4TouchableHistory*) override;
41  private:
43  bool finishTrack();
44 
46  G4EmSaturation* m_saturationEngine;
47 
49  StoreArray<MCParticle> m_mcParticles;
51  StoreArray<CLAWSSimHit> m_simHits;
53  RelationArray m_relMCSimHit{m_mcParticles, m_simHits};
54 
56  std::stack<SensorTraversal> m_tracks;
57  };
58 
59  } //claw namespace
61 } //Belle2 namespace
62 
63 #endif
Belle2::claws::SensitiveDetector::m_saturationEngine
G4EmSaturation * m_saturationEngine
needed to call Birk's law
Definition: SensitiveDetector.h:54
Belle2::claws::SensitiveDetector::m_tracks
std::stack< SensorTraversal > m_tracks
Stack of tracks to keep track of particles.
Definition: SensitiveDetector.h:64
Belle2::claws::SensitiveDetector::SensitiveDetector
SensitiveDetector()
Constructor.
Definition: SensitiveDetector.cc:41
Belle2::claws::SensitiveDetector::m_simHits
StoreArray< CLAWSSimHit > m_simHits
store array of the SimHits
Definition: SensitiveDetector.h:59
Belle2::claws::SensitiveDetector::m_mcParticles
StoreArray< MCParticle > m_mcParticles
store array of the MCParticles
Definition: SensitiveDetector.h:57
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::claws::SensitiveDetector::m_relMCSimHit
RelationArray m_relMCSimHit
relation array of the MCParticle -> SimHit relation
Definition: SensitiveDetector.h:61
Belle2::PXD::SensitiveDetector
VXD::SensitiveDetector< PXDSimHit, PXDTrueHit > SensitiveDetector
The PXD Sensitive Detector class.
Definition: SensitiveDetector.h:36
Belle2::claws::SensitiveDetector::finishTrack
bool finishTrack()
finish a track
Definition: SensitiveDetector.cc:132
Belle2::claws::SensitiveDetector::step
bool step(G4Step *step, G4TouchableHistory *) override
Step processing method.
Definition: SensitiveDetector.cc:62