Project
Loading...
Searching...
No Matches
RICHRing.h
Go to the documentation of this file.
1// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3// All rights not expressly granted are reserved.
4//
5// This software is distributed under the terms of the GNU General Public
6// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7//
8// In applying this license CERN does not waive the privileges and immunities
9// granted to it by virtue of its status as an Intergovernmental Organization
10// or submit itself to any jurisdiction.
11//
12// Design and equations: Nicola Nicassio nicola.nicassio@cern.ch
13
14#ifndef ALICEO2_RICH_RING_H
15#define ALICEO2_RICH_RING_H
16
17#include <TGeoManager.h>
18#include <Rtypes.h>
19#include <TMath.h>
20
21namespace o2
22{
23namespace rich
24{
25class Ring
26{
27 public:
28 Ring() = default;
29 // Angle M_i: the angle formed by the normal line to both tile planes (radiator and photosensitive surface) passing by the center of the ring
30 // Angle T_i: the angle formed by the line passing by the farest border of the tile and the center of the ring
31 // Z_r: length of the radiator in Z
32 // Z_p: length of the photosensitive surface in Z
33 // DeltaRSurf_i: radial dinstance between two surfaces of tiles
34 // R_ph: radius of the photosensitive surface (from the center)
35 // z_ph: z position of the photosensitive surface (from the center)
36 Ring(int rPosId,
37 int nTilesPhi,
38 double rMin,
39 double rMax,
40 double radThick,
41 double radYmin,
42 double radYmax,
43 double radZ,
44 double photThick,
45 double photYmin,
46 double photYmax,
47 double photZ,
48 double radRad0,
49 double photRad0,
50 double aerDetDistance,
51 double thetaB,
52 const std::string motherName = "RICHV");
53 ~Ring() = default;
54
55 auto getDeltaPhiPos() const { return TMath::TwoPi() / mNTiles; }
56 void createRing(TGeoVolume* motherVolume);
57 int getPosId() const { return mPosId; }
58 int getNTiles() const { return mNTiles; }
59
60 private:
61 int mPosId; // id of the ring
62 int mNTiles; // number of modules
63 double mRRad; // max distance for radiators
64 double mRPhot; // max distance for photosensitive surfaces
65 double mRadThickness; // thickness of the radiator
66 double mPhotThickness; // thickness of the photosensitive surface
67
68 ClassDef(Ring, 0);
69};
70
71// Definitions for fwd and bwd RICH are put here
73{
74 public:
75 FWDRich() = default;
76 FWDRich(std::string name,
77 double rMin,
78 double rMax,
79 double zAerogelMin,
80 double dZAerogel,
81 double zArgonMin,
82 double dZArgon,
83 double zSiliconMin,
84 double dZSilicon);
85 void createFWDRich(TGeoVolume* motherVolume);
86
87 protected:
88 std::string mName;
89 double mRmin;
90 double mRmax;
91
92 // Aerogel:
94 double mDZAerogel;
95
96 // Argon:
97 double mZArgonMin;
98 double mDZArgon;
99
100 // Silicon:
103
105};
106
108{
109 public:
110 BWDRich() = default;
111 BWDRich(std::string name,
112 double rMin,
113 double rMax,
114 double zAerogelMin,
115 double dZAerogel,
116 double zArgonMin,
117 double dZArgon,
118 double zSiliconMin,
119 double dZSilicon);
120 void createBWDRich(TGeoVolume* motherVolume);
121
122 protected:
123 std::string mName;
124 double mRmin;
125 double mRmax;
126
127 // Aerogel:
130
131 // Argon:
133 double mDZArgon;
134
135 // Silicon:
138
140};
141
142} // namespace rich
143} // namespace o2
144#endif // ALICEO2_RICH_RING_H
double mZSiliconMin
Definition RICHRing.h:136
void createBWDRich(TGeoVolume *motherVolume)
Definition RICHRing.cxx:653
ClassDef(BWDRich, 0)
double mZAerogelMin
Definition RICHRing.h:128
std::string mName
Definition RICHRing.h:123
ClassDef(FWDRich, 0)
std::string mName
Definition RICHRing.h:88
double mZSiliconMin
Definition RICHRing.h:101
void createFWDRich(TGeoVolume *motherVolume)
Definition RICHRing.cxx:613
double mZArgonMin
Definition RICHRing.h:97
double mDZAerogel
Definition RICHRing.h:94
double mZAerogelMin
Definition RICHRing.h:93
~Ring()=default
auto getDeltaPhiPos() const
Definition RICHRing.h:55
int getPosId() const
Definition RICHRing.h:57
void createRing(TGeoVolume *motherVolume)
int getNTiles() const
Definition RICHRing.h:58
Ring()=default
GLuint const GLchar * name
Definition glcorearb.h:781
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...