15#ifndef ALICEO2_ITS_V11GEOMETRY_H_
16#define ALICEO2_ITS_V11GEOMETRY_H_
78 return mDebug >=
level;
85 Double_t
sinD(Double_t deg)
const
87 return TMath::Sin(deg * TMath::DegToRad());
91 Double_t
cosD(Double_t deg)
const
93 return TMath::Cos(deg * TMath::DegToRad());
97 Double_t
tanD(Double_t deg)
const
99 return TMath::Tan(deg * TMath::DegToRad());
124 static Bool_t
intersectCircle(Double_t
m, Double_t
x0, Double_t
y0, Double_t
rr, Double_t xc, Double_t yc,
125 Double_t& xi1, Double_t& yi1, Double_t& xi2, Double_t& yi2);
158 Double_t
rMaxFrom2Points(
const TGeoPcon* p, Int_t i1, Int_t i2, Double_t
z)
const;
168 Double_t
rMinFrom2Points(
const TGeoPcon* p, Int_t i1, Int_t i2, Double_t
z)
const;
179 Double_t
rFrom2Points(
const Double_t* ar,
const Double_t* az, Int_t i1, Int_t i2, Double_t
z)
const;
189 Double_t
zFrom2MinPoints(
const TGeoPcon* p, Int_t i1, Int_t i2, Double_t
r)
const;
199 Double_t
zFrom2MaxPoints(
const TGeoPcon* p, Int_t i1, Int_t i2, Double_t
r)
const;
210 Double_t
zFrom2Points(
const Double_t* az,
const Double_t* ar, Int_t i1, Int_t i2, Double_t
r)
const;
222 Double_t
rMaxFromZpCone(
const TGeoPcon* p,
int ip, Double_t tc, Double_t
z, Double_t th = 0.0)
const;
232 Double_t
rFromZpCone(
const Double_t* ar,
const Double_t* az,
int ip, Double_t tc, Double_t
z,
233 Double_t th = 0.0)
const;
245 Double_t
rMinFromZpCone(
const TGeoPcon* p, Int_t ip, Double_t tc, Double_t
z, Double_t th = 0.0)
const;
257 Double_t
zFromRMaxpCone(
const TGeoPcon* p,
int ip, Double_t tc, Double_t
r, Double_t th = 0.0)
const;
268 Double_t
zFromRMaxpCone(
const Double_t* ar,
const Double_t* az, Int_t ip, Double_t tc, Double_t
r,
269 Double_t th = 0.0)
const;
281 Double_t
zFromRMinpCone(
const TGeoPcon* p,
int ip, Double_t tc, Double_t
r, Double_t th = 0.0)
const;
300 void insidePoint(
const TGeoPcon* p, Int_t i1, Int_t i2, Int_t i3, Double_t Cthick, TGeoPcon* q, Int_t j1,
316 void insidePoint(Double_t
x0, Double_t
y0, Double_t
x1, Double_t
y1, Double_t x2, Double_t y2, Double_t
c,
317 Double_t&
x, Double_t&
y)
const;
329 void radiusOfCurvature(Double_t rc, Double_t theta0, Double_t z0, Double_t r0, Double_t theta1, Double_t& z1,
369 void drawCrossSection(
const TGeoPcon* p, Int_t fillc = 7, Int_t fills = 4050, Int_t linec = 3, Int_t lines = 1,
370 Int_t linew = 4, Int_t markc = 2, Int_t marks = 4,
Float_t marksize = 1.0)
const;
389 Double_t rc, Double_t&
t0, Double_t&
t1)
const;
407 Double_t&
t0, Double_t&
t1)
const;
427 void makeFigure1(Double_t
x0 = 0.0, Double_t
y0 = 0.0, Double_t r0 = 2.0, Double_t
x1 = -4.0, Double_t
y1 = -2.0,
433 static const Double_t
sMm;
434 static const Double_t
sCm;
443 static const Double_t
sEV;
455 Double_t angleForRoundedCorners0(Double_t dx, Double_t dy, Double_t sdr)
const;
463 Double_t angleForRoundedCorners1(Double_t dx, Double_t dy, Double_t sdr)
const;
466 const char* mDetName;
Double_t zFrom2MaxPoints(const TGeoPcon *p, Int_t i1, Int_t i2, Double_t r) const
void printTube(const TGeoTube *a) const
void printPcon(const TGeoPcon *a) const
static Bool_t intersectCircle(Double_t m, Double_t x0, Double_t y0, Double_t rr, Double_t xc, Double_t yc, Double_t &xi1, Double_t &yi1, Double_t &xi2, Double_t &yi2)
static const Double_t sKEV
Energy in KeV.
void insidePoint(const TGeoPcon *p, Int_t i1, Int_t i2, Int_t i3, Double_t Cthick, TGeoPcon *q, Int_t j1, Bool_t max) const
Double_t rFromZpCone(const Double_t *ar, const Double_t *az, int ip, Double_t tc, Double_t z, Double_t th=0.0) const
void printTubeSeg(const TGeoTubeSeg *a) const
Double_t rFrom2Points(const Double_t *ar, const Double_t *az, Int_t i1, Int_t i2, Double_t z) const
static const Double_t sGCm3
Density in g/cm^3.
Double_t zFromRMaxpCone(const Double_t *ar, const Double_t *az, Int_t ip, Double_t tc, Double_t r, Double_t th=0.0) const
void intersectLines(Double_t m, Double_t x0, Double_t y0, Double_t n, Double_t x1, Double_t y1, Double_t &xi, Double_t &yi) const
Double_t cosD(Double_t deg) const
Cosine function.
void printConeSeg(const TGeoConeSeg *a) const
void printBBox(const TGeoBBox *a) const
const char * GetDetName() const
Get detector name.
Double_t zFromRMaxpCone(const TGeoPcon *p, int ip, Double_t tc, Double_t r, Double_t th=0.0) const
Double_t xFrom2Points(Double_t x0, Double_t y0, Double_t x1, Double_t y1, Double_t y) const
Double_t rMaxFromZpCone(const TGeoPcon *p, int ip, Double_t tc, Double_t z, Double_t th=0.0) const
void createDefaultMaterials()
Double_t sinD(Double_t deg) const
static const Double_t sKPascal
Preasure in KPascal.
Bool_t angleOfIntersectionWithLine(Double_t x0, Double_t y0, Double_t x1, Double_t y1, Double_t xc, Double_t yc, Double_t rc, Double_t &t0, Double_t &t1) const
void makeFigure1(Double_t x0=0.0, Double_t y0=0.0, Double_t r0=2.0, Double_t x1=-4.0, Double_t y1=-2.0, Double_t r1=1.0)
static const Double_t sMm
Convert mm to TGeom's cm.
Double_t rMaxFrom2Points(const TGeoPcon *p, Int_t i1, Int_t i2, Double_t z) const
Double_t yFrom2Points(Double_t x0, Double_t y0, Double_t x1, Double_t y1, Double_t x) const
void setNoDebug()
Clears the debug flag so no debugging output will be generated.
void drawCrossSection(const TGeoPcon *p, Int_t fillc=7, Int_t fills=4050, Int_t linec=3, Int_t lines=1, Int_t linew=4, Int_t markc=2, Int_t marks=4, Float_t marksize=1.0) const
static const Double_t sKgm3
Density in kg/m^3.
void radiusOfCurvature(Double_t rc, Double_t theta0, Double_t z0, Double_t r0, Double_t theta1, Double_t &z1, Double_t &r1) const
Double_t rMinFromZpCone(const TGeoPcon *p, Int_t ip, Double_t tc, Double_t z, Double_t th=0.0) const
static const Double_t sEV
Energy in eV.
void setDebug(Int_t level=5)
Sets the debug flag for debugging output.
Double_t zFromRMinpCone(const TGeoPcon *p, int ip, Double_t tc, Double_t r, Double_t th=0.0) const
virtual void createMaterials()
static const Double_t sPascal
Preasure in Pascal.
Double_t zFrom2MinPoints(const TGeoPcon *p, Int_t i1, Int_t i2, Double_t r) const
~V11Geometry() override=default
static const Double_t sDegree
Convert degrees to TGeom's degrees.
Double_t tanD(Double_t deg) const
Tangent function.
static const Double_t sMicron
Convert micron to TGeom's cm.
static const Double_t sKgdm3
Density in kg/dm^3.
void SetDetName(const char *name)
Set detector name.
V11Geometry(Int_t debug, const char *name="ITS")
Double_t zFrom2Points(const Double_t *az, const Double_t *ar, Int_t i1, Int_t i2, Double_t r) const
static const Double_t sGEV
Energy in GeV.
static const Double_t sRadian
To Radians.
static const Double_t sCelsius
Temperature in degrees Celcius.
void printArb8(const TGeoArb8 *a) const
Bool_t getDebug(Int_t level=1) const
Returns the debug flag value.
Double_t rMinFrom2Points(const TGeoPcon *p, Int_t i1, Int_t i2, Double_t z) const
static const Double_t sMEV
Energy in MeV.
static const Double_t sCm
Convert cm to TGeom's cm.
void anglesForRoundedCorners(Double_t x0, Double_t y0, Double_t r0, Double_t x1, Double_t y1, Double_t r1, Double_t &t0, Double_t &t1) const
GLuint GLfloat GLfloat GLfloat GLfloat y1
GLuint GLfloat GLfloat GLfloat x1
GLuint const GLchar * name
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat t0
GLboolean GLboolean GLboolean GLboolean a
GLuint GLfloat GLfloat y0
GLdouble GLdouble GLdouble z
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat t1
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...