File indexing completed on 2025-08-03 08:20:26
0001 #ifndef SYS_CALO_C
0002 #define SYS_CALO_C
0003 #include <caloreco/CaloTowerCalib.h>
0004 #include <caloreco/RawClusterBuilderTemplate.h>
0005
0006 #include <fun4all/Fun4AllServer.h>
0007 #include <fun4all/Fun4AllUtils.h>
0008 #include <fun4all/SubsysReco.h>
0009
0010 #include <ffamodules/CDBInterface.h>
0011
0012 R__LOAD_LIBRARY(libfun4all.so)
0013 R__LOAD_LIBRARY(libcalo_reco.so)
0014
0015
0016
0017 namespace CALOSYS{
0018
0019 std::vector<std::string> EMCalinputprefix = {
0020 "TOWERINFO_CALIB_",
0021 "TOWERINFO_CALIB_",
0022 "TOWERINFO_CALIB_"
0023 };
0024 std::vector<std::string> EMCaloutputprefix = {
0025 "TOWERINFO_CALIB_SYST1_",
0026 "TOWERINFO_CALIB_SYST2_",
0027 "TOWERINFO_CALIB_SYST3_"
0028 };
0029
0030 std::vector<std::string> EMCalpayload = {
0031 "CEMC_stat_syst",
0032 "CEMC_shift_syst",
0033 "CEMC_v1Modulation_syst"
0034 };
0035 std::vector<bool> EMCaldosys = {
0036 true,
0037 true,
0038 true
0039 };
0040
0041
0042 std::vector<std::string> OHCalinputprefix = {
0043 "TOWERINFO_CALIB_",
0044 "TOWERINFO_CALIB_",
0045 "TOWERINFO_CALIB_"
0046 };
0047 std::vector<std::string> OHCaloutputprefix = {
0048 "TOWERINFO_CALIB_SYST1_",
0049 "TOWERINFO_CALIB_SYST2_",
0050 "TOWERINFO_CALIB_SYST3_"
0051 };
0052
0053 std::vector<std::string> OHCalpayload = {
0054 "HCALOUT_stat_syst",
0055 "HCALOUT_shift_syst",
0056 "HCALOUT_v1Modulation_syst"
0057 };
0058 std::vector<bool> OHCaldosys = {
0059 true,
0060 false,
0061 false
0062 };
0063
0064
0065 std::vector<std::string> IHCalinputprefix = {
0066 "TOWERINFO_CALIB_",
0067 "TOWERINFO_CALIB_",
0068 "TOWERINFO_CALIB_"
0069 };
0070 std::vector<std::string> IHCaloutputprefix = {
0071 "TOWERINFO_CALIB_SYST1_",
0072 "TOWERINFO_CALIB_SYST2_",
0073 "TOWERINFO_CALIB_SYST3_"
0074 };
0075
0076 std::vector<std::string> IHCalpayload = {
0077 "HCALIN_stat_syst",
0078 "HCALIN_shift_syst",
0079 "HCALIN_v1Modulation_syst"
0080 };
0081 std::vector<bool> IHCaldosys = {
0082 true,
0083 false,
0084 false
0085 };
0086
0087 }
0088
0089
0090
0091 void Register_Tower_sys(){
0092 Fun4AllServer *se = Fun4AllServer::instance();
0093
0094 for (int i = 0; i< (int) CALOSYS::EMCaldosys.size(); i++){
0095 if (CALOSYS::EMCaldosys[i]){
0096
0097 std::cout<< "Adding Node:"<< CALOSYS::EMCaloutputprefix[i] <<"_EMCAL"<<std::endl;
0098 std::string caliburl = CDBInterface::instance()->getUrl(CALOSYS::EMCalpayload[i]);
0099 CaloTowerCalib *EMCalsys = new CaloTowerCalib(Form("CaloCalib_calo_sysT%d",i));
0100 EMCalsys->set_inputNodePrefix(CALOSYS::EMCalinputprefix[i]);
0101 EMCalsys->set_outputNodePrefix(CALOSYS::EMCaloutputprefix[i]);
0102 EMCalsys->set_directURL(caliburl);
0103 EMCalsys->setFieldName("calo_sys");
0104 EMCalsys->set_doCalibOnly(true);
0105 EMCalsys->set_detector_type(CaloTowerDefs::CEMC);
0106 se->registerSubsystem(EMCalsys);
0107
0108
0109 }
0110 }
0111
0112
0113 for (int i = 0; i< (int) CALOSYS::OHCaldosys.size(); i++){
0114 if (CALOSYS::OHCaldosys[i]){
0115
0116 std::cout<< "Adding Node:"<< "_HCALOUT"<<std::endl;
0117 std::string caliburl = CDBInterface::instance()->getUrl(CALOSYS::OHCalpayload[i]);
0118 CaloTowerCalib *OHCalsys = new CaloTowerCalib();
0119 OHCalsys->set_inputNodePrefix(CALOSYS::OHCalinputprefix[i]);
0120 OHCalsys->set_outputNodePrefix(CALOSYS::OHCaloutputprefix[i]);
0121 OHCalsys->set_directURL(caliburl);
0122 OHCalsys->setFieldName("calo_sys");
0123 OHCalsys->set_doCalibOnly(true);
0124 OHCalsys->set_detector_type(CaloTowerDefs::HCALOUT);
0125 se->registerSubsystem(OHCalsys);
0126
0127 }
0128 }
0129
0130
0131 for (int i = 0; i< (int) CALOSYS::IHCaldosys.size(); i++){
0132 if (CALOSYS::IHCaldosys[i]){
0133
0134 std::cout<< "Adding Node:"<<"_HCALIN"<<std::endl;
0135 std::string caliburl = CDBInterface::instance()->getUrl(CALOSYS::IHCalpayload[i]);
0136 CaloTowerCalib *IHCalsys = new CaloTowerCalib();
0137 IHCalsys->set_inputNodePrefix(CALOSYS::IHCalinputprefix[i]);
0138 IHCalsys->set_outputNodePrefix(CALOSYS::IHCaloutputprefix[i]);
0139 IHCalsys->set_directURL(caliburl);
0140 IHCalsys->setFieldName("calo_sys");
0141 IHCalsys->set_doCalibOnly(true);
0142 IHCalsys->set_detector_type(CaloTowerDefs::HCALIN);
0143 se->registerSubsystem(IHCalsys);
0144
0145 }
0146 }
0147
0148 std::cout << "All calo systematics added" << std::endl;
0149 }
0150
0151 #endif