ITS3
Upgraded version of the ITS that includes upgraded truly-cylindrical inner barrel. Provided O2 has been compiled with upgrades enabled (ENABLE_UPGRADES=1 aliBuild build O2
), it is possible to simulate ITS3 geometry within the o2-sim
executable.
Events can be simulated using the o2-sim
workflow. To include ITS3 in the simulation, IT3
module must be enabled via the -m IT3
parameter. To include the beam pipe, the module PIPE
must be enabled.
The run number is needed to retrieve objects from the CCDB. There are specific ranges of run-numbers, according to the collision system and to the selected geometry if the ITS3 inner barrel:
- pp collisions:
- Pb-Pb collisions:
Note: For now the same topology dictionary will be used for both collision-systems Last Update of file here (jira)[https://its.cern.ch/jira/browse/O2-5293]
Simulation
0. Optional
This just caches the ccdb object to reduce calls in case we are testing.
export IGNORE_VALIDITYCHECK_OF_CCDB_LOCALCACHE=1
export ALICEO2_CCDB_LOCALCACHE=${PWD}/ccdb
Simulate diamond
bash
# append to o2-sim
--configKeyValues="Diamond.width[2]=6.;""
Local Tracking
0. Optionally, if not provided in the ccdb
Create the general run parameters, see GRPECS.
- Simulate
Simulate PIPE and ITS3
o2-sim -g pythia8pp --detectorList ALICE2.1 -m PIPE IT3 --run 303901 -n1000 --field ccdb
In the previous command:
-j
is used to set the number of threads;
-n
is used to set the number of events to simulate;
-g
is used to set the event generator, in this case pythia8hi
. To simulate pp collisions one can use pythia8pp
.
--run
is needed to set the run number.
- Digitization
o2-sim-digitizer-workflow -b --interactionRate 500000 --run --configKeyValues="HBFUtils.runNumber=303901;" --onlyDet IT3
root -x -l ${ALIBUILD_WORK_DIR}/../O2/Detectors/Upgrades/ITS3/macros/test/CheckDigitsITS3.C++
- Clusterization with tracking
o2-its3-reco-workflow -b --run --tracking-mode async --configKeyValues "HBFUtils.runNumber=303901;"
root -x -l ${ALIBUILD_WORK_DIR}/../O2/Detectors/Upgrades/ITS3/macros/test/CheckClustersITS3.C++
root -x -l ${ALIBUILD_WORK_DIR}/../O2/Detectors/Upgrades/ITS3/macros/test/CheckTracksITS3.C++
Global Tracking
TODO
Creating CCDB Objects
!TODO! Create Full geometry + Aligned + GeometryTGeo
# Create Full Geometry
o2-sim -g pythia8pp -j10 --detectorList ALICE2.1 --run 303901 -n0
cp o2sim_geometry.root ${ALICEO2_CCDB_LOCALCACHE}/GLO/Config/Geometry/snapshot.root
o2-create-aligned-geometry-workflow -b --configKeyValues "HBFUtils.startTime=1547978230000" --condition-remap="file://${ALICEO2_CCDB_LOCALCACHE}=GLO/Config/Geometry"
cp o2sim_geometry-aligned.root ${ALICEO2_CCDB_LOCALCACHE}/GLO/Config/GeometryAligned/snapshot.root
cp its_GeometryTGeo.root ${ALICEO2_CCDB_LOCALCACHE}/ITS/Config/Geometry/snapshot.root
Regenerating the TopologyDictionary
- Clusterization w/o tracking
First we need to use the clusterizer but ignoring the default TopologyDictionary, we built our own.
o2-its3-reco-workflow -b --tracking-mode off \
--configKeyValues "HBFUtils.runNumber=303901;" \
--ignore-cluster-dictionary --run
- Creating the TopologyDictionary
root -x -l ${ALIBUILD_WORK_DIR}/../O2/Detectors/Upgrades/ITS3/macros/test/CreateDictionariesITS3.C++
cp IT3dictionary.root ${ALICEO2_CCDB_LOCALCACHE}/IT3/Calib/ClusterDictionary/snapshot.root
- Rerun Clusterization with new TopologyDictionary
o2-its3-reco-workflow -b --tracking-mode off \
--configKeyValues "HBFUtils.runNumber=303901;" \
--condition-remap="file://${ALICEO2_CCDB_LOCALCACHE}=IT3/Calib/ClusterDictionary" \
--run
- Check Clusters
root -x -l '${ALIBUILD_WORK_DIR}/../O2/Detectors/Upgrades/ITS3/macros/test/CheckClustersITS3.C++("o2clus_its.root", "o2sim_HitsIT3.root", "o2sim_geometry-aligned.root", "IT3dictionary.root")'
root -x -l '${ALIBUILD_WORK_DIR}/../O2/Detectors/Upgrades/ITS3/macros/test/CompareClustersAndDigits.C++("o2clus_its.root", "it3digits.root","IT3dictionary.root", "o2sim_HitsIT3.root", "o2sim_geometry-aligned.root")'
root -x -l '${ALIBUILD_WORK_DIR}/../O2/Detectors/Upgrades/ITS3/macros/test/CheckClusterSize.C++("o2clus_its.root", "o2sim_Kine.root", "IT3dictionary.root", false)'
GRPECS
bash
o2-grp-simgrp-tool createGRPs --detectorList ALICE2.1 --run 303901 --bcPatternFile bcPattern.root --hbfpertf 128 --field -5 --publishto ccdb
Using external generators based on AliRoot
It is also possible to simulate heavy-ion collision using external generators based on AliRoot. In this case, it is necessary to load both O2 and AliROOT (the order is important):
alienv enter O2/latest AliRoot/latest
After that, the option -g external
must be used and the file with the definition of the generator and the function to be used must be provided as parameters of the workflow:
o2-sim -j 1 \
-n 10 -g external \
--configKeyValues "Diamond.width[2]=6.;GeneratorExternal.fileName=hijing.C;GeneratorExternal.funcName=hijing(5020, 0, 20)"
The file hijing.C
can be found here.
Disabling individual tiles
- Create a file
input.txt
with a comma separated list of disabled tiles.
- (optional) Run the macro
CreateITS3StaticDeadMap.C
and/or visualize with CheckTileNumbering.C
- Move the ccdb object into
${ALICEO2_CCDB_LOCALCACHE}/IT3/Calib/DeadMap
, this is not optional since there is no default object uploaded
- Run digitizer with
ITS3Params.useDeadChannelMap=true;
, e.g.: bash
o2-sim-digitizer-workflow --configKeyValues="ITS3Params.useDeadChannelMap=true;"
Alignment studies
Deform hits
- Create misalignment parameters with
CreateMisalignmentITS3.C
- Visualize with
ShowCoefficients.C
- Run digitizer
bash
o2-sim-digitizer-workflow -b --configKeyValues="ITS3Params.applyMisalignmentHits=true;ITS3Params.misalignmentHitsParams=misparams.root"