Back to home page

sPhenix code displayed by LXR

 
 

    


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   // central membrane reconstruction
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   // direct laser reconstruction
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   // central membrane reconstruction
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