Repository files navigation

Geometry File Information

The files DetId_sensors_list.csv and module_info.csv are sourced from Tracker version OT800_IT615:

Sources for specific files:

  • allCoordinates.csv (renamed module_info.csv) is available at OT800_IT615 Layout
  • DetId_sensors_list.csv can be found linked from the homepage of the above URL.
  • The average_r_OT800_IT615.txt and average_z_OT800_IT615.txt files can be taken directly from the table at the top of the OT800_IT615 Layout page. These represent the average r positions of the Barrel layers and the average z positions of the Endcap layers.

Setting up the relevant environment

# Download and install Miniconda
curl -O -L https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b # add conda to the end of ~/.bashrc, so relogin after executing this line
~/miniconda3/bin/conda init
# (optional) stop conda from activating the base environment on login
conda config --set auto_activate_base false
# Add conda-forge as a priority channel for package management
conda config --add channels conda-forge
# Create a new conda environment with necessary packages
conda create --name analysisenv uproot pandas matplotlib jupyter graphviz iminuit scipy shapely root
conda activate analysisenv
conda install -c plotly plotly=4.14.3
pip install yahist particle graphviz pydot tqdm
# Note: After installation, activate your environment with:
# conda activate analysisenv
# To deactivate, use:
# conda deactivate

Compute Geometry (CSV)

The compute_geometry.py file computes both the sensor corner coordinates and centroid coordinates, as well as two orientation files used by the segment linking algorithm, using the compute_corners.py, compute_centroids.py, and compute_orientation.py files respectively. This is the only file that you need to run prior to generating the module maps and pixel maps. Documentation for the individual geometry python files it calls are also given below, but do not need to be run in addition to compute_geometry.

Usage:

Run: python3 compute_geometry.py for default file paths.
For custom paths: python3 compute_geometry.py [module_info_file] [sensor_info_file] [outputfile_corners] [outputfile_centroid] [outputfile_tilted_barrel] [outputfile_endcap]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for corners: output/sensor_corners.txt
Default output file for centroids: output/sensor_centroids.txt
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Computing the Module Maps and Pixel Maps

After running the compute_geometry.py file (see above) the following can be run.

Use the scripts:

python3 compute_pixelmap.py
python3 compute_modulemap.py

This will place the modulemap output to the output/ directory and the pixelmaps to their own pixelmap directory.

Convert Outputs to Binary

After creating the module map and pixel map with the above scripts, you can convert the relevant files stored in output/ to a binary format for use in Tracklooper with the following command:

python3 convert_binary.py

Compute Centroids (CSV)

The compute_centroids.py file computes the centroid coordinates of each sensor using the CSV files in /data

Usage:

Run: python3 compute_centroids.py for default file paths.
For custom paths: python3 compute_centroids.py [inputfile] [outputfile]
Default input: data/DetId_sensors_list_OT800_IT615.csv
Default output: output/sensor_centroids.txt

Output Format:

sensor_centroids.txt - [sensor detid], [x coordinate of centroid (cm)], [y coordinate of centorid (cm)], [z coordinate of centroid (cm)], [moduletype (23 (PSP), 24 (PSS), or 25 (TwoS))]

Compute Corners (CSV)

The compute_corners.py file calculates the four corner coordinates of each sensor based on the provided module and sensor CSV files. It uses rotation matrices to account for various rotations of each sensor and outputs the corner coordinates for each sensor.

Usage:

Run: python3 compute_corners.py for default file paths.
For custom paths: python3 compute_corners.py [module_info_file] [sensor_info_file] [outputfile]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file: output/sensor_corners.txt

Output Format:

sensor_corners.txt - "sensor detid": [Z, X, Y coordinates for each of the sensor's four corners (cm)]

Compute Orientations (CSV)

The compute_orientation.py script calculates the orientations (dr/dz and dx/dy slopes) of each relevant sensor based on their corner coordinates. It outputs two files: one for the slopes of tilted barrel sensors and another for the slopes of endcap sensors. Note that only the dxdy slope is given for endcap sensors because dz is always 0 in the current geometry for the endcap sensors. Additionally, for endcap sensors, the centroid phi value also appended to orientation information.

Usage:

Run: python3 compute_orientation.py for default file paths.
For custom paths: python3 compute_orientation.py [sensor_corners_file] [centroids_file] [output_tilted_barrel_file] [output_endcap_file]
Default sensor corners file: output/sensor_corners.txt
Default centroids file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Output Format:

endcap_orientation.txt - [endcap sensor detid] [dx/dy slope of sensor] [centroid phi value of sensor]
tilted_barrel_orientation.txt - [tilted barrel sensor detid] [dr/dz slope of sensor] [dx/dy slope of sensor]

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Geometry File Information

The files DetId_sensors_list.csv and module_info.csv are sourced from Tracker version OT800_IT615:

Sources for specific files:

  • allCoordinates.csv (renamed module_info.csv) is available at OT800_IT615 Layout
  • DetId_sensors_list.csv can be found linked from the homepage of the above URL.
  • The average_r_OT800_IT615.txt and average_z_OT800_IT615.txt files can be taken directly from the table at the top of the OT800_IT615 Layout page. These represent the average r positions of the Barrel layers and the average z positions of the Endcap layers.

Setting up the relevant environment

# Download and install Miniconda
curl -O -L https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b # add conda to the end of ~/.bashrc, so relogin after executing this line
~/miniconda3/bin/conda init
# (optional) stop conda from activating the base environment on login
conda config --set auto_activate_base false
# Add conda-forge as a priority channel for package management
conda config --add channels conda-forge
# Create a new conda environment with necessary packages
conda create --name analysisenv uproot pandas matplotlib jupyter graphviz iminuit scipy shapely root
conda activate analysisenv
conda install -c plotly plotly=4.14.3
pip install yahist particle graphviz pydot tqdm
# Note: After installation, activate your environment with:
# conda activate analysisenv
# To deactivate, use:
# conda deactivate

Compute Geometry (CSV)

The compute_geometry.py file computes both the sensor corner coordinates and centroid coordinates, as well as two orientation files used by the segment linking algorithm, using the compute_corners.py, compute_centroids.py, and compute_orientation.py files respectively. This is the only file that you need to run prior to generating the module maps and pixel maps. Documentation for the individual geometry python files it calls are also given below, but do not need to be run in addition to compute_geometry.

Usage:

Run: python3 compute_geometry.py for default file paths.
For custom paths: python3 compute_geometry.py [module_info_file] [sensor_info_file] [outputfile_corners] [outputfile_centroid] [outputfile_tilted_barrel] [outputfile_endcap]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for corners: output/sensor_corners.txt
Default output file for centroids: output/sensor_centroids.txt
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Computing the Module Maps and Pixel Maps

After running the compute_geometry.py file (see above) the following can be run.

Use the scripts:

python3 compute_pixelmap.py
python3 compute_modulemap.py

This will place the modulemap output to the output/ directory and the pixelmaps to their own pixelmap directory.

Convert Outputs to Binary

After creating the module map and pixel map with the above scripts, you can convert the relevant files stored in output/ to a binary format for use in Tracklooper with the following command:

python3 convert_binary.py

Compute Centroids (CSV)

The compute_centroids.py file computes the centroid coordinates of each sensor using the CSV files in /data

Usage:

Run: python3 compute_centroids.py for default file paths.
For custom paths: python3 compute_centroids.py [inputfile] [outputfile]
Default input: data/DetId_sensors_list_OT800_IT615.csv
Default output: output/sensor_centroids.txt

Output Format:

sensor_centroids.txt - [sensor detid], [x coordinate of centroid (cm)], [y coordinate of centorid (cm)], [z coordinate of centroid (cm)], [moduletype (23 (PSP), 24 (PSS), or 25 (TwoS))]

Compute Corners (CSV)

The compute_corners.py file calculates the four corner coordinates of each sensor based on the provided module and sensor CSV files. It uses rotation matrices to account for various rotations of each sensor and outputs the corner coordinates for each sensor.

Usage:

Run: python3 compute_corners.py for default file paths.
For custom paths: python3 compute_corners.py [module_info_file] [sensor_info_file] [outputfile]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file: output/sensor_corners.txt

Output Format:

sensor_corners.txt - "sensor detid": [Z, X, Y coordinates for each of the sensor's four corners (cm)]

Compute Orientations (CSV)

The compute_orientation.py script calculates the orientations (dr/dz and dx/dy slopes) of each relevant sensor based on their corner coordinates. It outputs two files: one for the slopes of tilted barrel sensors and another for the slopes of endcap sensors. Note that only the dxdy slope is given for endcap sensors because dz is always 0 in the current geometry for the endcap sensors. Additionally, for endcap sensors, the centroid phi value also appended to orientation information.

Usage:

Run: python3 compute_orientation.py for default file paths.
For custom paths: python3 compute_orientation.py [sensor_corners_file] [centroids_file] [output_tilted_barrel_file] [output_endcap_file]
Default sensor corners file: output/sensor_corners.txt
Default centroids file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Output Format:

endcap_orientation.txt - [endcap sensor detid] [dx/dy slope of sensor] [centroid phi value of sensor]
tilted_barrel_orientation.txt - [tilted barrel sensor detid] [dr/dz slope of sensor] [dx/dy slope of sensor]

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Geometry File Information

The files DetId_sensors_list.csv and module_info.csv are sourced from Tracker version OT800_IT615:

Sources for specific files:

  • allCoordinates.csv (renamed module_info.csv) is available at OT800_IT615 Layout
  • DetId_sensors_list.csv can be found linked from the homepage of the above URL.
  • The average_r_OT800_IT615.txt and average_z_OT800_IT615.txt files can be taken directly from the table at the top of the OT800_IT615 Layout page. These represent the average r positions of the Barrel layers and the average z positions of the Endcap layers.

Setting up the relevant environment

# Download and install Miniconda
curl -O -L https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b # add conda to the end of ~/.bashrc, so relogin after executing this line
~/miniconda3/bin/conda init
# (optional) stop conda from activating the base environment on login
conda config --set auto_activate_base false
# Add conda-forge as a priority channel for package management
conda config --add channels conda-forge
# Create a new conda environment with necessary packages
conda create --name analysisenv uproot pandas matplotlib jupyter graphviz iminuit scipy shapely root
conda activate analysisenv
conda install -c plotly plotly=4.14.3
pip install yahist particle graphviz pydot tqdm
# Note: After installation, activate your environment with:
# conda activate analysisenv
# To deactivate, use:
# conda deactivate

Compute Geometry (CSV)

The compute_geometry.py file computes both the sensor corner coordinates and centroid coordinates, as well as two orientation files used by the segment linking algorithm, using the compute_corners.py, compute_centroids.py, and compute_orientation.py files respectively. This is the only file that you need to run prior to generating the module maps and pixel maps. Documentation for the individual geometry python files it calls are also given below, but do not need to be run in addition to compute_geometry.

Usage:

Run: python3 compute_geometry.py for default file paths.
For custom paths: python3 compute_geometry.py [module_info_file] [sensor_info_file] [outputfile_corners] [outputfile_centroid] [outputfile_tilted_barrel] [outputfile_endcap]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for corners: output/sensor_corners.txt
Default output file for centroids: output/sensor_centroids.txt
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Computing the Module Maps and Pixel Maps

After running the compute_geometry.py file (see above) the following can be run.

Use the scripts:

python3 compute_pixelmap.py
python3 compute_modulemap.py

This will place the modulemap output to the output/ directory and the pixelmaps to their own pixelmap directory.

Convert Outputs to Binary

After creating the module map and pixel map with the above scripts, you can convert the relevant files stored in output/ to a binary format for use in Tracklooper with the following command:

python3 convert_binary.py

Compute Centroids (CSV)

The compute_centroids.py file computes the centroid coordinates of each sensor using the CSV files in /data

Usage:

Run: python3 compute_centroids.py for default file paths.
For custom paths: python3 compute_centroids.py [inputfile] [outputfile]
Default input: data/DetId_sensors_list_OT800_IT615.csv
Default output: output/sensor_centroids.txt

Output Format:

sensor_centroids.txt - [sensor detid], [x coordinate of centroid (cm)], [y coordinate of centorid (cm)], [z coordinate of centroid (cm)], [moduletype (23 (PSP), 24 (PSS), or 25 (TwoS))]

Compute Corners (CSV)

The compute_corners.py file calculates the four corner coordinates of each sensor based on the provided module and sensor CSV files. It uses rotation matrices to account for various rotations of each sensor and outputs the corner coordinates for each sensor.

Usage:

Run: python3 compute_corners.py for default file paths.
For custom paths: python3 compute_corners.py [module_info_file] [sensor_info_file] [outputfile]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file: output/sensor_corners.txt

Output Format:

sensor_corners.txt - "sensor detid": [Z, X, Y coordinates for each of the sensor's four corners (cm)]

Compute Orientations (CSV)

The compute_orientation.py script calculates the orientations (dr/dz and dx/dy slopes) of each relevant sensor based on their corner coordinates. It outputs two files: one for the slopes of tilted barrel sensors and another for the slopes of endcap sensors. Note that only the dxdy slope is given for endcap sensors because dz is always 0 in the current geometry for the endcap sensors. Additionally, for endcap sensors, the centroid phi value also appended to orientation information.

Usage:

Run: python3 compute_orientation.py for default file paths.
For custom paths: python3 compute_orientation.py [sensor_corners_file] [centroids_file] [output_tilted_barrel_file] [output_endcap_file]
Default sensor corners file: output/sensor_corners.txt
Default centroids file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Output Format:

endcap_orientation.txt - [endcap sensor detid] [dx/dy slope of sensor] [centroid phi value of sensor]
tilted_barrel_orientation.txt - [tilted barrel sensor detid] [dr/dz slope of sensor] [dx/dy slope of sensor]

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Geometry File Information

The files DetId_sensors_list.csv and module_info.csv are sourced from Tracker version OT800_IT615:

Sources for specific files:

  • allCoordinates.csv (renamed module_info.csv) is available at OT800_IT615 Layout
  • DetId_sensors_list.csv can be found linked from the homepage of the above URL.
  • The average_r_OT800_IT615.txt and average_z_OT800_IT615.txt files can be taken directly from the table at the top of the OT800_IT615 Layout page. These represent the average r positions of the Barrel layers and the average z positions of the Endcap layers.

Setting up the relevant environment

# Download and install Miniconda
curl -O -L https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b # add conda to the end of ~/.bashrc, so relogin after executing this line
~/miniconda3/bin/conda init
# (optional) stop conda from activating the base environment on login
conda config --set auto_activate_base false
# Add conda-forge as a priority channel for package management
conda config --add channels conda-forge
# Create a new conda environment with necessary packages
conda create --name analysisenv uproot pandas matplotlib jupyter graphviz iminuit scipy shapely root
conda activate analysisenv
conda install -c plotly plotly=4.14.3
pip install yahist particle graphviz pydot tqdm
# Note: After installation, activate your environment with:
# conda activate analysisenv
# To deactivate, use:
# conda deactivate

Compute Geometry (CSV)

The compute_geometry.py file computes both the sensor corner coordinates and centroid coordinates, as well as two orientation files used by the segment linking algorithm, using the compute_corners.py, compute_centroids.py, and compute_orientation.py files respectively. This is the only file that you need to run prior to generating the module maps and pixel maps. Documentation for the individual geometry python files it calls are also given below, but do not need to be run in addition to compute_geometry.

Usage:

Run: python3 compute_geometry.py for default file paths.
For custom paths: python3 compute_geometry.py [module_info_file] [sensor_info_file] [outputfile_corners] [outputfile_centroid] [outputfile_tilted_barrel] [outputfile_endcap]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for corners: output/sensor_corners.txt
Default output file for centroids: output/sensor_centroids.txt
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Computing the Module Maps and Pixel Maps

After running the compute_geometry.py file (see above) the following can be run.

Use the scripts:

python3 compute_pixelmap.py
python3 compute_modulemap.py

This will place the modulemap output to the output/ directory and the pixelmaps to their own pixelmap directory.

Convert Outputs to Binary

After creating the module map and pixel map with the above scripts, you can convert the relevant files stored in output/ to a binary format for use in Tracklooper with the following command:

python3 convert_binary.py

Compute Centroids (CSV)

The compute_centroids.py file computes the centroid coordinates of each sensor using the CSV files in /data

Usage:

Run: python3 compute_centroids.py for default file paths.
For custom paths: python3 compute_centroids.py [inputfile] [outputfile]
Default input: data/DetId_sensors_list_OT800_IT615.csv
Default output: output/sensor_centroids.txt

Output Format:

sensor_centroids.txt - [sensor detid], [x coordinate of centroid (cm)], [y coordinate of centorid (cm)], [z coordinate of centroid (cm)], [moduletype (23 (PSP), 24 (PSS), or 25 (TwoS))]

Compute Corners (CSV)

The compute_corners.py file calculates the four corner coordinates of each sensor based on the provided module and sensor CSV files. It uses rotation matrices to account for various rotations of each sensor and outputs the corner coordinates for each sensor.

Usage:

Run: python3 compute_corners.py for default file paths.
For custom paths: python3 compute_corners.py [module_info_file] [sensor_info_file] [outputfile]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file: output/sensor_corners.txt

Output Format:

sensor_corners.txt - "sensor detid": [Z, X, Y coordinates for each of the sensor's four corners (cm)]

Compute Orientations (CSV)

The compute_orientation.py script calculates the orientations (dr/dz and dx/dy slopes) of each relevant sensor based on their corner coordinates. It outputs two files: one for the slopes of tilted barrel sensors and another for the slopes of endcap sensors. Note that only the dxdy slope is given for endcap sensors because dz is always 0 in the current geometry for the endcap sensors. Additionally, for endcap sensors, the centroid phi value also appended to orientation information.

Usage:

Run: python3 compute_orientation.py for default file paths.
For custom paths: python3 compute_orientation.py [sensor_corners_file] [centroids_file] [output_tilted_barrel_file] [output_endcap_file]
Default sensor corners file: output/sensor_corners.txt
Default centroids file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Output Format:

endcap_orientation.txt - [endcap sensor detid] [dx/dy slope of sensor] [centroid phi value of sensor]
tilted_barrel_orientation.txt - [tilted barrel sensor detid] [dr/dz slope of sensor] [dx/dy slope of sensor]

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Geometry File Information

The files DetId_sensors_list.csv and module_info.csv are sourced from Tracker version OT800_IT615:

Sources for specific files:

  • allCoordinates.csv (renamed module_info.csv) is available at OT800_IT615 Layout
  • DetId_sensors_list.csv can be found linked from the homepage of the above URL.
  • The average_r_OT800_IT615.txt and average_z_OT800_IT615.txt files can be taken directly from the table at the top of the OT800_IT615 Layout page. These represent the average r positions of the Barrel layers and the average z positions of the Endcap layers.

Setting up the relevant environment

# Download and install Miniconda
curl -O -L https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b # add conda to the end of ~/.bashrc, so relogin after executing this line
~/miniconda3/bin/conda init
# (optional) stop conda from activating the base environment on login
conda config --set auto_activate_base false
# Add conda-forge as a priority channel for package management
conda config --add channels conda-forge
# Create a new conda environment with necessary packages
conda create --name analysisenv uproot pandas matplotlib jupyter graphviz iminuit scipy shapely root
conda activate analysisenv
conda install -c plotly plotly=4.14.3
pip install yahist particle graphviz pydot tqdm
# Note: After installation, activate your environment with:
# conda activate analysisenv
# To deactivate, use:
# conda deactivate

Compute Geometry (CSV)

The compute_geometry.py file computes both the sensor corner coordinates and centroid coordinates, as well as two orientation files used by the segment linking algorithm, using the compute_corners.py, compute_centroids.py, and compute_orientation.py files respectively. This is the only file that you need to run prior to generating the module maps and pixel maps. Documentation for the individual geometry python files it calls are also given below, but do not need to be run in addition to compute_geometry.

Usage:

Run: python3 compute_geometry.py for default file paths.
For custom paths: python3 compute_geometry.py [module_info_file] [sensor_info_file] [outputfile_corners] [outputfile_centroid] [outputfile_tilted_barrel] [outputfile_endcap]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for corners: output/sensor_corners.txt
Default output file for centroids: output/sensor_centroids.txt
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Computing the Module Maps and Pixel Maps

After running the compute_geometry.py file (see above) the following can be run.

Use the scripts:

python3 compute_pixelmap.py
python3 compute_modulemap.py

This will place the modulemap output to the output/ directory and the pixelmaps to their own pixelmap directory.

Convert Outputs to Binary

After creating the module map and pixel map with the above scripts, you can convert the relevant files stored in output/ to a binary format for use in Tracklooper with the following command:

python3 convert_binary.py

Compute Centroids (CSV)

The compute_centroids.py file computes the centroid coordinates of each sensor using the CSV files in /data

Usage:

Run: python3 compute_centroids.py for default file paths.
For custom paths: python3 compute_centroids.py [inputfile] [outputfile]
Default input: data/DetId_sensors_list_OT800_IT615.csv
Default output: output/sensor_centroids.txt

Output Format:

sensor_centroids.txt - [sensor detid], [x coordinate of centroid (cm)], [y coordinate of centorid (cm)], [z coordinate of centroid (cm)], [moduletype (23 (PSP), 24 (PSS), or 25 (TwoS))]

Compute Corners (CSV)

The compute_corners.py file calculates the four corner coordinates of each sensor based on the provided module and sensor CSV files. It uses rotation matrices to account for various rotations of each sensor and outputs the corner coordinates for each sensor.

Usage:

Run: python3 compute_corners.py for default file paths.
For custom paths: python3 compute_corners.py [module_info_file] [sensor_info_file] [outputfile]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file: output/sensor_corners.txt

Output Format:

sensor_corners.txt - "sensor detid": [Z, X, Y coordinates for each of the sensor's four corners (cm)]

Compute Orientations (CSV)

The compute_orientation.py script calculates the orientations (dr/dz and dx/dy slopes) of each relevant sensor based on their corner coordinates. It outputs two files: one for the slopes of tilted barrel sensors and another for the slopes of endcap sensors. Note that only the dxdy slope is given for endcap sensors because dz is always 0 in the current geometry for the endcap sensors. Additionally, for endcap sensors, the centroid phi value also appended to orientation information.

Usage:

Run: python3 compute_orientation.py for default file paths.
For custom paths: python3 compute_orientation.py [sensor_corners_file] [centroids_file] [output_tilted_barrel_file] [output_endcap_file]
Default sensor corners file: output/sensor_corners.txt
Default centroids file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Output Format:

endcap_orientation.txt - [endcap sensor detid] [dx/dy slope of sensor] [centroid phi value of sensor]
tilted_barrel_orientation.txt - [tilted barrel sensor detid] [dr/dz slope of sensor] [dx/dy slope of sensor]

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Geometry File Information

The files DetId_sensors_list.csv and module_info.csv are sourced from Tracker version OT800_IT615:

Sources for specific files:

  • allCoordinates.csv (renamed module_info.csv) is available at OT800_IT615 Layout
  • DetId_sensors_list.csv can be found linked from the homepage of the above URL.
  • The average_r_OT800_IT615.txt and average_z_OT800_IT615.txt files can be taken directly from the table at the top of the OT800_IT615 Layout page. These represent the average r positions of the Barrel layers and the average z positions of the Endcap layers.

Setting up the relevant environment

# Download and install Miniconda
curl -O -L https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b # add conda to the end of ~/.bashrc, so relogin after executing this line
~/miniconda3/bin/conda init
# (optional) stop conda from activating the base environment on login
conda config --set auto_activate_base false
# Add conda-forge as a priority channel for package management
conda config --add channels conda-forge
# Create a new conda environment with necessary packages
conda create --name analysisenv uproot pandas matplotlib jupyter graphviz iminuit scipy shapely root
conda activate analysisenv
conda install -c plotly plotly=4.14.3
pip install yahist particle graphviz pydot tqdm
# Note: After installation, activate your environment with:
# conda activate analysisenv
# To deactivate, use:
# conda deactivate

Compute Geometry (CSV)

The compute_geometry.py file computes both the sensor corner coordinates and centroid coordinates, as well as two orientation files used by the segment linking algorithm, using the compute_corners.py, compute_centroids.py, and compute_orientation.py files respectively. This is the only file that you need to run prior to generating the module maps and pixel maps. Documentation for the individual geometry python files it calls are also given below, but do not need to be run in addition to compute_geometry.

Usage:

Run: python3 compute_geometry.py for default file paths.
For custom paths: python3 compute_geometry.py [module_info_file] [sensor_info_file] [outputfile_corners] [outputfile_centroid] [outputfile_tilted_barrel] [outputfile_endcap]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for corners: output/sensor_corners.txt
Default output file for centroids: output/sensor_centroids.txt
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Computing the Module Maps and Pixel Maps

After running the compute_geometry.py file (see above) the following can be run.

Use the scripts:

python3 compute_pixelmap.py
python3 compute_modulemap.py

This will place the modulemap output to the output/ directory and the pixelmaps to their own pixelmap directory.

Convert Outputs to Binary

After creating the module map and pixel map with the above scripts, you can convert the relevant files stored in output/ to a binary format for use in Tracklooper with the following command:

python3 convert_binary.py

Compute Centroids (CSV)

The compute_centroids.py file computes the centroid coordinates of each sensor using the CSV files in /data

Usage:

Run: python3 compute_centroids.py for default file paths.
For custom paths: python3 compute_centroids.py [inputfile] [outputfile]
Default input: data/DetId_sensors_list_OT800_IT615.csv
Default output: output/sensor_centroids.txt

Output Format:

sensor_centroids.txt - [sensor detid], [x coordinate of centroid (cm)], [y coordinate of centorid (cm)], [z coordinate of centroid (cm)], [moduletype (23 (PSP), 24 (PSS), or 25 (TwoS))]

Compute Corners (CSV)

The compute_corners.py file calculates the four corner coordinates of each sensor based on the provided module and sensor CSV files. It uses rotation matrices to account for various rotations of each sensor and outputs the corner coordinates for each sensor.

Usage:

Run: python3 compute_corners.py for default file paths.
For custom paths: python3 compute_corners.py [module_info_file] [sensor_info_file] [outputfile]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file: output/sensor_corners.txt

Output Format:

sensor_corners.txt - "sensor detid": [Z, X, Y coordinates for each of the sensor's four corners (cm)]

Compute Orientations (CSV)

The compute_orientation.py script calculates the orientations (dr/dz and dx/dy slopes) of each relevant sensor based on their corner coordinates. It outputs two files: one for the slopes of tilted barrel sensors and another for the slopes of endcap sensors. Note that only the dxdy slope is given for endcap sensors because dz is always 0 in the current geometry for the endcap sensors. Additionally, for endcap sensors, the centroid phi value also appended to orientation information.

Usage:

Run: python3 compute_orientation.py for default file paths.
For custom paths: python3 compute_orientation.py [sensor_corners_file] [centroids_file] [output_tilted_barrel_file] [output_endcap_file]
Default sensor corners file: output/sensor_corners.txt
Default centroids file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Output Format:

endcap_orientation.txt - [endcap sensor detid] [dx/dy slope of sensor] [centroid phi value of sensor]
tilted_barrel_orientation.txt - [tilted barrel sensor detid] [dr/dz slope of sensor] [dx/dy slope of sensor]

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Geometry File Information

The files DetId_sensors_list.csv and module_info.csv are sourced from Tracker version OT800_IT615:

Sources for specific files:

  • allCoordinates.csv (renamed module_info.csv) is available at OT800_IT615 Layout
  • DetId_sensors_list.csv can be found linked from the homepage of the above URL.
  • The average_r_OT800_IT615.txt and average_z_OT800_IT615.txt files can be taken directly from the table at the top of the OT800_IT615 Layout page. These represent the average r positions of the Barrel layers and the average z positions of the Endcap layers.

Setting up the relevant environment

# Download and install Miniconda
curl -O -L https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b # add conda to the end of ~/.bashrc, so relogin after executing this line
~/miniconda3/bin/conda init
# (optional) stop conda from activating the base environment on login
conda config --set auto_activate_base false
# Add conda-forge as a priority channel for package management
conda config --add channels conda-forge
# Create a new conda environment with necessary packages
conda create --name analysisenv uproot pandas matplotlib jupyter graphviz iminuit scipy shapely root
conda activate analysisenv
conda install -c plotly plotly=4.14.3
pip install yahist particle graphviz pydot tqdm
# Note: After installation, activate your environment with:
# conda activate analysisenv
# To deactivate, use:
# conda deactivate

Compute Geometry (CSV)

The compute_geometry.py file computes both the sensor corner coordinates and centroid coordinates, as well as two orientation files used by the segment linking algorithm, using the compute_corners.py, compute_centroids.py, and compute_orientation.py files respectively. This is the only file that you need to run prior to generating the module maps and pixel maps. Documentation for the individual geometry python files it calls are also given below, but do not need to be run in addition to compute_geometry.

Usage:

Run: python3 compute_geometry.py for default file paths.
For custom paths: python3 compute_geometry.py [module_info_file] [sensor_info_file] [outputfile_corners] [outputfile_centroid] [outputfile_tilted_barrel] [outputfile_endcap]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for corners: output/sensor_corners.txt
Default output file for centroids: output/sensor_centroids.txt
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Computing the Module Maps and Pixel Maps

After running the compute_geometry.py file (see above) the following can be run.

Use the scripts:

python3 compute_pixelmap.py
python3 compute_modulemap.py

This will place the modulemap output to the output/ directory and the pixelmaps to their own pixelmap directory.

Convert Outputs to Binary

After creating the module map and pixel map with the above scripts, you can convert the relevant files stored in output/ to a binary format for use in Tracklooper with the following command:

python3 convert_binary.py

Compute Centroids (CSV)

The compute_centroids.py file computes the centroid coordinates of each sensor using the CSV files in /data

Usage:

Run: python3 compute_centroids.py for default file paths.
For custom paths: python3 compute_centroids.py [inputfile] [outputfile]
Default input: data/DetId_sensors_list_OT800_IT615.csv
Default output: output/sensor_centroids.txt

Output Format:

sensor_centroids.txt - [sensor detid], [x coordinate of centroid (cm)], [y coordinate of centorid (cm)], [z coordinate of centroid (cm)], [moduletype (23 (PSP), 24 (PSS), or 25 (TwoS))]

Compute Corners (CSV)

The compute_corners.py file calculates the four corner coordinates of each sensor based on the provided module and sensor CSV files. It uses rotation matrices to account for various rotations of each sensor and outputs the corner coordinates for each sensor.

Usage:

Run: python3 compute_corners.py for default file paths.
For custom paths: python3 compute_corners.py [module_info_file] [sensor_info_file] [outputfile]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file: output/sensor_corners.txt

Output Format:

sensor_corners.txt - "sensor detid": [Z, X, Y coordinates for each of the sensor's four corners (cm)]

Compute Orientations (CSV)

The compute_orientation.py script calculates the orientations (dr/dz and dx/dy slopes) of each relevant sensor based on their corner coordinates. It outputs two files: one for the slopes of tilted barrel sensors and another for the slopes of endcap sensors. Note that only the dxdy slope is given for endcap sensors because dz is always 0 in the current geometry for the endcap sensors. Additionally, for endcap sensors, the centroid phi value also appended to orientation information.

Usage:

Run: python3 compute_orientation.py for default file paths.
For custom paths: python3 compute_orientation.py [sensor_corners_file] [centroids_file] [output_tilted_barrel_file] [output_endcap_file]
Default sensor corners file: output/sensor_corners.txt
Default centroids file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Output Format:

endcap_orientation.txt - [endcap sensor detid] [dx/dy slope of sensor] [centroid phi value of sensor]
tilted_barrel_orientation.txt - [tilted barrel sensor detid] [dr/dz slope of sensor] [dx/dy slope of sensor]

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Geometry File Information

The files DetId_sensors_list.csv and module_info.csv are sourced from Tracker version OT800_IT615:

Sources for specific files:

  • allCoordinates.csv (renamed module_info.csv) is available at OT800_IT615 Layout
  • DetId_sensors_list.csv can be found linked from the homepage of the above URL.
  • The average_r_OT800_IT615.txt and average_z_OT800_IT615.txt files can be taken directly from the table at the top of the OT800_IT615 Layout page. These represent the average r positions of the Barrel layers and the average z positions of the Endcap layers.

Setting up the relevant environment

# Download and install Miniconda
curl -O -L https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh -b # add conda to the end of ~/.bashrc, so relogin after executing this line
~/miniconda3/bin/conda init
# (optional) stop conda from activating the base environment on login
conda config --set auto_activate_base false
# Add conda-forge as a priority channel for package management
conda config --add channels conda-forge
# Create a new conda environment with necessary packages
conda create --name analysisenv uproot pandas matplotlib jupyter graphviz iminuit scipy shapely root
conda activate analysisenv
conda install -c plotly plotly=4.14.3
pip install yahist particle graphviz pydot tqdm
# Note: After installation, activate your environment with:
# conda activate analysisenv
# To deactivate, use:
# conda deactivate

Compute Geometry (CSV)

The compute_geometry.py file computes both the sensor corner coordinates and centroid coordinates, as well as two orientation files used by the segment linking algorithm, using the compute_corners.py, compute_centroids.py, and compute_orientation.py files respectively. This is the only file that you need to run prior to generating the module maps and pixel maps. Documentation for the individual geometry python files it calls are also given below, but do not need to be run in addition to compute_geometry.

Usage:

Run: python3 compute_geometry.py for default file paths.
For custom paths: python3 compute_geometry.py [module_info_file] [sensor_info_file] [outputfile_corners] [outputfile_centroid] [outputfile_tilted_barrel] [outputfile_endcap]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for corners: output/sensor_corners.txt
Default output file for centroids: output/sensor_centroids.txt
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Computing the Module Maps and Pixel Maps

After running the compute_geometry.py file (see above) the following can be run.

Use the scripts:

python3 compute_pixelmap.py
python3 compute_modulemap.py

This will place the modulemap output to the output/ directory and the pixelmaps to their own pixelmap directory.

Convert Outputs to Binary

After creating the module map and pixel map with the above scripts, you can convert the relevant files stored in output/ to a binary format for use in Tracklooper with the following command:

python3 convert_binary.py

Compute Centroids (CSV)

The compute_centroids.py file computes the centroid coordinates of each sensor using the CSV files in /data

Usage:

Run: python3 compute_centroids.py for default file paths.
For custom paths: python3 compute_centroids.py [inputfile] [outputfile]
Default input: data/DetId_sensors_list_OT800_IT615.csv
Default output: output/sensor_centroids.txt

Output Format:

sensor_centroids.txt - [sensor detid], [x coordinate of centroid (cm)], [y coordinate of centorid (cm)], [z coordinate of centroid (cm)], [moduletype (23 (PSP), 24 (PSS), or 25 (TwoS))]

Compute Corners (CSV)

The compute_corners.py file calculates the four corner coordinates of each sensor based on the provided module and sensor CSV files. It uses rotation matrices to account for various rotations of each sensor and outputs the corner coordinates for each sensor.

Usage:

Run: python3 compute_corners.py for default file paths.
For custom paths: python3 compute_corners.py [module_info_file] [sensor_info_file] [outputfile]
Default module info file: data/module_info_OT800_IT615.csv
Default sensor info file: data/DetId_sensors_list_OT800_IT615.csv
Default output file: output/sensor_corners.txt

Output Format:

sensor_corners.txt - "sensor detid": [Z, X, Y coordinates for each of the sensor's four corners (cm)]

Compute Orientations (CSV)

The compute_orientation.py script calculates the orientations (dr/dz and dx/dy slopes) of each relevant sensor based on their corner coordinates. It outputs two files: one for the slopes of tilted barrel sensors and another for the slopes of endcap sensors. Note that only the dxdy slope is given for endcap sensors because dz is always 0 in the current geometry for the endcap sensors. Additionally, for endcap sensors, the centroid phi value also appended to orientation information.

Usage:

Run: python3 compute_orientation.py for default file paths.
For custom paths: python3 compute_orientation.py [sensor_corners_file] [centroids_file] [output_tilted_barrel_file] [output_endcap_file]
Default sensor corners file: output/sensor_corners.txt
Default centroids file: data/DetId_sensors_list_OT800_IT615.csv
Default output file for tilted barrel orientations: output/tilted_barrel_orientation.txt
Default output file for endcap orientations: output/endcap_orientation.txt

Output Format:

endcap_orientation.txt - [endcap sensor detid] [dx/dy slope of sensor] [centroid phi value of sensor]
tilted_barrel_orientation.txt - [tilted barrel sensor detid] [dr/dz slope of sensor] [dx/dy slope of sensor]

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages