LCOV - code coverage report
Current view: top level - ITS/ITSsim - AliITSv11GeometrySDD.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 3 11 27.3 %
Date: 2016-06-14 17:26:59 Functions: 3 15 20.0 %

          Line data    Source code
       1             : #ifndef ALIITSV11GEOMETRYSDD_H
       2             : #define ALIITSV11GEOMETRYSDD_H
       3             : 
       4             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       5             :  * See cxx source for full Copyright notice                               */
       6             : 
       7             : // $Id$
       8             : 
       9             : //*************************************************************************
      10             : //
      11             : // SDD geometry, based on ROOT geometrical modeler
      12             : //
      13             : // Its integration to the aliroot framework is done in the AliITSv11Hybrid
      14             : // class (AliITSv11 not being functionnal so far)
      15             : //
      16             : // This geometry has no dependence with aliroot, you can run it with root
      17             : // only, provided that the AliITSv11GeomCable classes are also compiled
      18             : //
      19             : // Ludovic Gaudichet                                   gaudichet@to.infn.it
      20             : //*************************************************************************
      21             : 
      22             : 
      23             : class TGeoVolume;
      24             : class TGeoPcon;
      25             : class TGeoVolumeAssembly;
      26             : class TGeoTranslation;
      27             : class TGeoCombiTrans;
      28             : class TGeoArb8;
      29             : class TGeoNode;
      30             : class TGeoMedium;
      31             : class TGeoMatrix;
      32             : class AliITSv11GeomCableFlat;
      33             : 
      34             : #include "AliITSv11Geometry.h"
      35             : 
      36             : 
      37             : class AliITSv11GeometrySDD : public AliITSv11Geometry {
      38             : 
      39             :  public:
      40             :   AliITSv11GeometrySDD();
      41             :   AliITSv11GeometrySDD(Int_t debug);
      42             :   AliITSv11GeometrySDD(const AliITSv11GeometrySDD &source);
      43             :   AliITSv11GeometrySDD& operator=(const AliITSv11GeometrySDD &source);
      44             :   virtual ~AliITSv11GeometrySDD();
      45             : 
      46             :   // Main functions
      47             :   virtual void  Layer3(TGeoVolume *moth);
      48             :   virtual void  Layer4(TGeoVolume *moth);
      49             :   virtual void  ForwardLayer3(TGeoVolume *moth);
      50             :   virtual void  ForwardLayer4(TGeoVolume *moth);
      51             :   virtual void  SDDCables(TGeoVolume *moth);
      52             : 
      53             :   virtual Int_t GetCurrentLayLaddDet(Int_t &lay, Int_t &ladd, Int_t&det) const;
      54             : 
      55             :   // Functions for coding, testing, debugging 
      56           0 :   void          AddHybrids(bool b)     {fAddHybrids    = b;};
      57           0 :   void          AddSensors(bool b)     {fAddSensors    = b;};
      58           0 :   void          AddHVcables(bool b)    {fAddHVcables   = b;};
      59           0 :   void          AddCables(bool b)      {fAddCables     = b;};
      60           0 :   void          AddCoolingSyst(bool b) {fAddCoolingSyst= b;};
      61             : 
      62             :   void          CheckOverlaps(Double_t precision = 0.01);
      63             :   void          AddOnlyLay3Ladder(Int_t min,Int_t max){
      64           0 :                   fAddOnlyLadder3min = min; fAddOnlyLadder3max = max; };
      65             :   void          AddOnlyLay4Ladder(Int_t min,Int_t max) {
      66           0 :                   fAddOnlyLadder4min = min; fAddOnlyLadder4max = max;};
      67             :   void          ShowOnePiece(TGeoVolume *Moth);
      68             : 
      69             :   virtual void  SetParameters();
      70           0 :   TGeoVolume*   GetMotherVolume() const { return fMotherVol;};
      71           2 :   const char*   GetSenstiveVolumeName3() const {return fgkSDDsensitiveVolName3;};
      72           2 :   const char*   GetSenstiveVolumeName4() const {return fgkSDDsensitiveVolName4;};
      73             :   Int_t         GetLay3NLadders() const;
      74             :   Int_t         GetLay4NLadders() const;
      75             : 
      76             :   private:
      77             : 
      78             :   virtual TGeoVolumeAssembly*  CreateLadder(Int_t iLay);
      79             :   virtual TGeoVolumeAssembly*  CreateDetectorsAssembly(Int_t iLay);
      80             :   virtual TGeoVolumeAssembly*  CreateDetectorsAssemblyLadd2();
      81             :   virtual TGeoVolume*          CreateLadderSegment(Int_t iLay, Int_t iSeg);
      82             :   virtual TGeoVolumeAssembly*  CreateEndLadder(Int_t iLay);
      83             :   virtual TGeoVolumeAssembly*  CreateEndLadderCards(Int_t iLay);
      84             :   virtual TGeoVolume*          CreateEndLadderCardsV(Int_t iLay);
      85             :   virtual TGeoVolumeAssembly*  CreateSupportRing();
      86             : 
      87             :   // Create some basic objects : 
      88             :   virtual void                 CreateSDDsensor();
      89             :   virtual TGeoVolume*          CreateHybrid(Int_t iLRSide);
      90             :   virtual TGeoVolume*          CreatePinSupport();
      91             :   virtual TGeoVolume*          CreateCoolPipeSupportL();
      92             :   virtual TGeoVolume*          CreateCoolPipeSupportR();
      93             :   virtual TGeoVolume*          CreateBaseThermalBridge();
      94             : 
      95             :   virtual TGeoVolumeAssembly*  CreateLadderFoot();
      96             :   virtual TGeoVolumeAssembly*  CreateCarlosCard(Int_t iLay);
      97             :   virtual Int_t                CreateLVCard();
      98             :   virtual TGeoVolumeAssembly*  CreateHVCard();
      99             : 
     100             :   void                         CreateBasicObjects();
     101             :   Double_t                     GetConeZ(Double_t r, Double_t refR1, Double_t refR2,
     102             :                                         Double_t refZ1, Double_t refZ2) const;
     103             :   TGeoPcon*                    CreateConeConstSection(Double_t r1max, Double_t z1,
     104             :                                                       Double_t r2max, Double_t z2,
     105             :                                                       Double_t section, Int_t nDiv=1);
     106             :   Int_t CreateAndInsetConeCablePart(TGeoVolume *mother, Double_t angle,
     107             :                                     Int_t nLay3, Int_t nLay4,
     108             :                                     Double_t r1, Double_t z1,
     109             :                                     Double_t r2, Double_t z2);
     110             : 
     111             :   // Check that the medium exists
     112             :   virtual TGeoMedium* GetMedium(const char* mediumName);
     113             : 
     114             :   // Create a TGeoCombiTrans: general rotation in phi and (dy,dz) translation 
     115             :   TGeoCombiTrans* CreateCombiTrans( const char *name,
     116             :                                     Double_t dy, Double_t dz, Double_t dphi,
     117             :                                     Bool_t planeSym=kFALSE);
     118             : 
     119             :   // add (dx,dy,dz) translation to a initial TGeoCombiTrans
     120             :   void AddTranslationToCombiTrans( TGeoCombiTrans* ct,
     121             :                           Double_t dx=0, Double_t dy=0, Double_t dz=0) const;
     122             : 
     123             :   // Create one side of the CF corner of the CF structure
     124             :   TGeoArb8* CreateLadderSide( const char *name,
     125             :                               Double_t dz, Double_t angle, Double_t xSign,
     126             :                               Double_t L, Double_t H, Double_t l);
     127             : 
     128             :   //----------------------------
     129             :   TGeoVolume* fPinSupport;        //!  pins glued to sensors
     130             :   TGeoVolume* fCoolPipeSupportL;  //!  half of cooling pipe support
     131             :   TGeoVolume* fCoolPipeSupportR;  //!  half of cooling pipe support
     132             :   TGeoVolume* fSDDsensor3;        //!  sensor of lay. 3 and HV cables on it
     133             :   TGeoVolume* fSDDsensor4;        //!  sensor of lay. 4 and HV cables on it
     134             :   TGeoVolume* fBaseThermalBridge; //!  Base of hybrid thermal bridge
     135             :   TGeoVolume* fHybrid;            //!  hybrid volume
     136             :   TGeoVolumeAssembly *fLadderFoot;//!  ladder foot in stesalite
     137             :   TGeoVolumeAssembly *fCardLVR;   //!  low voltage card, right
     138             :   TGeoVolumeAssembly *fCardLVL;   //!  low voltage card, left
     139             :   TGeoVolumeAssembly *fCardHV;    //!  high voltage card
     140             :   TGeoVolumeAssembly *fCardCarlos;//!  end-ladder CARLOS card
     141             :   TGeoVolumeAssembly *fRaccordoL; //!  link between cooling tubes at end ladder
     142             :   TGeoVolume* fCommonVol[2];      //!  some common vol. used in several places
     143             :   TGeoMatrix* fCommonTr[2];       //!  some common transformations
     144             : 
     145             :   static const Int_t fgkNladdSegCommonVol = 20;       //  Number of vol.
     146             :   TGeoVolume* fLaddSegCommonVol[fgkNladdSegCommonVol];//! volumes in ladder
     147             :   TGeoMatrix* fLaddSegCommonTr[fgkNladdSegCommonVol]; //! their transf.
     148             : 
     149             :   AliITSv11GeomCableFlat *fDigitCableLay3A; // layer 3 cables, side A
     150             :   AliITSv11GeomCableFlat *fDigitCableLay3B; // layer 3 cables, side B
     151             :   AliITSv11GeomCableFlat *fDigitCableLay4A; // layer 4 cables, side A
     152             :   AliITSv11GeomCableFlat *fDigitCableLay4B; // layer 4 cables, side B
     153             : 
     154             :   TGeoVolume *fMotherVol;    //! mother volume given in LayerX() funct.
     155             :   bool  fAddHybrids;         //  Insert hybrids ?   (default TRUE)
     156             :   bool  fAddSensors;         //  Insert sensors ?   (default TRUE)
     157             :   bool  fAddHVcables;        //  Insert HV cables ? (default TRUE)
     158             :   bool  fAddCables;          //  Insert cables ?    (default TRUE)
     159             :   bool  fAddCoolingSyst;     //  Insert cooling system ? (default TRUE)
     160             :   bool  fCoolingOn;          //  Insert cooling fluid ?  (default TRUE)
     161             :   Int_t fAddOnlyLadder3min;  //  first ladder index
     162             :   Int_t fAddOnlyLadder3max;  //  last  ladder index
     163             :   Int_t fAddOnlyLadder4min;  //  first ladder index
     164             :   Int_t fAddOnlyLadder4max;  //  last  ladder index
     165             :   Int_t fColorCarbonFiber;   //  display colors
     166             :   Int_t fColorRyton;         //  ===
     167             :   Int_t fColorPhynox;        //  ===
     168             :   Int_t fColorSilicon;       //  ===
     169             :   Int_t fColorAl;            //  ===
     170             :   Int_t fColorPolyhamide;    //  ===
     171             :   Int_t fColorGlass;         //  ===
     172             :   Int_t fColorSMD;           //  ===
     173             :   Int_t fColorSMDweld;       //  ===
     174             :   Int_t fColorStesalite;     //  ===
     175             : 
     176             :   //--------------------------------------  parameters for the SDD geometry
     177             : 
     178             :   static const char* fgkSDDsensitiveVolName3;      // sens. vol. name for lay. 3
     179             :   static const char* fgkSDDsensitiveVolName4;      // sens. vol. name for lay. 4
     180             : 
     181             :   static const Int_t    fgkLay3Nladd;             // 14
     182             :   static const Int_t    fgkLay3Ndet;              //  6
     183             :   static const Double_t fgkLay3Rmin;              // min. radius of tube
     184             :   static const Double_t fgkLay3Rmax;              // max. radius of tube
     185             :   static const Double_t fgkLay3Length;            // length of layer 3 tube
     186             :   static const Double_t fgkLay3LadderLength;      // tot. length of ladder
     187             :   static const Double_t fgkLay3DetShortRadius;    // radius from beam axis
     188             :   static const Double_t fgkLay3DetLongRadius;     // radius from beam axis
     189             :   static const Double_t fgkLay3LaddTopCornerEnd;  // Ends of ladder 3
     190             :   static const Double_t fgkLay3ZPlusEndLength;    // ===
     191             : 
     192             :   static const Int_t    fgkLay4Nladd;             // 22
     193             :   static const Int_t    fgkLay4Ndet;              //  8
     194             :   static const Double_t fgkLay4Rmin;              // min. radius of tube
     195             :   static const Double_t fgkLay4Rmax;              // max. radius of tube
     196             :   static const Double_t fgkLay4Length;            // length of layer 4 tube
     197             :   static const Double_t fgkLay4LadderLength;      // tot. length of ladder
     198             :   static const Double_t fgkLay4DetShortRadius;    // radius from beam axis
     199             :   static const Double_t fgkLay4DetLongRadius;     // radius from beam axis
     200             :   static const Double_t fgkLay4LaddTopCornerEnd;  // Ends of ladder 3
     201             :   static const Double_t fgkLay4ZPlusEndLength;    // ===
     202             : 
     203             :   static const Double_t fgkEndLaddCardsShortRadiusLay3; // ref radius of end ladder cards
     204             :   static const Double_t fgkEndLaddCardsShortRadiusLay4; // ref radius  of end ladder cards
     205             :   static const Double_t fgkDistEndLaddCardsLadd;        // dist. between U cooling tube and ladder
     206             : 
     207             :   static const Double_t fgkSegmentLength;         // length of 1 ladder seg.
     208             :   static const Double_t fgkLadderWidth;           // carbon fiber structure 
     209             :   static const Double_t fgkLadderHeight;          // including bottom beam
     210             :   static const Double_t fgkLadderSegBoxDW;        // To include hybrids in box
     211             :   static const Double_t fgkLadderSegBoxDH;        // To include hybrids in box
     212             :   //  static const Double_t fgkLadderSegBoxDHCorr;    // To include hybrids in box
     213             : 
     214             :   static const Double_t fgkLadderBeamRadius;      // carbon fiber beam radius
     215             :   static const Double_t fgkLadderLa;              // parameters defining
     216             :   static const Double_t fgkLadderHa;              //   the V side shape
     217             :   static const Double_t fgkLadderLb;              //   of the carbon
     218             :   static const Double_t fgkLadderHb;              //   fiber ladder
     219             :   static const Double_t fgkLadderl;               //   ============
     220             : 
     221             :   static const Double_t fgkBottomBeamAngle;       // bottom beam angle
     222             :   static const Double_t fgkBeamSidePhi;           // side beam angle
     223             : 
     224             :   static const Double_t fgkWaferThickness;        // sensor thickness (Y)
     225             :   static const Double_t fgkWaferWidth;            // width (X)
     226             :   static const Double_t fgkWaferLength;           // length (Z)
     227             :   static const Double_t fgkWaferThickSens;        // sensitive volume thich
     228             :   static const Double_t fgkWaferWidthSens;        // sens. volume width
     229             :   static const Double_t fgkWaferLengthSens;       // sens. volume length
     230             : 
     231             :   static const Double_t fgkSensorGlassLX;         // dimensions of glass
     232             :   static const Double_t fgkSensorGlassLZ;         //  (on which pins are
     233             :   static const Double_t fgkSensorGlassLY;         //   glued)
     234             :   static const Double_t fgkGlassDXOnSensor;       // Position of glass
     235             :   static const Double_t fgkGlassDZOnSensor;       //   on sensor
     236             : 
     237             :   static const Double_t fgkLadWaferSep;           // ladder-sensor dist.
     238             :   static const Double_t fgkPinR;                  // pins radius
     239             :   static const Double_t fgkPinSuppWidth;          // ===
     240             :   static const Double_t fgkPinSuppHeight;         // ===
     241             :   static const Double_t fgkPinSuppRmax;           // Parameters for pin
     242             :   static const Double_t fgkPinSuppLength;         //   supports on
     243             :   static const Double_t fgkPinSuppThickness;      //   carbon fiber
     244             :   static const Double_t fgkPinSuppConeAngle;      //   ladder
     245             :   static const Double_t fgkPinDXminOnSensor;      // ===
     246             :   static const Double_t fgkPinPinDDXOnSensor;     // ===
     247             :   static const Double_t fgkPinDYOnSensor;         // ===
     248             : 
     249             :   static const Double_t fgkCoolPipeInnerDiam;     // Water cooling
     250             :   static const Double_t fgkCoolPipeOuterDiam;     //   pipe
     251             :   static const Double_t fgkLay3CoolPipeSuppH;     // Heights of water
     252             :   static const Double_t fgkLay4CoolPipeSuppH;     //   pipes on ladders
     253             :   static const Double_t fgkCoolPipeSuppHeight;    // ===
     254             :   static const Double_t fgkCoolPipeSuppMaxLength; // ===
     255             :   static const Double_t fgkCoolPipeSuppWidthExt;  // Parameters for
     256             :   static const Double_t fgkCoolPipeSuppWidthIn;   //  cooling pipes
     257             :   static const Double_t fgkCoolPipeSuppHoleDiam;  //  on carbon fiber
     258             :   static const Double_t fgkCoolPipeSuppFulWidth;  //  ladder 
     259             :   static const Double_t fgkCoolPipeSuppTongW;     // ===
     260             :   static const Double_t fgkCoolPipeSuppAngle;     // ===
     261             :   static const Double_t fgkCoolPipeSuppSlitL;     // ===
     262             :   static const Double_t fgkCoolPipeSuppAxeDist;   // ===
     263             : 
     264             :   static const Double_t fgkBTBthick;              // BTB for :
     265             :   static const Double_t fgkBTBlength;             // Base of Thermal Bridge
     266             :   static const Double_t fgkBTBwidth;              // =====================
     267             :   static const Double_t fgkBTBaxisAtoBottom;      // axis A is the same as
     268             :   static const Double_t fgkBTBaxisAtoBase;        // the cooling pipe axis
     269             :   static const Double_t fgkRadiusAminBTB;         // ===
     270             :   static const Double_t fgkRadiusBminBTB;         // ===
     271             :   static const Double_t fgkBTBHoleLength;         // ===
     272             :   static const Double_t fgkBTBHolewidth;          // ===
     273             :   static const Double_t fgkBTBHoleRefX;           // ===
     274             :   static const Double_t fgkBTBHoleRefY;           // ===
     275             : 
     276             :   static const Double_t fgkHybridLength;          // Hybrid parameters :
     277             :   static const Double_t fgkHybridWidth;           // ===
     278             :   static const Double_t fgkHybridAngle;           // Hybrid on ladder in phi
     279             : 
     280             :   static const Double_t fgkHybRndHoleRad;         // ===
     281             :   static const Double_t fgkHybRndHoleZ;           // ===
     282             :   static const Double_t fgkHybRndHoleX;           // ===
     283             : 
     284             :   static const Double_t fgkHybFLlowHoleDZ;        // FLlow : low flex
     285             :   static const Double_t fgkHybFLlowHolePasDX;     // ===
     286             :   static const Double_t fgkHybFLlowHoleAmbDX;     // ===
     287             :   // (center of ships to the border)
     288             :   static const Double_t fgkHybFLlowChipZ4;        // Z1 to Z4 : position
     289             :   static const Double_t fgkHybFLlowChipZ3;        //   in z of the chip
     290             :   static const Double_t fgkHybFLlowChipZ2;        //   centers
     291             :   static const Double_t fgkHybFLlowChipZ1;        // ===
     292             :   static const Double_t fgkHybFLlowPasX;          // Pascal center X pos
     293             :   static const Double_t fgkHybFLlowAmbX;          // Ambra center X pos
     294             :   static const Double_t fgkHybChipsDZ;            // Z dimension of chips
     295             :   static const Double_t fgkHybPascalDX;           // X dimension of Pascal
     296             :   static const Double_t fgkHybAmbraDX;            // X dimension of Ambra
     297             :   static const Double_t fgkHybFLUpperWidth;       // bFLUpper : upper flex
     298             :   static const Double_t fgkHybFLUpperLength;      // ===
     299             :   static const Double_t fgkHybFLUpperAlDZ;        // ===
     300             :   static const Double_t fgkHybFLUpperAldx;        // ===
     301             : 
     302             :   static const Double_t fgkHybridThBridgeThick;   // Thicknesses :
     303             :   static const Double_t fgkHybAlThick;            // ===
     304             :   static const Double_t fgkHybUpThick;            // ===
     305             :   static const Double_t fgkHybGlueScrnThick;      // ===
     306             :   static const Double_t fgkHybGlueLowThick;       // ===
     307             :   static const Double_t fgkHybGlueUpThick;        // ===
     308             :   static const Double_t fgkHybAlCCThick;          // ===
     309             :   static const Double_t fgkHybUpCCThick;          // ===
     310             :   static const Double_t fgkHybCC2SensorLen;       // ===
     311             :   static const Double_t fgkHybCC2SensorWid;       // ===
     312             :   static const Double_t fgkHybCC2SensorAng;       // ===
     313             :   static const Double_t fgkHybChipThick;          // ===
     314             :   static const Double_t fgkHybGlueAgThick;        // ===
     315             :   static const Double_t fgkHybUnderNiThick;       // ===
     316             :   static const Int_t    fgkNHybSMD;               // Number of SMD
     317             :   static const Double_t fgkHybSMDposX[25];        // X pos. of SMD
     318             :   static const Double_t fgkHybSMDposZ[25];        // Z pos. of SMD
     319             :   static const Double_t fgkHybSMDmiddleW;         // SMD width
     320             :   static const Double_t fgkHybSMDmiddleL;         // SMD length
     321             :   static const Double_t fgkHybSMDendW;            // end SMD witdh
     322             :   static const Double_t fgkHybSMDendL;            // end SMD length
     323             :   static const Double_t fgkHybSMDheight;          // SMD height
     324             : 
     325             :   static const Double_t fgkDigitCablWidth;        // Digital
     326             :   static const Double_t fgkDigitCablAlThick;      // cables
     327             :   static const Double_t fgkDigitCablPolyThick;    // ===
     328             : 
     329             :   //HV cables
     330             :   static const Double_t fgkWaHVcableAlThick;      // Wrap-around
     331             :   static const Double_t fgkWaHVcablePolyThick;    //   High Voltage
     332             :   static const Double_t fgkWaHVcableLength;       //   cables
     333             :   static const Double_t fgkWaHVcableWitdh;        //   (on sensor)
     334             :   static const Double_t fgkWaHVcableDW;           // ===
     335             : 
     336             :   static const Double_t fgkTransitHVAlThick;      // Transition
     337             :   static const Double_t fgkTransitHVPolyThick;    //   High Voltage
     338             :   static const Double_t fgkTransitHVHeadLX;       //   cables
     339             :   static const Double_t fgkTransitHVHeadLZ;       //   (on sensor)
     340             :   static const Double_t fgkTransitHVBondingLZ;    // ===
     341             :   static const Double_t fgkTransitHVtailLength;   // ===
     342             :   static const Double_t fgkTransitHVtailWidth;    // ===
     343             :   static const Double_t fgkTransitHVtailXpos;     // ===
     344             :   static const Double_t fgkTransitHVsideLZ;       // ===
     345             :   static const Double_t fgkTransitHVsideLeftZ;    // ===
     346             :   static const Double_t fgkTransitHVsideRightZ;   // ===
     347             : 
     348             :   static const Double_t fgkLongHVcablePolyThick;  // Long High
     349             :   static const Double_t fgkLongHVcableAlThick;    //   Voltage
     350             :   static const Double_t fgkLongHVcableSeparation; //   cables
     351             : 
     352             : 
     353             :   static const Double_t fgkRubyDX;                // ruby dx with respect to the middle (to ladder z axis)
     354             :   static const Double_t fgkRubyZladd3;            // Z of ruby, ladder 3
     355             :   static const Double_t fgkRubyZladd4;            // Z of ruby, ladder 4
     356             : 
     357             :   static const Double_t fgkLadFootX;              // Length of ladder foot
     358             :   static const Double_t fgkLadFootZ;              // width 
     359             :   static const Double_t fgkLadFootY;              // thickness
     360             :   static const Double_t fgkLadFootMiddleY;        // thickness in the middle part
     361             :   static const Double_t fgkLadBox1X;              // size in X
     362             :   static const Double_t fgkLadFingerPrintX;       // size in X
     363             :   static const Double_t fgkLadFingerPrintY ;      // size in Y
     364             :   static const Double_t fgkLadFingerPrintBorder;  // size in X
     365             :   static const Double_t fgkRubyCageHoleZ;         // size in Z
     366             :   static const Double_t fgkRubyCageHoleX;         // size in X
     367             :   static const Double_t fgkRubyCageHoleY;         // size in Y
     368             :   static const Double_t fgkRubyCageAxisShift;     // shift in X
     369             :   static const Double_t fgkScrewM4diam;           // M4 screw standard diameter 
     370             :   static const Double_t fgkRubyScrewShiftToCenterY; // screw placement 
     371             :   static const Double_t fgkRubyHoleDiam;          // guess what
     372             : 
     373             : // the end ladder cooling pipe and its heat exchanger
     374             :   static const Double_t fgkEndLadPipeUlengthLay3; // length in Z of the U cooling tube
     375             :   static const Double_t fgkEndLadPipeUlengthLay4; // length in Z of the U cooling tube
     376             :   static const Double_t fgkEndLadPipeUwidth;      // width
     377             :   static const Double_t fgkEndLadPipeRadius;      // radius
     378             :   static const Double_t fgkEndLadPipeInnerDiam;   // InnerDiam
     379             :   static const Double_t fgkEndLadPipeOuterDiam;   // OuterDiam
     380             : 
     381             :   static const Double_t fgkEndLadPipeArmZLay3;    // the arms of the U cooling tube
     382             :   static const Double_t fgkEndLadPipeArmZLay4;    // (rectangular part surrounding the)
     383             :   static const Double_t fgkEndLadPipeArmX;        // the tube
     384             :   static const Double_t fgkEndLadPipeArmY;        // X, Y : size in the correxponding axis
     385             :   static const Double_t fgkEndLadPipeArmBoxDY;    // shift in Y of the arms from the axis
     386             :   static const Double_t fgkEndLadPipeArmBoxDX;    // shift in X of the arms from the axis
     387             :   static const Double_t fgkEndLadPipeArmZpos;     // position with respect to tube  
     388             : 
     389             : 
     390             :   // approx dim for now - all of the following has to be checked
     391             :   // once Beppe provide the drawing...
     392             : 
     393             :   // Carlos Card :
     394             :   static const Double_t fgkLVcardX;              // size of the card itself in X
     395             :   static const Double_t fgkLVcardY;              // size of the card itself in Y
     396             :   static const Double_t fgkLVcardZ;              // size of the card itself in Z
     397             :   static const Double_t fgkLVcardCuZ;            // Cu thickness
     398             : 
     399             :   static const Double_t fgkLVChip0X;             // chip #0
     400             :   static const Double_t fgkLVChip0Y;             // ...
     401             :   static const Double_t fgkLVChip0Z;             //  thickness without si layer
     402             :   static const Double_t fgkLVChip0SiZ;           // Si layer thickness
     403             :   static const Double_t fgkLVChip0PosX;          // Position with respect to the card
     404             :   static const Double_t fgkLVChip0PosY;          // Position with respect to the card
     405             : 
     406             :   static const Double_t fgkLVChip1X;             // same
     407             :   static const Double_t fgkLVChip1Y;             // conventions
     408             :   static const Double_t fgkLVChip1Z;             // as
     409             :   static const Double_t fgkLVChip1SiZ;           // chip 0
     410             :   static const Double_t fgkLVChip1PosX;          // ==
     411             :   static const Double_t fgkLVChip1PosY;          // ==
     412             : 
     413             :   static const Double_t fgkLVChip2X;             // same
     414             :   static const Double_t fgkLVChip2Y;             // conventions
     415             :   static const Double_t fgkLVChip2Z;             // as
     416             :   static const Double_t fgkLVChip2SiZ;           // chip 0
     417             :   static const Double_t fgkLVChip2PosX;          // ==
     418             :   static const Double_t fgkLVChip2PosY;          // ==
     419             : 
     420             :   static const Double_t fgkLVChip3X;             // same
     421             :   static const Double_t fgkLVChip3Y;             // conventions
     422             :   static const Double_t fgkLVChip3Z;             // as
     423             :   static const Double_t fgkLVChip3SiZ;           // chip 0
     424             :   static const Double_t fgkLVChip3PosX;          // ==
     425             :   static const Double_t fgkLVChip3PosY;          // ==
     426             : 
     427             :   static const Double_t fgkLVcoolX1;             // pieces of alCu12
     428             :   static const Double_t fgkLVcoolY1;             // for heat exchange
     429             :   static const Double_t fgkLVcoolZ1;             // with the cooling tube
     430             : 
     431             :   static const Double_t fgkLVcoolX2;             // X,Y,Z are
     432             :   static const Double_t fgkLVcoolY2;             // dimensions
     433             :   static const Double_t fgkLVcoolZ2;             // of the pieces
     434             : 
     435             :   static const Double_t fgkLVcoolX3;             // ==
     436             :   static const Double_t fgkLVcoolY3;             // ==
     437             :   static const Double_t fgkLVcoolPosY;           // ==
     438             : 
     439             :   // HV card :
     440             :   static const Double_t fgkHVCardCeramX;         // size in X of the ceramic card
     441             :   static const Double_t fgkHVCardCeramY;         // size in Y
     442             :   static const Double_t fgkHVCardCeramZ;         // size in Z
     443             : 
     444             :   static const Double_t fgkHVCardCapa1X;         // size in X of the capa 1
     445             :   static const Double_t fgkHVCardCapa1Z;         // size in Z
     446             :   static const Double_t fgkHVCardCapa1Ymid;      // size of the middle part
     447             :   static const Double_t fgkHVCardCapa1Yend;      // ...
     448             :   static const Double_t fgkHVCardCapa1PosX;      // position on the card
     449             :   static const Double_t fgkHVCardCapa1PosY;      // position on the card
     450             : 
     451             :   static const Double_t fgkHVCardCapa2X;         // idem for second type capa
     452             :   static const Double_t fgkHVCardCapa2Z;         //   love me
     453             :   static const Double_t fgkHVCardCapa2Ymid;      //   ...
     454             :   static const Double_t fgkHVCardCapa2Yend;      //   tender,
     455             :   static const Double_t fgkHVCardCapa2PosX;      //   ...
     456             :   static const Double_t fgkHVCardCapa2PosY;      //   love me true
     457             : 
     458             :   static const Double_t fgkHVCardCapa3Xmid;      //  idem for third type capa
     459             :   static const Double_t fgkHVCardCapa3Xend;      //  ===
     460             :   static const Double_t fgkHVCardCapa3Z;         //  ===
     461             :   static const Double_t fgkHVCardCapa3Y;         //  ===
     462             : 
     463             :   static const Double_t fgkHVCardCapa3PosX1;     // this capa is placed
     464             :   static const Double_t fgkHVCardCapa3PosX2;     // in several positions
     465             :   static const Double_t fgkHVCardCapa3PosX3;     // ...
     466             :   static const Double_t fgkHVCardCapa3PosX4;     // ===
     467             :   static const Double_t fgkHVCardCapa3PosX5;     // ===
     468             :   static const Double_t fgkHVCardCapa3PosY1;     // ===
     469             :   static const Double_t fgkHVCardCapa3PosY2;     // ===
     470             :   static const Double_t fgkHVCardCapa3PosY3;     // ===
     471             : 
     472             :   static const Double_t fgkHVCardCool1X;         // cooling
     473             :   static const Double_t fgkHVCardCool1Y;         // pieces for
     474             :   static const Double_t fgkHVCardCool1Z;         // heat exchange
     475             :   static const Double_t fgkHVCardCool2X;         // with
     476             :   static const Double_t fgkHVCardCool2Y;         // cooling U tube
     477             :   static const Double_t fgkHVCardCool2Z;         // ===
     478             :   static const Double_t fgkHVCardCool3X;         // ===
     479             :   static const Double_t fgkHVCardCool3Y;         // ===
     480             :   static const Double_t fgkHVCardCool3Z;         // ===
     481             :   static const Double_t fgkHVCardCoolDY;         // ===
     482             : 
     483             :   static const Double_t fgkCarlosSuppX1;         // piece with which
     484             :   static const Double_t fgkCarlosSuppY1;         // the carlos card
     485             :   static const Double_t fgkCarlosSuppX2;         // is fixed
     486             :   static const Double_t fgkCarlosSuppY2;         // ===
     487             :   static const Double_t fgkCarlosSuppZ;          // ===
     488             :   static const Double_t fgkCarlosSuppAngle;      //  ===
     489             :   static const Double_t fgkCarlosSuppX3;         // ===
     490             :   static const Double_t fgkCarlosSuppY3;         // ===
     491             :   static const Double_t fgkCarlosSuppZ3;         // ===
     492             :   static const Double_t fgkCarlosSuppTopLen;     // ===
     493             : 
     494             :   // screws fixing the board on the U tube
     495             :   static const Double_t fgkLittleScrewHeadR;     // screws fixing boards
     496             :   static const Double_t fgkLittleScrewHeadH;     // Value to be checked
     497             :   static const Double_t fgkLittleScrewR;         // ===
     498             :   static const Double_t fgkShiftLittleScrewLV;   // ===
     499             :   static const Double_t fgkLittleLVScrewHeadR;   // ===
     500             : 
     501             :   // CARLOS board
     502             :   static const Double_t fgkCarlosCardX1;         // length (first part of Carlos card)
     503             :   static const Double_t fgkCarlosCardY1;         // thickness
     504             :   static const Double_t fgkCarlosCardZ1;         // width 
     505             :   static const Double_t fgkCarlosCardCuY;        // thickness of Cu layer (strips)
     506             :   static const Double_t fgkCarlosCardX2;         // length (2nd part of Carlos card)
     507             :   static const Double_t fgkCarlosCardZ2;         // width 
     508             : 
     509             :   static const Double_t fgkCarlosCardChipSiThick;  // Carlos Chip thicknes - value to be checked
     510             :   static const Double_t fgkCarlosCardShift;        // (value to be checked) shift in z w.r.t. heat bridge 
     511             : 
     512             :   // size and position of various chips on carlos end-ladder board
     513             :   static const Double_t fgkCarlosU1X;            // chip size in X
     514             :   static const Double_t fgkCarlosU1Y;            // chip size in Y
     515             :   static const Double_t fgkCarlosU1Z;            // chip size in Z
     516             :   static const Double_t fgkCarlosU1posX;         // position in X
     517             :   static const Double_t fgkCarlosU1posZ;         // position in Z
     518             : 
     519             :   static const Double_t fgkCarlosU2X;            // chip size in X
     520             :   static const Double_t fgkCarlosU2Y;            // chip size in Y
     521             :   static const Double_t fgkCarlosU2Z;            // chip size in Z
     522             :   static const Double_t fgkCarlosU2posX;         // position in X
     523             :   static const Double_t fgkCarlosU2posZ;         // position in Z
     524             :   
     525             :   static const Double_t fgkCarlosU3X;            // same convention
     526             :   static const Double_t fgkCarlosU3Y;            // ===
     527             :   static const Double_t fgkCarlosU3Z;            // ===
     528             :   static const Double_t fgkCarlosU3posX;         // ===
     529             :   static const Double_t fgkCarlosU3posZ;         // ===
     530             : 
     531             :   // U4 like U3  
     532             :   static const Double_t fgkCarlosU4posX;         // same convention
     533             :   static const Double_t fgkCarlosU4posZ;         // ===
     534             : 
     535             :   static const Double_t fgkCarlosU17X;           // same convention
     536             :   static const Double_t fgkCarlosU17Y;           // ===
     537             :   static const Double_t fgkCarlosU17Z;           // ===
     538             :   static const Double_t fgkCarlosU17posX;        // ===
     539             :   static const Double_t fgkCarlosU17posZ;        // ===
     540             :   
     541             :   static const Double_t fgkCarlosU35X;           // same convention
     542             :   static const Double_t fgkCarlosU35Y;           // ===
     543             :   static const Double_t fgkCarlosU35Z;           // ===
     544             :   static const Double_t fgkCarlosU35posX;        // ===
     545             :   static const Double_t fgkCarlosU35posZ;        // ===
     546             : 
     547             :   static const Double_t fgkCarlosU36X;           // same convention
     548             :   static const Double_t fgkCarlosU36Y;           // ===
     549             :   static const Double_t fgkCarlosU36Z;           // ===
     550             :   static const Double_t fgkCarlosU36posX;        // ===
     551             :   static const Double_t fgkCarlosU36posZ;        // ===
     552             :   
     553             :   static const Double_t fgkCarlosQZ1X;           // same convention
     554             :   static const Double_t fgkCarlosQZ1Y;           // look more thick than design number (0.7) ! to be checked
     555             :   static const Double_t fgkCarlosQZ1Z;           // to be checked
     556             :   static const Double_t fgkCarlosQZ1posX;        // to be checked
     557             :   static const Double_t fgkCarlosQZ1posZ;        // to be checked
     558             : 
     559             :   // some pieces at the end of the carbon fiber ladder
     560             :   static const Double_t fgkCoolPipeLay3Len;  // value to be checked
     561             :   static const Double_t fgkCoolPipeLay4Len;  // ===
     562             :   static const Double_t fgkHVguideX1;    // ===
     563             :   static const Double_t fgkHVguideY1;    // ===
     564             :   static const Double_t fgkHVguideZ1;    // ===
     565             :   static const Double_t fgkHVguideZ2;    // ===
     566             :   static const Double_t fgkHVguideDX;    // ===
     567             :   static const Double_t fgkHVguideSuppFullZ;    // ===
     568             :   
     569             :   // Cooling connector between phynox and plastic cooling water tubes
     570             :   static const Double_t fgkConnectorCoolTubeRmin; // internal radius
     571             :   static const Double_t fgkConnectorCoolTubeR1; // value to be checked
     572             :   static const Double_t fgkConnectorCoolTubeL1;  // ===
     573             :   static const Double_t fgkConnectorCoolTubeR2;  // ===
     574             :   static const Double_t fgkConnectorCoolTubeL2;  // ===
     575             :   static const Double_t fgkConnectorCoolTubeR3;  // ===
     576             :   static const Double_t fgkConnectorCoolTubeL3;  // ===
     577             : 
     578             :   // parameters for coding SDD cables on SDD and SSD cones
     579             :   static const Double_t fgkSectionCuPerMod;    // area of copper per mod.
     580             :   static const Double_t fgkSectionPlastPerMod; // area of plast per mod.
     581             :   static const Double_t fgkSectionGlassPerMod; // area of optical fiber per mod.
     582             :   static const Double_t fgkSectionCoolPolyuEL; // area of cooling tubes on End Ladders
     583             :   static const Double_t fgkSectionCoolWaterEL; // area of cooling water on End Ladders
     584             :   static const Double_t fgkEndLadderEarthCableR; // radius of the earth cable on End Ladders
     585             :   static const Double_t fgkCableBendRatio; // ??? this factor account for the bending of cables
     586             :   static const Double_t fgkHybridAlFoilThick; // Thickness of Al foil on hybrid side
     587             :   static const Double_t fgkHybridAlFoilWide; // Width of Al foil on hybrid side
     588             :   static const Double_t fgkHybridAlFoilSide; // Side length of Al foil on hybrid side
     589             : 
     590             :   static const Double_t fgkConeSDDr1; // define SDD cone slope and pos
     591             :   static const Double_t fgkConeSDDr2; // define SDD cone slope and pos
     592             :   static const Double_t fgkConeSDDz1; // define SDD cone slope and pos
     593             :   static const Double_t fgkConeSDDz2; // define SDD cone slope and pos
     594             : 
     595             :   static const Double_t fgkSDDCableR1; // ??? // part 1 of "cable cone"
     596             :   static const Double_t fgkSDDCableR2; // ??? // part 1/2 of "cable cone"
     597             :   static const Double_t fgkSDDCableR3; // ??? // part 2 of "cable cone"
     598             : 
     599             :   static const Double_t fgkSDDCableDZint; // length of intermediate cylinder
     600             :   static const Double_t fgkSDDCableR5; // third part of "cable cone"
     601             :   static const Double_t fgkSDDCableZ5; // third part of "cable cone"
     602             : 
     603             : 
     604             : 
     605             :   // distance from the heat bridge center to the card center :
     606             :   static const Double_t fgkCarlosCard2HeatBridge;// distance from the heat bridge center to the card center
     607             : 
     608             :   static const Double_t fgkmu;  // 1 micron, or more for debugging
     609             : 
     610             :   // calculated parameters
     611             :   Double_t fLay3LadderUnderSegDH;  // To include HVcables in box
     612             :   Double_t fLay4LadderUnderSegDH;  // To include HVcables in box
     613             :   Double_t fLay3LaddShortRadius;   // ladder 3 to beam axis radius
     614             :   Double_t fLay3LaddLongRadius;    // ladder 3 to beam axis radius
     615             :   Double_t fLay4LaddShortRadius;   // ladder 4 to beam axis radius
     616             :   Double_t fLay4LaddLongRadius;    // ladder 4 to beam axis radius
     617             : 
     618             :   // parameters that can be modified
     619             :   Double_t fLay3sensorZPos[6];     // Z pos of sensors in layer 3
     620             :   Double_t fLay4sensorZPos[8];     // Z pos of sensors in layer 4
     621             : 
     622         116 :   ClassDef(AliITSv11GeometrySDD,0) // ITS v11 SDD geometry
     623             : };
     624             : 
     625             : 
     626             : #endif

Generated by: LCOV version 1.11