Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-09-27 07:03:04

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/JApplication.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 
0017 extern "C" {
0018 void InitPlugin(JApplication *app) {
0019     InitJANAPlugin(app);
0020     using namespace eicrecon;
0021 
0022     MatrixTransferStaticConfig recon_cfg;
0023 
0024         //Digitized hits, especially for thresholds
0025         app->Add(new JOmniFactoryGeneratorT<SiliconTrackerDigi_factory>(
0026         "ForwardRomanPotRawHits",
0027         {
0028           "ForwardRomanPotHits"
0029         },
0030         {
0031           "ForwardRomanPotRawHits",
0032           "ForwardRomanPotRawHitAssociations"
0033         },
0034         {
0035             .threshold = 10.0 * dd4hep::keV,
0036             .timeResolution = 8,
0037         },
0038         app
0039     ));
0040 
0041         app->Add(new JOmniFactoryGeneratorT<TrackerHitReconstruction_factory>(
0042         "ForwardRomanPotRecHits",
0043         {"ForwardRomanPotRawHits"},
0044         {"ForwardRomanPotRecHits"},
0045         {
0046             .timeResolution = 8,
0047         },
0048         app
0049     ));
0050 
0051 
0052     //Static transport matrix for Roman Pots detectors
0053     recon_cfg.aX = {{2.102403743, 29.11067626},
0054                     {0.186640381, 0.192604619}};
0055     recon_cfg.aY = {{0.0000159900, 3.94082098},
0056                     {0.0000079946, -0.1402995}};
0057 
0058     recon_cfg.local_x_offset       =  0.0;        // in mm --> this is from misalignment of the detector
0059     recon_cfg.local_y_offset       =  0.0;        // in mm --> this is from misalignment of the detector
0060     recon_cfg.local_x_slope_offset = -0.00622147; // in mrad
0061     recon_cfg.local_y_slope_offset = -0.0451035;  // in mrad
0062     recon_cfg.nomMomentum          =  275.0;      // in GEV --> exactly half of the top energy momentum (for proton spectators from deuteron breakup)
0063 
0064     recon_cfg.hit1minZ = 32541.0;
0065     recon_cfg.hit1maxZ = 32554.0;
0066     recon_cfg.hit2minZ = 34239.0;
0067     recon_cfg.hit2maxZ = 34252.0;
0068 
0069     recon_cfg.readout              = "ForwardRomanPotRecHits";
0070 
0071     app->Add(new JOmniFactoryGeneratorT<MatrixTransferStatic_factory>("ForwardRomanPotRecParticles",{"MCParticles","ForwardRomanPotRecHits"},{"ForwardRomanPotRecParticles"},recon_cfg,app));
0072 
0073 }
0074 }