void CEMC_Towers(int verbosity = 0) { gSystem->Load("libfun4all.so"); gSystem->Load("libg4detectors.so"); Fun4AllServer *se = Fun4AllServer::instance(); RawTowerBuilder *TowerBuilder = new RawTowerBuilder("EmcRawTowerBuilder"); TowerBuilder->Detector("CEMC"); TowerBuilder->set_sim_tower_node_prefix("SIM"); TowerBuilder->Verbosity(verbosity); se->registerSubsystem( TowerBuilder ); double sampling_fraction = 1; if (Cemc_spacal_configuration == PHG4CylinderGeom_Spacalv1::k1DProjectiveSpacal) { sampling_fraction = 0.0234335; //from production:/gpfs02/phenix/prod/sPHENIX/preCDR/pro.1-beta.3/single_particle/spacal1d/zerofield/G4Hits_sPHENIX_e-_eta0_8GeV.root } else if (Cemc_spacal_configuration == PHG4CylinderGeom_Spacalv1::k2DProjectiveSpacal) { // sampling_fraction = 0.02244; //from production: /gpfs02/phenix/prod/sPHENIX/preCDR/pro.1-beta.3/single_particle/spacal2d/zerofield/G4Hits_sPHENIX_e-_eta0_8GeV.root sampling_fraction = 2.36081e-02;//from production: /gpfs02/phenix/prod/sPHENIX/preCDR/pro.1-beta.5/single_particle/spacal2d/zerofield/G4Hits_sPHENIX_e-_eta0_8GeV.root } else { std::cout << "G4_CEmc_Spacal.C::G4_CEmc_Spacal - Fatal Error - unrecognized SPACAL configuration #" << Cemc_spacal_configuration<<". Force exiting..." << std::endl; exit(-1); return ; } static const double photoelectron_per_GeV = 500;//500 photon per total GeV deposition RawTowerDigitizer *TowerDigitizer = new RawTowerDigitizer("EmcRawTowerDigitizer"); TowerDigitizer->Detector("CEMC"); TowerDigitizer->Verbosity(verbosity); TowerDigitizer->set_digi_algorithm(RawTowerDigitizer::kSimple_photon_digitalization); TowerDigitizer->set_pedstal_central_ADC(0); TowerDigitizer->set_pedstal_width_ADC(8);// eRD1 test beam setting TowerDigitizer->set_photonelec_ADC(1);//not simulating ADC discretization error TowerDigitizer->set_photonelec_yield_visible_GeV( photoelectron_per_GeV/sampling_fraction ); TowerDigitizer->set_zero_suppression_ADC(16); // eRD1 test beam setting se->registerSubsystem( TowerDigitizer ); RawTowerCalibration *TowerCalibration = new RawTowerCalibration("EmcRawTowerCalibration"); TowerCalibration->Detector("CEMC"); TowerCalibration->Verbosity(verbosity); TowerCalibration->set_calib_algorithm(RawTowerCalibration::kSimple_linear_calibration); TowerCalibration->set_calib_const_GeV_ADC(1./photoelectron_per_GeV); TowerCalibration->set_pedstal_ADC(0); se->registerSubsystem( TowerCalibration ); return; }
void HCALInner_Towers(int verbosity = 0) { gSystem->Load("libfun4all.so"); gSystem->Load("libg4detectors.so"); Fun4AllServer *se = Fun4AllServer::instance(); RawTowerBuilder *TowerBuilder = new RawTowerBuilder("HcalInRawTowerBuilder"); TowerBuilder->Detector("HCALIN"); TowerBuilder->Verbosity(verbosity); se->registerSubsystem( TowerBuilder ); return; }
void CEMC_Towers(int verbosity = 0) { gSystem->Load("libfun4all.so"); gSystem->Load("libg4detectors.so"); Fun4AllServer *se = Fun4AllServer::instance(); RawTowerBuilder *TowerBuilder = new RawTowerBuilder("EmcRawTowerBuilder"); TowerBuilder->Detector("CEMC"); TowerBuilder->set_sim_tower_node_prefix("SIM"); TowerBuilder->Verbosity(verbosity); se->registerSubsystem(TowerBuilder); double sampling_fraction = 1; if (Cemc_spacal_configuration == PHG4CylinderGeom_Spacalv1::k1DProjectiveSpacal) { sampling_fraction = 0.0234335; //from production:/gpfs02/phenix/prod/sPHENIX/preCDR/pro.1-beta.3/single_particle/spacal1d/zerofield/G4Hits_sPHENIX_e-_eta0_8GeV.root } else if (Cemc_spacal_configuration == PHG4CylinderGeom_Spacalv1::k2DProjectiveSpacal) { // sampling_fraction = 0.02244; //from production: /gpfs02/phenix/prod/sPHENIX/preCDR/pro.1-beta.3/single_particle/spacal2d/zerofield/G4Hits_sPHENIX_e-_eta0_8GeV.root // sampling_fraction = 2.36081e-02; //from production: /gpfs02/phenix/prod/sPHENIX/preCDR/pro.1-beta.5/single_particle/spacal2d/zerofield/G4Hits_sPHENIX_e-_eta0_8GeV.root // sampling_fraction = 1.90951e-02; // 2017 Tilt porjective SPACAL, 8 GeV photon, eta = 0.3 - 0.4 sampling_fraction = 2e-02; // 2017 Tilt porjective SPACAL, tower-by-tower calibration } else { std::cout << "G4_CEmc_Spacal.C::CEMC_Towers - Fatal Error - unrecognized SPACAL configuration #" << Cemc_spacal_configuration << ". Force exiting..." << std::endl; exit(-1); return; } static const double photoelectron_per_GeV = 500; //500 photon per total GeV deposition RawTowerDigitizer *TowerDigitizer = new RawTowerDigitizer("EmcRawTowerDigitizer"); TowerDigitizer->Detector("CEMC"); TowerDigitizer->Verbosity(verbosity); TowerDigitizer->set_digi_algorithm(RawTowerDigitizer::kSimple_photon_digitization); TowerDigitizer->set_pedstal_central_ADC(0); TowerDigitizer->set_pedstal_width_ADC(8); // eRD1 test beam setting TowerDigitizer->set_photonelec_ADC(1); //not simulating ADC discretization error TowerDigitizer->set_photonelec_yield_visible_GeV(photoelectron_per_GeV / sampling_fraction); TowerDigitizer->set_zero_suppression_ADC(16); // eRD1 test beam setting se->registerSubsystem(TowerDigitizer); if (Cemc_spacal_configuration == PHG4CylinderGeom_Spacalv1::k1DProjectiveSpacal) { RawTowerCalibration *TowerCalibration = new RawTowerCalibration("EmcRawTowerCalibration"); TowerCalibration->Detector("CEMC"); TowerCalibration->Verbosity(verbosity); TowerCalibration->set_calib_algorithm(RawTowerCalibration::kSimple_linear_calibration); TowerCalibration->set_calib_const_GeV_ADC(1. / photoelectron_per_GeV); TowerCalibration->set_pedstal_ADC(0); se->registerSubsystem(TowerCalibration); } else if (Cemc_spacal_configuration == PHG4CylinderGeom_Spacalv1::k2DProjectiveSpacal) { RawTowerCalibration *TowerCalibration = new RawTowerCalibration("EmcRawTowerCalibration"); TowerCalibration->Detector("CEMC"); TowerCalibration->Verbosity(verbosity); TowerCalibration->set_calib_algorithm(RawTowerCalibration::kTower_by_tower_calibration); TowerCalibration->GetCalibrationParameters().ReadFromFile("CEMC","xml",0,0, string(getenv("CALIBRATIONROOT")) + string("/CEMC/TowerCalib_2017ProjTilted/")); // calibration database TowerCalibration->set_calib_const_GeV_ADC(1. / photoelectron_per_GeV / 0.9715 ); // overall energy scale based on 4-GeV photon simulations TowerCalibration->set_pedstal_ADC(0); se->registerSubsystem(TowerCalibration); } else { std::cout << "G4_CEmc_Spacal.C::CEMC_Towers - Fatal Error - unrecognized SPACAL configuration #" << Cemc_spacal_configuration << ". Force exiting..." << std::endl; exit(-1); return; } return; }