Belle II Software  release-08-01-10
ARICHBackgroundModule.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 #pragma once
9 
10 #include <framework/core/Module.h>
11 #include <framework/datastore/StoreArray.h>
12 #include <framework/database/DBObjPtr.h>
13 
14 #include <arich/dbobjects/ARICHGeometryConfig.h>
15 
16 #include <string>
17 
18 #include <Math/Vector3D.h>
19 #include <TFile.h>
20 #include <TTree.h>
21 
22 namespace Belle2 {
27  class MCParticle;
28  class ARICHSimHit;
29  class BeamBackHit;
30 
31  namespace arich {
32 
34 
38  class ARICHBackgroundModule : public Module {
39 
40  public:
41 
42 
45 
47  virtual ~ARICHBackgroundModule();
48 
54  virtual void initialize();
55 
61  virtual void beginRun();
62 
68  virtual void event();
69 
75  virtual void terminate();
76 
80  void printModuleParams() const;
81 
82  private:
83 
84  std::string m_filename;
85  int m_bkgTag;
87  ROOT::Math::XYZVector m_phpos;
88  ROOT::Math::XYZVector m_phmom;
89  ROOT::Math::XYZVector m_phVtx;
90  ROOT::Math::XYZVector m_phMmom;
91  ROOT::Math::XYZVector m_phMvtx;
92  ROOT::Math::XYZVector m_phPvtx;
93  ROOT::Math::XYZVector m_phPmom;
94  ROOT::Math::XYZVector m_phGMvtx;
95  ROOT::Math::XYZVector m_phGMmom;
96  ROOT::Math::XYZVector m_modOrig;
97  int m_source;
98  int m_phPDG;
99  int m_phMPDG;
100  int m_phPPDG;
101  int m_phGMPDG;
102  int m_type;
103  double m_edep;
104  double m_ttime;
106  double m_phnw;
107  double m_trackLength;
108  double m_energy;
109  TFile* m_outputFile;
110  TTree* m_outputTree;
117  };
118 
119  } // arich namespace
121 } // Belle2 namespace
Class for accessing objects in the database.
Definition: DBObjPtr.h:21
Base class for Modules.
Definition: Module.h:72
virtual void event()
Event processor.
ROOT::Math::XYZVector m_phPvtx
primary particle vertex
StoreArray< BeamBackHit > m_BeamBackHits
StoreArray for BeamBackHits.
virtual void initialize()
Initialize the Module.
virtual void beginRun()
Called when entering a new run.
int m_source
hit source (RBB_HER, ...)
DBObjPtr< ARICHGeometryConfig > m_arichgp
Geometry parametrization.
int m_phMPDG
hit particle mother PDG code
ROOT::Math::XYZVector m_phVtx
hit particle vertex position
ROOT::Math::XYZVector m_phPmom
primary particle momentum
StoreArray< ARICHSimHit > m_ARICHSimHits
StoreArray for ARICHSimHits.
int m_phGMPDG
hit particle grand mother PDG code
ROOT::Math::XYZVector m_phmom
hit momentum
virtual void terminate()
Termination action.
ROOT::Math::XYZVector m_phGMvtx
hit particle grand mother vertex
ROOT::Math::XYZVector m_phpos
hit position
int m_type
hit particle type; 0 hit in board, 1 hit in HAPD bottom, 2 photon hit
int m_phPPDG
hit particle primary PDG code
double m_trackLength
particle track lenght in hit volume
void printModuleParams() const
Prints module parameters.
ROOT::Math::XYZVector m_modOrig
HAPD module position.
std::string m_filename
Output file name.
ROOT::Math::XYZVector m_phGMmom
hit particle grand mother momentum
StoreArray< MCParticle > m_MCParticles
StoreArray for MCParticles.
ROOT::Math::XYZVector m_phMvtx
hit particle mother vertex
ROOT::Math::XYZVector m_phMmom
hit particle mother momentum
Abstract base class for different kinds of events.