File indexing completed on 2025-12-17 09:14:37
0001 using namespace std;
0002
0003 void
0004 FEMCInit()
0005 {
0006 }
0007
0008 void FEMC_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("FEMCCellReco");
0015 hc->Detector("FEMC");
0016 se->registerSubsystem(hc);
0017
0018 return;
0019 }
0020
0021 void
0022 FEMCSetup(PHG4Reco* g4Reco, const int absorberactive = 0)
0023 {
0024
0025 gSystem->Load("libg4detectors.so");
0026
0027 Fun4AllServer *se = Fun4AllServer::instance();
0028
0029
0030 PHG4ForwardEcalSubsystem *femc = new PHG4ForwardEcalSubsystem("FEMC");
0031
0032 ostringstream mapping_femc;
0033
0034
0035 femc->SetfsPHENIXDetector();
0036 mapping_femc<< getenv("CALIBRATIONROOT") << "/ForwardEcal/mapping/towerMap_FEMC_fsPHENIX_v002.txt";
0037
0038 cout << mapping_femc.str() << endl;
0039
0040 femc->SetTowerMappingFile( mapping_femc.str() );
0041 femc->OverlapCheck(overlapcheck);
0042
0043 if (absorberactive) femc->SetAbsorberActive();
0044
0045 g4Reco->registerSubsystem( femc );
0046
0047 }
0048
0049 void FEMC_Towers(int verbosity = 0) {
0050
0051 gSystem->Load("libfun4all.so");
0052 gSystem->Load("libg4detectors.so");
0053 Fun4AllServer *se = Fun4AllServer::instance();
0054
0055 ostringstream mapping_femc;
0056
0057
0058 mapping_femc << getenv("CALIBRATIONROOT") <<
0059 "/ForwardEcal/mapping/towerMap_FEMC_fsPHENIX_v002.txt";
0060
0061 RawTowerBuilderByHitIndex* tower_FEMC = new RawTowerBuilderByHitIndex("TowerBuilder_FEMC");
0062 tower_FEMC->Detector("FEMC");
0063 tower_FEMC->set_sim_tower_node_prefix("SIM");
0064 tower_FEMC->GeometryTableFile( mapping_femc.str() );
0065
0066 se->registerSubsystem(tower_FEMC);
0067
0068
0069 RawTowerDigitizer *TowerDigitizer1 = new RawTowerDigitizer("FEMCRawTowerDigitizer1");
0070 TowerDigitizer1->Detector("FEMC");
0071 TowerDigitizer1->TowerType(1);
0072 TowerDigitizer1->Verbosity(verbosity);
0073 TowerDigitizer1->set_digi_algorithm(RawTowerDigitizer::kNo_digitization);
0074 se->registerSubsystem( TowerDigitizer1 );
0075
0076
0077 RawTowerDigitizer *TowerDigitizer2 = new RawTowerDigitizer("FEMCRawTowerDigitizer2");
0078 TowerDigitizer2->Detector("FEMC");
0079 TowerDigitizer2->TowerType(2);
0080 TowerDigitizer2->Verbosity(verbosity);
0081 TowerDigitizer2->set_digi_algorithm(RawTowerDigitizer::kNo_digitization);
0082 se->registerSubsystem( TowerDigitizer2 );
0083
0084
0085 RawTowerCalibration *TowerCalibration1 = new RawTowerCalibration("FEMCRawTowerCalibration1");
0086 TowerCalibration1->Detector("FEMC");
0087 TowerCalibration1->TowerType(1);
0088 TowerCalibration1->Verbosity(verbosity);
0089 TowerCalibration1->set_calib_algorithm(RawTowerCalibration::kSimple_linear_calibration);
0090 TowerCalibration1->set_calib_const_GeV_ADC(1.0);
0091 TowerCalibration1->set_pedstal_ADC(0);
0092 se->registerSubsystem( TowerCalibration1 );
0093
0094
0095 RawTowerCalibration *TowerCalibration2 = new RawTowerCalibration("FEMCRawTowerCalibration2");
0096 TowerCalibration2->Detector("FEMC");
0097 TowerCalibration2->TowerType(2);
0098 TowerCalibration2->Verbosity(verbosity);
0099 TowerCalibration2->set_calib_algorithm(RawTowerCalibration::kSimple_linear_calibration);
0100 TowerCalibration2->set_calib_const_GeV_ADC(1.0/0.249);
0101 TowerCalibration2->set_pedstal_ADC(0);
0102 se->registerSubsystem( TowerCalibration2 );
0103
0104 }
0105
0106 void FEMC_Clusters(int verbosity = 0) {
0107
0108 gSystem->Load("libfun4all.so");
0109 gSystem->Load("libg4detectors.so");
0110 Fun4AllServer *se = Fun4AllServer::instance();
0111
0112 RawClusterBuilderFwd* ClusterBuilder = new RawClusterBuilderFwd("FEMCRawClusterBuilderFwd");
0113 ClusterBuilder->Detector("FEMC");
0114 ClusterBuilder->Verbosity(verbosity);
0115 ClusterBuilder->set_threshold_energy(0.100);
0116 se->registerSubsystem( ClusterBuilder );
0117
0118 return;
0119 }
0120
0121 void FEMC_Eval(std::string outputfile, int verbosity = 0)
0122 {
0123 gSystem->Load("libfun4all.so");
0124 gSystem->Load("libg4eval.so");
0125 Fun4AllServer *se = Fun4AllServer::instance();
0126
0127 CaloEvaluator *eval = new CaloEvaluator("FEMCEVALUATOR", "FEMC", outputfile.c_str());
0128 eval->Verbosity(verbosity);
0129 se->registerSubsystem(eval);
0130
0131 return;
0132 }