Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:30:43

0001 //
0002 // ePIC pfRICH default configuration;
0003 //
0004 
0005 #include "G4SystemOfUnits.hh"
0006 
0007 #ifndef _PFRICH_EPIC_DEFAULT_
0008 #define _PFRICH_EPIC_DEFAULT_
0009 
0010 #include <share.h>
0011 #include <Materials.h>
0012 
0013 // -- Primary particle(s) ---------------------------------------------------------------------
0014 //
0015 // Optional smearing of primary vertices along the beam line; applies to HEPMC3 input as well;
0016 // 10cm (proton bunch size) is a reasonable value;
0017 #define _PRIMARY_VERTEX_SIGMA_               (35*mm)//(10*cm)
0018 
0019 //
0020 // All this can be overriden by '-i' cmd line switch (HEPMC3 input); also see '-s <statistics>' key;
0021 //
0022 #define _PRIMARY_PARTICLE_TYPE_              ("pi+")
0023 // Will toggle between the two types if defined;
0024 //#define _ALTERNATIVE_PARTICLE_TYPE_        ("kaon+")
0025 
0026 #define _PRIMARY_PARTICLE_ETA_           (sign*2.40)
0027 //#define _PRIMARY_PARTICLE_ETA_            (sign*1.90)
0028 // If commented out: uniform phi;
0029 //#define _PRIMARY_PARTICLE_PHI_         (95*degree)
0030 //#define _PRIMARY_PARTICLE_PHI_         (45*degree)
0031 
0032 #define _PRIMARY_PARTICLE_MOMENTUM_        (7.0*GeV)
0033 // --------------------------------------------------------------------------------------------
0034 
0035 // -- General ---------------------------------------------------------------------------------
0036 //
0037 // Comment out if want to run without MARCO magnetic field;
0038 #define _USE_MAGNETIC_FIELD_ "./database/MARCO_v.7.6.2.2.11_1.7T_Magnetic_Field_Map_2024_05_02_rad_coords_(mm)_(T).BMap.txt"
0039 
0040 // Import other parts of ePIC geometry;
0041 //#define _IMPORT_TRACKER_GDML_FILE_ ("./gdml/tracking_only.modified.gdml")
0042 //#define _IMPORT_BEAMPIPE_GDML_FILE_ ("./gdml/ip6_brycecanyon.modified.gdml")
0043 
0044 // Generate GDML output file (for material scans, etc);
0045 //#define _GENERATE_GDML_OUTPUT_       ("pfRICH.gdml")
0046 // --------------------------------------------------------------------------------------------
0047 
0048 // -- Mirrors ---------------------------------------------------------------------------------
0049 //
0050 // At the downstream (sensor plane) location; 
0051 #define _CONICAL_MIRROR_DS_INNER_RADIUS_  (120.0*mm)
0052 #define _CONICAL_MIRROR_DS_OUTER_RADIUS_  (569.0*mm)
0053 // Fixed values matching a CAD model, as of 2024/04/29;
0054 #define _CONICAL_MIRROR_US_INNER_RADIUS_  ( 66.0*mm)
0055 #define _CONICAL_MIRROR_US_OUTER_RADIUS_  (623.0*mm)
0056 
0057 // Comment out if want to disable the conical mirror optics in IRT;
0058 #define _USE_CONICAL_MIRROR_OPTICS_           (true)
0059 // --------------------------------------------------------------------------------------------
0060 
0061 // -- Vessel geometry -------------------------------------------------------------------------
0062 //
0063 // FIXME: as of Fall 2023, this number is actually 650mm; however, a gap between the outer
0064 // shell and the outer conical mirror was defined in a bit optimistic fashion; need to 
0065 // revisit all this before doing the TDR simulations; 
0066 //#define _VESSEL_OUTER_RADIUS_             (638.0*mm)
0067 // Let it be 640mm for the time being; 638mm creates a conflict between the outer HRPPD 
0068 // mirrors and the gas volume; FIXME: why?;
0069 //#define _VESSEL_OUTER_RADIUS_             (640.0*mm)
0070 #define _VESSEL_OUTER_RADIUS_             (650.0*mm)
0071 
0072 // Given by the project; see e-mail from Alex Eslinger from 2023/08/16;
0073 #define _FIDUCIAL_VOLUME_LENGTH_          (491.0*mm)
0074 #define _FIDUCIAL_VOLUME_OFFSET_ (1236.0*mm + _FIDUCIAL_VOLUME_LENGTH_/2)
0075 
0076 // Taken from Alex's drawing; 
0077 #define _FLANGE_EPIPE_DIAMETER_           (105.3*mm)
0078 #define _FLANGE_HPIPE_DIAMETER_           ( 44.7*mm)
0079 #define _FLANGE_HPIPE_OFFSET_              (67.6*mm)
0080 
0081 // Make the project people happy: vessel will be that far away from the flange
0082 // during the installation procedure;
0083 #define _FLANGE_CLEARANCE_                  (5.0*mm)
0084 
0085 // FIXME: all these thickness values and material definitions need to be revisited;
0086 //
0087 // 0.29" -> 1/4" as of 2024/05/01; 
0088 #define _VESSEL_FRONT_SIDE_THICKNESS_  (0.25*_INCH_)
0089 // 2*10mil CF + 1/4" HC + 2*10mil CF;
0090 #define _VESSEL_INNER_WALL_THICKNESS_  (0.29*_INCH_)
0091 // 2*10mil CF + 1/2" HC + 2*10mil CF;
0092 #define _VESSEL_OUTER_WALL_THICKNESS_  (0.54*_INCH_)
0093 
0094 // Some moderately optimistic number for aerogel-to-aerogel, aerogel-to-acrylic, 
0095 // acrylic-to-mirror and such spacing;
0096 //#define _BUILDING_BLOCK_CLEARANCE_          (1.0*mm)
0097 // 2024/05/01: this value allows one to get a mirror length of ~402mm in a no-pyramid case,
0098 // to match Alex's CAD model; we are not fighting for mismatches between CAD and GEANT to
0099 // anything better than a couple off mm anyway;
0100 #define _BUILDING_BLOCK_CLEARANCE_          (0.3*mm)
0101 
0102 // Because of the beam pipe flange; 
0103 #define _HRPPD_CENTRAL_ROW_OFFSET_         (40.0*mm)
0104 
0105 // Well, a fake material for now;
0106 //#define _MIRROR_MATERIAL_            (m_QuarterInch_CF_HoneyComb)//m_CarbonFiber)
0107 // 2*10mil CF + 1/4" HC + 2*10mil CF;
0108 #define _INNER_MIRROR_THICKNESS_               (1.0)//0.29*_INCH_)
0109 // 2*10mil CF + 1/2" HC + 2*10mil CF;
0110 #define _OUTER_MIRROR_THICKNESS_               (2.0)//0.54*_INCH_)
0111 
0112 // Gap between tiles at the sensor plane; as of 2023/02/15, assume a "windowed grid" 
0113 // support plate on the upstream sensor plane end + individual pockets with 
0114 // ~1mm thick walls for each HRPPD (<10mm high?); insertion from the downstream side;
0115 //#define _HRPPD_INSTALLATION_GAP_            (1.5*mm)
0116 // 2024/04/29: ~3mm is the most one can get; keep it like this for the time being;
0117 #define _HRPPD_INSTALLATION_GAP_            (3.0*mm)
0118 #define _HRPPD_SUPPORT_GRID_BAR_HEIGHT_     (3.0*mm)
0119 #define _HRPPD_SUPPORT_GRID_BAR_WIDTH_     (12.0*mm)
0120 
0121 // Can also use m_C2F6;
0122 #define _GAS_RADIATOR_                     m_Nitrogen
0123 // --------------------------------------------------------------------------------------------
0124 
0125 // -- Aerogel ---------------------------------------------------------------------------------
0126 //
0127 // Azimuthal segmentation is hardcoded, see DetectorConstruction::Construct();
0128 //#define _AEROGEL_BAND_COUNT_                     (3)
0129 #define _AEROGEL_BAND_COUNT_                     (4)
0130 
0131 // Inner and outer radial walls are thicker;
0132 #define _AEROGEL_INNER_WALL_THICKNESS_      (1.0*mm)
0133 // No need in a thick wall here, since aluminum rings embedded in honeycomb edges will be used;
0134 #define _AEROGEL_OUTER_WALL_THICKNESS_      (1.0*mm)
0135 // All other separators are thin; 
0136 #define _AEROGEL_SEPARATOR_WALL_THICKNESS_  (0.5*mm)
0137 // Introduced on 2024/04/29;
0138 #define _AEROGEL_CLEARANCE_GAP_             (0.5*mm)
0139 
0140 // Up to two layers along the beam line; 
0141 //#define _AEROGEL_1_ _AEROGEL_CLAS12_DENSITY_225_MG_CM3_
0142 #define _AEROGEL_1_ _AEROGEL_BELLE_II_REFRACTIVE_INDEX_1_04_
0143 //#define _AEROGEL_1_ _AEROGEL_BELLE_II_SMALL_REFRACTIVE_INDEX_
0144 #define _AEROGEL_THICKNESS_1_               (2.5*cm)
0145 //#define _AEROGEL_2_ _AEROGEL_CLAS12_DENSITY_155_MG_CM3_
0146 //#define _AEROGEL_THICKNESS_2_               (2.0*cm)
0147 
0148 // Set to m_Nitrogen and something like <100um thickness, for "clean" studies only;
0149 #define _AEROGEL_SPACER_MATERIAL_       (m_Absorber)
0150 // --------------------------------------------------------------------------------------------
0151 
0152 // -- Acrylic filter --------------------------------------------------------------------------
0153 //
0154 // If _ACRYLIC_THICKNESS_ is defined, a single layer right after the aerogel is installed; 
0155 #define _ACRYLIC_THICKNESS_                 (3.0*mm)
0156 // --------------------------------------------------------------------------------------------
0157 
0158 // -- Mirrors ---------------------------------------------------------------------------------
0159 //
0160 // Mirror height and width;
0161 #define _PYRAMID_MIRROR_HEIGHT_            (30.0*mm)
0162 #define _PYRAMID_MIRROR_APERTURE_WIDTH_    (_HRPPD_ACTIVE_AREA_SIZE_)
0163 // --------------------------------------------------------------------------------------------
0164 
0165 #endif