ROOT logo
AliRoot » ITS » AliITSv11GeometrySupport

class AliITSv11GeometrySupport: public AliITSv11Geometry

Function Members (Methods)

public:
AliITSv11GeometrySupport()
AliITSv11GeometrySupport(Int_t debug)
AliITSv11GeometrySupport(const AliITSv11GeometrySupport&)
virtual~AliITSv11GeometrySupport()
voidTObject::AbstractMethod(const char* method) const
Bool_tAliITSv11Geometry::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
voidAliITSv11Geometry::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
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
Double_tAliITSv11Geometry::CosD(Double_t deg) const
voidAliITSv11Geometry::CreateDefaultMaterials()
virtual voidAliITSv11Geometry::CreateMaterials()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
voidAliITSv11Geometry::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
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Bool_tAliITSv11Geometry::GetDebug(Int_t level = 1) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
voidAliITSv11Geometry::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
voidAliITSv11Geometry::InsidePoint(Double_t x0, Double_t y0, Double_t x1, Double_t y1, Double_t x2, Double_t y2, Double_t c, Double_t& x, Double_t& y) const
virtual voidTObject::Inspect() constMENU
static Bool_tAliITSv11Geometry::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)
voidAliITSv11Geometry::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
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidITSTPCSupports(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
virtual voidTObject::ls(Option_t* option = "") const
voidAliITSv11Geometry::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)
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
AliITSv11GeometrySupport&operator=(const AliITSv11GeometrySupport&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
voidAliITSv11Geometry::PrintArb8(const TGeoArb8* a) const
voidAliITSv11Geometry::PrintBBox(const TGeoBBox* a) const
voidAliITSv11Geometry::PrintConeSeg(const TGeoConeSeg* a) const
voidAliITSv11Geometry::PrintPcon(const TGeoPcon* a) const
voidAliITSv11Geometry::PrintTube(const TGeoTube* a) const
voidAliITSv11Geometry::PrintTubeSeg(const TGeoTubeSeg* a) const
voidAliITSv11Geometry::RadiusOfCurvature(Double_t rc, Double_t theta0, Double_t z0, Double_t r0, Double_t theta1, Double_t& z1, Double_t& r1) const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
Double_tAliITSv11Geometry::RFrom2Points(const Double_t* ar, const Double_t* az, Int_t i1, Int_t i2, Double_t z) const
Double_tAliITSv11Geometry::RFromZpCone(const Double_t* ar, const Double_t* az, int ip, Double_t tc, Double_t z, Double_t th = 0.0) const
Double_tAliITSv11Geometry::RmaxFrom2Points(const TGeoPcon* p, Int_t i1, Int_t i2, Double_t z) const
Double_tAliITSv11Geometry::RmaxFromZpCone(const TGeoPcon* p, int ip, Double_t tc, Double_t z, Double_t th = 0.0) const
Double_tAliITSv11Geometry::RminFrom2Points(const TGeoPcon* p, Int_t i1, Int_t i2, Double_t z) const
Double_tAliITSv11Geometry::RminFromZpCone(const TGeoPcon* p, Int_t ip, Double_t tc, Double_t z, Double_t th = 0.0) const
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
virtual voidSDDCone(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
virtual voidServicesCableSupport(TGeoVolume* moth, TGeoManager* mgr = gGeoManager)
virtual voidServicesCableSupportSDD(TGeoVolume* moth, TGeoManager* mgr = gGeoManager)
virtual voidServicesCableSupportSPD(TGeoVolume* moth, TGeoManager* mgr = gGeoManager)
virtual voidServicesCableSupportSSD(TGeoVolume* moth, TGeoManager* mgr = gGeoManager)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidAliITSv11Geometry::SetDebug(Int_t level = 5)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidAliITSv11Geometry::SetNoDebug()
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
Double_tAliITSv11Geometry::SinD(Double_t deg) const
virtual voidSPDCone(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
virtual voidSSDCone(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Double_tAliITSv11Geometry::TanD(Double_t deg) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
Double_tAliITSv11Geometry::Xfrom2Points(Double_t x0, Double_t y0, Double_t x1, Double_t y1, Double_t y) const
Double_tAliITSv11Geometry::Yfrom2Points(Double_t x0, Double_t y0, Double_t x1, Double_t y1, Double_t x) const
Double_tAliITSv11Geometry::Zfrom2MaxPoints(const TGeoPcon* p, Int_t i1, Int_t i2, Double_t r) const
Double_tAliITSv11Geometry::Zfrom2MinPoints(const TGeoPcon* p, Int_t i1, Int_t i2, Double_t r) const
Double_tAliITSv11Geometry::Zfrom2Points(const Double_t* az, const Double_t* ar, Int_t i1, Int_t i2, Double_t r) const
Double_tAliITSv11Geometry::ZFromRmaxpCone(const TGeoPcon* p, int ip, Double_t tc, Double_t r, Double_t th = 0.0) const
Double_tAliITSv11Geometry::ZFromRmaxpCone(const Double_t* ar, const Double_t* az, Int_t ip, Double_t tc, Double_t r, Double_t th = 0.0) const
Double_tAliITSv11Geometry::ZFromRminpCone(const TGeoPcon* p, int ip, Double_t tc, Double_t r, Double_t th = 0.0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
voidCreateSDDForwardTraySideA(TGeoVolumeAssembly* tray, const TGeoManager* mgr)
TGeoXtru*CreateSDDSSDTraysSideA(const Double_t trayLen, const Double_t trayHi)
TGeoVolumeAssembly*CreateSDDSSDTraysSideC(const char* trayName, const TGeoManager* mgr = gGeoManager)
voidCreateSPDOmegaShape(const Double_t* xin, const Double_t* yin, Double_t d, Double_t* x, Double_t* y)
voidCreateSPDThermalShape(Double_t ina, Double_t inb, Double_t inr, Double_t oua, Double_t oub, Double_t our, Double_t t, Double_t* x, Double_t* y) const
voidCreateTrayACoverHolesShape(const Double_t wide, const Double_t length, const Double_t r10, Double_t* x, Double_t* y)
TGeoCompositeShape*CreateTrayAExternalCover(const Double_t coverLen)
TGeoCompositeShape*CreateTrayAForwardCover(const Double_t coverLen)
voidFillSPDXtruShape(Double_t a, Double_t b, Double_t r, Double_t t, Double_t* x, Double_t* y) const
voidPointFromParallelLines(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Double_t d, Double_t& x, Double_t& y) const
voidReflectPoint(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Double_t x3, Double_t y3, Double_t& x, Double_t& y) const
voidSDDCableTraysSideA(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
voidSDDCableTraysSideC(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
voidSPDCableTraysSideA(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
voidSPDCableTraysSideC(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
voidSSDCableTraysSideA(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
voidSSDCableTraysSideC(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
voidTraySupportsSideA(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)

Data Members

protected:
static const Double_tAliITSv11Geometry::fgkCelsiusTemperature in degrees Celcius
static const Double_tAliITSv11Geometry::fgkDegreeConvert degrees to TGeom's degrees
static const Double_tAliITSv11Geometry::fgkGeVEnergy in GeV
static const Double_tAliITSv11Geometry::fgkKPascalPreasure in KPascal
static const Double_tAliITSv11Geometry::fgkKeVEnergy in KeV
static const Double_tAliITSv11Geometry::fgkKgdm3Density in kg/dm^3
static const Double_tAliITSv11Geometry::fgkKgm3Density in kg/m^3
static const Double_tAliITSv11Geometry::fgkMeVEnergy in MeV
static const Double_tAliITSv11Geometry::fgkPascalPreasure in Pascal
static const Double_tAliITSv11Geometry::fgkRadianTo Radians
static const Double_tAliITSv11Geometry::fgkcmConvert cm to TGeom's cm.
static const Double_tAliITSv11Geometry::fgkeVEnergy in eV
static const Double_tAliITSv11Geometry::fgkgcm3Density in g/cm^3
static const Double_tAliITSv11Geometry::fgkmicronConvert micron to TGeom's cm.
static const Double_tAliITSv11Geometry::fgkmmConvert mm to TGeom's cm.

Class Charts

Inheritance Chart:
TObject
AliITSv11Geometry
AliITSv11GeometrySupport

Function documentation

void SPDCone(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
 Creates the SPD thermal shield as a volume assembly
 and adds it to the mother volume
 (this is actually a merge of the previous SPDThermalSheald method
 of AliITSv11GeometrySupport.cxx,v 1.9 2007/06/06 and the
 CreateSPDThermalShield method of AliITSv11Hybrid)

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Created:         ???          ???
 Updated:      11 Dec 2007  Mario Sitta
 Updated:      20 Mar 2012  Mario Sitta  Reimplemented with simpler shapes
 Updated:      20 Jul 2012  Mario Sitta  Reimplemented with Composite Shape
 Updated:      12 Oct 2012  Mario Sitta  Composite Shape also for EndCap

 Technical data are taken from:  ALICE-Thermal Screen "Cone transition"
 (thermal-screen1_a3.ps), "Cylinder" (thermal-screen2_a3.ps), "Half
 assembly" (thermal-screen3_a3.ps), "Flange" (thermal-screen4_a3.ps)
void CreateSPDThermalShape(Double_t ina, Double_t inb, Double_t inr, Double_t oua, Double_t oub, Double_t our, Double_t t, Double_t* x, Double_t* y) const
 Creates the proper sequence of X and Y coordinates to determine
 the base XTru polygon for the SPD thermal shapes

 Input:
        ina, inb : inner shape sides
        inr      : inner radius
        oua, oub : outer shape sides
        our      : outer radius
        t        : theta angle

 Output:
        x, y : coordinate vectors [24]

 Created:      14 Nov 2007  Mario Sitta
 Updated:      11 Dec 2007  Mario Sitta

void CreateSPDOmegaShape(const Double_t* xin, const Double_t* yin, Double_t d, Double_t* x, Double_t* y)
 Creates the proper sequence of X and Y coordinates to determine
 the SPD Omega XTru polygon

 Input:
        xin, yin : coordinates of the air volume
        d        : Omega shape thickness
        t        : theta angle

 Output:
        x, y     : coordinate vectors [48]

 Created:      17 Nov 2007  Mario Sitta
 Updated:      11 Dec 2007  Mario Sitta
 Updated:      20 Feb 2009  Mario Sitta       New algorithm (the old one
                                              gives erroneous vertexes)

void FillSPDXtruShape(Double_t a, Double_t b, Double_t r, Double_t t, Double_t* x, Double_t* y) const
 Creates the partial sequence of X and Y coordinates to determine
 the lateral part of the SPD thermal shield

 Input:
        a, b : shape sides
        r    : radius
        t    : theta angle

 Output:
        x, y : coordinate vectors [6]

 Created:      14 Nov 2007  Mario Sitta

void PointFromParallelLines(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Double_t d, Double_t& x, Double_t& y) const
 Determines the X and Y of the first internal point of the Omega shape
 (i.e. the coordinates of a point given two parallel lines passing by
 two points and placed at a known distance)

 Input:
        x1, y1 : first point
        x2, y2 : second point
        d      : distance between the two lines

 Output:
        x, y   : coordinate of the point

 Created:      22 Feb 2009  Mario Sitta


/* */
void ReflectPoint(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Double_t x3, Double_t y3, Double_t& x, Double_t& y) const
 Given two points (x1,y1) and (x2,y2), determines the point (x,y)
 lying on the line parallel to the line passing by these points,
 at a distance d and passing by the point (x3,y3), which is symmetric to
 the third point with respect to the axis of the segment delimited by
 the two first points.

 Input:
        x1, y1 : first point
        x2, y2 : second point
        x3, y3 : third point
        d      : distance between the two lines

 Output:
        x, y   : coordinate of the reflected point

 Created:      22 Feb 2009  Mario Sitta


/* */
void SDDCone(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
 Creates the SDD support cone and cylinder geometry as a
 volume assembly and adds it to the mother volume
 (part of this code is taken or anyway inspired to SDDCone method
 of AliITSv11GeometrySupport.cxx,v 1.9 2007/06/06)

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Created:         ???       Bjorn S. Nilsen
 Updated:      18 Feb 2008  Mario Sitta
 Updated:      25 Jul 2008  Mario Sitta   SDDCarbonFiberCone simpler
 Updated:      10 Jun 2010  Mario Sitta   Cables across cone holes added

 Technical data are taken from:  "Supporto Generale Settore SDD"
 (technical drawings ALR-0816/1-B), "Supporto Globale Settore SDD"
 (technical drawings ALR-0816/2A, ALR-0816/2B, ALR-0816/2C, ALR-0816/2D),
 private communication with B. Giraudo
void SSDCone(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
 Creates the SSD support cone and cylinder geometry. as a
 volume assembly and adds it to the mother volume
 (part of this code is taken or anyway inspired to SSDCone method
 of AliITSv11GeometrySupport.cxx,v 1.9 2007/06/06)

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Created:         ???       Bjorn S. Nilsen
 Updated:      08 Mar 2008  Mario Sitta

 Technical data are taken from:  "ITS Supporto Generale" (technical
 drawings ALR3-0743/1, ALR3-0743/1A and ALR3-0743/1B), "Supporto Generale
 Settore SSD" (technical drawings ALR3-0743/2A and ALR3-0743/2E), private
 communication with B. Giraudo

 Updated:      11 Apr 2008  Mario Sitta
 Measures from drawings give overlaps with SPD thermal shield wings,
 so the terminal part of the SSD cone was reduced

 Updated:      30 Mar 2010  Mario Sitta
 Following M. van Leeuwen's suggestion on material budget, the thickness
 of the carbon fiber cylinder was increased from 0.6 to 0.625mm
void ServicesCableSupport(TGeoVolume* moth, TGeoManager* mgr = gGeoManager)
 Creates the cable trays which are outside the ITS support cones
 but still inside the TPC
 This is now a stearing routine, the actual work is done by three
 specialized methods to avoid a really huge unique method

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Created:      15 Nov 2009  Mario Sitta

void TraySupportsSideA(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
 Creates the structure supporting the ITS cable trays on Side A

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Created:      14 Dec 2009  Mario Sitta
 Updated:      26 Feb 2010  Mario Sitta

 Technical data are taken from AutoCAD drawings, L.Simonetti technical
 drawings and other (oral) information given by F.Tosello

 Dimensions and positions of the A-Side Cable Tray Support Ring
 (0872/G/A/01)
void ServicesCableSupportSPD(TGeoVolume* moth, TGeoManager* mgr = gGeoManager)
 Creates the all SPD cable trays which are outside the ITS support cones
 but still inside the TPC
 In order to avoid a huge monolithic routine, this method actually
 calls inner methods to create and assemble the various (macro)pieces

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Created:         ???       Bjorn S. Nilsen
 Updated:      15 Nov 2009  Mario Sitta

 Technical data are taken from AutoCAD drawings and other (oral)
 information given by F.Tosello

void ServicesCableSupportSDD(TGeoVolume* moth, TGeoManager* mgr = gGeoManager)
 Creates the all SDD cable trays which are outside the ITS support cones
 but still inside the TPC
 In order to avoid a huge monolithic routine, this method actually
 calls inner methods to create and assemble the various (macro)pieces

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Created:      14 Dec 2009  Mario Sitta

void ServicesCableSupportSSD(TGeoVolume* moth, TGeoManager* mgr = gGeoManager)
 Creates the SSD cable trays which are outside the ITS support cones
 but still inside the TPC
 In order to avoid a huge monolithic routine, this method actually
 calls inner methods to create and assemble the various (macro)pieces

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Created:      15 Nov 2009  Mario Sitta

void SPDCableTraysSideA(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
 Creates the SPD cable trays which are outside the ITS support cones
 but still inside the TPC on Side A
 (part of this code is taken or anyway inspired to ServicesCableSupport
 method of AliITSv11GeometrySupport.cxx,v 1.9 2007/06/06)

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Created:      15 Feb 2010  Mario Sitta
 Updated:      10 Jun 2010  Mario Sitta  Freon inside cooling pipes
 Updated:      08 Sep 2010  Mario Sitta
 Updated:      14 Sep 2010  Mario Sitta  Cables prolonged till cone

 Technical data are taken from AutoCAD drawings, L.Simonetti technical
 drawings and other (oral) information given by F.Tosello and D.Elia
 (small differences with blueprints - e.g. -0.07mm in R1Trans and
 R2Trans - fix small overlaps; they are then compensated in positioning
 the Rear Tray to avoid its own overlaps with the rear supporting ring)
 Optical fibers and voltage cables are approximated with mean materials
 and square cross sections, but preserving the total material budget.

 Overall position and rotation of the A-Side Cable Trays
 (parts of 0872/G/D)
void SPDCableTraysSideC(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
 Creates the SPD cable trays which are outside the ITS support cones
 but still inside the TPC on Side C
 (part of this code is taken or anyway inspired to ServicesCableSupport
 method of AliITSv11GeometrySupport.cxx,v 1.9 2007/06/06)

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Return:

 Created:         ???       Bjorn S. Nilsen
 Updated:      22 Apr 2010  Mario Sitta
 Updated:      10 Jun 2010  Mario Sitta  Freon inside cooling pipes
 Updated:      08 Sep 2010  Mario Sitta
 Updated:      14 Sep 2010  Mario Sitta  Cables prolonged till cone
 Updated:      20 Dec 2011  Mario Sitta  Composite vol to avoid new overlap

 Technical data are taken from AutoCAD drawings and other (oral)
 information given by D.Elia
 Optical fibers and voltage cables are approximated with mean materials
 and square cross sections, but preserving the total material budget.

 Dimensions and positions of the C-Side Cable Tray elements
void SDDCableTraysSideA(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
 Creates the SDD cable trays which are outside the ITS support cones
 but still inside the TPC on Side A
 (part of this code is taken or anyway inspired to ServicesCableSupport
 method of AliITSv11GeometrySupport.cxx,v 1.9 2007/06/06)

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Created:         ???       Bjorn S. Nilsen
 Updated:       5 Jan 2010  Mario Sitta
 Updated:      26 Feb 2010  Mario Sitta
 Updated:      06 Sep 2010  Mario Sitta

 Technical data are taken from AutoCAD drawings, L.Simonetti technical
 drawings and other (oral) information given by F.Tosello

 Overall position and rotation of the A-Side Cable Trays
 (parts of 0872/G/D)
void SDDCableTraysSideC(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
 Creates the SDD cable trays which are outside the ITS support cones
 but still inside the TPC on Side C
 (part of this code is taken or anyway inspired to ServicesCableSupport
 method of AliITSv11GeometrySupport.cxx,v 1.9 2007/06/06)

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Created:         ???       Bjorn S. Nilsen
 Updated:      17 Apr 2010  Mario Sitta

 Technical data are taken from AutoCAD drawings and other (oral)
 information given by F.Tosello

 Dimensions and positions of the C-Side Cable Tray
 (Change accordingly to CreateSDDSSDTraysSideC !)
void SSDCableTraysSideA(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
 Creates the SSD cable trays which are outside the ITS support cones
 but still inside the TPC on Side A
 (part of this code is taken or anyway inspired to ServicesCableSupport
 method of AliITSv11GeometrySupport.cxx,v 1.9 2007/06/06)

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Created:         ???       Bjorn S. Nilsen
 Updated:      30 Dec 2009  Mario Sitta

 Technical data are taken from AutoCAD drawings, L.Simonetti technical
 drawings and other (oral) information given by F.Tosello and
 Ton van den Brink
 Cables and cooling tubes are approximated with proper materials and
 rectangular cross sections, always preserving the total material budget.

 Dimensions and positions of the A-Side Cable Trays
 (parts of 0872/G/D)
void SSDCableTraysSideC(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
 Creates the SSD cable trays which are outside the ITS support cones
 but still inside the TPC on Side C
 (part of this code is taken or anyway inspired to ServicesCableSupport
 method of AliITSv11GeometrySupport.cxx,v 1.9 2007/06/06)

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Created:         ???       Bjorn S. Nilsen
 Updated:      15 Apr 2010  Mario Sitta

 Technical data are taken from AutoCAD drawings and other (oral)
 information given by F.Tosello

 Dimensions and positions of the C-Side Cable Tray elements
void CreateSDDForwardTraySideA(TGeoVolumeAssembly* tray, const TGeoManager* mgr)
 Creates the forward SDD tray on Side A (0872/G/D/01)

 Input:
         tray : the TGeoVolumeAssembly to put the elements in
         mgr  : the GeoManager (used only to get the proper material)

 Output:

 Return:

 Created:      08 Jan 2010  Mario Sitta
 Updated:      07 Sep 2010  Mario Sitta

 Technical data are taken from AutoCAD drawings, L.Simonetti technical
 drawings and other (oral) information given by F.Tosello

 Dimensions of the A-Side Forward Cable Tray (0872/G/D/01)
TGeoCompositeShape* CreateTrayAForwardCover(const Double_t coverLen)
 Creates the forward cover of the SDD and SSD cable trays on Side A
 (0872/G/D/02)

 Input:
             coverLen: the total length of the cover

 Output:

 Return:     a TGeoCompositeShape for the cover

 Created:      03 Jan 2010  Mario Sitta

 Technical data are taken from AutoCAD drawings, L.Simonetti technical
 drawings and other (oral) information given by F.Tosello

TGeoCompositeShape* CreateTrayAExternalCover(const Double_t coverLen)
 Creates the external cover of the SDD and SSD cable trays on Side A
 (0872/G/D/04)

 Input:
             coverLen: the total length of the cover

 Output:

 Return:     a TGeoCompositeShape for the cover

 Created:      03 Jan 2010  Mario Sitta

 Technical data are taken from AutoCAD drawings, L.Simonetti technical
 drawings and other (oral) information given by F.Tosello

void CreateTrayACoverHolesShape(const Double_t wide, const Double_t length, const Double_t r10, Double_t* x, Double_t* y)
 Creates the proper sequence of X and Y coordinates to determine
 the base XTru polygon for the holes in the SDD and SSD tray covers
 (here the rounded corners are approximated with segments)

 Input:
        wide   : the hole wide
        length : the hole length
        r10    : the radius of the rounded corners

 Output:
        x, y : coordinate vectors [16]

 Created:      03 Jan 2010  Mario Sitta

 Caller must guarantee that x and y have the correct dimensions
 (but being this a private method it's easy to tell)

TGeoXtru* CreateSDDSSDTraysSideA(const Double_t trayLen, const Double_t trayHi)
 Creates parts of the SDD and SSD Trays on Side A which are identical
 (0872/G/D/03, part of 0872/G/D/07, 0872/G/C/11)

 Input:
         trayLen : the length of the tray part
         trayHi  : the height of the tray part

 Output:

 Return:     a TGeoXtru

 Created:      26 Feb 2010  Mario Sitta

 Technical data are taken from AutoCAD drawings, L.Simonetti technical
 drawings and other (oral) information given by F.Tosello

 Dimensions and positions of the A-Side Cable Trays
 (parts of 0872/G/C)
TGeoVolumeAssembly* CreateSDDSSDTraysSideC(const char* trayName, const TGeoManager* mgr = gGeoManager)
 Creates the SDD and SSD Trays on Side C which are supposedly identical

 Input:
         trayName : the assembly name

 Output:

 Return:     a TGeoVolumeAssembly

 Created:      16 Apr 2010  Mario Sitta

 Technical data are taken from AutoCAD drawings and other (oral)
 information given by F.Tosello

void ITSTPCSupports(TGeoVolume* moth, const TGeoManager* mgr = gGeoManager)
 Creates the elements suspending the ITS to the TPC and other fixed
 elements used to hook the rails (0872/C and its daughters)

 Input:
         moth : the TGeoVolume owing the volume structure
         mgr  : the GeoManager (default gGeoManager)
 Output:

 Return:

 Created:      28 Oct 2010  Mario Sitta
 Updated:      18 Feb 2011  Mario Sitta

 Technical data are taken from AutoCAD drawings, L.Simonetti technical
 drawings and other (oral) information given by F.Tosello

 Dimensions and positions of the half ring C2/C3 (0872/C/04)
AliITSv11GeometrySupport()
{}
AliITSv11GeometrySupport(Int_t debug)
{}
virtual ~AliITSv11GeometrySupport()
{}