ROOT logo
//==========================================================================================================================================

// Macro to create the config file (AliMFTGeometry.root) for the geometry of the ALICE Muon Forward Tracker
//
// Contact author: antonio.uras@cern.ch

//==========================================================================================================================================

void SetMFTGeometry() {

  const Int_t nPlanes = 5;
  
  const Float_t zCenter[nPlanes]          = {  -46.0,   -49.3,   -53.1,   -68.7,   -76.8 };   // expressed in cm
				          
  const Float_t rMin[nPlanes]             = {   2.30,    2.30,    2.30,    3.30,    3.60 };   // expressed in cm  
  const Float_t rMax[nPlanes]             = {  10.00,   10.50,   11.10,   13.90,   15.30 };   // expressed in cm

  const Float_t pixelSizeX[nPlanes]       = { 28.e-4,  28.e-4,  28.e-4,  28.e-4,  28.e-4 };   // expressed in cm
  const Float_t pixelSizeY[nPlanes]       = { 28.e-4,  28.e-4,  28.e-4,  28.e-4,  28.e-4 };   // expressed in cm

  const Float_t thicknessActive[nPlanes]  = {  50.e-4,   50.e-4,   50.e-4,   50.e-4,   50.e-4 };   // expressed in cm
  const Float_t thicknessSupport[nPlanes] = {   1.4  ,    1.4  ,    1.4  ,    1.4  ,    1.4   };   // expressed in cm
  const Float_t thicknessReadout[nPlanes] = {  50.e-4,   50.e-4,   50.e-4,   50.e-4,   50.e-4 };   // expressed in cm

  const Float_t equivalentSilicon[nPlanes]            = { 600.e-4, 600.e-4, 600.e-4, 600.e-4, 600.e-4 };    // expressed in cm
  const Float_t equivalentSiliconBeforeFront[nPlanes] = {   0.e-4,   0.e-4,   0.e-4,   0.e-4,   0.e-4 };    // expressed in cm
  const Float_t equivalentSiliconBeforeBack[nPlanes]  = { 550.e-4, 550.e-4, 550.e-4, 550.e-4, 550.e-4 };    // expressed in cm

  const Float_t hasPixelRectangularPatternAlongY[nPlanes] = {0., 0., 0., 0., 0.};
				         
  TNtuple *geomMFT = new TNtuple("AliMFTGeometry", "ALICE MFT Geometry", "zCenter:rMin:rMax:pixelSizeX:pixelSizeY:thicknessActive:thicknessSupport:thicknessReadout:equivalentSilicon:equivalentSiliconBeforeFront:equivalentSiliconBeforeBack:hasPixelRectangularPatternAlongY");

  for (Int_t iPlane=0; iPlane<nPlanes; iPlane++) geomMFT -> Fill(zCenter[iPlane],
								 rMin[iPlane],
								 rMax[iPlane],
								 pixelSizeX[iPlane],
								 pixelSizeY[iPlane],
								 thicknessActive[iPlane],
								 thicknessSupport[iPlane],
								 thicknessReadout[iPlane],
								 equivalentSilicon[iPlane],
								 equivalentSiliconBeforeFront[iPlane],
								 equivalentSiliconBeforeBack[iPlane],
								 hasPixelRectangularPatternAlongY[iPlane]);

  TFile *fileGeomMFT = new TFile("AliMFTGeometry.root", "recreate");
  geomMFT -> Write();
  fileGeomMFT -> Close();

}

//==========================================================================================================================================
 SetMFTGeometry.C:1
 SetMFTGeometry.C:2
 SetMFTGeometry.C:3
 SetMFTGeometry.C:4
 SetMFTGeometry.C:5
 SetMFTGeometry.C:6
 SetMFTGeometry.C:7
 SetMFTGeometry.C:8
 SetMFTGeometry.C:9
 SetMFTGeometry.C:10
 SetMFTGeometry.C:11
 SetMFTGeometry.C:12
 SetMFTGeometry.C:13
 SetMFTGeometry.C:14
 SetMFTGeometry.C:15
 SetMFTGeometry.C:16
 SetMFTGeometry.C:17
 SetMFTGeometry.C:18
 SetMFTGeometry.C:19
 SetMFTGeometry.C:20
 SetMFTGeometry.C:21
 SetMFTGeometry.C:22
 SetMFTGeometry.C:23
 SetMFTGeometry.C:24
 SetMFTGeometry.C:25
 SetMFTGeometry.C:26
 SetMFTGeometry.C:27
 SetMFTGeometry.C:28
 SetMFTGeometry.C:29
 SetMFTGeometry.C:30
 SetMFTGeometry.C:31
 SetMFTGeometry.C:32
 SetMFTGeometry.C:33
 SetMFTGeometry.C:34
 SetMFTGeometry.C:35
 SetMFTGeometry.C:36
 SetMFTGeometry.C:37
 SetMFTGeometry.C:38
 SetMFTGeometry.C:39
 SetMFTGeometry.C:40
 SetMFTGeometry.C:41
 SetMFTGeometry.C:42
 SetMFTGeometry.C:43
 SetMFTGeometry.C:44
 SetMFTGeometry.C:45
 SetMFTGeometry.C:46
 SetMFTGeometry.C:47
 SetMFTGeometry.C:48
 SetMFTGeometry.C:49
 SetMFTGeometry.C:50
 SetMFTGeometry.C:51
 SetMFTGeometry.C:52
 SetMFTGeometry.C:53