File indexing completed on 2025-08-05 08:12:06
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 float eta2theta( double eta )
0012 {
0013 float theta = 2.0 * atan( exp( -1 * eta ) );
0014 return theta;
0015 }
0016
0017
0018
0019 Smear::Detector BuildEicSphenix() {
0020
0021 gSystem->Load("libeicsmear");
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034 Smear::Acceptance::Zone zone_eemc( eta2theta( -1.55 ), eta2theta( -4.00 ) );
0035
0036 Smear::Device eemcE(Smear::kE, "sqrt(0.01*0.01*E*E + 0.025*0.025*E)");
0037 eemcE.Accept.SetGenre(Smear::kElectromagnetic);
0038 eemcE.Accept.AddZone(zone_eemc);
0039
0040
0041 Smear::Acceptance::Zone zone_cemc( eta2theta( 1.24 ), eta2theta( -1.55 ) );
0042
0043 Smear::Device cemcE(Smear::kE, "sqrt(0.05*0.05*E*E + 0.16*0.16*E)");
0044 cemcE.Accept.SetGenre(Smear::kElectromagnetic);
0045 cemcE.Accept.AddZone(zone_cemc);
0046
0047
0048 Smear::Acceptance::Zone zone_femc( eta2theta( 4.00 ), eta2theta( 1.24 ) );
0049
0050 Smear::Device femcE(Smear::kE, "sqrt(0.02*0.02*E*E + 0.08*0.08*E)");
0051 femcE.Accept.SetGenre(Smear::kElectromagnetic);
0052 femcE.Accept.AddZone(zone_femc);
0053
0054
0055 Smear::Acceptance::Zone zone_chcal( eta2theta( 1.10 ), eta2theta( -1.10 ) );
0056
0057 Smear::Device chcalE(Smear::kE, "sqrt(0.12*0.12*E*E + 0.81*0.81*E)");
0058 chcalE.Accept.SetGenre(Smear::kHadronic);
0059 chcalE.Accept.AddZone(zone_chcal);
0060
0061
0062 Smear::Acceptance::Zone zone_fhcal( eta2theta( 4.00 ), eta2theta( 1.24 ) );
0063
0064 Smear::Device fhcalE(Smear::kE, "sqrt(0.0*0.0*E*E + 0.70*0.70*E)");
0065 fhcalE.Accept.SetGenre(Smear::kHadronic);
0066 fhcalE.Accept.AddZone(zone_fhcal);
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081 Smear::Acceptance::Zone zone_tracking( eta2theta( 4 ), eta2theta( -4.00 ) );
0082
0083 Smear::Device trackingMomentum(Smear::kP, "(P*P*(0.0182031 + 0.00921047*pow((-log(tan(theta/2.0))), 2) - 0.00291243*pow((-log(tan(theta/2.0))), 4) + 0.000264353*pow((-log(tan(theta/2.0))), 6)) + P*(0.209681 + 0.275144*pow((-log(tan(theta/2.0))), 2) - 0.0436536*pow((-log(tan(theta/2.0))), 4) + 0.00367412*pow((-log(tan(theta/2.0))), 6)))*0.01");
0084 trackingMomentum.Accept.SetCharge(Smear::kCharged);
0085 trackingMomentum.Accept.AddZone(zone_tracking);
0086
0087 Smear::Device trackingTheta(Smear::kTheta, "((1.0/(1.0*P))*(0.752935 + 0.280370*pow((-log(tan(theta/2.0))), 2) - 0.0359713*pow((-log(tan(theta/2.0))), 4) + 0.00200623*pow((-log(tan(theta/2.0))), 6)) + 0.0282315 - 0.00998623*pow((-log(tan(theta/2.0))), 2) + 0.00117487*pow((-log(tan(theta/2.0))), 4) - 0.0000443918*pow((-log(tan(theta/2.0))), 6))*0.001");
0088 trackingTheta.Accept.SetCharge(Smear::kCharged);
0089 trackingTheta.Accept.AddZone(zone_tracking);
0090
0091 Smear::Device trackingPhi(Smear::kPhi, "((1.0/(1.0*P))*(0.743977 + 0.753393*pow((-log(tan(theta/2.0))), 2) + 0.0634184*pow((-log(tan(theta/2.0))), 4) + 0.0128001*pow((-log(tan(theta/2.0))), 6)) + 0.0308753 + 0.0480770*pow((-log(tan(theta/2.0))), 2) - 0.0129859*pow((-log(tan(theta/2.0))), 4) + 0.00109374*pow((-log(tan(theta/2.0))), 6))*0.001");
0092 trackingPhi.Accept.SetCharge(Smear::kCharged);
0093 trackingPhi.Accept.AddZone(zone_tracking);
0094
0095
0096 Smear::Acceptance::Zone zone_mRICH( eta2theta( 1.85 ), eta2theta( 1.242 ));
0097
0098 Smear::ParticleID mRICH("mRICHPIDMatrix.dat");
0099 mRICH.Accept.AddZone(zone_mRICH);
0100
0101
0102
0103 Smear::Detector det;
0104
0105 det.AddDevice(eemcE);
0106 det.AddDevice(cemcE);
0107 det.AddDevice(femcE);
0108
0109 det.AddDevice(chcalE);
0110 det.AddDevice(fhcalE);
0111
0112 det.AddDevice(trackingMomentum);
0113 det.AddDevice(trackingTheta);
0114 det.AddDevice(trackingPhi);
0115
0116 det.AddDevice(mRICH);
0117
0118 det.SetEventKinematicsCalculator("NM JB DA");
0119
0120 return det;
0121 }