Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:12:42

0001 // $Id: $                                                                                             
0002 
0003 /*!
0004  * \file EMCalLikelihood.h
0005  * \brief 
0006  * \author Jin Huang <jhuang@bnl.gov>
0007  * \version $Revision:   $
0008  * \date $Date: $
0009  */
0010 
0011 #ifndef EMCALLIKELIHOOD_H_
0012 #define EMCALLIKELIHOOD_H_
0013 
0014 #include <fun4all/SubsysReco.h>
0015 #include <phool/PHCompositeNode.h>
0016 #include <TNtuple.h>
0017 #include <TFile.h>
0018 
0019 #include <string>
0020 #include <stdint.h>
0021 #include <utility>      // std::pair, std::make_pair
0022 
0023 class EMCalTrk;
0024 class TH2;
0025 class TH1;
0026 class Fun4AllHistoManager;
0027 
0028 /*!
0029  * \brief EMCalLikelihood
0030  */
0031 class EMCalLikelihood : public SubsysReco
0032 {
0033 public:
0034   EMCalLikelihood(const std::string &filename);
0035   virtual
0036   ~EMCalLikelihood();
0037 
0038   int
0039   Init(PHCompositeNode *topNode);
0040   int
0041   InitRun(PHCompositeNode *topNode);
0042   int
0043   process_event(PHCompositeNode *topNode);
0044   int
0045   End(PHCompositeNode *topNode);
0046 
0047   Fun4AllHistoManager *
0048   get_HistoManager();
0049 
0050   void
0051   ApplyEMCalGanging(EMCalTrk * trk);
0052 
0053   void
0054   UpdateEnergyDeposition(EMCalTrk * trk);
0055 
0056   void
0057   UpdateEnergyDepositionLikelihood(EMCalTrk * trk);
0058 
0059   TH2*
0060   get_h2_Edep_Distribution_e() const
0061   {
0062     return h2_Edep_Distribution_e;
0063   }
0064 
0065   void
0066   set_h2_Edep_Distribution_e(TH2* h2EdepDistributionE)
0067   {
0068     h2_Edep_Distribution_e = h2EdepDistributionE;
0069   }
0070 
0071   TH2*
0072   get_h2_Edep_Distribution_pi() const
0073   {
0074     return h2_Edep_Distribution_pi;
0075   }
0076 
0077   void
0078   set_h2_Edep_Distribution_pi(TH2* h2EdepDistributionPi)
0079   {
0080     h2_Edep_Distribution_pi = h2EdepDistributionPi;
0081   }
0082 
0083   double
0084   get_center_cemc_ieta() const
0085   {
0086     return center_cemc_ieta;
0087   }
0088 
0089   void
0090   set_center_cemc_ieta(double centerCemcIeta)
0091   {
0092     center_cemc_ieta = centerCemcIeta;
0093   }
0094 
0095   double
0096   get_center_cemc_iphi() const
0097   {
0098     return center_cemc_iphi;
0099   }
0100 
0101   void
0102   set_center_cemc_iphi(double centerCemcIphi)
0103   {
0104     center_cemc_iphi = centerCemcIphi;
0105   }
0106 
0107   double
0108   get_center_hcalin_ieta() const
0109   {
0110     return center_hcalin_ieta;
0111   }
0112 
0113   void
0114   set_center_hcalin_ieta(double centerHcalinIeta)
0115   {
0116     center_hcalin_ieta = centerHcalinIeta;
0117   }
0118 
0119   double
0120   get_center_hcalin_iphi() const
0121   {
0122     return center_hcalin_iphi;
0123   }
0124 
0125   void
0126   set_center_hcalin_iphi(double centerHcalinIphi)
0127   {
0128     center_hcalin_iphi = centerHcalinIphi;
0129   }
0130 
0131   double
0132   get_width_cemc_ieta() const
0133   {
0134     return width_cemc_ieta;
0135   }
0136 
0137   void
0138   set_width_cemc_ieta(double widthCemcIeta)
0139   {
0140     width_cemc_ieta = widthCemcIeta;
0141   }
0142 
0143   double
0144   get_width_cemc_iphi() const
0145   {
0146     return width_cemc_iphi;
0147   }
0148 
0149   void
0150   set_width_cemc_iphi(double widthCemcIphi)
0151   {
0152     width_cemc_iphi = widthCemcIphi;
0153   }
0154 
0155   double
0156   get_width_hcalin_ieta() const
0157   {
0158     return width_hcalin_ieta;
0159   }
0160 
0161   void
0162   set_width_hcalin_ieta(double widthHcalinIeta)
0163   {
0164     width_hcalin_ieta = widthHcalinIeta;
0165   }
0166 
0167   double
0168   get_width_hcalin_iphi() const
0169   {
0170     return width_hcalin_iphi;
0171   }
0172 
0173   void
0174   set_width_hcalin_iphi(double widthHcalinIphi)
0175   {
0176     width_hcalin_iphi = widthHcalinIphi;
0177   }
0178 
0179   void do_ganging(unsigned int eta, unsigned int phi)
0180   {
0181     _do_ganging = true;
0182     _ganging_size.first= eta;
0183     _ganging_size.second= phi;
0184   }
0185 
0186 private:
0187   std::string _filename;
0188 
0189   int _ievent;
0190 
0191   EMCalTrk * _trk;
0192 
0193   double center_cemc_iphi;
0194   double center_cemc_ieta;
0195   double center_hcalin_iphi;
0196   double center_hcalin_ieta;
0197 
0198   double width_cemc_iphi;
0199   double width_cemc_ieta;
0200   double width_hcalin_iphi;
0201   double width_hcalin_ieta;
0202 
0203   TH2 * h2_Edep_Distribution_e;
0204   TH2 * h2_Edep_Distribution_pi;
0205   TH1 * h1_ep_Distribution_e;
0206   TH1 * h1_ep_Distribution_pi;
0207 
0208   bool _do_ganging;
0209 
0210   //! eta and phi ganging
0211   std::pair<unsigned int, unsigned int> _ganging_size;
0212 };
0213 
0214 #endif /* EMCALLIKELIHOOD_H_ */