File indexing completed on 2025-08-06 08:12:54
0001 using namespace std;
0002
0003 void
0004 FHCALInit()
0005 {
0006 }
0007
0008 void FHCAL_Cells(int verbosity = 0) {
0009
0010 gSystem->Load("libfun4all.so");
0011 gSystem->Load("libg4detectors.so");
0012 Fun4AllServer *se = Fun4AllServer::instance();
0013
0014 PHG4ForwardCalCellReco *hc = new PHG4ForwardCalCellReco("FHCALCellReco");
0015 hc->Detector("FHCAL");
0016 se->registerSubsystem(hc);
0017
0018 return;
0019 }
0020
0021 void
0022 FHCALSetup(PHG4Reco* g4Reco, const int absorberactive = 0)
0023 {
0024
0025 gSystem->Load("libg4detectors.so");
0026
0027 Fun4AllServer *se = Fun4AllServer::instance();
0028
0029
0030 PHG4ForwardHcalSubsystem *hhcal = new PHG4ForwardHcalSubsystem("FHCAL");
0031
0032 ostringstream mapping_hhcal;
0033
0034
0035 mapping_hhcal << getenv("CALIBRATIONROOT") ;
0036 mapping_hhcal << "/ForwardHcal/mapping/towerMap_FHCAL_v004.txt";
0037 cout << mapping_hhcal.str() << endl;
0038
0039
0040 hhcal->SetTowerMappingFile( mapping_hhcal.str() );
0041 hhcal->OverlapCheck(overlapcheck);
0042
0043 if (absorberactive) hhcal->SetAbsorberActive();
0044
0045 g4Reco->registerSubsystem( hhcal );
0046
0047 }
0048
0049 void FHCAL_Towers(int verbosity = 0) {
0050
0051 gSystem->Load("libfun4all.so");
0052 gSystem->Load("libg4detectors.so");
0053 Fun4AllServer *se = Fun4AllServer::instance();
0054
0055 ostringstream mapping_fhcal;
0056 mapping_fhcal << getenv("CALIBRATIONROOT") <<
0057 "/ForwardHcal/mapping/towerMap_FHCAL_v004.txt";
0058
0059
0060 RawTowerBuilderByHitIndex* tower_FHCAL = new RawTowerBuilderByHitIndex("TowerBuilder_FHCAL");
0061 tower_FHCAL->Detector("FHCAL");
0062 tower_FHCAL->set_sim_tower_node_prefix("SIM");
0063 tower_FHCAL->GeometryTableFile( mapping_fhcal.str() );
0064
0065 se->registerSubsystem(tower_FHCAL);
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092 RawTowerDigitizer *TowerDigitizer = new RawTowerDigitizer("FHCALRawTowerDigitizer");
0093 TowerDigitizer->Detector("FHCAL");
0094 TowerDigitizer->Verbosity(verbosity);
0095 TowerDigitizer->set_digi_algorithm(RawTowerDigitizer::kNo_digitization);
0096 se->registerSubsystem( TowerDigitizer );
0097
0098 RawTowerCalibration *TowerCalibration = new RawTowerCalibration("FHCALRawTowerCalibration");
0099 TowerCalibration->Detector("FHCAL");
0100 TowerCalibration->Verbosity(verbosity);
0101 TowerCalibration->set_calib_algorithm(RawTowerCalibration::kSimple_linear_calibration);
0102 TowerCalibration->set_calib_const_GeV_ADC(1./0.03898);
0103 TowerCalibration->set_pedstal_ADC(0);
0104 se->registerSubsystem( TowerCalibration );
0105
0106
0107 }
0108
0109 void FHCAL_Clusters(int verbosity = 0) {
0110
0111 gSystem->Load("libfun4all.so");
0112 gSystem->Load("libg4detectors.so");
0113 Fun4AllServer *se = Fun4AllServer::instance();
0114
0115 RawClusterBuilderFwd* ClusterBuilder = new RawClusterBuilderFwd("FHCALRawClusterBuilderFwd");
0116 ClusterBuilder->Detector("FHCAL");
0117 ClusterBuilder->Verbosity(verbosity);
0118 ClusterBuilder->set_threshold_energy(0.100);
0119 se->registerSubsystem( ClusterBuilder );
0120
0121 return;
0122 }
0123
0124 void FHCAL_Eval(std::string outputfile, int verbosity = 0)
0125 {
0126 gSystem->Load("libfun4all.so");
0127 gSystem->Load("libg4eval.so");
0128 Fun4AllServer *se = Fun4AllServer::instance();
0129
0130 CaloEvaluator *eval = new CaloEvaluator("FHCALEVALUATOR", "FHCAL", outputfile.c_str());
0131 eval->Verbosity(verbosity);
0132 se->registerSubsystem(eval);
0133
0134 return;
0135 }