-
Notifications
You must be signed in to change notification settings - Fork 2
Geometry descriptions for ECAL-E and ECAL-P #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
shan-yamabuki
wants to merge
14
commits into
LUXEsoftware:main
Choose a base branch
from
shan-yamabuki:dev_ecal
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
dc68a31
UNTESTED![Geometry] Implementation of LUXEEcal dd4hep lib
shan-yamabuki 6993a12
[ECAL] Commits in Mar-Oct 2025
shan-yamabuki c9c045d
[ECAL] Implementation of ECALe_luxe_2512 and ECALp_luxe_2512
shan-yamabuki 5819637
[Visualization] ECAL-P with dd4hep2root and geoDisplay files
shan-yamabuki f52b9fe
[ECAL] Notes keeping; bug fixing
shan-yamabuki 212b015
Merge branch 'main' into dev_ecal
madbaron 8962fc5
[MINOR] clean out unused naming space comments in src/LUXEEcal_geo.cpp
shan-yamabuki 4901b54
Revert the install line in CMakeLists.txt
shan-yamabuki 050bc40
Remove binary files for visualization
shan-yamabuki c6597a0
[ECAL] Split documents into the detector directories
shan-yamabuki 0979029
[ECAL-E] Updated module geometry
shan-yamabuki 63aa3ab
[ECAL-E] DEBUG
shan-yamabuki 1e5d709
[ECAL] Readout segmentation
e89d8a1
[MINOR] Renaming README
shan-yamabuki File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,101 @@ | ||
| <?xml version="1.0" encoding="utf-8"?> | ||
|
|
||
| <!-- | ||
|
|
||
|
|
||
| TB2022-06 - CERN | ||
| "||" = W layer (2.1mm) | ||
|
|
||
| Conf 1: 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 || 11 || 12 |||| 13 |||| 14 |||| 19.6 X0 | ||
| --> | ||
|
|
||
| <!-- | ||
| Plastic plate (polyethylene) thickness: 2 mm | ||
| Distance to groove 61.8 mm | ||
| Dist between grooves: 15 mm | ||
| Carbon thickness | ||
|
|
||
|
|
||
| ECAL slab structure (from upstream beam direction) | ||
|
|
||
| Tungsten From 0 mm, to 5.6 mm (New in TB2022-06) | ||
| Carbon 1.50 mm (A Gallas) | ||
| Kapton 0.10 mm | ||
| Glue 0.10 mm | ||
| Silicon Sensor 0.32 mm or 0.5 mm or 0.65 mm | ||
| Glue 0.10 mm | ||
| Copper layer: 0.10 mm | ||
| PCB 1.70 mm (TODO To be checked with Jerome) | ||
| Chip 1.20 mm | ||
| Air | ||
| ================================== | ||
| total slab thickness = 10.72, 10.9 or 11.05 mm (counting 5.6 mm Tungsten "box") | ||
|
|
||
|
|
||
| --> | ||
|
|
||
|
|
||
| <define> | ||
| <constant name="env_safety" value="0.001"/> | ||
|
|
||
| <!--constant name="Ecal_NcellsX" value="32" /> | ||
| <constant name="Ecal_NcellsY" value="32" /> | ||
| <constant name="Ecal_CellSizeX" value="5.5" /> | ||
| <constant name="Ecal_CellSizeY" value="5.5" /--> | ||
|
|
||
| <constant name="Ecal_dim_x" value="360*mm"/> | ||
| <constant name="Ecal_dim_y" value="180*mm"/> | ||
| <constant name="Ecal_dim_z" value="285*mm"/> <!-- 15*15 layers + 26 (rear space) + 30 (upfront space) + 4 (plastic plates) --> | ||
| <constant name="Ecal_dim_z_10mmgap" value="210*mm"/> <!-- 15*10 layers + 26 (rear space) + 30 (upfront space) + 4 (plastic plates) --> | ||
| <!--TODO: check!! , more on the order of 220*mm (used to be 500*mm), but still fine if we put the first layer in the border of the box (?)--> | ||
| <constant name="EcalP_dim_x" value="555*mm"/> | ||
| <constant name="EcalP_dim_y" value="100*mm"/> | ||
| <constant name="EcalP_dim_z" value="93.5*mm"/> <!-- 0 (front space) + 4.5*20 layers + 3.5 (rear tungsten) --> | ||
|
|
||
| <constant name="Ecal_LayerDistance" value="15.0*mm"/> | ||
| <constant name="Ecal_LayerDistance_10" value="10.0*mm"/> | ||
| <constant name="Ecal_slab_thickness320" value="10.72*mm"/> | ||
| <constant name="Ecal_slab_thickness500" value="10.9*mm"/> | ||
| <constant name="Ecal_slab_thickness650" value="11.05*mm"/> | ||
| <constant name="EcalP_LayerDistance" value="4.5*mm"/> | ||
|
|
||
| <!-- TB2022-06: Aluminum plate can be removed for LUXE--> | ||
| <constant name="Ecal_AlThickness" value="2*mm"/> | ||
| <constant name="Ecal_AlThickness_back" value="2*mm"/> | ||
|
|
||
| <constant name="Ecal_WThickness" value="2.1*mm"/> | ||
| <constant name="EcalP_WThickness" value="3.55*mm"/> | ||
| <constant name="Ecal_PlasticThickness" value="2*mm"/> | ||
| <constant name="Ecal_CFThickness" value="1.5*mm"/> | ||
| <constant name="Ecal_CFThickness250" value="0.25*mm"/> | ||
| <constant name="Ecal_KaptonThickness" value="0.1*mm"/> | ||
| <constant name="Ecal_GlueThickness_kap" value="0.1*mm"/> | ||
| <constant name="Ecal_WaferThickness320" value="0.320*mm"/> | ||
| <constant name="Ecal_WaferThickness500" value="0.500*mm"/> | ||
| <constant name="Ecal_WaferThickness650" value="0.650*mm"/> | ||
| <!-- TODO: Used to have GlueThickness_pcb and GlueThickness_kap, now (2021) only one--> | ||
| <!-- <constant name="Ecal_GlueThickness_pcb" value="0.08*mm"/>--> | ||
| <constant name="Ecal_GlueThickness_pcb" value="0.1*mm"/> | ||
| <!-- TODO: Used to have GlueThickness_pcb and GlueThickness_kap, now (2021) only one--> | ||
| <!-- <constant name="Ecal_GlueThickness_kap" value="0.08*mm"/> --> | ||
| <!-- TODO: Vincent suggested (I think) that we had wafer - glue - Cu (??) - PCB - Chip --> | ||
| <!-- TODO: check, PCBTHickness used to be 1.61 --> | ||
| <constant name="Ecal_PcbThickness" value="1.7*mm"/> | ||
| <!-- TODO: missing chip!! --> | ||
| <constant name="Ecal_ChipThickness" value="1.2*mm"/> | ||
|
|
||
| <!-- this is the gap within a slab (electronics, etc) --> | ||
| <!-- <constant name="Ecal_GapThickness" value="Ecal_slab_thickness - Ecal_AlThickness - Ecal_PcbThickness - Ecal_WaferThickness - Ecal_KaptonThickness - Ecal_CFThickness - Ecal_GlueThickness_pcb - Ecal_GlueThickness_kap"/> --> | ||
|
|
||
| <constant name="Ecal_w_slab_gap320" value="Ecal_LayerDistance-Ecal_slab_thickness320"/> | ||
| <!--constant name="Ecal_w_slab_gap500" value="Ecal_LayerDistance-2*Ecal_WThickness-Ecal_slab_thickness500"/--> | ||
| <constant name="Ecal_w_slab_gap500" value="Ecal_LayerDistance-3.*Ecal_WThickness-Ecal_CFThickness-Ecal_KaptonThickness-Ecal_GlueThickness_kap-Ecal_WaferThickness500-Ecal_GlueThickness_pcb-Ecal_PcbThickness-Ecal_ChipThickness"/> | ||
| <constant name="Ecal_w_slab_gap650" value="Ecal_LayerDistance-Ecal_slab_thickness650"/> | ||
| <constant name="Ecal_w_slab_gap500_4p2mmW" value="Ecal_LayerDistance-2.*Ecal_WThickness-Ecal_CFThickness-Ecal_KaptonThickness-Ecal_GlueThickness_kap-Ecal_WaferThickness500-Ecal_GlueThickness_pcb-Ecal_PcbThickness-Ecal_ChipThickness"/> | ||
| <constant name="Ecal_w_slab_gap500_2p1mmW" value="Ecal_LayerDistance-1.*Ecal_WThickness-Ecal_CFThickness-Ecal_KaptonThickness-Ecal_GlueThickness_kap-Ecal_WaferThickness500-Ecal_GlueThickness_pcb-Ecal_PcbThickness-Ecal_ChipThickness"/> | ||
| <constant name="Ecal_w_slab_gap500_10mmgap" value="Ecal_LayerDistance_10-2.*Ecal_WThickness-Ecal_CFThickness-Ecal_KaptonThickness-Ecal_GlueThickness_kap-Ecal_WaferThickness500-Ecal_GlueThickness_pcb-Ecal_PcbThickness-Ecal_ChipThickness"/> | ||
| <constant name="EcalP_Airgap" value="EcalP_LayerDistance - EcalP_WThickness - Ecal_CFThickness250 - 0.5*Ecal_GlueThickness_kap - Ecal_KaptonThickness - 0.5*Ecal_GlueThickness_kap - Ecal_WaferThickness320 - 0.5*Ecal_GlueThickness_kap - Ecal_KaptonThickness"/> | ||
|
|
||
| </define> | ||
|
|
||
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
|
|
||
| <display> | ||
| <vis name="EcalVis" alpha="0.5" r="0.7" g="0.7" b="0.0" showDaughters="true" visible="false"/> | ||
| <vis name="TungstenVis" alpha="1.0" r="0.5" g="0.35" b="0.55" showDaughters="true" visible="true"/> | ||
| <vis name="PlasticVis" alpha="0.5" r="0.3" g="0.0" b="0.3" showDaughters="true" visible="false"/> | ||
| <vis name="AirVis" alpha="1.0" r="0.0" g="1.0" b="0.0" showDaughters="true" visible="false"/> | ||
| <vis name="SiVis" alpha="1.0" r="0.9" g="0.9" b="0.9" showDaughters="true" visible="true"/> | ||
| <vis name="AlVis" alpha="1.0" r="0.7" g="0.7" b="0.7" showDaughters="true" visible="true"/> | ||
| <vis name="PCBVis" alpha="1.0" r="0.0" g="0.8" b="0.0" showDaughters="true" visible="true"/> | ||
| <vis name="CFVis" alpha="0.5" r="0.0" g="0.0" b="0.0" showDaughters="true" visible="false"/> | ||
| <vis name="CuVis" alpha="0.5" r="1.0" g="0.5" b="0.0" showDaughters="true" visible="false"/> | ||
| </display> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,132 @@ | ||
| <lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" | ||
| xmlns:xs="http://www.w3.org/2001/XMLSchema" | ||
| xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"> | ||
|
|
||
| <global detectorName="ECALe_luxe" /> | ||
|
|
||
|
|
||
| <info name="ECALe_luxe_2512" | ||
| title="ECALe_luxe_2512" | ||
| author="J.P. Marquez, A. Irles, S. Huang" | ||
| url="none" | ||
| status="development" | ||
| version="$Id$"> | ||
| <comment>The compact File for LUXE ECAL-E (updated December 2025)</comment> | ||
| </info> | ||
|
|
||
| <includes> | ||
| <comment>Additional design specific material definitions</comment> | ||
| <gdmlFile ref="../elements.xml"/> <!-- /afs/desy.de/project/ilcsoft/sw/x86_64_gcc82_centos7/v02-02-03/lcgeo/v00-16-07/ILD/compact/ILD_o1_v05/elements.xml--> | ||
| <gdmlFile ref="../materials.xml"/> <!-- "/afs/desy.de/project/ilcsoft/sw/x86_64_gcc82_centos7/v02-02-03/lcgeo/v00-16-07/ILD/compact/ILD_o1_v05/materials.xml --> | ||
| <gdmlFile ref="../Materials_v1.xml" /> | ||
| <gdmlFile ref="../extra_materials.xml" /> | ||
| </includes> | ||
|
|
||
| <define> | ||
| <!-- world --> | ||
| <constant name="world_side" value="10*m" /> | ||
| <constant name="world_x" value="world_side" /> | ||
| <constant name="world_y" value="world_side" /> | ||
| <constant name="world_z" value="world_side" /> | ||
|
|
||
| <constant name="tracker_region_rmax" value="0*mm" /> | ||
| <constant name="tracker_region_zmax" value="0*mm" /> | ||
|
|
||
| </define> | ||
|
|
||
|
|
||
| <limits> | ||
| <limitset name="cal_limits"> | ||
| <limit name="step_length_max" particles="*" value="5.0" unit="mm" /> | ||
| </limitset> | ||
| </limits> | ||
|
|
||
| <define> | ||
| <include ref="../ECAL_commondefs.xml" /> | ||
| <include ref="../ECAL_commondisp.xml" /> | ||
| <!--constant name="total_preshower_estimation" value="1.443"/--> | ||
| </define> | ||
|
|
||
| <readouts> | ||
| <readout name="SiEcalCollection"> | ||
| <!--We are making a very simple segmentation: one single tile that takes the full surface of every layer "/--> | ||
| <segmentation type="TiledLayerGridXY" | ||
| grid_size_x="Ecal_dim_x*2" | ||
| grid_size_y="Ecal_dim_y*2" | ||
| offset_x="-(Ecal_dim_x)/2.0" | ||
| offset_y="-(Ecal_dim_y)/2.0" /> | ||
| <id>system:8,layer:8,x:16,y:16,slice:8,module:4</id> | ||
| </readout> | ||
| <readout name="PixelSiEcalCollection"> | ||
| <segmentation type="TiledLayerGridXY" | ||
| grid_size_x="5.53*mm" | ||
| grid_size_y="5.53*mm" | ||
| offset_x="-44.24*mm" | ||
| offset_y="-44.24*mm" /> | ||
| <id>system:8,layer:5,slice:4,module:3,x:4,y:4</id> | ||
| </readout> | ||
| <readout name="PixelSiEcalCollectionCart"> | ||
| <!-- Cartesian type not working --> | ||
| <segmentation type="CartesianGridXY" | ||
| grid_size_x="5.53*mm" | ||
| grid_size_y="5.53*mm" | ||
| offset_x="-44.24*mm" | ||
| offset_y="-44.24*mm" /> | ||
| <id>system:8,layer:5,slice:4,module:3,x:4,y:4</id> | ||
| </readout> | ||
| </readouts> | ||
|
|
||
| <detectors> | ||
| <detector name="ECALe_luxe" type="LUXEEcal" vis="EcalVis" id="2500" readout="PixelSiEcalCollection" insideTrackingVolume="false"> | ||
| <dimensions | ||
| x="Ecal_dim_x" | ||
| y="Ecal_dim_y" | ||
| z="Ecal_dim_z" /> | ||
| <type_flags type="1" /> | ||
| <envelope vis="EcalVis"> | ||
| <shape type="Box" | ||
| dx="Ecal_dim_x/2.0 + env_safety" | ||
| dy="Ecal_dim_y/2.0 + env_safety" | ||
| dz="Ecal_dim_z/2.0 + env_safety" | ||
| material="Air" /> | ||
| <rotation x="0" y="0" z="0" /> | ||
| <position x="0" y="0" z="Ecal_dim_z/2.0" /> | ||
| </envelope> | ||
|
|
||
|
|
||
| <layer repeat="15" vis="EcalVis"> | ||
| <!-- the aluminum cover was used in the TB2022-06 but it can be removed! , so we remove it here--> | ||
| <!--slice material = "Air" thickness = "48.44*mm" vis="Invisible"/--><!-- Do we need air in front of the detector? how much? for the moment, we ignore it--> | ||
| <slice material="TungstenDens1910" thickness="2*Ecal_WThickness" vis="TungstenVis" /> <!-- 2x2.1mm of tungsten in each layer--> | ||
| <slice material="CarbonFiber" thickness="Ecal_CFThickness" vis="AirVis" sliceHasModules="false" /> | ||
| <slice material="Cu" thickness="Ecal_KaptonThickness" vis="AirVis" sliceHasModules="true"> | ||
| <module id="0" x_offset="-89.7*mm" y_offset="0*mm" dx="2*89.7*mm" dy="2*89.7*mm" vis="CuVis" /> | ||
| <module id="4" x_offset="89.7*mm" y_offset="0*mm" dx="2*89.7*mm" dy="2*89.7*mm" vis="CuVis" /> | ||
| </slice> | ||
| <slice material="Air" thickness="Ecal_GlueThickness_kap" vis="AirVis" /> | ||
| <slice material="Si" thickness="Ecal_WaferThickness500" vis="AirVis" sliceHasModules="true" sensitive="yes"> | ||
| <module id="0" x_offset="-134.55*mm" y_offset="-44.85*mm" dx="88.48*mm" dy="88.48*mm" vis="SiVis" /> | ||
| <module id="1" x_offset="-44.85*mm" y_offset="-44.85*mm" dx="88.48*mm" dy="88.48*mm" vis="SiVis" /> | ||
| <module id="2" x_offset="-134.55*mm" y_offset="44.85*mm" dx="88.48*mm" dy="88.48*mm" vis="SiVis" /> | ||
| <module id="3" x_offset="-44.85*mm" y_offset="44.85*mm" dx="88.48*mm" dy="88.48*mm" vis="SiVis" /> | ||
| <module id="4" x_offset="44.85*mm" y_offset="-44.85*mm" dx="88.48*mm" dy="88.48*mm" vis="SiVis" /> | ||
| <module id="5" x_offset="134.55*mm" y_offset="-44.85*mm" dx="88.48*mm" dy="88.48*mm" vis="SiVis" /> | ||
| <module id="6" x_offset="44.85*mm" y_offset="44.85*mm" dx="88.48*mm" dy="88.48*mm" vis="SiVis" /> | ||
| <module id="7" x_offset="134.55*mm" y_offset="44.85*mm" dx="88.48*mm" dy="88.48*mm" vis="SiVis" /> | ||
| </slice> | ||
| <slice material="Air" thickness="Ecal_GlueThickness_pcb" vis="AirVis" /> | ||
| <!--slice material = "Cu" thickness = "Ecal_KaptonThickness" vis="CuVis" /--> <!-- this part is not existing--> | ||
| <slice material="PCB" thickness="Ecal_PcbThickness" vis="AirVis" sliceHasModules="true"> | ||
| <module id="0" x_offset="-89.7*mm" y_offset="0*mm" dx="2*89.7*mm" dy="2*89.7*mm" vis="PCBVis" /> | ||
| <module id="4" x_offset="89.7*mm" y_offset="0*mm" dx="2*89.7*mm" dy="2*89.7*mm" vis="PCBVis" /> | ||
| </slice> | ||
| <slice material="PCB" thickness="Ecal_ChipThickness" vis="AirVis" sliceHasModules="true"> | ||
| <module id="0" x_offset="-89.7*mm" y_offset="0*mm" dx="2*89.7*mm" dy="2*89.7*mm" vis="AirVis" /> | ||
| <module id="4" x_offset="89.7*mm" y_offset="0*mm" dx="2*89.7*mm" dy="2*89.7*mm" vis="AirVis" /> | ||
| </slice> | ||
| <slice material="Air" thickness="Ecal_w_slab_gap500_4p2mmW" vis="AirVis" /> | ||
| </layer> | ||
|
|
||
| </detector> | ||
| </detectors> | ||
| </lccdd> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,57 @@ | ||
| LUXE ECAL-E - DD4hep | ||
| ==================== | ||
|
|
||
| ## Structure | ||
| This directory contains the definition of the detector model geometries and configurations. | ||
| The following descriptions used by all detectors are stored in `..` directory: | ||
| * chemical elements, | ||
| * materials and extra materials, | ||
| * common definitions on the geometry of ECALs, and | ||
| * common definitions on the visulisation of ECALs. | ||
|
|
||
| The names of compact files for LUXE ECAL-E are formatted as `ECALe_luxe_{variant}.xml` and put under directory `ECALe_luxe`. | ||
|
|
||
| The detector consists of multiple layers that are stacked along the longitudinal _z_ direction. | ||
| Each layer is then further divided into several slices, which includes a tungsten plate, air gaps, and several silicon and electronic modules. | ||
| A module can be moved horizontally within the boundary of a layer, | ||
| and more than one module can be placed at the same _z_ position. | ||
|
|
||
| Current variant `ECALe_luxe_2512.xml`, partially based on this [interim report for DRD-Calo SiW ECAL](https://indico.cern.ch/event/1551941/contributions/6683124). | ||
| - Detector type `LUXEEcal`, id `2500`. | ||
| - 15 layers/18 X0 in total. | ||
| - Layer composition: | ||
| - Pure tungsten (4.2 mm), | ||
| - Carbon fibre support (1.5 mm, to be confirmed [TBC]), | ||
| - Active sensor unit (ASU), which consists of | ||
| - High-voltage film (0.1 mm copper, TBC), | ||
| - Conductive glue (0.1 mm air, TBC), | ||
| - Si wafer (0.5 mm), | ||
| - Conductive glue (0.1 mm air, TBC), | ||
| - PCB board (1.7 mm), | ||
| - On board ASIC (1.2 mm PCB, TBC), and | ||
| - Air gap to make 15 mm longitudinal pitch. | ||
| - Per-slice module placement to implement the dead areas between ASUs and wafers. | ||
| - This variant has 2 ASUs and 8 wafers. | ||
|
|
||
|
|
||
| _**TODO**_ | ||
| - The readouts in the compact files are not properly implemented. | ||
| - The historic definitions should be cleaned out. | ||
|
|
||
|
|
||
| ## Visualization | ||
| To test and visualize the detector, run | ||
| ```shell | ||
| geoDisplay detector_compactfile.xml # or any other geometry | ||
| ``` | ||
| To check materials, distances and possible overlappings, run | ||
| ```shell | ||
| materialScan detector_compactfile.xml x0 y0 z0 x1 y1 z1 | ||
| ``` | ||
| It will display a list of materials encountered by a straight line from `(x0,y0,z0)` to `(x1,y1,z1)`. | ||
|
|
||
|
|
||
| ## Contribution | ||
| This subrepository is based on [Gyros (permission required)](https://gitlab.desy.de/luxe-ecal/performance/gyros/-/tree/main/generation/geometry) by the LUXE ECAL group. | ||
|
|
||
| For previous variants `ECALe_luxe_v{0-2}.xml`, please also check the said Gyros repository. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.