File indexing completed on 2025-08-05 08:11:13
0001 #ifndef HCALEMULATORTREEMAKER_H
0002 #define HCALEMULATORTREEMAKER_H
0003
0004 #include <fun4all/SubsysReco.h>
0005
0006 #include <string>
0007 #include <vector>
0008
0009 #include <calotrigger/LL1Out.h>
0010 #include <calotrigger/LL1Outv1.h>
0011 #include <calotrigger/TriggerPrimitive.h>
0012 #include <calotrigger/TriggerPrimitivev1.h>
0013 #include <calotrigger/TriggerPrimitiveContainer.h>
0014 #include <calotrigger/TriggerPrimitiveContainerv1.h>
0015 #include <calotrigger/TriggerDefs.h>
0016 #include <calobase/TowerInfoContainer.h>
0017 #include <calobase/TowerInfoContainerv1.h>
0018 #include <calobase/TowerInfoContainerv2.h>
0019 #include <calobase/TowerInfoContainerv3.h>
0020 #include <calobase/TowerInfo.h>
0021 #include <calobase/TowerInfov1.h>
0022 #include <calobase/TowerInfov2.h>
0023 #include <calobase/TowerInfov3.h>
0024
0025 #include "TTree.h"
0026 #include "TFile.h"
0027
0028
0029 class PHCompositeNode;
0030 class TriggerPrimitive;
0031 class TriggerPrimitiveContainer;
0032 class LL1Out;
0033 class TowerInfoContainer;
0034 class HCALEmulatorTreeMaker : public SubsysReco
0035 {
0036 public:
0037
0038 HCALEmulatorTreeMaker(const std::string &name = "HCALEmulatorTreeMaker", const std::string &outfilename = "trees_mbd_trig.root", const std::string &nodename = "LL1OUT_HCAL_RAW");
0039
0040 virtual ~HCALEmulatorTreeMaker();
0041
0042 int Init(PHCompositeNode *topNode) override;
0043
0044 int InitRun(PHCompositeNode *topNode) override;
0045
0046 int process_event(PHCompositeNode *topNode) override;
0047
0048 void GetNodes (PHCompositeNode *topNode);
0049
0050 int ResetEvent(PHCompositeNode *topNode) override;
0051
0052 int EndRun(const int runnumber) override;
0053
0054 int End(PHCompositeNode *topNode) override;
0055
0056 int Reset(PHCompositeNode * ) override;
0057
0058 void SetVerbosity(int verbo) ;
0059
0060 void UseCaloTowerBuilder(bool use) {useCaloTowerBuilder = use;}
0061 private:
0062 void reset_tree_vars();
0063
0064 int _verbosity;
0065
0066 TFile *_f;
0067 TTree *_tree_hcal;
0068 std::string _foutname;
0069 std::string _nodename;
0070 int _i_event;
0071 bool useCaloTowerBuilder;
0072
0073
0074 LL1Out *_ll1_hcal;
0075
0076 TriggerPrimitive *_trigger_primitive;
0077 TriggerPrimitiveContainer *_trigger_primitives;
0078
0079 TowerInfo *_tower;
0080 TowerInfoContainer* _towers;
0081 std::vector<unsigned int> *_trigger_bits;
0082
0083 std::vector<unsigned int> b_trigger_bits_hcal;
0084 std::vector<unsigned int> b_trigger_sum_hcalin[24][16];
0085 std::vector<unsigned int> b_trigger_sum_hcalout[24][16];
0086
0087 std::vector<float> b_hcalin_energy;
0088 std::vector<float> b_hcalin_etabin;
0089 std::vector<float> b_hcalin_phibin;
0090
0091 std::vector<float> b_hcalout_energy;
0092 std::vector<float> b_hcalout_etabin;
0093 std::vector<float> b_hcalout_phibin;
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104 };
0105
0106 #endif