File indexing completed on 2025-08-06 08:13:59
0001 #ifndef INTTANA_H__
0002 #define INTTANA_H__
0003
0004 #include <fun4all/SubsysReco.h>
0005 #include <string>
0006
0007
0008 class PHCompositeNode;
0009 class TFile;
0010 class TH1;
0011 class TH2;
0012 class TNtuple;
0013 class TTree;
0014 class InttRawData;
0015
0016
0017 class InttAna : public SubsysReco
0018 {
0019 public:
0020
0021 InttAna(const std::string &f = "InttAna",
0022 const std::string &fname = "AnaTutorial_inttana.root");
0023
0024
0025 virtual ~InttAna();
0026
0027
0028 int Init(PHCompositeNode *);
0029
0030
0031 int InitRun(PHCompositeNode *);
0032
0033
0034 int process_event(PHCompositeNode *);
0035
0036
0037 int End(PHCompositeNode *);
0038
0039
0040 void getHEPMCTruth(PHCompositeNode *topNode);
0041 void getPHG4Particle(PHCompositeNode *topNode);
0042
0043 void setInttRawData(InttRawData *rawModule) { _rawModule = rawModule; }
0044
0045 void readRawHit(PHCompositeNode *);
0046
0047 void setBeamCenter(float x=0, float y=0) {xbeam_=x; ybeam_=y;}
0048
0049 private:
0050 InttRawData* _rawModule;
0051
0052 std::string fname_;
0053 TFile* anafile_;
0054 TH1* h_dca2d_zero;
0055 TH2* h2_dca2d_zero;
0056 TH2* h2_dca2d_len;
0057 TH1* h_zvtx;
0058 TH1* h_eta;
0059 TH1* h_phi;
0060 TH1* h_theta;
0061 TNtuple* h_ntp_clus;
0062
0063 TNtuple* h_ntp_cluspair;
0064
0065 float xbeam_;
0066 float ybeam_;
0067
0068 double xvtx_sim;
0069 double yvtx_sim;
0070 double zvtx_sim;
0071
0072 TH1* h_zvtxseed_;
0073
0074 TTree *m_hepmctree;
0075
0076
0077 int m_evt=0;
0078 double m_xvtx;
0079 double m_yvtx;
0080 double m_zvtx;
0081 int m_partid1;
0082 int m_partid2;
0083 double m_x1;
0084 double m_x2;
0085 int m_mpi;
0086 int m_process_id;
0087 double m_truthenergy;
0088 double m_trutheta;
0089 double m_truththeta;
0090 double m_truthphi;
0091 int m_status;
0092 double m_truthpx;
0093 double m_truthpy;
0094 double m_truthpz;
0095 double m_truthpt;
0096 double m_truthp;
0097 int m_numparticlesinevent;
0098 int m_truthpid;
0099 double m_vertex;
0100 };
0101
0102 #endif