File indexing completed on 2025-08-05 08:13:25
0001
0002
0003
0004
0005
0006
0007
0008
0009 #define FUN4ALL_TESTTRIGGERCLUSTERMAKER_C
0010
0011
0012 #include <string>
0013
0014 #include <caloreco/CaloTowerCalib.h>
0015 #include <caloreco/CaloTowerBuilder.h>
0016 #include <caloreco/CaloWaveformProcessing.h>
0017 #include <calotrigger/LL1PacketGetter.h>
0018 #include <calotrigger/CaloTriggerEmulator.h>
0019
0020 #include <ffamodules/FlagHandler.h>
0021 #include <ffamodules/CDBInterface.h>
0022
0023 #include <fun4all/SubsysReco.h>
0024 #include <fun4all/Fun4AllServer.h>
0025 #include <fun4all/Fun4AllInputManager.h>
0026 #include <fun4all/Fun4AllDstInputManager.h>
0027 #include <fun4all/Fun4AllDstOutputManager.h>
0028 #include <fun4allraw/Fun4AllPrdfInputManager.h>
0029
0030 #include <phool/recoConsts.h>
0031
0032 #include <triggerclustermaker/TriggerClusterMaker.h>
0033
0034 R__LOAD_LIBRARY(libcalo_io.so)
0035 R__LOAD_LIBRARY(libcalotrigger.so)
0036 R__LOAD_LIBRARY(libfun4all.so)
0037 R__LOAD_LIBRARY(libfun4allraw.so)
0038 R__LOAD_LIBRARY(libtriggerclustermaker.so)
0039
0040
0041
0042
0043
0044 void Fun4All_TestTriggerClusterMakerOnData(
0045 const int runnumber = 41725,
0046 const int nEvents = 0,
0047 const int verbosity = 5,
0048 const std::string inFile = "input/DST_PRDF-00041725-0000.root",
0049 const std::string lutFile = "/sphenix/user/dlis/Projects/macros/CDBTest/emcal_ll1_lut.root"
0050 ) {
0051
0052
0053
0054
0055 const bool offline = true;
0056 const uint32_t nSamples = 12;
0057 const std::string wavePrefix = "WAVEFORM_";
0058 const std::string calibPrefix = "TOWERSWAVEFORM_CALIB_";
0059
0060
0061 CaloTowerDefs::BuilderType build = CaloTowerDefs::kPRDFWaveform;
0062
0063
0064 const bool useEMCal = true;
0065 const bool useIHCal = false;
0066 const bool useOHCal = false;
0067 const uint32_t iThresh = 1;
0068 const uint32_t nSampUse = 6;
0069 const uint32_t nDelay = 5;
0070 const std::string type = "PHOTON";
0071
0072
0073 TriggerClusterMakerConfig cfg_maker {
0074 .debug = true,
0075 .saveToNode = false,
0076 .saveToFile = false
0077 };
0078
0079
0080
0081 Fun4AllServer* f4a = Fun4AllServer::instance();
0082 CDBInterface* cdb = CDBInterface::instance();
0083 recoConsts* rc = recoConsts::instance();
0084 f4a -> Verbosity(verbosity);
0085 cdb -> Verbosity(verbosity);
0086
0087
0088 rc -> set_StringFlag("CDB_GLOBALTAG", "ProdA_2023");
0089 rc -> set_uint64Flag("TIMESTAMP", runnumber);
0090
0091
0092
0093 Fun4AllPrdfInputManager* input = new Fun4AllPrdfInputManager("InputPrdfManager");
0094 input -> fileopen(inFile);
0095 f4a -> registerInputManager(input);
0096
0097
0098
0099
0100 LL1PacketGetter* lloJetGetter = new LL1PacketGetter("LL1PACKETGETTER_JET", "JET", "HCAL");
0101 lloJetGetter -> Verbosity(verbosity);
0102 f4a -> registerSubsystem(lloJetGetter);
0103
0104
0105 LL1PacketGetter* lloEMCalGetter = new LL1PacketGetter("LL1PACKETGETTER_EMCAL", "NONE", "EMCAL");
0106 lloEMCalGetter -> Verbosity(verbosity);
0107 f4a -> registerSubsystem(lloEMCalGetter);
0108
0109
0110 CaloTowerBuilder* emBuilder = new CaloTowerBuilder("EMCALBUILDER");
0111 emBuilder -> set_detector_type(CaloTowerDefs::CEMC);
0112 emBuilder -> set_processing_type(CaloWaveformProcessing::FAST);
0113 emBuilder -> set_builder_type(build);
0114 emBuilder -> set_outputNodePrefix(wavePrefix);
0115 emBuilder -> set_nsamples(nSamples);
0116 emBuilder -> set_offlineflag(offline);
0117 f4a -> registerSubsystem(emBuilder);
0118
0119
0120 CaloTowerBuilder* ihBuilder = new CaloTowerBuilder("HCALINBUILDER");
0121 ihBuilder -> set_detector_type(CaloTowerDefs::HCALIN);
0122 ihBuilder -> set_processing_type(CaloWaveformProcessing::FAST);
0123 ihBuilder -> set_builder_type(build);
0124 ihBuilder -> set_outputNodePrefix(wavePrefix);
0125 ihBuilder -> set_nsamples(nSamples);
0126 ihBuilder -> set_offlineflag(offline);
0127 f4a -> registerSubsystem(ihBuilder);
0128
0129
0130 CaloTowerBuilder* ohBuilder = new CaloTowerBuilder("HCALOUTBUILDER");
0131 ohBuilder -> set_detector_type(CaloTowerDefs::HCALOUT);
0132 ohBuilder -> set_processing_type(CaloWaveformProcessing::FAST);
0133 ohBuilder -> set_builder_type(build);
0134 ohBuilder -> set_outputNodePrefix(wavePrefix);
0135 ohBuilder -> set_nsamples(nSamples);
0136 ohBuilder -> set_offlineflag(offline);
0137 f4a -> registerSubsystem(ohBuilder);
0138
0139
0140 CaloTowerCalib* emCalib = new CaloTowerCalib();
0141 emCalib -> set_detector_type(CaloTowerDefs::CEMC);
0142 emCalib -> set_inputNodePrefix(wavePrefix);
0143 emCalib -> set_outputNodePrefix(calibPrefix);
0144 f4a -> registerSubsystem(emCalib);
0145
0146
0147 CaloTowerCalib* ihCalib = new CaloTowerCalib();
0148 ihCalib -> set_detector_type(CaloTowerDefs::HCALIN);
0149 ihCalib -> set_inputNodePrefix(wavePrefix);
0150 ihCalib -> set_outputNodePrefix(calibPrefix);
0151 f4a -> registerSubsystem(ihCalib);
0152
0153
0154 CaloTowerCalib* ohCalib = new CaloTowerCalib();
0155 ohCalib -> set_detector_type(CaloTowerDefs::HCALOUT);
0156 ohCalib -> set_inputNodePrefix(wavePrefix);
0157 ohCalib -> set_outputNodePrefix(calibPrefix);
0158 f4a -> registerSubsystem(ohCalib);
0159
0160
0161 CaloTriggerEmulator* emulator = new CaloTriggerEmulator("TriggerEmulator");
0162 emulator -> Verbosity(verbosity);
0163 emulator -> setTriggerType(type);
0164 emulator -> setNSamples(nSamples);
0165 emulator -> setTriggerSample(nSampUse);
0166 emulator -> useEMCAL(useEMCal);
0167 emulator -> useHCALIN(useIHCal);
0168 emulator -> useHCALOUT(useOHCal);
0169 emulator -> setEmcalLUTFile(lutFile);
0170 emulator -> setThreshold(iThresh);
0171 f4a -> registerSubsystem(emulator);
0172
0173
0174 TriggerClusterMaker* maker = new TriggerClusterMaker("TriggerClusterMaker");
0175 maker -> SetConfig(cfg_maker);
0176 f4a -> registerSubsystem(maker);
0177
0178
0179
0180
0181 f4a -> run(nEvents);
0182 f4a -> End();
0183 delete f4a;
0184
0185
0186 gSystem -> Exit(0);
0187 return;
0188
0189 }
0190
0191