Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-19 08:41:11

0001 //
0002 // pfRICH 2026 CERN beam test configuration;
0003 //
0004 
0005 #include "G4SystemOfUnits.hh"
0006 
0007 #ifndef _PFRICH_CERN_
0008 #define _PFRICH_CERN_
0009 
0010 #include <share.h>
0011 #include <Materials.h>
0012 
0013 // -- Primary particle(s) ---------------------------------------------------------------------
0014 //
0015 #define _PRIMARY_PARTICLE_TYPE_              ("pi+")
0016 // Will toggle between the two types if defined;
0017 //#define _ALTERNATIVE_PARTICLE_TYPE_        ("kaon+")
0018 
0019 // Just something resembling CERN primary beam (400 GeV protons);
0020 #define _XCOORD_AVERAGE_                   (0.0*mm)
0021 #define _XCOORD_SIGMA_                     (0.0*mm)
0022 
0023 #define _XSLOPE_AVERAGE_                 (0.0*mrad)
0024 // FIXME: has to be non-zero for a reco script to work?!;
0025 #define _XSLOPE_SIGMA_                   (0.1*mrad)
0026 
0027 #define _YCOORD_AVERAGE_                   (0.0*mm)
0028 #define _YCOORD_SIGMA_                     (0.0*mm)
0029 
0030 #define _YSLOPE_AVERAGE_                 (0.0*mrad)
0031 // FIXME: has to be non-zero for a reco script to work?!;
0032 #define _YSLOPE_SIGMA_                   (0.1*mrad)
0033 
0034 //#define _PRIMARY_PARTICLE_MOMENTUM_       (180.0*GeV)
0035 #define _PRIMARY_PARTICLE_MOMENTUM_       (7.0*GeV)
0036 // --------------------------------------------------------------------------------------------
0037 
0038 // -- Vessel geometry -------------------------------------------------------------------------
0039 //
0040 // Prefer to keep it in sync with the ePIC setup; 450mm allows one to fit photons reflected 
0041 // off the pyramid mirrors into the 2x2 HRPPD matrix acceptance; 
0042 //#define _FIDUCIAL_VOLUME_LENGTH_2x2_          (491.0*mm)
0043 #define _FIDUCIAL_VOLUME_LENGTH_2x2_          (491.0*mm + 0.0*mm)
0044 //#define _FIDUCIAL_VOLUME_LENGTH_2x2_          (570.0*mm)
0045 //#define _FIDUCIAL_VOLUME_LENGTH_2x2_          (600.0*mm)
0046 #define _FIDUCIAL_VOLUME_OFFSET_2x2_ (1236.0*mm + _FIDUCIAL_VOLUME_LENGTH_2x2_/2)
0047 
0048 // These are some random numbers for now;
0049 #define _FIDUCIAL_VOLUME_LENGTH_1x1_          (250.0*mm)
0050 #define _FIDUCIAL_VOLUME_OFFSET_1x1_ ( 800.0*mm + _FIDUCIAL_VOLUME_LENGTH_1x1_/2)
0051 
0052 // FIXME: this is getting to be really obsolete; just want to be in sync with epic.default.h; 
0053 #define _VESSEL_FRONT_SIDE_THICKNESS_  (0.29*_INCH_)
0054 
0055 // Some moderately optimistic number for aerogel-to-aerogel, aerogel-to-acrylic, 
0056 // acrylic-to-mirror and such spacing;
0057 #define _BUILDING_BLOCK_CLEARANCE_          (1.0*mm)
0058 
0059 // Gap between tiles at the sensor plane; as of 2023/02/15, assume a "windowed grid" 
0060 // support plate on the upstream sensor plane end + individual pockets with 
0061 // ~1mm thick walls for each HRPPD (<10mm high?); insertion from the downstream side;
0062 //#define _HRPPD_INSTALLATION_GAP_            (0.25*mm + 10*3.25*mm)//1.5*mm)
0063 //#define _HRPPD_INSTALLATION_GAP_            (20*mm)
0064 //#define _HRPPD_INSTALLATION_GAP_            (3*mm)
0065 //#define _HRPPD_INSTALLATION_PITCH_          (38*3.25*mm)
0066 //#define _HRPPD_INSTALLATION_PITCH_          (130*mm)//53*3.25*mm)
0067 #define _HRPPD_INSTALLATION_PITCH_          (42*3.25*mm) // 136.5 mm
0068 
0069 // Can also use m_C2F6; FIXME: should make sure everything works with m_Air;
0070 #define _GAS_RADIATOR_                     m_Nitrogen
0071 // --------------------------------------------------------------------------------------------
0072 
0073 // -- Aerogel ---------------------------------------------------------------------------------
0074 //
0075 //#define _AEROGEL_1_ _AEROGEL_BELLE_II_REFRACTIVE_INDEX_1_04_
0076 #define _AEROGEL_1_ _AEROGEL_BELLE_II_REFRACTIVE_INDEX_Ag3_
0077 #define _AEROGEL_1_REFRACTIVE_INDEX_         (1.040)
0078 #define _AEROGEL_THICKNESS_1_               (2.5*cm)//(2.5*cm)
0079 //#define _AEROGEL_2_ _AEROGEL_BELLE_II_SMALL_REFRACTIVE_INDEX_
0080 //#define _AEROGEL_THICKNESS_2_               (1.5*cm)//(2.5*cm)
0081 //#define _AEROGEL_2_ _AEROGEL_BELLE_II_REFRACTIVE_INDEX_1_04_
0082 //#define _AEROGEL_THICKNESS_2_               (2.5*cm)//(2.5*cm)
0083 // --------------------------------------------------------------------------------------------
0084 
0085 // -- Aspheric lens ---------------------------------------------------------------------------
0086 //
0087 //#define _ZCOORD_ASPHERIC_LENS_              (-25*mm)
0088 // --------------------------------------------------------------------------------------------
0089 
0090 // -- Acrylic filter --------------------------------------------------------------------------
0091 //
0092 // If _ACRYLIC_THICKNESS_ is defined, a single layer right after the aerogel is installed; 
0093 #define _ACRYLIC_THICKNESS_                 (3.0*mm)
0094 // --------------------------------------------------------------------------------------------
0095 
0096 // -- Mirrors ---------------------------------------------------------------------------------
0097 //
0098 // See share.h, where one can enable / disable the pyramids;
0099 #define _PYRAMID_MIRROR_HEIGHT_            (30.0*mm)
0100 // --------------------------------------------------------------------------------------------
0101 
0102 #endif