Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:14:07

0001 #ifndef __DUALRICH_ANALYZER_H_
0002 #define __DUALRICH_ANALYZER_H_
0003 
0004 #include <stdio.h>
0005 #include <fstream>
0006 #include <iostream>
0007 #include <iomanip>
0008 #include <sstream>
0009 #include <string>
0010 #include <vector>
0011 
0012 #include <cmath>
0013 
0014 using namespace std;
0015 
0016 //////////////////////////////////eic_dual_rich class/////////////////////////////////////////////
0017 
0018 class eic_dual_rich {
0019 
0020  private:
0021 
0022  public:
0023 
0024   double cx;  
0025   double cy;
0026   double cz;
0027   double R_mirror;
0028   double refidx1;
0029   double refidx2;
0030   double sx,sy,sz;  //coordinates of the photon hit on the mirror provided by IRT
0031 
0032   vector<double> ch_vector; //vector of cherenkov angles
0033 
0034   double ind_ray(double Ex, double Ey, double Ez, double Dx, double Dy, double Dz, double vx, double vy, double vz, int select_radiator=2); //Indirect Ray Tracing
0035 
0036   void set_mirror(double center_posx, double center_posy, double center_posz, double radius); //set mirror parameters
0037   void set_radiator_one(double mean_refraction_index1); //set index of refraction, first radiator
0038   void set_radiator_two(double mean_refraction_index2); //set index of refraction, second radiator
0039 
0040   void fill_cherenkov_array(double angle); //fill ch_vector
0041   void cut_cherenkov_array(double theta_min, double theta_max); //cut ch_vector
0042   double mean_cherenkov_angle(); //mean value of ch_vector
0043   double SD_cherenkov_angle(); //SD of ch_vector
0044   void clear_cherenkov_array(); //clear ch_vector
0045 
0046 };
0047 
0048 #endif
0049 
0050 
0051