diff --git a/macro/mvd/fair/Create_MVD.C b/macro/mvd/fair/Create_MVD.C index 96be227038d08e35d788f9118b3a73d473b42ec2..417c2fc105b8cee1a2445cc18757c51d7d57d4e6 100644 --- a/macro/mvd/fair/Create_MVD.C +++ b/macro/mvd/fair/Create_MVD.C @@ -1,6 +1,6 @@ -/* Copyright (C) 2020 Institut fuer Kernphysik, Goethe-Universitaet Frankfurt +/* Copyright (C) 2020-2024 Institut fuer Kernphysik, Goethe-Universitaet Frankfurt SPDX-License-Identifier: GPL-3.0-only - Authors: Phillip Klaus [committer] */ + Authors: Phillip Klaus [committer], Eoin Clerkin */ /* * ROOT Macro to create the geometry of the Micro Vertex Detector @@ -22,7 +22,7 @@ * Parameters defining the MVD */ -static const int numStations = 4; +static const int numStations = 2; // all units are in cm // Float_t quadrantBeamOffset[4] = {0.54, 0.54, 0.82, 1.04}; Float_t carrierClampOverlap = 0.0; @@ -49,6 +49,7 @@ Float_t sensorDimensionsPassive[3] = {3.097, 0.300, 0.005}; // 2*1.355-(2-1)*0.05+0.3+1.9+0.1 /* MIMOSIS-based tr (tracking) variant (general purpose tracking variant) */ +/* Commented out for TwoStation Generation Float_t stationPosition[4] = {4.0, 8.0, 12.0, 16.0}; int sensorRows[4] = {4, 4, 7, 7}; int sensorCols[4] = {2, 2, 4, 4}; @@ -59,6 +60,18 @@ Float_t carrierDimensions[4][3] = {{7.19, 7.57, 0.038}, {13.39, 11.485, 0.038}, {13.39, 11.485, 0.038}}; int carrierMaterials[4] = {1, 1, 1, 1}; // 0 = diamond, 1 = TPG +*/ + +Float_t stationPosition[2] = {4.0, 16.0}; +int sensorRows[4] = {4, 4, 7, 7}; +int sensorCols[4] = {2, 2, 4, 4}; +Float_t heatsinkWidth[4] = {31.1, 31.1, 37.7, 37.7}; +Float_t quadrantBeamOffset[4] = {0.54, 0.54, 1.04, 1.04}; +Float_t carrierDimensions[2][3] = {{7.19, 7.57, 0.038}, + {13.39, 11.485, 0.038}}; +int carrierMaterials[2] = {1, 1}; // 0 = diamond, 1 = TPG + + /* MIMOSIS-based vx (vertexing) variant (dedicated vertexing variant) */ /* @@ -112,7 +125,7 @@ void Create_MVD() { manager->SetTopVolume(top); - TGeoVolume *mvd = new TGeoVolumeAssembly("MVDscripted"); + TGeoVolume *mvd = new TGeoVolumeAssembly("TwoStation"); TGeoVolume *sensorActive = manager->MakeBox( "sensorActive", silicon, sensorDimensionsActive[0] / 2, @@ -382,7 +395,7 @@ void Create_MVD() { // TGeoVolume *target = manager->MakeBox("target", silicon, 0.5, 0.5, 0.05); // mvd->AddNode(target, 1); - top->AddNode(mvd, 1); + top->AddNode(mvd, 2, new TGeoTranslation(0,0,-40)); // Standard checks, to be executed at least before submitting a new geo manager->CloseGeometry(); manager->CheckOverlaps(0.001, "s"); @@ -391,14 +404,20 @@ void Create_MVD() { quadrant->CheckOverlaps(0.001, "s"); manager->CheckGeometryFull(); // done with standard checks - top->Export("mvd.root"); + + // Open a file for writing a reporoducible format + TFile *outfile = new TFile("mvd_v24a.geo.root?reproducible", "RECREATE"); + top->Write(); // Write top volume + // Also add transformation matrix to place in space: - TGeoTranslation *mvd_trans = new TGeoTranslation("", 0., 0., 0); + TGeoTranslation *mvd_trans = new TGeoTranslation("", 0., 0., 0.0); TGeoRotation *mvd_rot = new TGeoRotation(); TGeoCombiTrans *mvd_combi_trans = new TGeoCombiTrans(*mvd_trans, *mvd_rot); - TFile *outfile = new TFile("mvd.root", "UPDATE"); - mvd_combi_trans->Write(); + //mvd_combi_trans->Write("trans"); + outfile->Close(); + + mvd->Draw("ogl"); // station->Draw("ogl"); // quadrant->Draw("ogl"); diff --git a/mvd/mvd_v24a.geo.info b/mvd/mvd_v24a.geo.info new file mode 100644 index 0000000000000000000000000000000000000000..18f760f3e3fff325f7a9f4454141455a093a9119 --- /dev/null +++ b/mvd/mvd_v24a.geo.info @@ -0,0 +1,6 @@ +Reduced Start Version MVD +with two stations + +Created from included Create_MVD.C + + diff --git a/mvd/mvd_v24a.geo.root b/mvd/mvd_v24a.geo.root new file mode 100644 index 0000000000000000000000000000000000000000..ab12a54da4d0908d5461a25b30f9e1657e39bf3c Binary files /dev/null and b/mvd/mvd_v24a.geo.root differ