Back to home page

EIC code displayed by LXR

 
 

    


Warning, /firebird/packages/epic/src/epic-data-catalog.ts is written in an unsupported language. File is not indexed.

0001 /**
0002  * The ePIC datasets of the data selector: presets, physics facets, and the
0003  * geometry and event URL lists of the manual pick. An installation without
0004  * the ePIC pack shows the Manual tab only, or contributes its own
0005  * `withDataCatalog()`.
0006  *
0007  * Event files live under https://seeeic.org/d/ (DEX 1.0, `.v1.firebird.zip`),
0008  * so the catalog works in any app that installs the pack.
0009  *
0010  * Tags come from the file names (`py8dis-nc_10x100_minq2-1000_...`): process,
0011  * beam energies, the minimum Q2 of the generator cut, and whether the file
0012  * holds simulated trajectories, reconstructed tracks, or both.
0013  */
0014 
0015 import type { DataCatalog, DataCatalogEntry } from '@dexvis/firebird-core';
0016 import { FirebirdFeature, withDataCatalog } from '@dexvis/firebird-ng';
0017 
0018 const TGEO = 'https://seeeic.org/g/epic/artifacts/tgeo';
0019 const DATA = 'https://seeeic.org/d';
0020 
0021 const FULL_DETECTOR = `${TGEO}/epic_craterlake.root`;
0022 const TRACKING_ONLY = `${TGEO}/epic_craterlake_tracking_only.root`;
0023 
0024 /** Pythia 8 DIS sample with a full-detector geometry. */
0025 function pythiaDis(
0026   process: 'dis-nc' | 'dis-cc',
0027   beam: string,
0028   minQ2: string,
0029   events: string,
0030   data: 'sim' | 'reco' | 'sim+reco' = 'sim',
0031   geometry = FULL_DETECTOR,
0032 ): DataCatalogEntry {
0033   const processLabel = process === 'dis-nc' ? 'DIS NC' : 'DIS CC';
0034   const dataLabel = { sim: 'trajectories', reco: 'reconstructed tracks', 'sim+reco': 'trajectories + tracks' }[data];
0035   return {
0036     name: `${processLabel} ${beam} minQ2=${minQ2} ${dataLabel}`,
0037     description: `Pythia 8 ${processLabel}, e×p beams ${beam} GeV, Q² > ${minQ2} GeV², 5 events, ${dataLabel}.`,
0038     geometry,
0039     events,
0040     tags: { process, beam, minQ2, data },
0041   };
0042 }
0043 
0044 export const EPIC_DATA_CATALOG: DataCatalog = {
0045   facets: [
0046     {
0047       key: 'process',
0048       label: 'Process',
0049       values: {
0050         'dis-nc': {
0051           label: 'DIS NC',
0052           description: 'Deep inelastic scattering, neutral current: the electron exchanges a photon or Z with the proton and stays an electron.',
0053           link: 'https://en.wikipedia.org/wiki/Deep_inelastic_scattering',
0054         },
0055         'dis-cc': {
0056           label: 'DIS CC',
0057           description: 'Deep inelastic scattering, charged current: the electron exchanges a W and leaves as a neutrino, so no scattered electron is seen.',
0058           link: 'https://en.wikipedia.org/wiki/Deep_inelastic_scattering',
0059         },
0060         'background': {
0061           label: 'Beam background',
0062           description: 'Electron and hadron beam-gas background events overlaid on a physics frame.',
0063         },
0064         'dirc-optical': {
0065           label: 'DIRC optical photons',
0066           description: 'Cherenkov photons propagated through the DIRC bars, for detector studies.',
0067         },
0068       },
0069     },
0070     {
0071       key: 'beam',
0072       label: 'Beam',
0073       values: {
0074         '5x41': { label: '5 × 41', description: 'Electron 5 GeV on proton 41 GeV.' },
0075         '10x100': { label: '10 × 100', description: 'Electron 10 GeV on proton 100 GeV.' },
0076         '18x275': { label: '18 × 275', description: 'Electron 18 GeV on proton 275 GeV.' },
0077       },
0078     },
0079     {
0080       key: 'minQ2',
0081       label: 'Q² cut',
0082       values: {
0083         '1': { label: 'Q² > 1', description: 'Generator cut Q² > 1 GeV²: mostly low-angle scattering.' },
0084         '100': { label: 'Q² > 100', description: 'Generator cut Q² > 100 GeV².' },
0085         '1000': { label: 'Q² > 1000', description: 'Generator cut Q² > 1000 GeV²: hard scattering, electron and jet at large angles.' },
0086       },
0087     },
0088     {
0089       key: 'data',
0090       label: 'Content',
0091       values: {
0092         'sim': { label: 'Trajectories', description: 'Geant4 trajectories of the simulated particles.' },
0093         'reco': { label: 'Reconstructed tracks', description: 'Tracks from the reconstruction, with the tracking-only geometry.' },
0094         'sim+reco': { label: 'Trajectories + tracks', description: 'Simulated trajectories and reconstructed tracks in one file.' },
0095       },
0096     },
0097   ],
0098   entries: [
0099     {
0100       name: 'Full ePIC detector geometry (no events)',
0101       description: 'The complete ePIC detector, nothing loaded as events.',
0102       geometry: FULL_DETECTOR,
0103     },
0104     pythiaDis('dis-nc', '10x100', '1000', `${DATA}/py8dis-nc_10x100_minq2-1000_minp-250mev_nevt-5.v1.firebird.zip`),
0105     pythiaDis('dis-nc', '10x100', '1', `${DATA}/py8dis-nc_10x100_minq2-1_minp-250mev_nevt-5.v1.firebird.zip`),
0106     pythiaDis('dis-nc', '18x275', '1', `${DATA}/py8dis-nc_18x275_minq2-1_minp-250mev_nevt-5.v1.firebird.zip`),
0107     pythiaDis('dis-nc', '18x275', '1000', `${DATA}/py8dis-nc_18x275_minq2-1000_minp-250mev_nevt-5.v1.firebird.zip`),
0108     pythiaDis('dis-nc', '5x41', '100', `${DATA}/py8dis-nc_5x41_minq2-100_minp-250mev_nevt-5.v1.firebird.zip`),
0109     pythiaDis('dis-nc', '10x100', '1000', `${DATA}/reco_py8dis-nc_10x100_minq2-1000_minp-250mev_nevt-5.v1.firebird.zip`, 'reco', TRACKING_ONLY),
0110     pythiaDis('dis-nc', '10x100', '1000', `${DATA}/comb_py8dis-nc_10x100_minq2-1000_minp-250mev_nevt-5.v1.firebird.zip`, 'sim+reco', TRACKING_ONLY),
0111     pythiaDis('dis-cc', '5x41', '1', `${DATA}/py8_dis-cc_5x41_minq2-1_minp-150mev_vtxcut-5m_nevt-5.v1.firebird.zip`),
0112     pythiaDis('dis-cc', '5x41', '100', `${DATA}/py8_dis-cc_5x41_minq2-100_minp-150mev_vtxcut-5m_nevt-5.v1.firebird.zip`),
0113     pythiaDis('dis-cc', '10x100', '1', `${DATA}/py8_dis-cc_10x100_minq2-1_minp-150mev_vtxcut-5m_nevt-5.v1.firebird.zip`),
0114     pythiaDis('dis-cc', '10x100', '100', `${DATA}/py8_dis-cc_10x100_minq2-100_minp-150mev_vtxcut-5m_nevt-5.v1.firebird.zip`),
0115     pythiaDis('dis-cc', '10x100', '1000', `${DATA}/py8_dis-cc_10x100_minq2-1000_minp-150mev_vtxcut-5m_nevt-5.v1.firebird.zip`),
0116     pythiaDis('dis-cc', '18x275', '1', `${DATA}/py8_dis-cc_18x275_minq2-1_minp-150mev_vtxcut-5m_nevt-5.v1.firebird.zip`),
0117     pythiaDis('dis-cc', '18x275', '100', `${DATA}/py8_dis-cc_18x275_minq2-100_minp-150mev_vtxcut-5m_nevt-5.v1.firebird.zip`),
0118     pythiaDis('dis-cc', '18x275', '1000', `${DATA}/py8_dis-cc_18x275_minq2-1000_minp-150mev_vtxcut-5m_nevt-5.v1.firebird.zip`),
0119     {
0120       name: 'Event + beam background 10x100 (large file)',
0121       description: 'A DIS event with electron and hadron beam-gas background overlaid. Tens of thousands of particles: expect a long load.',
0122       geometry: FULL_DETECTOR,
0123       events: `${DATA}/background_py6_10x100_egas_bgas.v1.firebird.zip`,
0124       tags: { process: 'background', beam: '10x100', data: 'sim' },
0125     },
0126     {
0127       name: 'DIRC optical photons',
0128       description: 'Cherenkov photons inside the DIRC bars.',
0129       geometry: `${TGEO}/epic_dirc_only.root`,
0130       events: `${DATA}/dirc_optical.v1.firebird.zip`,
0131       tags: { process: 'dirc-optical', data: 'sim' },
0132     },
0133   ],
0134   geometrySources: [
0135     'epic_craterlake', 'epic_inner_detector', 'epic_craterlake_tracking_only', 'epic_calorimeters',
0136     'epic_pid_only', 'epic_forward_detectors', 'epic_ip6', 'epic_ip6_extended', 'epic_craterlake_no_bhcal',
0137     'epic_full', 'epic_bhcal', 'epic_dirc_only', 'epic_drich_only', 'epic_forward_detectors_with_inserts',
0138     'epic_imaging_only', 'epic_lfhcal_only', 'epic_lfhcal_with_insert', 'epic_mrich_only', 'epic_pfrich_only',
0139     'epic_tof_endcap_only', 'epic_tof_only', 'epic_vertex_only', 'epic_zdc_lyso_sipm', 'epic_zdc_sipm_on_tile_only',
0140   ].map(name => `${TGEO}/${name}.root`),
0141   eventSources: [
0142     `${DATA}/rec_dis_18x275_fdex-v0.4.edm4eic.v1.firebird.zip`,
0143   ],
0144 };
0145 
0146 /** Adds the ePIC datasets to the data selector. */
0147 export function withEpicDataCatalog(): FirebirdFeature {
0148   return withDataCatalog(EPIC_DATA_CATALOG);
0149 }