EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MapsMimosaAssembly.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file MapsMimosaAssembly.h
1 //
2 // AYK (ayk@bnl.gov), 2014/08/11
3 //
4 // MAPS a la ALICE ITS2 Alpide chip "container" description;
5 //
6 
7 #include <TMath.h>
8 
9 #include <EicPOD.h>
10 #include <EicGeoParData.h>
11 
12 #ifndef _MAPS_MIMOSA_ASSEMBLY_
13 #define _MAPS_MIMOSA_ASSEMBLY_
14 
15 class MapsMimosaAssembly: public EicPOD {
16  friend class MapsGeoParData;
17  friend class VstGeoParData;
18  friend class FstGeoParData;
19 
20  public:
22  MapsMimosaAssembly(MapsMimosaAssembly *source) { *this = *source; };
24 
25  //
26  // POD; access through EicPOD methods only; see friend classes above though;
27  //
28  private:
29  // Air container volume parameters sufficient to pack all the stuff;
30  Double_t mAssemblyBaseWidth; // air container TRD1 (with 0 width apex) volume base width
31  Double_t mAssemblySideSlope; // angle at the base of triangular container profile; [degree]
32  Double_t mChipToChipGap; // gap between neighboring chips on a stave
33 
34  // Space structure;
35  Double_t mApexEnforcementBeamDiameter;// diameter of the thin support tube at the assembly apex
36  Double_t mBaseEnforcementBeamWidth; // width of support triangles at the assemble edges
37  Double_t mEnforcementStripWidth; // width of side wall enforcement strip
38  Double_t mEnforcementStripThickness; // thickness of side wall enforcement strip
39  Double_t mSideWallThickness; // thickness of container side walls
40 
41  // Basic chip parameters; pixel size does not matter here (will play
42  // a role during digitization only);
43  Double_t mChipLength; // chip length along the stave (30mm)
44  Double_t mChipWidth; // chip width (15mm)
45  Double_t mChipThickness; // silicon thickness (50um)
46  Double_t mChipActiveZoneThickness; // active layer thickness (assume 20um in the middle)
47  Double_t mChipDeadAreaWidth; // dead area along the long side (2mm or so)
48 
49  Double_t mAssemblyDeadMaterialWidth; // cold head, etc can be wider than the chip
50 
51  // Layers at the base of the assembly;
52  Double_t mFlexCableKaptonThickness; // flex cable substrate thickness
53  Double_t mFlexCableAluThickness; // flex cable effective aluminum bus strips thickness
54  Double_t mColdPlateThickness; // cold plate thickness
55 
56  // Water pipes; assume 2 parallel pipes;
57  Double_t mWaterPipeInnerDiameter; // water pipe inner diameter
58  Double_t mWaterPipeWallThickness; // water pipe wall thickness
59 
60  double GetAssemblyLength() const { return mChipLength + mChipToChipGap; };
61 
62  double GetAssemblyHeight() const { return (mAssemblyBaseWidth/2)*
63  tan(mAssemblySideSlope*TMath::Pi()/180.);
64  };
65 
67 };
68 
69 #endif