EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EIC-IR1-XX-v02a.C
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EIC-IR1-XX-v02a.C
1 
2 {
3  auto eic = new EicToyModel();
4 
5  // Shift IP if needed; define canvas width; request eta=0 line in the drawing; set name;
6  eic->ip(0.0 * etm::cm)->width(1200)->AddEtaLine(0.0)->SetName("EIC-IR1-XX-v02a");
7  eic->ir(1000.0 * etm::cm, 400.0*etm::cm);
8  // Define acceptance ranges and the vacuum chamber design;
9  eic->acceptance(-4.2, -1.0, 1.2, 4.2);
10  eic->SetAzimuthalSegmentation(12);
11  eic->DefineVacuumChamber(new vc2020_03_20());
12 
13  // Vertex tracker;
14  {
15  auto vtx = eic->vtx(); vtx->offset(0.0 * etm::cm);
16 
17  vtx->add("Si Tracker",20 * etm::cm);
18  }
19 
20  // Barrel;
21  {
22  auto mid = eic->mid(); mid->offset( 20 * etm::cm);
23 
24  mid->add("TRACKER", 80 * etm::cm);
25  mid->add("Cherenkov", 20 * etm::cm);
26  mid->add("EmCal", 30 * etm::cm);
27  mid->add("Cryostat", 40 * etm::cm);
28  mid->add("HCal", 120 * etm::cm)->trim(0.0, 1.0);
29  }
30 
31  // Hadron-going endcap;
32  {
33  auto fwd = eic->fwd(); fwd->offset(130 * etm::cm);
34 
35  fwd->add("TRACKER", 15 * etm::cm)->brick();
36  fwd->marker();
37 
38  fwd->add("HM RICH", 150 * etm::cm)->trim(0.9, 1.0);
39  for(unsigned nn=0; nn<2; nn++)
40  fwd->add("TRD", 15 * etm::cm)->brick();
41 
42  fwd->add("Preshower", 10 * etm::cm);
43  fwd->add("EmCal", 40 * etm::cm);
44  fwd->add("HCal", 105 * etm::cm)->trim(0.0, 0.0);
45  }
46 
47  // Electron-going endcap;
48  {
49  auto bck = eic->bck(); bck->offset(130 * etm::cm);
50 
51  bck->add("TRACKER", 15 * etm::cm)->brick();
52  for(unsigned nn=0; nn<3; nn++)
53  bck->add("TRD", 15 * etm::cm)->brick();
54  bck->marker();
55 
56  bck->add("Cherenkov", 25 * etm::cm);
57  bck->add("Preshower", 10 * etm::cm)->brick();
58  bck->add("TOF", 5 * etm::cm)->brick();
59  bck->add("EmCal", 50 * etm::cm);
60  bck->add("HCal", 105 * etm::cm);
61  }
62 
63  // Declare eta boundary configuration;
64  {
65  eic->vtx()->get("Si Tracker")->stretch(eic->bck()->get("Cherenkov"));
66  eic->vtx()->get("Si Tracker")->stretch(eic->fwd()->get("HM RICH"));
67 
68  eic->mid()->get("TRACKER") ->stretch(eic->bck()->get("TRACKER"));
69  eic->mid()->get("TRACKER") ->stretch(eic->fwd()->get("TRACKER"));
70  eic->mid()->get("HCal") ->stretch(eic->bck()->get("HCal"));
71  eic->mid()->get("HCal") ->stretch(eic->fwd()->get("HCal"));
72  eic->mid()->get("Cryostat") ->stretch(eic->bck()->get("HCal"));
73 
74  eic->mid()->get("Cherenkov") ->stretch(eic->bck()->get("HCal"));
75  eic->mid()->get("EmCal") ->stretch(eic->bck()->get("HCal"));
76  eic->mid()->get("HCal") ->stretch(eic->fwd()->get("HCal"));
77 
78  //eic->fwd()->get("HCal") ->stretch(eic->mid()->get("HCal"), 90 * etm::cm);
79  eic->fwd()->get("TRD") ->stretch(eic->mid()->get("HCal"), 50 * etm::cm);
80 
81  eic->bck()->get("HCal") ->stretch(eic->mid()->get("HCal"), 90 * etm::cm);
82  }
83 
84  // Beautify picture a little bit;
85  eic->ApplyStandardTrimming();
86 
87  // Draw horizontal cross cut view; write the .root file out;
88  //eic->mirror();
89  eic->hdraw();
90  eic->write();
91  //eic->Export("example.stp");
92 }