Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-09-27 07:03:01

0001 // Created by Dmitry Romanov
0002 // Subject to the terms in the LICENSE file found in the top-level directory.
0003 //
0004 
0005 #pragma once
0006 
0007 #include <cstddef>
0008 
0009 #include <Acts/Definitions/Units.hpp>
0010 
0011 namespace eicrecon {
0012 
0013   struct OrthogonalTrackSeedingConfig {
0014 
0015     //////////////////////////////////////////////////////////////////////////
0016     /// SEED FINDER GENERAL PARAMETERS
0017     float rMax = 440. * Acts::UnitConstants::mm; // max r to look for hits to compose seeds
0018     float rMin = 33. * Acts::UnitConstants::mm; // min r to look for hits to compose seeds
0019     float zMax = 1700. * Acts::UnitConstants::mm; // max z to look for hits to compose seeds
0020     float zMin = -1500. * Acts::UnitConstants::mm; // min z to look for hits to compose seeds
0021     float deltaRMinTopSP     = 10. * Acts::UnitConstants::mm; // Min distance in r between middle and top SP in one seed
0022     float deltaRMaxTopSP     = 450. * Acts::UnitConstants::mm; // Max distance in r between middle and top SP in one seed
0023     float deltaRMinBottomSP  = 10. * Acts::UnitConstants::mm; // Min distance in r between middle and bottom SP in one seed
0024     float deltaRMaxBottomSP  = 200. * Acts::UnitConstants::mm; // Max distance in r between middle and bottom SP in one seed
0025     float collisionRegionMin = -250 * Acts::UnitConstants::mm; // Min z for primary vertex
0026     float collisionRegionMax = 250 * Acts::UnitConstants::mm; // Max z for primary vertex
0027 
0028     unsigned int maxSeedsPerSpM = 0; // max number of seeds a single middle sp can belong to - 1
0029     float cotThetaMax = 1.0 / tan(2. * atan(exp(-4.0))); // Cotangent of max theta angle (based on eta)
0030 
0031     float sigmaScattering  = 5; // How many standard devs of scattering angles to consider
0032     float radLengthPerSeed = 0.1; // Average radiation lengths of material on the length of a seed
0033     float minPt            = (100. * Acts::UnitConstants::MeV) / cotThetaMax; // MeV (in Acts units of GeV) - minimum transverse momentum
0034     float bFieldInZ        = 1.7 * Acts::UnitConstants::T; // T (in Acts units of GeV/[e*mm]) - Magnetic field strength
0035     float beamPosX         = 0; // x offset for beam position
0036     float beamPosY         = 0; // y offset for beam position
0037     float impactMax        = 3. * Acts::UnitConstants::mm; // Maximum transverse PCA allowed
0038     float rMinMiddle       = 20. * Acts::UnitConstants::mm; // Middle spacepoint must fall between these two radii
0039     float rMaxMiddle       = 400. * Acts::UnitConstants::mm;
0040 
0041     //////////////////////////////////////////////////////////////////////////
0042     /// SEED FILTER GENERAL PARAMETERS
0043     /// The parameters below control the process of filtering out seeds before
0044     /// sending them off to track reconstruction. These parameters first correspond
0045     /// to global settings (more loose) followed by more strict cuts for the central
0046     /// and forward/backward regions separately.
0047 
0048     float  maxSeedsPerSpM_filter = 0; // max number of seeds a single middle sp can belong to - 1
0049     float  deltaRMin             = 5* Acts::UnitConstants::mm;
0050     bool   seedConfirmation      = false;
0051     float  deltaInvHelixDiameter = 0.00003 * 1. / Acts::UnitConstants::mm;
0052     float  impactWeightFactor    = 1.;
0053     float  zOriginWeightFactor   = 1.;
0054     float  compatSeedWeight      = 200.;
0055     size_t compatSeedLimit       = 2;
0056     float  seedWeightIncrement   = 0;
0057 
0058     ///////////////////////////////////////
0059     /// CENTRAL SEED FILTER PARAMETERS
0060     float  zMinSeedConfCentral  = -250 * Acts::UnitConstants::mm;
0061     float  zMaxSeedConfCentral  = 250 * Acts::UnitConstants::mm;
0062     float  rMaxSeedConfCentral  = 140 * Acts::UnitConstants::mm;
0063     size_t nTopForLargeRCentral = 1;
0064     size_t nTopForSmallRCentral = 2;
0065     float  seedConfMinBottomRadiusCentral = 60.0 * Acts::UnitConstants::mm;
0066     float  seedConfMaxZOriginCentral      = 150.0 * Acts::UnitConstants::mm;
0067     float  minImpactSeedConfCentral       = 1.0 * Acts::UnitConstants::mm;
0068 
0069     ///////////////////////////////////////
0070     /// FORWARD / BACKWARD SEED FILTER PARAMETERS
0071     float  zMinSeedConfForward  = -3000 * Acts::UnitConstants::mm;
0072     float  zMaxSeedConfForward  = 3000 * Acts::UnitConstants::mm;
0073     float  rMaxSeedConfForward  = 140 * Acts::UnitConstants::mm;
0074     size_t nTopForLargeRForward = 1;
0075     size_t nTopForSmallRForward = 2;
0076     float  seedConfMinBottomRadiusForward = 60.0 * Acts::UnitConstants::mm;
0077     float  seedConfMaxZOriginForward      = 150.0 * Acts::UnitConstants::mm;
0078     float  minImpactSeedConfForward       = 1.0 * Acts::UnitConstants::mm;
0079 
0080     //////////////////////////////////////
0081     ///Seed Covariance Error Matrix
0082     float locaError   = 1.5 * Acts::UnitConstants::mm;     //Error on Loc a
0083     float locbError   = 1.5 * Acts::UnitConstants::mm;     //Error on Loc b
0084     float phiError    = 0.02 * Acts::UnitConstants::rad;     //Error on phi
0085     float thetaError  = 0.002 * Acts::UnitConstants::rad;  //Error on theta
0086     float qOverPError = 0.025 / Acts::UnitConstants::GeV; //Error on q over p
0087     float timeError   = 0.1 * Acts::UnitConstants::mm;      //Error on time
0088     // Note: Acts native time units are mm: https://acts.readthedocs.io/en/latest/core/definitions/units.html
0089   };
0090 }