File indexing completed on 2025-08-03 08:20:27
0001 #ifndef MACRO_TRKRLASERCLUS_C
0002 #define MACRO_TRKRLASERCLUS_C
0003
0004 #include <GlobalVariables.C>
0005
0006 #include <G4_TrkrVariables.C>
0007
0008 #include <tpc/LaserClusterizer.h>
0009 #include <tpccalib/TpcLaminationFitting.h>
0010
0011 #include <tpccalib/TpcDirectLaserReconstruction.h>
0012
0013 #include <fun4all/Fun4AllServer.h>
0014
0015
0016 R__LOAD_LIBRARY(libtpc.so)
0017 R__LOAD_LIBRARY(libtpccalib.so)
0018
0019
0020
0021
0022 void TPC_LaserClustering()
0023 {
0024
0025
0026 if( G4TPC::ENABLE_CENTRAL_MEMBRANE_CLUSTERING )
0027 {
0028
0029 int verbosity = std::max(Enable::VERBOSITY, Enable::TPC_VERBOSITY);
0030 ACTSGEOM::ActsGeomInit();
0031 Fun4AllServer* se = Fun4AllServer::instance();
0032
0033 LaserClusterizer *laserClusterizer = new LaserClusterizer;
0034 laserClusterizer->Verbosity(verbosity);
0035 laserClusterizer->set_max_time_samples(TRACKING::reco_tpc_maxtime_sample);
0036 laserClusterizer->set_adc_threshold(G4TPC::laser_adc_threshold);
0037 laserClusterizer->set_do_sequential(G4TPC::LaserClusteringSequential);
0038 se->registerSubsystem(laserClusterizer);
0039
0040 }
0041
0042
0043 if( G4TPC::ENABLE_DIRECT_LASER_HITS )
0044 {
0045
0046 Fun4AllServer* se = Fun4AllServer::instance();
0047 auto directLaserReconstruction = new TpcDirectLaserReconstruction;
0048 directLaserReconstruction->set_outputfile( G4TPC::DIRECT_LASER_ROOTOUTPUT_FILENAME );
0049 directLaserReconstruction->set_savehistograms( G4TPC::DIRECT_LASER_SAVEHISTOGRAMS );
0050 directLaserReconstruction->set_histogram_outputfile( G4TPC::DIRECT_LASER_HISTOGRAMOUTPUT_FILENAME );
0051 se->registerSubsystem(directLaserReconstruction);
0052
0053 }
0054
0055 }
0056
0057 void TPC_LaminationClustering()
0058 {
0059
0060
0061 if( G4TPC::ENABLE_CENTRAL_MEMBRANE_CLUSTERING )
0062 {
0063 int verbosity = std::max(Enable::VERBOSITY, Enable::TPC_VERBOSITY);
0064 ACTSGEOM::ActsGeomInit();
0065 Fun4AllServer* se = Fun4AllServer::instance();
0066
0067 LaserClusterizer *laminationClusterizer = new LaserClusterizer;
0068 laminationClusterizer->Verbosity(verbosity);
0069 laminationClusterizer->set_max_time_samples(TRACKING::reco_tpc_maxtime_sample);
0070 laminationClusterizer->set_adc_threshold(G4TPC::laser_adc_threshold);
0071 laminationClusterizer->set_do_sequential(G4TPC::LaserClusteringSequential);
0072 laminationClusterizer->set_lamination(true);
0073 se->registerSubsystem(laminationClusterizer);
0074 }
0075 }
0076
0077 void TPC_LaminationFitting()
0078 {
0079 if( G4TPC::ENABLE_CENTRAL_MEMBRANE_CLUSTERING )
0080 {
0081
0082 int verbosity = std::max(Enable::VERBOSITY, Enable::TPC_VERBOSITY);
0083 ACTSGEOM::ActsGeomInit();
0084 Fun4AllServer* se = Fun4AllServer::instance();
0085
0086 TpcLaminationFitting *laminations = new TpcLaminationFitting;
0087 laminations->Verbosity(verbosity);
0088 laminations->set_nLayerCut(2);
0089 laminations->set_ppMode(TRACKING::pp_mode);
0090 laminations->setOutputfile(G4TPC::LaminationOutputName);
0091 if(G4TPC::LaminationQAName != "")
0092 {
0093 laminations->set_QAFileName(G4TPC::LaminationQAName);
0094 }
0095 se->registerSubsystem(laminations);
0096
0097 }
0098 }
0099
0100
0101 #endif