Base class for defining large parts of the ITS geometry, v11.
*/
#include <TObject.h>
+#include <AliLog.h>
class TGeoArb8;
class TGeoPcon;
class TGeoTube;
class AliITSv11Geometry : public TObject {
public:
- AliITSv11Geometry():fDebug(kTRUE) {};
- AliITSv11Geometry(Bool_t debug):fDebug(debug) {};
+ AliITSv11Geometry():fDebug(AliDebugLevel()) {};
+ AliITSv11Geometry(Int_t debug):fDebug(debug) {};
virtual ~AliITSv11Geometry(){};
//
// Sets the debug flag for debugging output
Double_t CosD(Double_t deg)const{return TMath::Cos(deg*TMath::DegToRad());}
// Tangent function
Double_t TanD(Double_t deg)const{return TMath::Tan(deg*TMath::DegToRad());}
+ // Determine the intersection of two lines
+ 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;
+ // Determine the intersection of a line and a circle
+ 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);
// Given the line, defined by the two points (x0,y0) and (x1,y1) and the
// point x, return the value of y.
Double_t Yfrom2Points(Double_t x0,Double_t y0,
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;
// Given two intersecting lines defined by the points (x0,y0), (x1,y1) and
- // (x1,y1), (x1,y2) {intersecting at (x1,y1)} the point (x,y) a distance
+ // (x1,y1), (x2,y2) {intersecting at (x1,y1)} the point (x,y) a distance
// c away is returned such that two lines a distance c away from the
// lines defined above intersect at (x,y).
void InsidePoint(Double_t x0,Double_t y0,Double_t x1,Double_t y1,
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;
+ // Define a general CreateMaterials function here so that if
+ // any specific subdetector does not define it this null function
+ // will due. This function is not declaired const so that a sub-
+ // detector's version may use class variables if they wish.
+ void CreateDefaultMaterials();
+ virtual void CreateMaterials(){};
// Function to create figure needed for this class' documentation
- 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);
+ 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);
protected:
// Units, Convert from k?? to cm,degree,GeV,seconds,
static const Double_t fgkDegree; //Convert degrees to TGeom's degrees
static const Double_t fgkRadian; //To Radians
static const Double_t fgkgcm3; // Density in g/cm^3
+ static const Double_t fgkKgm3; // Density in kg/m^3
+ static const Double_t fgkKgdm3; // Density in kg/dm^3
static const Double_t fgkCelsius; // Temperature in degrees Celcius
static const Double_t fgkPascal; // Preasure in Pascal
static const Double_t fgkKPascal; // Preasure in KPascal