Useful Notes and Links

Reynier Cruz-Torres, PhD

Realistic tracking

The file with seeder parameters in EICrecon can be found in:

/global/project/projectdirs/m3763/reynier/DD4HEP/EICrecon/src/algorithms/tracking/OrthogonalTrackSeedingConfig.h

Chat with Joe Osborn (23/01/13):

eicrecon -Pjana:plugin_path=/gpfs01/eic/data/osbornjd/EPIC/git/EICrecon/lib/EICrecon/plugins -Pjana:debug_plugin_loading=1 -Ptracking:CentralTrackSeedingResults:impactMax=5 negpions.edm4hep.root
-Pjana:plugin_path=/gpfs01/eic/data/osbornjd/EPIC/git/EICrecon/lib/EICrecon/plugins -Pjana:debug_plugin_loading=1

won’t be needed at the time I start using the code. The output of this command is a root file called podio_output.root. There, we need to find a branch called CentralTrackSeedingResults.

Files that I have generated:

Located in: /global/project/projectdirs/m3763/reynier/DD4HEP/reconstruction_benchmarks/ on Cori.

Generating new events:

cd /global/project/projectdirs/m3763/reynier/DD4HEP/reconstruction_benchmarks

Edit the following file:

vim benchmarks/tracking/scripts/gen_central_pions.cxx

for example, the generation part:

Double_t p     = r1->Uniform(1.,3.0);
Double_t phi   = r1->Uniform(0.0, 2.0 * M_PI);
//Double_t costh = r1->Uniform(cos_theta_min, cos_theta_max);
//Double_t th    = std::acos(costh);
Double_t eta   = r1->Uniform(-4.0,4.0);
Double_t th    = 2.*std::atan(std::exp(-eta));
Double_t px    = p * std::cos(phi) * std::sin(th);
Double_t py    = p * std::sin(phi) * std::sin(th);
Double_t pz    = p * std::cos(th);

Then, modify this one:

vim benchmarks/tracking/central_pions.sh

Mainly, add the number of events (although it does not have to be hardcoded and can be passed as an argument)

if [[ ! -n  "${JUGGLER_N_EVENTS}" ]] ; then
  export JUGGLER_N_EVENTS=10000
fi
bash benchmarks/tracking/central_pions.sh

Shell script to explore params:

See sourceme_param_exploration.sh in: /global/project/projectdirs/m3763/reynier/DD4HEP/reconstruction_benchmarks/ on Cori.

parname="cotThetaMax"
infname=sim_pions_p_0_10_GeV_eta_-4_4_10000.edm4hep.root

for par in {0.52,1.18,3.63,10.02,16.54,27.29}
do
        outfname=podio_output_$parname"_"$par".root"

        eicrecon \
        -Ppodio:output_file=$outfname \
        -Ptracking:CentralTrackSeedingResults:bFieldInZ=1.7*Acts::UnitConstants::T \
        -Ptracking:CentralTrackSeedingResults:rMax=440.*Acts::UnitConstants::mm \
        -Ptracking:CentralTrackSeedingResults:rMin=33.*Acts::UnitConstants::mm \
        -Ptracking:CentralTrackSeedingResults:zMin=-1500.*Acts::UnitConstants::mm \
        -Ptracking:CentralTrackSeedingResults:zMax=1700.*Acts::UnitConstants::mm \
        -Ptracking:CentralTrackSeedingResults:beamPosX=0 \
        -Ptracking:CentralTrackSeedingResults:beamPosY=0 \
        -Ptracking:CentralTrackSeedingResults:deltaRMinTopSP=50.*Acts::UnitConstants::mm \
        -Ptracking:CentralTrackSeedingResults:deltaRMinBottomSP=50.*Acts::UnitConstants::mm \
        -Ptracking:CentralTrackSeedingResults:deltaRMaxTopSP=220.*Acts::UnitConstants::mm \
        -Ptracking:CentralTrackSeedingResults:deltaRMaxBottomSP=220.*Acts::UnitConstants::mm \
        -Ptracking:CentralTrackSeedingResults:collisionRegionMin=-250*Acts::UnitConstants::mm \
        -Ptracking:CentralTrackSeedingResults:collisionRegionMax=250*Acts::UnitConstants::mm \
        -Ptracking:CentralTrackSeedingResults:cotThetaMax=$par \
        -Ptracking:CentralTrackSeedingResults:minPt=6*Acts::UnitConstants::MeV \
        -Ptracking:CentralTrackSeedingResults:maxSeedsPerSpM=0 \
        -Ptracking:CentralTrackSeedingResults:sigmaScattering=5 \
        -Ptracking:CentralTrackSeedingResults:radLengthPerSeed=0.1 \
        -Ptracking:CentralTrackSeedingResults:impactMax=3*Acts::UnitConstants::mm \
        -Ptracking:CentralTrackSeedingResults:bFieldMin=0.1*Acts::UnitConstants::T \
        $infname
done