Belle II Software  release-05-02-19
TpcDigitizerModule.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2014 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Igal Jaegle *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #ifndef TPCDIGITIZERMODULE_H
12 #define TPCDIGITIZERMODULE_H
13 
14 #include <framework/core/Module.h>
15 #include <framework/datastore/StoreArray.h>
16 #include <beast/microtpc/dataobjects/MicrotpcHit.h>
17 
18 #include <TF1.h>
19 #include <TVector3.h>
20 #include <TVector2.h>
21 
22 #include <vector>
23 #include <map>
24 #include <tuple>
25 
27 constexpr int MAXSIZE = 26880;
29 constexpr int MAXtSIZE = 10000;
30 
31 namespace Belle2 {
36  namespace microtpc {
43  class TpcDigitizerModule : public Module {
44 
45  public:
46 
51 
53  virtual ~TpcDigitizerModule();
54 
58  virtual void initialize() override;
59 
62  virtual void beginRun() override;
63 
67  virtual void event() override;
68 
71  virtual void endRun() override;
72 
75  virtual void terminate() override;
76 
77 
78  private:
79 
80  StoreArray<MicrotpcHit> m_microtpcHit;
83  void getXMLData();
84 
86  //bool Pixelization(int);
87  void Pixelization();
88 
92  /*TLorentzVector Drift(
93  double x1, double y1, double z1,
94  double st, double sl, double vd
95  );*/
96  virtual void Drift(double, double, double, double&, double&, double&, double&, double, double, double);
97 
99  TVector2 GEMGeo1(double x1, double y1);
100 
102  TVector2 GEMGeo2(double x1, double y1);
103 
105  Int_t m_phase;
111  double m_GEMGain1;
115  double m_ScaleGain1;
117  double m_GEMGain2;
121  double m_ScaleGain2;
123  double m_GEMpitch;
135  double m_ChipRowY;
141  double m_TOTA1;
143  double m_TOTB1;
145  double m_TOTC1;
147  double m_TOTQ1;
149  double m_TOTA2;
151  double m_TOTB2;
153  double m_TOTC2;
155  double m_TOTQ2;
157  double m_z_DG;
159  double m_z_TG;
161  double m_z_CG;
163  double m_Dt_DG;
165  double m_Dt_TG;
167  double m_Dt_CG;
169  double m_Dl_DG;
171  double m_Dl_TG;
173  double m_Dl_CG;
175  double m_v_DG;
177  double m_v_TG;
179  double m_v_CG;
181  double m_Workfct;
183  double m_Fanofac;
185  double m_GasAbs;
187  //int m_dchip[10][80][336][MAXtSIZE];
188  std::map<std::tuple<int, int, int>, int> m_dchip;
190  std::map<std::tuple<int, int>, int> m_dchip_map;
192  std::map<std::tuple<int, int>, int> m_dchip_pdg_map;
194  std::map<std::tuple<int, int>, int> m_dchip_trkID_map;
196  std::map<std::tuple<int, int>, int> m_dchip_detNb_map;
200  int m_nTPC = 0;
202  std::vector<TVector3> m_TPCCenter;
204  std::vector<float> m_TPCAngleX;
206  std::vector<float> m_TPCAngleZ;
207 
209  double m_lowerTimingCut = 0;
211  double m_upperTimingCut = 1000000;
212 
214  int olddetNb = -1;
215 
217  int oldtrkID = -1;
218 
219  };
220 
221  }
223 }
224 
225 #endif /* TPCDIGITIZERMODULE_H */
Belle2::microtpc::TpcDigitizerModule::m_lowerTimingCut
double m_lowerTimingCut
Lower timing cut.
Definition: TpcDigitizerModule.h:209
Belle2::microtpc::TpcDigitizerModule::m_z_DG
double m_z_DG
z drift gap
Definition: TpcDigitizerModule.h:157
Belle2::microtpc::TpcDigitizerModule::m_upperTimingCut
double m_upperTimingCut
Upper timing cut.
Definition: TpcDigitizerModule.h:211
Belle2::microtpc::TpcDigitizerModule::fctToT_Calib2
TF1 * fctToT_Calib2
Define ToT calib 2.
Definition: TpcDigitizerModule.h:109
Belle2::microtpc::TpcDigitizerModule::m_Dl_TG
double m_Dl_TG
Longitudinal diffusion in transfer gap.
Definition: TpcDigitizerModule.h:171
Belle2::microtpc::TpcDigitizerModule::m_ScaleGain1
double m_ScaleGain1
Scale GEM 1 gain.
Definition: TpcDigitizerModule.h:115
Belle2::microtpc::TpcDigitizerModule::m_TOTC2
double m_TOTC2
TOT factor C2.
Definition: TpcDigitizerModule.h:153
Belle2::microtpc::TpcDigitizerModule::m_Dl_DG
double m_Dl_DG
Longitudinal diffusion in drift gap.
Definition: TpcDigitizerModule.h:169
Belle2::microtpc::TpcDigitizerModule::m_TOTQ2
double m_TOTQ2
TOT factor Q2.
Definition: TpcDigitizerModule.h:155
Belle2::microtpc::TpcDigitizerModule::endRun
virtual void endRun() override
This method is called if the current run ends.
Definition: TpcDigitizerModule.cc:747
Belle2::microtpc::TpcDigitizerModule::m_PixelThreshold
int m_PixelThreshold
Pixel threshold.
Definition: TpcDigitizerModule.h:125
Belle2::microtpc::TpcDigitizerModule::m_TOTB2
double m_TOTB2
TOT factor B2.
Definition: TpcDigitizerModule.h:151
Belle2::microtpc::TpcDigitizerModule::m_phase
Int_t m_phase
Phase.
Definition: TpcDigitizerModule.h:105
Belle2::microtpc::TpcDigitizerModule::m_ChipRowNb
int m_ChipRowNb
Chip row number.
Definition: TpcDigitizerModule.h:131
Belle2::microtpc::TpcDigitizerModule::Drift
virtual void Drift(double, double, double, double &, double &, double &, double &, double, double, double)
Drift ionization Make the ionization drifting from (x,y,z) to GEM1 top plane.
Definition: TpcDigitizerModule.cc:324
Belle2::microtpc::TpcDigitizerModule::m_TPCCenter
std::vector< TVector3 > m_TPCCenter
TPC coordinate.
Definition: TpcDigitizerModule.h:202
Belle2::microtpc::TpcDigitizerModule::m_PixelThresholdRMS
int m_PixelThresholdRMS
Pixel threshold RMS.
Definition: TpcDigitizerModule.h:127
Belle2::microtpc::TpcDigitizerModule::m_GEMGainRMS2
double m_GEMGainRMS2
GEM 2 RMS.
Definition: TpcDigitizerModule.h:119
Belle2::microtpc::TpcDigitizerModule::m_GasAbs
double m_GasAbs
Absorption in gas.
Definition: TpcDigitizerModule.h:185
Belle2::microtpc::TpcDigitizerModule::m_TPCAngleZ
std::vector< float > m_TPCAngleZ
TPC angle Z.
Definition: TpcDigitizerModule.h:206
Belle2::microtpc::TpcDigitizerModule
Micro TPC digitizer.
Definition: TpcDigitizerModule.h:43
Belle2::microtpc::TpcDigitizerModule::m_z_CG
double m_z_CG
z collection gap
Definition: TpcDigitizerModule.h:161
Belle2::microtpc::TpcDigitizerModule::m_GEMGain1
double m_GEMGain1
GEM 1 gain.
Definition: TpcDigitizerModule.h:111
Belle2::microtpc::TpcDigitizerModule::Pixelization
void Pixelization()
Produces the pixelization.
Definition: TpcDigitizerModule.cc:376
Belle2::microtpc::TpcDigitizerModule::GEMGeo1
TVector2 GEMGeo1(double x1, double y1)
GEMazition of GEM1.
Definition: TpcDigitizerModule.cc:341
Belle2::Module
Base class for Modules.
Definition: Module.h:74
Belle2::microtpc::TpcDigitizerModule::initialize
virtual void initialize() override
Initialize the Module.
Definition: TpcDigitizerModule.cc:51
Belle2::microtpc::TpcDigitizerModule::m_Dt_DG
double m_Dt_DG
Transverse diffusion in drift gap.
Definition: TpcDigitizerModule.h:163
Belle2::microtpc::TpcDigitizerModule::beginRun
virtual void beginRun() override
Called when entering a new run.
Definition: TpcDigitizerModule.cc:79
Belle2::microtpc::TpcDigitizerModule::m_TOTA2
double m_TOTA2
TOT factor A2.
Definition: TpcDigitizerModule.h:149
Belle2::microtpc::TpcDigitizerModule::m_GEMGainRMS1
double m_GEMGainRMS1
GEM 1 RMS.
Definition: TpcDigitizerModule.h:113
Belle2::microtpc::TpcDigitizerModule::oldtrkID
int oldtrkID
Old track ID.
Definition: TpcDigitizerModule.h:217
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::microtpc::TpcDigitizerModule::m_v_DG
double m_v_DG
Drift velocity in drift gap.
Definition: TpcDigitizerModule.h:175
Belle2::microtpc::TpcDigitizerModule::m_dchip_pdg_map
std::map< std::tuple< int, int >, int > m_dchip_pdg_map
chip pdg map arrays
Definition: TpcDigitizerModule.h:192
Belle2::microtpc::TpcDigitizerModule::m_TOTQ1
double m_TOTQ1
TOT factor Q1.
Definition: TpcDigitizerModule.h:147
Belle2::microtpc::TpcDigitizerModule::m_Fanofac
double m_Fanofac
Fano factor.
Definition: TpcDigitizerModule.h:183
Belle2::microtpc::TpcDigitizerModule::TpcDigitizerModule
TpcDigitizerModule()
Constructor: Sets the description, the properties and the parameters of the module.
Definition: TpcDigitizerModule.cc:37
Belle2::microtpc::TpcDigitizerModule::m_ScaleGain2
double m_ScaleGain2
Scale GEM 2 gain.
Definition: TpcDigitizerModule.h:121
Belle2::microtpc::TpcDigitizerModule::m_PixelTimeBin
double m_PixelTimeBin
Pixel time bin.
Definition: TpcDigitizerModule.h:139
Belle2::microtpc::TpcDigitizerModule::m_LookAtRec
int m_LookAtRec
Flag 0/1 only look at nuclear recoils.
Definition: TpcDigitizerModule.h:198
Belle2::microtpc::TpcDigitizerModule::m_Dt_CG
double m_Dt_CG
Transverse diffusion in collection gap.
Definition: TpcDigitizerModule.h:167
Belle2::microtpc::TpcDigitizerModule::m_TOTC1
double m_TOTC1
TOT factor C1.
Definition: TpcDigitizerModule.h:145
Belle2::microtpc::TpcDigitizerModule::m_dchip_map
std::map< std::tuple< int, int >, int > m_dchip_map
chip map arrays
Definition: TpcDigitizerModule.h:190
Belle2::microtpc::TpcDigitizerModule::m_TOTB1
double m_TOTB1
TOT factor B1.
Definition: TpcDigitizerModule.h:143
Belle2::microtpc::TpcDigitizerModule::olddetNb
int olddetNb
Old detector counter.
Definition: TpcDigitizerModule.h:214
Belle2::microtpc::TpcDigitizerModule::m_v_CG
double m_v_CG
Drift velocity in collection gap.
Definition: TpcDigitizerModule.h:179
Belle2::microtpc::TpcDigitizerModule::m_nTPC
int m_nTPC
number of detectors.
Definition: TpcDigitizerModule.h:200
Belle2::microtpc::TpcDigitizerModule::m_v_TG
double m_v_TG
Drift velocity in transfer gap.
Definition: TpcDigitizerModule.h:177
Belle2::microtpc::TpcDigitizerModule::GEMGeo2
TVector2 GEMGeo2(double x1, double y1)
GEMazition of GEM2.
Definition: TpcDigitizerModule.cc:356
Belle2::microtpc::TpcDigitizerModule::m_Dt_TG
double m_Dt_TG
Transverse diffusion in transfer gap.
Definition: TpcDigitizerModule.h:165
Belle2::microtpc::TpcDigitizerModule::m_GEMGain2
double m_GEMGain2
GEM 2 gain.
Definition: TpcDigitizerModule.h:117
Belle2::microtpc::TpcDigitizerModule::m_Workfct
double m_Workfct
Work function.
Definition: TpcDigitizerModule.h:181
Belle2::microtpc::TpcDigitizerModule::m_TPCAngleX
std::vector< float > m_TPCAngleX
TPC angle X.
Definition: TpcDigitizerModule.h:204
Belle2::microtpc::TpcDigitizerModule::m_dchip_detNb_map
std::map< std::tuple< int, int >, int > m_dchip_detNb_map
chip Nb map arrays
Definition: TpcDigitizerModule.h:196
Belle2::microtpc::TpcDigitizerModule::m_dchip_trkID_map
std::map< std::tuple< int, int >, int > m_dchip_trkID_map
chip track ID map arrays
Definition: TpcDigitizerModule.h:194
Belle2::microtpc::TpcDigitizerModule::fctToT_Calib1
TF1 * fctToT_Calib1
Define ToT calib 1.
Definition: TpcDigitizerModule.h:107
Belle2::microtpc::TpcDigitizerModule::m_TOTA1
double m_TOTA1
TOT factor A1.
Definition: TpcDigitizerModule.h:141
Belle2::StoreArray
Accessor to arrays stored in the data store.
Definition: ECLMatchingPerformanceExpertModule.h:33
Belle2::microtpc::TpcDigitizerModule::m_Dl_CG
double m_Dl_CG
Longitudinal diffusion in collection gap.
Definition: TpcDigitizerModule.h:173
Belle2::microtpc::TpcDigitizerModule::m_ChipRowY
double m_ChipRowY
Chip row y dimension.
Definition: TpcDigitizerModule.h:135
Belle2::microtpc::TpcDigitizerModule::event
virtual void event() override
This method is the core of the module.
Definition: TpcDigitizerModule.cc:83
Belle2::microtpc::TpcDigitizerModule::terminate
virtual void terminate() override
This method is called at the end of the event processing.
Definition: TpcDigitizerModule.cc:751
Belle2::microtpc::TpcDigitizerModule::m_z_TG
double m_z_TG
z transfer gap
Definition: TpcDigitizerModule.h:159
Belle2::microtpc::TpcDigitizerModule::m_ChipColumnNb
int m_ChipColumnNb
Chip column number.
Definition: TpcDigitizerModule.h:129
Belle2::microtpc::TpcDigitizerModule::m_GEMpitch
double m_GEMpitch
GEM pitch.
Definition: TpcDigitizerModule.h:123
Belle2::microtpc::TpcDigitizerModule::m_ChipColumnX
double m_ChipColumnX
Chip column x dimension.
Definition: TpcDigitizerModule.h:133
Belle2::microtpc::TpcDigitizerModule::getXMLData
void getXMLData()
Array for MicrotpcHit.
Definition: TpcDigitizerModule.cc:686
Belle2::microtpc::TpcDigitizerModule::m_PixelTimeBinNb
int m_PixelTimeBinNb
Pixel time number of bin.
Definition: TpcDigitizerModule.h:137
Belle2::microtpc::TpcDigitizerModule::m_dchip
std::map< std::tuple< int, int, int >, int > m_dchip
chip store arrays
Definition: TpcDigitizerModule.h:188