Belle II Software  release-05-01-25
ARICHGeometryConfig.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Luka Santelj *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <framework/gearbox/GearDir.h>
14 #include "TVector2.h"
15 #include <arich/dbobjects/ARICHGeoHAPD.h>
16 #include <arich/dbobjects/ARICHGeoMerger.h>
17 #include <arich/dbobjects/ARICHGeoCablesEnvelope.h>
18 #include <arich/dbobjects/ARICHGeoCooling.h>
19 #include <arich/dbobjects/ARICHGeoFEBCooling.h>
20 #include <arich/dbobjects/ARICHGeoDetectorPlane.h>
21 #include <arich/dbobjects/ARICHGeoAerogelPlane.h>
22 #include <arich/dbobjects/ARICHGeoMirrors.h>
23 #include <arich/dbobjects/ARICHGeoMasterVolume.h>
24 #include <arich/dbobjects/ARICHGeoSupport.h>
25 #include <arich/dbobjects/ARICHGeoGlobalDisplacement.h>
26 #include <arich/dbobjects/ARICHGeoMirrorDisplacement.h>
27 
28 #define MAX_N_ALAYERS 5
29 #define MAXPTS_QE 100
30 
31 namespace Belle2 {
37 
43 
44  public:
45 
48 
50  explicit ARICHGeometryConfig(const GearDir&);
51 
53  void clear(void);
54 
56  void print(const std::string& title = "ARICH geometry parameters") const;
57 
59  void read(const GearDir& content);
60 
64  static void useBasf2Units() {s_unit = Unit::cm; s_unitName = "cm";}
65 
66 
70  static void useGeantUnits() {s_unit = Unit::mm; s_unitName = "mm";}
71 
72 
74  double getDetectorZPosition() const;
75 
77  int doBeamBackgroundStudy() const;
78 
86  TVector2 getChannelPosition(unsigned moduleID, unsigned xChn, unsigned yChn) const;
87 
93 
99 
104  const ARICHGeoMirrors& getMirrors() const {return m_mirrors;}
105 
111 
117 
122  const ARICHGeoHAPD& getHAPDGeometry() const { return m_hapd; }
123 
128  const ARICHGeoMerger& getMergerGeometry() const { return m_merger; }
129 
135 
140  const ARICHGeoCooling& getCoolingGeometry() const { return m_cooling; }
141 
147 
153 
159 
160 
165  void setAerogelPlane(const ARICHGeoAerogelPlane& aerogelPlane)
166  {
167  m_aerogelPlane = aerogelPlane;
168  }
169 
174  void setDetectorPlane(const ARICHGeoDetectorPlane& detectorPlane)
175  {
176  m_detectorPlane = detectorPlane;
177  }
178 
183  void setMirrors(const ARICHGeoMirrors& mirrors)
184  {
185  m_mirrors = mirrors;
186  }
187 
192  void setMasterVolume(const ARICHGeoMasterVolume& masterVolume)
193  {
194  m_masterVolume = masterVolume;
195  }
196 
201  void setSupportStructure(const ARICHGeoSupport& supportStructure)
202  {
203  m_supportStructure = supportStructure;
204  }
205 
211  {
212  m_globalDispl = displ;
213  }
214 
220  {
221  m_mirrorDispl = displ;
222  }
223 
224  void setUseGlobalDisplacement(bool use)
225  {
226  m_displaceGlobal = use;
227  }
228 
229  void setUseMirrorDisplacement(bool use)
230  {
231  m_displaceMirrors = use;
232  }
233 
234  bool useGlobalDisplacement() const
235  {
236  return m_displaceGlobal;
237  }
238 
239  bool useMirrorDisplacement() const
240  {
241  return m_displaceMirrors;
242  }
243 
244 
245  private:
246 
259  bool m_displaceMirrors = 0;
260  bool m_displaceGlobal = 0;
262  int m_bbstudy = 0;
264  void modulesPosition(const GearDir& content);
266 
269  };
270 
272  {
273  return m_detectorPlane.getPosition().Z() - m_hapd.getModuleSizeZ() / 2.;
274  }
275 
277  {
278  return m_bbstudy;
279  }
280 
282 } // end of namespace Belle2
Belle2::ARICHGeometryConfig
The Class for ARICH Geometry Parameters.
Definition: ARICHGeometryConfig.h:42
Belle2::ARICHGeometryConfig::getFEBCoolingGeometry
const ARICHGeoFEBCooling & getFEBCoolingGeometry() const
Get ARICH FEB cooling system (v2) geometry parameters.
Definition: ARICHGeometryConfig.h:146
Belle2::Unit::cm
static const double cm
Standard units with the value = 1.
Definition: Unit.h:57
Belle2::ARICHGeometryConfig::clear
void clear(void)
Clears.
Belle2::ARICHGeometryConfig::m_hapd
ARICHGeoHAPD m_hapd
HAPD geometry configuration.
Definition: ARICHGeometryConfig.h:252
Belle2::ARICHGeometryConfig::getDetectorPlane
const ARICHGeoDetectorPlane & getDetectorPlane() const
Get geometry configuration of HAPD plane.
Definition: ARICHGeometryConfig.h:92
Belle2::ARICHGeometryConfig::getDetectorZPosition
double getDetectorZPosition() const
get z position of detector plane (starting z of HAPDs)
Definition: ARICHGeometryConfig.h:271
Belle2::ARICHGeometryConfig::doBeamBackgroundStudy
int doBeamBackgroundStudy() const
returns 1 if beam background study (to add additional sensitive modules, detect neutrons,...
Definition: ARICHGeometryConfig.h:276
Belle2::ARICHGeometryConfig::m_masterVolume
ARICHGeoMasterVolume m_masterVolume
master volume geometry configuration
Definition: ARICHGeometryConfig.h:250
Belle2::ARICHGeometryConfig::getMirrorDisplacement
const ARICHGeoMirrorDisplacement & getMirrorDisplacement() const
Get mirror displacement parameters.
Definition: ARICHGeometryConfig.h:158
Belle2::ARICHGeometryConfig::setSupportStructure
void setSupportStructure(const ARICHGeoSupport &supportStructure)
Set support structure geometry configuration.
Definition: ARICHGeometryConfig.h:201
Belle2::ARICHGeometryConfig::m_displaceMirrors
bool m_displaceMirrors
use mirror displacement parameters
Definition: ARICHGeometryConfig.h:259
Belle2::ARICHGeometryConfig::m_cablesenvelope
ARICHGeoCablesEnvelope m_cablesenvelope
ARICH cables envelop geometry configuration.
Definition: ARICHGeometryConfig.h:254
Belle2::ARICHGeometryConfig::m_mirrors
ARICHGeoMirrors m_mirrors
mirrors geometry configuration
Definition: ARICHGeometryConfig.h:249
Belle2::ARICHGeometryConfig::getHAPDGeometry
const ARICHGeoHAPD & getHAPDGeometry() const
Get HAPD geometry parameters.
Definition: ARICHGeometryConfig.h:122
Belle2::ARICHGeometryConfig::useBasf2Units
static void useBasf2Units()
Use basf2 units when returning geometry parameters.
Definition: ARICHGeometryConfig.h:64
Belle2::ARICHGeometryConfig::getCablesEnvelope
const ARICHGeoCablesEnvelope & getCablesEnvelope() const
Get ARICH cables envelop geometry parameters.
Definition: ARICHGeometryConfig.h:134
Belle2::ARICHGeoGlobalDisplacement
Global displacement parameters for ARICH.
Definition: ARICHGeoGlobalDisplacement.h:32
Belle2::ARICHGeometryConfig::getMirrors
const ARICHGeoMirrors & getMirrors() const
Get mirrors geometry configuration.
Definition: ARICHGeometryConfig.h:104
Belle2::ARICHGeoBase
Base class for geometry parameters.
Definition: ARICHGeoBase.h:34
Belle2::ARICHGeometryConfig::ARICHGeometryConfig
ARICHGeometryConfig()
Default constructor.
Definition: ARICHGeometryConfig.h:47
Belle2::ARICHGeometryConfig::m_detectorPlane
ARICHGeoDetectorPlane m_detectorPlane
detector plane geometry configuration
Definition: ARICHGeometryConfig.h:247
Belle2::ARICHGeometryConfig::setMirrorDisplacement
void setMirrorDisplacement(const ARICHGeoMirrorDisplacement &displ)
Set mirror displacement parameters.
Definition: ARICHGeometryConfig.h:219
Belle2::ARICHGeometryConfig::m_coolingv2
ARICHGeoFEBCooling m_coolingv2
ARICH cooling system (v2) geometry configuration.
Definition: ARICHGeometryConfig.h:256
Belle2::ARICHGeometryConfig::setAerogelPlane
void setAerogelPlane(const ARICHGeoAerogelPlane &aerogelPlane)
Set geometry configuration of aerogel plane.
Definition: ARICHGeometryConfig.h:165
Belle2::ARICHGeometryConfig::m_aerogelPlane
ARICHGeoAerogelPlane m_aerogelPlane
aerogel plane geometry configuration
Definition: ARICHGeometryConfig.h:248
Belle2::ARICHGeometryConfig::m_supportStructure
ARICHGeoSupport m_supportStructure
support structure geometry configuration
Definition: ARICHGeometryConfig.h:251
Belle2::ARICHGeoMirrors
Geometry parameters of HAPD.
Definition: ARICHGeoMirrors.h:40
Belle2::ARICHGeometryConfig::getAerogelPlane
const ARICHGeoAerogelPlane & getAerogelPlane() const
Get geometry configuration of aerogel plane.
Definition: ARICHGeometryConfig.h:98
Belle2::ARICHGeoBase::s_unitName
static std::string s_unitName
conversion unit name
Definition: ARICHGeoBase.h:94
Belle2::ARICHGeometryConfig::getCoolingGeometry
const ARICHGeoCooling & getCoolingGeometry() const
Get ARICH cooling system geometry parameters.
Definition: ARICHGeometryConfig.h:140
Belle2::ARICHGeoBase::s_unit
static double s_unit
conversion unit for length
Definition: ARICHGeoBase.h:93
Belle2::ARICHGeometryConfig::m_displaceGlobal
bool m_displaceGlobal
use global displacement parameters
Definition: ARICHGeometryConfig.h:260
Belle2::ARICHGeometryConfig::modulesPosition
void modulesPosition(const GearDir &content)
initializes the positions of HAPD modules, with the parameters from xml.
Definition: ARICHGeometryConfig.cc:335
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::ARICHGeometryConfig::print
void print(const std::string &title="ARICH geometry parameters") const
Print some debug information.
Definition: ARICHGeometryConfig.cc:320
Belle2::ARICHGeometryConfig::getChannelPosition
TVector2 getChannelPosition(unsigned moduleID, unsigned xChn, unsigned yChn) const
Get position of HAPD (x,y) channel in local ARICH coordinates.
Definition: ARICHGeometryConfig.cc:380
Belle2::ARICHGeoMerger
Geometry parameters of Merger PCB.
Definition: ARICHGeoMerger.h:36
Belle2::GearDir
GearDir is the basic class used for accessing the parameter store.
Definition: GearDir.h:41
Belle2::ARICHGeometryConfig::getMasterVolume
const ARICHGeoMasterVolume & getMasterVolume() const
Get ARICH master volume geometry configuration.
Definition: ARICHGeometryConfig.h:110
Belle2::ARICHGeometryConfig::setMasterVolume
void setMasterVolume(const ARICHGeoMasterVolume &masterVolume)
Set master volume geometry configuration.
Definition: ARICHGeometryConfig.h:192
Belle2::ARICHGeoHAPD::getModuleSizeZ
double getModuleSizeZ() const
Returns module size in z (HAPD + FEB height)
Definition: ARICHGeoHAPD.h:238
Belle2::ARICHGeometryConfig::m_cooling
ARICHGeoCooling m_cooling
ARICH cooling system geometry configuration.
Definition: ARICHGeometryConfig.h:255
Belle2::ARICHGeoMasterVolume
Geometry parameters of ARICH Master volume (envelope)
Definition: ARICHGeoMasterVolume.h:38
Belle2::ARICHGeometryConfig::getGlobalDisplacement
const ARICHGeoGlobalDisplacement & getGlobalDisplacement() const
Get global displacement parameters.
Definition: ARICHGeometryConfig.h:152
Belle2::ARICHGeoCablesEnvelope
Geometry parameters of cable envelope.
Definition: ARICHGeoCablesEnvelope.h:36
Belle2::ARICHGeometryConfig::m_globalDispl
ARICHGeoGlobalDisplacement m_globalDispl
global displacement parameters
Definition: ARICHGeometryConfig.h:257
Belle2::Unit::mm
static const double mm
[millimeters]
Definition: Unit.h:80
Belle2::ARICHGeoDetectorPlane
Geometry parameters of ARICH photon detector plane.
Definition: ARICHGeoDetectorPlane.h:37
Belle2::ARICHGeoCooling
Geometry parameters of Cooling System.
Definition: ARICHGeoCooling.h:36
Belle2::ARICHGeoDetectorPlane::getPosition
TVector3 getPosition() const
Get center point.
Definition: ARICHGeoDetectorPlane.h:122
Belle2::ARICHGeoMirrorDisplacement
Mirror displacement parameters for ARICH.
Definition: ARICHGeoMirrorDisplacement.h:33
Belle2::ARICHGeometryConfig::useGeantUnits
static void useGeantUnits()
Use Geant4 units when returning geometry parameters.
Definition: ARICHGeometryConfig.h:70
Belle2::ARICHGeoAerogelPlane
Geometry parameters of HAPD.
Definition: ARICHGeoAerogelPlane.h:37
Belle2::ARICHGeometryConfig::read
void read(const GearDir &content)
gets geometry parameters from gearbox.
Definition: ARICHGeometryConfig.cc:32
Belle2::ARICHGeometryConfig::setDetectorPlane
void setDetectorPlane(const ARICHGeoDetectorPlane &detectorPlane)
Set geometry configuration of HAPD plane.
Definition: ARICHGeometryConfig.h:174
Belle2::ARICHGeometryConfig::getSupportStructure
const ARICHGeoSupport & getSupportStructure() const
Get ARICH support structure geometry configuration.
Definition: ARICHGeometryConfig.h:116
Belle2::ARICHGeometryConfig::ClassDef
ClassDef(ARICHGeometryConfig, 5)
ClassDef, must be the last term before the closing {}.
Belle2::ARICHGeometryConfig::m_bbstudy
int m_bbstudy
is beam background study
Definition: ARICHGeometryConfig.h:262
Belle2::ARICHGeoHAPD
Geometry parameters of HAPD.
Definition: ARICHGeoHAPD.h:34
Belle2::ARICHGeometryConfig::setGlobalDisplacement
void setGlobalDisplacement(const ARICHGeoGlobalDisplacement &displ)
Set global displacement parameters.
Definition: ARICHGeometryConfig.h:210
Belle2::ARICHGeometryConfig::m_merger
ARICHGeoMerger m_merger
Merger PCB geometry configuration.
Definition: ARICHGeometryConfig.h:253
Belle2::ARICHGeometryConfig::m_mirrorDispl
ARICHGeoMirrorDisplacement m_mirrorDispl
mirror displacement parameters
Definition: ARICHGeometryConfig.h:258
Belle2::ARICHGeoSupport
Geometry parameters of ARICH support structures and neutron shield.
Definition: ARICHGeoSupport.h:35
Belle2::ARICHGeometryConfig::getMergerGeometry
const ARICHGeoMerger & getMergerGeometry() const
Get Merger PCB geometry parameters.
Definition: ARICHGeometryConfig.h:128
Belle2::ARICHGeometryConfig::setMirrors
void setMirrors(const ARICHGeoMirrors &mirrors)
Set mirrors geometry configuration.
Definition: ARICHGeometryConfig.h:183
Belle2::ARICHGeoFEBCooling
Geometry parameters of Cooling System - version2 (v2).
Definition: ARICHGeoFEBCooling.h:42