Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:18:21

0001 //
0002 // Tuneable portion of the pfRICH parameters as of 02/2023;
0003 //
0004 
0005 #include <fixed.h>
0006 
0007 #ifndef _PFRICH_TUNING_
0008 #define _PFRICH_TUNING_
0009 
0010 static const bool flip = true;
0011 static const double sign = flip ? -1.0 : 1.0;
0012 
0013 // -- General ---------------------------------------------------------------------------------
0014 //
0015 // May want to suppress secondaries;
0016 #define _DISABLE_SECONDARIES_
0017 
0018 // Comment out if want to run without MARCO magnetic field;
0019 #define _USE_MAGNETIC_FIELD_ "./database/MARCO_v.6.4.1.1.3_2T_Magnetic_Field_Map_2022_11_14_rad_coords_cm_T.txt"
0020 
0021 // May want to disable parasitic sources of photons during G4 stepping;
0022 //#define _DISABLE_GAS_VOLUME_PHOTONS_
0023 //#define _DISABLE_ACRYLIC_PHOTONS_
0024 //#define _DISABLE_HRPPD_WINDOW_PHOTONS_
0025 
0026 // May want to disable Rayleigh scattering and / or absorption by hand; 
0027 //#define _DISABLE_RAYLEIGH_SCATTERING_
0028 //#define _DISABLE_ABSORPTION_
0029 
0030 // Call /geometry/test/run if uncommented;
0031 //#define _GEOMETRY_CHECK_
0032 //#define _GENERATE_GDML_OUTPUT_
0033 // --------------------------------------------------------------------------------------------
0034 
0035 // -- Primary particle(s) ---------------------------------------------------------------------
0036 //
0037 // Ignore pfrich.mac altogether; this default can also be overriden by '-s' cmd line switch;
0038 #define _STATISTICS_DEFAULT_                  (1000)
0039 
0040 // Optional smearing of primary vertices along the beam line; applies to HEPMC3 input as well;
0041 // 10cm (proton bunch size) is a reasonable value;
0042 #define _PRIMARY_VERTEX_SIGMA_               (10*cm)
0043 
0044 //
0045 // All this can be overriden by '-i' cmd line switch (HEPMC3 input);
0046 //
0047 #define _PRIMARY_PARTICLE_TYPE_              ("pi+")
0048 // Will toggle between the two types if defined;
0049 //#define _ALTERNATIVE_PARTICLE_TYPE_        ("kaon+")
0050 
0051 //#define _PRIMARY_PARTICLE_ETA_            (sign*2.07)
0052 #define _PRIMARY_PARTICLE_ETA_            (sign*2.0)
0053 // Uniform phi, if undefined;
0054 //#define _PRIMARY_PARTICLE_PHI_         (95*degree)//110.0*degree)
0055 #define _PRIMARY_PARTICLE_MOMENTUM_        (10.0*GeV)
0056 // --------------------------------------------------------------------------------------------
0057 
0058 // -- Aerogel ---------------------------------------------------------------------------------
0059 //
0060 //#define _AEROGEL_1_ _AEROGEL_CLAS12_DENSITY_225_MG_CM3_
0061 #define _AEROGEL_1_ _AEROGEL_BELLE_II_SMALL_REFRACTIVE_INDEX_
0062 #define _AEROGEL_THICKNESS_1_               (2.0*cm)
0063 //#define _AEROGEL_2_ _AEROGEL_CLAS12_DENSITY_155_MG_CM3_
0064 //#define _AEROGEL_THICKNESS_2_               (2.0*cm)
0065 
0066 // Set to m_Nitrogen and something like <100um thickness, for "clean" studies only;
0067 #define _AEROGEL_SPACER_MATERIAL_       (m_Absorber)
0068 
0069 // If uncommented: fixed refractive index, no attenuation (single-layer CLAS12 config only);
0070 //#define _AEROGEL_REFRACTIVE_INDEX_           (1.044)
0071 // --------------------------------------------------------------------------------------------
0072 
0073 // -- Acrylic filter --------------------------------------------------------------------------
0074 //
0075 // If _ACRYLIC_THICKNESS_ is defined, a single layer right after the aerogel is installed; 
0076 #define _ACRYLIC_THICKNESS_                 (3.0*mm)
0077 #define _ACRYLIC_WL_CUTOFF_                 (300*nm)
0078 
0079 // If uncommented: fixed refractive index, no attenuation; 
0080 //#define _ACRYLIC_REFRACTIVE_INDEX_            (1.50)
0081 // --------------------------------------------------------------------------------------------
0082 
0083 // -- QE and Co -------------------------------------------------------------------------------
0084 //
0085 // Default is to use LAPPD QE as given by Alexey;
0086 //#define _USE_SiPM_QE_
0087 
0088 // Some reasonably optimistic number; assume that it includes an unknown 
0089 // HRPPD Collection Efficiency (CE) as well;
0090 #define _SAFETY_FACTOR_                       (0.70)
0091 // --------------------------------------------------------------------------------------------
0092 
0093 // -- Mirrors ---------------------------------------------------------------------------------
0094 //
0095 // Some "standard" value applied to all mirrors;
0096 #define _MIRROR_REFLECTIVITY_                 (0.90)
0097 
0098 // If uncommented, optional funneling mirrors around the HRPPD sensors are installed;
0099 //#define _USE_PYRAMIDS_
0100 // Mirror height and width;
0101 //#define _PYRAMID_MIRROR_HEIGHT_            (30.0*mm)
0102 //#define _PYRAMID_MIRROR_APERTURE_WIDTH_    (_HRPPD_ACTIVE_AREA_SIZE_)
0103 
0104 // May still want to disable the funneling optics in IRT;
0105 //#define _USE_PYRAMIDS_OPTICS_
0106 
0107 // At the downstream (sensor plane) location; upstream radii are calculated automatically;
0108 #define _CONICAL_MIRROR_INNER_RADIUS_     (120.0*mm)
0109 #define _CONICAL_MIRROR_OUTER_RADIUS_     (570.0*mm)
0110 
0111 // May still want to disable the conical mirror optics in IRT;
0112 #define _USE_CONICAL_MIRROR_OPTICS_
0113 // --------------------------------------------------------------------------------------------
0114 
0115 #endif