Belle II Software  release-05-02-19
TOPconfigure.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Marko Staric *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <framework/database/DBObjPtr.h>
14 #include <framework/database/DBArray.h>
15 #include <top/dbobjects/TOPCalModuleAlignment.h>
16 #include <top/dbobjects/TOPPmtInstallation.h>
17 
18 namespace Belle2 {
23  namespace TOP {
24 
28  class TOPconfigure {
29  public:
30 
34  enum {c_None = 0, c_PMT, c_PlaneM, c_CylindricM, c_SphericM};
35 
39  enum {c_Left = 0, c_Right = 1};
40 
44  enum {c_NoRefl = 0, c_Box, c_Prism};
45 
49  TOPconfigure();
50 
55  static void setAlignmentConstants();
56 
60  static void setPMTTypes();
61 
69  void setTOPvolume(double R1, double R2, double Z1, double Z2);
70 
75  void setBfield(double B);
76 
81  void setEdgeRoughness(double R);
82 
93  void setPMT(double A, double B, double Asens, double Bsens,
94  int Nx, int Ny, double TTS = 50.e-3);
95 
103  void setTTS(int ng, float Frac[], float Mean[], float Sigma[]);
104 
108  void setPMTDependentTTSes();
109 
117  void setQE(float Wavelength[], float QE[], int Size, double CE);
118 
132  int setQbar(double A, double B, double Z1, double Z2, double R,
133  double Dx, double Phi, int Lside, int Rside);
134 
140  void setBBoxWindow(int moduleID, double thickness);
141 
156  void addExpansionVolume(int moduleID, int LR, int Shape, double Dz,
157  double Yup, double Ydown,
158  double YupIn = 0, double YdownIn = 0,
159  double Width = 0, double DzRefl = 0, double Refl = 0);
160 
169  void arrangePMT(int moduleID, double sizX, double sizY,
170  double Dx = 0, double Dy = 0);
171 
181  void arrangePMT(int moduleID, int LR, double sizX, double sizY,
182  double Dx = 0, double Dy = 0);
183 
189  void setMirrorRadius(int moduleID, double R);
190 
197  void setMirrorCenter(int moduleID, double Xc, double Yc);
198 
204  void setMirrorReflectivity(int moduleID, double reflectivity);
205 
211  void setSurfaceReflectivity(int moduleID, double reflectivity);
212 
219  void setTDC(int NBIT, double ChWid, double Offset = 0);
220 
226  void setCFD(double delTpileup, double delTdoubleHit);
227 
233  bool TOPfinalize(int Dump = 1);
234 
238  void print() const;
239 
244  bool isConfigured() const {return m_configured;}
245 
250  double getR1() const {return m_R1;}
251 
256  double getR2() const {return m_R2;}
257 
262  double getZ1() const {return m_Z1;}
263 
268  double getZ2() const {return m_Z2;}
269 
274  double getTDCTimeRange() const {return m_timeRange;}
275 
287  void getQbar(int moduleID, double& A, double& B, double& C,
288  int& Lside, int& Rside, int& LexpvID, int& RexpvID);
289 
302  void getExpansionVolume(int expvID, double& Dz, double& Yup, double& Ydown,
303  double& YupIn, double& YdownIn,
304  double& Width, int& Shape, int& LR);
305 
315  void getMirror(int moduleID, double& R, double& Xc, double& Yc, double& Zc,
316  double& F);
317 
323  double getBBoxWindow(int moduleID);
324 
325  private:
326 
327  static bool m_configured;
328  static DBObjPtr<TOPCalModuleAlignment> m_alignment;
329  static OptionalDBArray<TOPPmtInstallation> m_pmtInstalled;
330  double m_R1 = 0;
331  double m_R2 = 0;
332  double m_Z1 = 0;
333  double m_Z2 = 0;
334  double m_timeRange = 0;
336  };
337 
338  } // top namespace
340 } // Belle2 namespace
341 
Belle2::TOP::TOPconfigure::setMirrorReflectivity
void setMirrorReflectivity(int moduleID, double reflectivity)
Sets mirror reflectivity.
Definition: TOPconfigure.cc:336
Belle2::TOP::TOPconfigure::setPMTDependentTTSes
void setPMTDependentTTSes()
Sets PMT dependent TTS-es.
Definition: TOPconfigure.cc:182
Belle2::TOP::TOPconfigure::getR1
double getR1() const
Returns inner radius of space for TOP modules.
Definition: TOPconfigure.h:258
Belle2::TOP::TOPconfigure::m_configured
static bool m_configured
set to true when done
Definition: TOPconfigure.h:335
Belle2::TOP::TOPconfigure::m_timeRange
double m_timeRange
time range of TDC
Definition: TOPconfigure.h:342
Belle2::TOP::TOPconfigure::getExpansionVolume
void getExpansionVolume(int expvID, double &Dz, double &Yup, double &Ydown, double &YupIn, double &YdownIn, double &Width, int &Shape, int &LR)
Returns expansion volume (wedge) specs.
Definition: TOPconfigure.cc:387
Belle2::TOP::TOPconfigure::getZ2
double getZ2() const
Returns maximal z of space for TOP modules.
Definition: TOPconfigure.h:276
Belle2::TOP::TOPconfigure::setMirrorRadius
void setMirrorRadius(int moduleID, double R)
Sets mirror radius.
Definition: TOPconfigure.cc:324
Belle2::TOP::TOPconfigure::TOPfinalize
bool TOPfinalize(int Dump=1)
Finalizes TOP configuration (must be called last)
Definition: TOPconfigure.cc:368
Belle2::TOP::TOPconfigure::setQbar
int setQbar(double A, double B, double Z1, double Z2, double R, double Dx, double Phi, int Lside, int Rside)
Defines module geometry; returns module ID.
Definition: TOPconfigure.cc:277
Belle2::TOP::TOPconfigure::setMirrorCenter
void setMirrorCenter(int moduleID, double Xc, double Yc)
Sets mirror center.
Definition: TOPconfigure.cc:330
Belle2::TOP::TOPconfigure::getZ1
double getZ1() const
Returns minimal z of space for TOP modules.
Definition: TOPconfigure.h:270
Belle2::TOP::TOPconfigure::m_alignment
static DBObjPtr< TOPCalModuleAlignment > m_alignment
alignment constants
Definition: TOPconfigure.h:336
Belle2::TOP::TOPconfigure::m_pmtInstalled
static OptionalDBArray< TOPPmtInstallation > m_pmtInstalled
PMT installation data.
Definition: TOPconfigure.h:337
Belle2::TOP::TOPconfigure::arrangePMT
void arrangePMT(int moduleID, double sizX, double sizY, double Dx=0, double Dy=0)
Re-arranges PMT's at (both) exit window(s)
Definition: TOPconfigure.cc:305
Belle2::TOP::TOPconfigure::setTTS
void setTTS(int ng, float Frac[], float Mean[], float Sigma[])
Defines TTS with multi-gaussian PDF.
Definition: TOPconfigure.cc:266
Belle2::TOP::TOPconfigure::isConfigured
bool isConfigured() const
Returns configuration status.
Definition: TOPconfigure.h:252
Belle2::TOP::TOPconfigure::setSurfaceReflectivity
void setSurfaceReflectivity(int moduleID, double reflectivity)
Sets surface reflectivity.
Definition: TOPconfigure.cc:346
Belle2::TOP::TOPconfigure::setQE
void setQE(float Wavelength[], float QE[], int Size, double CE)
Sets quantum efficiency.
Definition: TOPconfigure.cc:271
Belle2::TOP::TOPconfigure::setPMT
void setPMT(double A, double B, double Asens, double Bsens, int Nx, int Ny, double TTS=50.e-3)
Defines PMT dimensions (must be called prior to setQbar)
Definition: TOPconfigure.cc:257
Belle2::TOP::TOPconfigure::getBBoxWindow
double getBBoxWindow(int moduleID)
Returns thickness of the bar box window.
Definition: TOPconfigure.cc:405
Belle2::TOP::TOPconfigure::setBBoxWindow
void setBBoxWindow(int moduleID, double thickness)
Adds QBB exit window.
Definition: TOPconfigure.cc:287
Belle2::TOP::TOPconfigure::getTDCTimeRange
double getTDCTimeRange() const
Returns time range of TDC.
Definition: TOPconfigure.h:282
Belle2::TOP::TOPconfigure::setEdgeRoughness
void setEdgeRoughness(double R)
Sets bar edge roughness (radius)
Definition: TOPconfigure.cc:251
Belle2::TOP::TOPconfigure::m_R2
double m_R2
outer radius
Definition: TOPconfigure.h:339
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TOP::TOPconfigure::getQbar
void getQbar(int moduleID, double &A, double &B, double &C, int &Lside, int &Rside, int &LexpvID, int &RexpvID)
Returns module specs.
Definition: TOPconfigure.cc:378
Belle2::TOP::TOPconfigure::getR2
double getR2() const
Returns outer radius of space for TOP modules.
Definition: TOPconfigure.h:264
Belle2::TOP::TOPconfigure::setTOPvolume
void setTOPvolume(double R1, double R2, double Z1, double Z2)
Defines TOP counter volume (must be called first)
Definition: TOPconfigure.cc:238
Belle2::TOP::TOPconfigure::m_Z2
double m_Z2
forward z
Definition: TOPconfigure.h:341
Belle2::TOP::TOPconfigure::getMirror
void getMirror(int moduleID, double &R, double &Xc, double &Yc, double &Zc, double &F)
Returns mirror specs.
Definition: TOPconfigure.cc:396
Belle2::TOP::TOPconfigure::setAlignmentConstants
static void setAlignmentConstants()
Passes alignment constants to FORTRAN code function is used in call-back.
Definition: TOPconfigure.cc:156
Belle2::TOP::TOPconfigure::addExpansionVolume
void addExpansionVolume(int moduleID, int LR, int Shape, double Dz, double Yup, double Ydown, double YupIn=0, double YdownIn=0, double Width=0, double DzRefl=0, double Refl=0)
Adds expansion volume (wedge)
Definition: TOPconfigure.cc:293
Belle2::TOP::TOPconfigure::setTDC
void setTDC(int NBIT, double ChWid, double Offset=0)
Defines TDC.
Definition: TOPconfigure.cc:356
Belle2::TOP::TOPconfigure::m_Z1
double m_Z1
backward z
Definition: TOPconfigure.h:340
Belle2::TOP::TOPconfigure::setCFD
void setCFD(double delTpileup, double delTdoubleHit)
Defines CFD.
Definition: TOPconfigure.cc:362
Belle2::TOP::TOPconfigure::setBfield
void setBfield(double B)
Sets magnetic field (use negative value to reverse polarity)
Definition: TOPconfigure.cc:245
Belle2::TOP::TOPconfigure::TOPconfigure
TOPconfigure()
Constructor (which does the stuff if reconstruction geometry not configured yet)
Definition: TOPconfigure.cc:42
Belle2::TOP::TOPconfigure::setPMTTypes
static void setPMTTypes()
Sets PMT types pixel table.
Definition: TOPconfigure.cc:207
Belle2::TOP::TOPconfigure::m_R1
double m_R1
inner radius
Definition: TOPconfigure.h:338
Belle2::TOP::TOPconfigure::print
void print() const
Prints configuration to std output (using fortran print)
Definition: TOPconfigure.cc:373