Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-06-30 07:55:47

0001 // Copyright 2023, Alex Jentsch
0002 // Subject to the terms in the LICENSE file found in the top-level directory.
0003 //
0004 //
0005 
0006 #include <Evaluator/DD4hepUnits.h>
0007 #include <JANA/JApplicationFwd.h>
0008 #include <vector>
0009 
0010 #include "algorithms/fardetectors/MatrixTransferStaticConfig.h"
0011 #include "extensions/jana/JOmniFactoryGeneratorT.h"
0012 #include "factories/digi/SiliconTrackerDigi_factory.h"
0013 #include "factories/fardetectors/MatrixTransferStatic_factory.h"
0014 #include "factories/tracking/TrackerHitReconstruction_factory.h"
0015 
0016 extern "C" {
0017 void InitPlugin(JApplication* app) {
0018   InitJANAPlugin(app);
0019   using namespace eicrecon;
0020 
0021   MatrixTransferStaticConfig recon_cfg;
0022 
0023   //Digitized hits, especially for thresholds
0024   app->Add(new JOmniFactoryGeneratorT<SiliconTrackerDigi_factory>(
0025       "ForwardRomanPotRawHits", {"ForwardRomanPotHits"},
0026       {"ForwardRomanPotRawHits", "ForwardRomanPotRawHitAssociations"},
0027       {
0028           .threshold      = 10.0 * dd4hep::keV,
0029           .timeResolution = 8,
0030       },
0031       app));
0032 
0033   app->Add(new JOmniFactoryGeneratorT<TrackerHitReconstruction_factory>(
0034       "ForwardRomanPotRecHits", {"ForwardRomanPotRawHits"}, {"ForwardRomanPotRecHits"},
0035       {
0036           .timeResolution = 8,
0037       },
0038       app));
0039 
0040   app->Add(new JOmniFactoryGeneratorT<MatrixTransferStatic_factory>(
0041       "ForwardRomanPotRecParticles",
0042       {
0043           "MCParticles",
0044           "ForwardRomanPotRecHits",
0045       },
0046       {
0047           "ForwardRomanPotRecParticles",
0048       },
0049       {
0050           .matrix_configs =
0051               {{
0052                    .nomMomentum = 275.0,
0053                    .aX =
0054                        {
0055                            {3.251116, 30.285734},
0056                            {0.186036375, 0.196439472},
0057                        },
0058                    .aY =
0059                        {
0060                            {0.4730500000, 3.062999454},
0061                            {0.0204108951, -0.139318692},
0062                        },
0063 
0064                    .local_x_offset = -1209.29,   //-0.339334, these are the local coordinate values
0065                    .local_y_offset = 0.00132511, //-0.000299454,
0066                    .local_x_slope_offset = -45.4772,    //-0.219603248,
0067                    .local_y_slope_offset = 0.000745498, //-0.000176128,
0068 
0069                },
0070                {
0071                    // NOT TUNED -- just for testing purposes
0072                    .nomMomentum = 130.0,
0073                    .aX =
0074                        {
0075                            {3.16912, 22.4693},
0076                            {0.182402, -0.218209},
0077                        },
0078 
0079                    .aY =
0080                        {
0081                            {0.520743, 3.17339},
0082                            {0.0222482, -0.0923779},
0083                        },
0084 
0085                    .local_x_offset = -1209.29,   //-0.339334, these are the local coordinate values
0086                    .local_y_offset = 0.00132511, //-0.000299454,
0087                    .local_x_slope_offset = -45.4772,    //-0.219603248,
0088                    .local_y_slope_offset = 0.000745498, //-0.000176128,
0089 
0090                },
0091                {
0092                    .nomMomentum = 100.0,
0093 
0094                    .aX =
0095                        {
0096                            {3.152158, 20.852072},
0097                            {0.181649517, -0.303998487},
0098                        },
0099 
0100                    .aY =
0101                        {
0102                            {0.5306100000, 3.19623343},
0103                            {0.0226283320, -0.082666019},
0104                        },
0105 
0106                    .local_x_offset       = -1209.27,   //-0.329072,
0107                    .local_y_offset       = 0.00355218, //-0.00028343,
0108                    .local_x_slope_offset = -45.4737,   //-0.218525084,
0109                    .local_y_slope_offset = 0.00204394, //-0.00015321,
0110 
0111                },
0112                {
0113                    .nomMomentum = 41.0,
0114 
0115                    .aX =
0116                        {
0117                            {3.135997, 18.482273},
0118                            {0.176479921, -0.497839483},
0119 
0120                        },
0121                    .aY = {{0.4914400000, 4.53857451}, {0.0179664765, 0.004160679}},
0122 
0123                    .local_x_offset       = -1209.22,   //-0.283273,
0124                    .local_y_offset       = 0.00868737, //-0.00552451,
0125                    .local_x_slope_offset = -45.4641,   //-0.21174031,
0126                    .local_y_slope_offset = 0.00498786, //-0.003212011,
0127 
0128                }},
0129           .hit1minZ = 32541.0,
0130           .hit1maxZ = 32554.0,
0131           .hit2minZ = 34239.0,
0132           .hit2maxZ = 34252.0,
0133 
0134           .readout = "ForwardRomanPotRecHits",
0135       },
0136       app));
0137 }
0138 }