File indexing completed on 2025-08-06 08:12:54
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->SetEICDetector();
0036 mapping_femc << getenv("CALIBRATIONROOT") << "/ForwardEcal/mapping/towerMap_FEMC_v005.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 mapping_femc << getenv("CALIBRATIONROOT") << "/ForwardEcal/mapping/towerMap_FEMC_v005.txt";
0058
0059 RawTowerBuilderByHitIndex* tower_FEMC = new RawTowerBuilderByHitIndex("TowerBuilder_FEMC");
0060 tower_FEMC->Detector("FEMC");
0061 tower_FEMC->set_sim_tower_node_prefix("SIM");
0062 tower_FEMC->GeometryTableFile( mapping_femc.str() );
0063
0064 se->registerSubsystem(tower_FEMC);
0065
0066
0067 RawTowerDigitizer *TowerDigitizer2 = new RawTowerDigitizer("FEMCRawTowerDigitizer2");
0068 TowerDigitizer2->Detector("FEMC");
0069 TowerDigitizer2->TowerType(2);
0070 TowerDigitizer2->Verbosity(verbosity);
0071 TowerDigitizer2->set_digi_algorithm(RawTowerDigitizer::kNo_digitization);
0072 se->registerSubsystem( TowerDigitizer2 );
0073
0074
0075 RawTowerCalibration *TowerCalibration2 = new RawTowerCalibration("FEMCRawTowerCalibration2");
0076 TowerCalibration2->Detector("FEMC");
0077 TowerCalibration2->TowerType(2);
0078 TowerCalibration2->Verbosity(verbosity);
0079 TowerCalibration2->set_calib_algorithm(RawTowerCalibration::kSimple_linear_calibration);
0080 TowerCalibration2->set_calib_const_GeV_ADC(1.0/0.249);
0081 TowerCalibration2->set_pedstal_ADC(0);
0082 se->registerSubsystem( TowerCalibration2 );
0083
0084 }
0085
0086 void FEMC_Clusters(int verbosity = 0) {
0087
0088 gSystem->Load("libfun4all.so");
0089 gSystem->Load("libg4detectors.so");
0090 Fun4AllServer *se = Fun4AllServer::instance();
0091
0092 RawClusterBuilderFwd* ClusterBuilder = new RawClusterBuilderFwd("FEMCRawClusterBuilderFwd");
0093 ClusterBuilder->Detector("FEMC");
0094 ClusterBuilder->Verbosity(verbosity);
0095 se->registerSubsystem( ClusterBuilder );
0096
0097 return;
0098 }
0099
0100 void FEMC_Eval(std::string outputfile, int verbosity = 0)
0101 {
0102 gSystem->Load("libfun4all.so");
0103 gSystem->Load("libg4eval.so");
0104 Fun4AllServer *se = Fun4AllServer::instance();
0105
0106 CaloEvaluator *eval = new CaloEvaluator("FEMCEVALUATOR", "FEMC", outputfile.c_str());
0107 eval->Verbosity(verbosity);
0108 se->registerSubsystem(eval);
0109
0110 return;
0111 }