File indexing completed on 2025-08-06 08:13:56
0001 #pragma once
0002
0003 struct cluster
0004 {
0005 int evt;
0006 uint64_t bco;
0007
0008 double x, y, z, r;
0009 double adc;
0010 double size;
0011 int layer;
0012 TVector3 pos;
0013
0014 double x_vtx;
0015 double y_vtx;
0016 double z_vtx;
0017 double r_vtx;
0018 vector < double > zline;
0019 double theta_clus;
0020 double phi_clus;
0021
0022
0023 bool is_associated;
0024 double track_incoming_theta;
0025 double track_incoming_phi;
0026
0027 double dca_mean[3];
0028
0029 void set(int Evt, uint64_t Bco,
0030 double X, double Y, double Z,
0031 double Adc, double Size, int Layer,
0032 double X_vtx, double Y_vtx, double Z_vtx )
0033 {
0034 evt = Evt;
0035 bco = Bco;
0036 x = X;
0037 y = Y;
0038 z = Z;
0039 adc = Adc;
0040 size = Size;
0041 layer = Layer;
0042 pos = TVector3(x, y, z);
0043 r = y / fabs(y) * sqrt(x * x + y * y);
0044 get_zline();
0045
0046
0047 x_vtx = X_vtx;
0048 y_vtx = Y_vtx;
0049 z_vtx = Z_vtx;
0050 r_vtx = (y_vtx / fabs(y_vtx)) * sqrt(x_vtx * x_vtx + y_vtx * y_vtx);
0051
0052 is_associated = false;
0053 track_incoming_theta = 0;
0054 track_incoming_phi = 0;
0055
0056 }
0057
0058 void print()
0059 {
0060 cout << "(" << setw(8) << x << ", " << setw(8) << y << ", " << setw(8) << z << ")\t"
0061 << size << "\t"
0062 << layer << "\t"
0063 << adc << "\t"
0064 << is_associated << " "
0065 << track_incoming_theta
0066 << endl;
0067 }
0068
0069 double getphi_clus()
0070 {
0071 phi_clus = atan2((y - y_vtx), (x - x_vtx));
0072
0073 return phi_clus;
0074 }
0075
0076 double gettheta_clus()
0077 {
0078
0079 theta_clus = atan2((fabs(r) - fabs(r_vtx)), (z - z_vtx));
0080
0081 return theta_clus;
0082 }
0083
0084 void get_zline()
0085 {
0086 double chip_width;
0087
0088 if (fabs(z) <= 12.8)
0089 chip_width = 0.8;
0090 else
0091 chip_width = 1.;
0092
0093 zline.push_back(z - chip_width);
0094 zline.push_back(z + chip_width);
0095 }
0096
0097 };