Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/advanced/HGCal_testbeam/include/EventAction.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /examples/advanced/HGCal_testbeam/include/EventAction.hh (Version 11.3.0) and /examples/advanced/HGCal_testbeam/include/EventAction.hh (Version 11.0)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 #ifndef EVENTACTION_HH                             26 #ifndef EVENTACTION_HH
 27 #define EVENTACTION_HH                             27 #define EVENTACTION_HH
 28                                                    28 
 29 #include "G4UserEventAction.hh"                    29 #include "G4UserEventAction.hh"
 30 #include "G4Types.hh"                              30 #include "G4Types.hh"
 31                                                    31 
 32 #include <vector>                                  32 #include <vector>
 33                                                    33 
 34 class G4GenericMessenger;                          34 class G4GenericMessenger;
 35                                                    35 
 36 /**                                                36 /**
 37  * @brief Event action class                       37  * @brief Event action class
 38  *                                                 38  *
 39  * Fills ntuples with information about hits i     39  * Fills ntuples with information about hits in sensitive detectors.
 40  *                                                 40  *
 41  */                                                41  */
 42                                                    42 
 43 class EventAction : public G4UserEventAction {     43 class EventAction : public G4UserEventAction {
 44 public:                                            44 public:
 45   EventAction();                                   45   EventAction();
 46   virtual ~EventAction();                          46   virtual ~EventAction();
 47                                                    47 
 48   virtual void BeginOfEventAction(const G4Even     48   virtual void BeginOfEventAction(const G4Event *event);
 49   virtual void EndOfEventAction(const G4Event      49   virtual void EndOfEventAction(const G4Event *event);
 50                                                    50 
 51   /// Vector of primary particles in an event:     51   /// Vector of primary particles in an event: PDG type
 52   std::vector<G4int> fPrimariesPDG;                52   std::vector<G4int> fPrimariesPDG;
 53   /// Vector of primary particles in an event:     53   /// Vector of primary particles in an event: particle energy (in GeV)
 54   std::vector<G4double> fPrimariesEnergy;          54   std::vector<G4double> fPrimariesEnergy;
 55   /// Vector of primary particles in an event:     55   /// Vector of primary particles in an event: vertex position x (in cm)
 56   std::vector<G4double> fPrimariesX;               56   std::vector<G4double> fPrimariesX;
 57   /// Vector of primary particles in an event:     57   /// Vector of primary particles in an event: vertex position y (in cm)
 58   std::vector<G4double> fPrimariesY;               58   std::vector<G4double> fPrimariesY;
 59   /// Vector of primary particles in an event:     59   /// Vector of primary particles in an event: vertex position z (in cm)
 60   std::vector<G4double> fPrimariesZ;               60   std::vector<G4double> fPrimariesZ;
 61                                                    61 
 62   /// Vector of hits in silicon sensors: hit I     62   /// Vector of hits in silicon sensors: hit ID
 63   std::vector<G4int> fSiHitsID;                    63   std::vector<G4int> fSiHitsID;
 64   /// Vector of hits in silicon sensors: hit p     64   /// Vector of hits in silicon sensors: hit position x (in cm)
 65   std::vector<G4double> fSiHitsX;                  65   std::vector<G4double> fSiHitsX;
 66   /// Vector of hits in silicon sensors: hit p     66   /// Vector of hits in silicon sensors: hit position y (in cm)
 67   std::vector<G4double> fSiHitsY;                  67   std::vector<G4double> fSiHitsY;
 68   /// Vector of hits in silicon sensors: hit p     68   /// Vector of hits in silicon sensors: hit position z (in cm)
 69   std::vector<G4double> fSiHitsZ;                  69   std::vector<G4double> fSiHitsZ;
 70   /// Vector of hits in silicon sensors: hit e     70   /// Vector of hits in silicon sensors: hit energy (in keV)
 71   std::vector<G4double> fSiHitsEdep;               71   std::vector<G4double> fSiHitsEdep;
 72   /// Vector of hits in silicon sensors: hit n     72   /// Vector of hits in silicon sensors: hit non-ionizing energy (in keV)
 73   std::vector<G4double> fSiHitsEdepNonIonising     73   std::vector<G4double> fSiHitsEdepNonIonising;
 74   /// Vector of hits in silicon sensors: hit t     74   /// Vector of hits in silicon sensors: hit time of arrival (in ns)
 75   /// calculated as global time of energy depo     75   /// calculated as global time of energy deposit which added to hit energy
 76   /// exceeds the toa threshold (by default th     76   /// exceeds the toa threshold (by default threshold is 0, so it is the first
 77   /// deposit)                                     77   /// deposit)
 78   std::vector<G4double> fSiHitsTOA;                78   std::vector<G4double> fSiHitsTOA;
 79   /// Vector of hits in silicon sensors: hit t     79   /// Vector of hits in silicon sensors: hit time of last arrival (in ns)
 80   /// calculated as global time of energy depo     80   /// calculated as global time of energy deposit which is the last deposit
 81   /// that fits within the digitisation time w     81   /// that fits within the digitisation time window (by default window is
 82   /// undefined, so it is the last deposit)        82   /// undefined, so it is the last deposit)
 83   std::vector<G4double> fSiHitsTOAlast;            83   std::vector<G4double> fSiHitsTOAlast;
 84   /// Vector of hits in silicon sensors: hit t     84   /// Vector of hits in silicon sensors: hit type
 85   /// Simulation defines only hits of type 0 (     85   /// Simulation defines only hits of type 0 (hexagonal cells, no calibration or
 86   /// edge cell is constructed)                    86   /// edge cell is constructed)
 87   std::vector<G4int> fSiHitsType;                  87   std::vector<G4int> fSiHitsType;
 88                                                    88 
 89   /// Vector of hits in SiPM: hit ID               89   /// Vector of hits in SiPM: hit ID
 90   std::vector<G4int> fSiPMhitsID;                  90   std::vector<G4int> fSiPMhitsID;
 91   /// Vector of hits in SiPM: hit position x (     91   /// Vector of hits in SiPM: hit position x (in cm)
 92   std::vector<G4double> fSiPMhitsX;                92   std::vector<G4double> fSiPMhitsX;
 93   /// Vector of hits in SiPM: hit position y (     93   /// Vector of hits in SiPM: hit position y (in cm)
 94   std::vector<G4double> fSiPMhitsY;                94   std::vector<G4double> fSiPMhitsY;
 95   /// Vector of hits in SiPM: hit position z (     95   /// Vector of hits in SiPM: hit position z (in cm)
 96   std::vector<G4double> fSiPMhitsZ;                96   std::vector<G4double> fSiPMhitsZ;
 97   /// Vector of hits in SiPM: hit energy (in k     97   /// Vector of hits in SiPM: hit energy (in keV)
 98   std::vector<G4double> fSiPMhitsEdep;             98   std::vector<G4double> fSiPMhitsEdep;
 99   /// Vector of hits in SiPM: hit non-ionizing     99   /// Vector of hits in SiPM: hit non-ionizing energy (in keV)
100   std::vector<G4double> fSiPMhitsEdepNonIonisi    100   std::vector<G4double> fSiPMhitsEdepNonIonising;
101   /// Vector of hits in SiPM: hit time of last    101   /// Vector of hits in SiPM: hit time of last arrival (in ns)
102   /// calculated as global time of energy depo    102   /// calculated as global time of energy deposit which is the last deposit
103   /// that fits within the digitisation time w    103   /// that fits within the digitisation time window (by default window is
104   /// undefined, so it is the last deposit)       104   /// undefined, so it is the last deposit)
105   std::vector<G4double> fSiPMhitsTOA;             105   std::vector<G4double> fSiPMhitsTOA;
106   /// Vector of hits in silicon sensors: hit t    106   /// Vector of hits in silicon sensors: hit type
107   /// Simulation defines only hits of type 1      107   /// Simulation defines only hits of type 1
108   std::vector<G4int> fSiPMhitsType;               108   std::vector<G4int> fSiPMhitsType;
109                                                   109 
110 private:                                          110 private:
111   /// Define UI commands: digitisation of hits    111   /// Define UI commands: digitisation of hits with the time cut on deposits
112   /// (time window), and the energy threshold     112   /// (time window), and the energy threshold for the first deposit counted as
113   /// the time of arrival                         113   /// the time of arrival
114   void DefineCommands();                          114   void DefineCommands();
115   /// Pointer to the messenger for UI commands    115   /// Pointer to the messenger for UI commands
116   G4GenericMessenger *fMessenger = nullptr;       116   G4GenericMessenger *fMessenger = nullptr;
117   /// Time window for hit digitisation (in ns)    117   /// Time window for hit digitisation (in ns)
118   /// By default undefined window indicates th    118   /// By default undefined window indicates the last created deposit will set up
119   /// the time                                    119   /// the time
120   /// Can be changed by the UI command /HGCalT    120   /// Can be changed by the UI command /HGCalTestbeam/hits/timeCut
121   G4double fHitTimeCut = -1;                      121   G4double fHitTimeCut = -1;
122   /// Time of arrival threshold (in keV)          122   /// Time of arrival threshold (in keV)
123   /// Default value of 0 indicates the first c    123   /// Default value of 0 indicates the first created deposit will set up the
124   /// time, independent on the amount of depos    124   /// time, independent on the amount of deposited energy
125   /// Can be changed by the UI command /HGCalT    125   /// Can be changed by the UI command /HGCalTestbeam/hits/toaThreshold
126   G4double fToaThreshold = 0;                     126   G4double fToaThreshold = 0;
127 };                                                127 };
128                                                   128 
129 #endif /* EVENTACTION_HH */                       129 #endif /* EVENTACTION_HH */
130                                                   130