Skip to content

Commit c0b6b70

Browse files
committed
Add carbon fiber material, functionality to toggle between stave and old geometry. Also rename material counts to 'volume' instead of 'sensor'. EDIT: Change TGeo layer thickness back to original. EDIT2: Change Middle layer disc usage to newly added segmentation.
1 parent e4539fb commit c0b6b70

2 files changed

Lines changed: 26 additions & 13 deletions

File tree

Detectors/Upgrades/ALICE3/FT3/simulation/include/FT3Simulation/FT3Module.h

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ class FT3Module
4242
static TGeoMedium* epoxyMed;
4343
static TGeoMaterial* AluminumMat;
4444
static TGeoMedium* AluminumMed;
45+
static TGeoMaterial* carbonFiberMat;
46+
static TGeoMedium* carbonFiberMed;
4547

4648
const char* mDetName;
4749

@@ -52,7 +54,8 @@ class FT3Module
5254

5355
void createModule_scopingV3(
5456
double mZ, int layerNumber, int direction, double Rin,
55-
double Rout, double overlap, TGeoVolume* motherVolume);
57+
double Rout, double overlap, TGeoVolume* motherVolume,
58+
bool useStaves);
5659

5760
private:
5861
static void create_layout(
@@ -62,32 +65,37 @@ class FT3Module
6265

6366
void create_layout_scopingV3(
6467
double mZ, int layerNumber, int direction, double Rin,
65-
double Rout, double overlap, TGeoVolume* motherVolume);
68+
double Rout, double overlap, TGeoVolume* motherVolume,
69+
bool useStaves);
6670

6771
// Helper functions
6872
void fill_stave(PosNegPositionTypes& y_positions, double Rout,
6973
double x_left, unsigned kSensorStack, double tolerance,
7074
std::pair<double, double> y_start);
75+
void addStaveVolume(
76+
TGeoVolume* motherVolume, std::string volumeName, int direction,
77+
unsigned* volume_count, double staveLength,
78+
double x_mid, double y_mid, double z_stave_shift_abs);
7179
void addDetectorVolume(
72-
TGeoVolume* motherVolume, std::string volumeName, int color, unsigned* sensor_count,
80+
TGeoVolume* motherVolume, std::string volumeName, int color, unsigned* volume_count,
7381
double x_mid, double y_mid, double z_mid,
7482
double x_half_length, double y_half_length, double z_half_length);
7583

7684
void add2x1GlueVolume(
77-
TGeoVolume* motherVolume, int layerNumber, int direction, unsigned* sensor_count,
85+
TGeoVolume* motherVolume, int layerNumber, int direction, unsigned* volume_count,
7886
std::string side_str, double x_mid, double y_mid, double z_mid,
7987
std::string element_glued_to);
8088

8189
void add2x1CopperVolume(
82-
TGeoVolume* motherVolume, int layerNumber, int direction, unsigned* sensor_count,
90+
TGeoVolume* motherVolume, int layerNumber, int direction, unsigned* volume_count,
8391
std::string side_str, double x_mid, double y_mid, double z_mid);
8492

8593
void add2x1KaptonVolume(
86-
TGeoVolume* motherVolume, int layerNumber, int direction, unsigned* sensor_count,
94+
TGeoVolume* motherVolume, int layerNumber, int direction, unsigned* volume_count,
8795
std::string side_str, double x_mid, double y_mid, double z_mid);
8896

8997
void addSingleSensorVolume(
90-
TGeoVolume* motherVolume, int layerNumber, int direction, unsigned* sensor_count,
98+
TGeoVolume* motherVolume, int layerNumber, int direction, unsigned* volume_count,
9199
double active_x_mid, double y_mid, double z_mid, std::string side_str, bool isLeft);
92100
};
93101

Detectors/Upgrades/ALICE3/FT3/simulation/src/FT3Layer.cxx

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,9 @@ void FT3Layer::createLayer(TGeoVolume* motherVolume)
234234
LOG(fatal) << "Invalid layer number " << mLayerNumber << " for FT3 layer.";
235235
}
236236

237-
LOG(info) << "FT3: ft3Params.layoutFT3 = " << ft3Params.layoutFT3;
237+
LOG(info) << "FT3: ft3Params.layoutFT3 = " << ft3Params.layoutFT3
238+
<< " Creating Layer " << mLayerNumber << " at z=" << mZ
239+
<< " with direction " << mDirection;
238240

239241
// ### options for ML and OT disk layout
240242
if (ft3Params.layoutFT3 == kTrapezoidal /*|| (mIsMiddleLayer && ft3Params.layoutFT3 == kSegmented)*/) {
@@ -381,7 +383,9 @@ void FT3Layer::createLayer(TGeoVolume* motherVolume)
381383

382384
LOG(info) << "Inserting " << layerVol->GetName() << " inside " << motherVolume->GetName();
383385
motherVolume->AddNode(layerVol, 1, FwdDiskCombiTrans);
384-
} else if (ft3Params.layoutFT3 == kSegmented || ft3Params.layoutFT3 == kSegmentedMarch26) {
386+
} else if (ft3Params.layoutFT3 == kSegmented ||
387+
ft3Params.layoutFT3 == kSegmentedMarch26 ||
388+
ft3Params.layoutFT3 == kSegmentedStave) {
385389
FT3Module module;
386390

387391
// layer structure
@@ -402,10 +406,11 @@ void FT3Layer::createLayer(TGeoVolume* motherVolume)
402406
module.createModule(0, mLayerNumber, mDirection, mInnerRadius, mOuterRadius, 0., "front", "rectangular", layerVol);
403407
module.createModule(0, mLayerNumber, mDirection, mInnerRadius, mOuterRadius, 0., "back", "rectangular", layerVol);
404408
} else if (ft3Params.layoutFT3 == kSegmentedMarch26) {
405-
module.createModule_scopingV3(0, mLayerNumber, mDirection, mInnerRadius,
406-
mOuterRadius, 0., layerVol);
407-
module.createModule_scopingV3(0, mLayerNumber, mDirection, mInnerRadius,
408-
mOuterRadius, 0., layerVol);
409+
module.createModule_scopingV3(0., mLayerNumber, mDirection, mInnerRadius,
410+
mOuterRadius, 0., layerVol, false);
411+
} else if (ft3Params.layoutFT3 == kSegmentedStave) {
412+
module.createModule_scopingV3(0., mLayerNumber, mDirection, mInnerRadius,
413+
mOuterRadius, 0., layerVol, true);
409414
}
410415
// Finally put everything in the mother volume
411416
auto* FwdDiskRotation = new TGeoRotation("FwdDiskRotation", 0, 0, 180);

0 commit comments

Comments
 (0)