Back to home page

sPhenix code displayed by LXR

 
 

    


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 * /*topNode*/) 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   //  LL1Outv2 *_ll1_mbd_raw;
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   /* unsigned int b_clock_ll1; */
0096   /* unsigned int b_event_ll1; */
0097   /* std::vector<unsigned int> b_trigger_bits_ll1; */
0098   /* std::vector<unsigned int> b_trigger_words_ll1[8]; */
0099   /* std::vector<unsigned int> b_trigger_charge_ll1[4][8]; */
0100   /* std::vector<unsigned int> b_trigger_nhit_ll1[4]; */
0101   /* std::vector<unsigned int> b_trigger_time_ll1[4][4]; */
0102   
0103   
0104 };
0105 
0106 #endif