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 Smear::Acceptance::Zone zone_tracking( eta2theta( 4 ), eta2theta( -4.00 ) );
0081
0082
0083 Smear::Device trackingMomentum(Smear::kP, "P * sqrt( (7.82e-3 + 4.39e-4*(-log(tan(theta/2.0)))**2 + 7.55e-4*(-log(tan(theta/2.0)))**4)**2 + ( (1.44e-3 + -5.35e-4*(-log(tan(theta/2.0)))**2 + -6.73e-5*(-log(tan(theta/2.0)))**3 + 1.37e-4*(-log(tan(theta/2.0)))**4) * P )**2 )");
0084 trackingMomentum.Accept.SetGenre(Smear::kAll);
0085 trackingMomentum.Accept.SetCharge(Smear::kCharged);
0086 trackingMomentum.Accept.AddZone(zone_tracking);
0087
0088 Smear::Device trackingTheta(Smear::kTheta, "0");
0089 trackingTheta.Accept.SetGenre(Smear::kAll);
0090 trackingTheta.Accept.SetCharge(Smear::kCharged);
0091 trackingTheta.Accept.AddZone(zone_tracking);
0092
0093 Smear::Device trackingPhi(Smear::kPhi, "0");
0094 trackingPhi.Accept.SetGenre(Smear::kAll);
0095 trackingPhi.Accept.SetCharge(Smear::kCharged);
0096 trackingPhi.Accept.AddZone(zone_tracking);
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120 Smear::Acceptance::Zone zone_gasRICH( eta2theta( 3.95 ), eta2theta( 1.24 ));
0121 Smear::ParticleID gasRICH_KPi("PIDMatrixFiles/gasRICH_KPiPIDMatrix.dat");
0122 Smear::ParticleID gasRICH_ePi("PIDMatrixFiles/gasRICH_ePiPIDMatrix.dat");
0123 gasRICH_KPi.Accept.AddZone(zone_gasRICH);
0124 gasRICH_ePi.Accept.AddZone(zone_gasRICH);
0125
0126 Smear::Acceptance::Zone zone_hside_mRICH( eta2theta( 1.85 ), eta2theta( 1.10 ));
0127 Smear::ParticleID hside_mRICH_KPi("PIDMatrixFiles/mRICH_KPiPIDMatrix.dat");
0128 Smear::ParticleID hside_mRICH_ePi("PIDMatrixFiles/mRICH_ePiPIDMatrix.dat");
0129 hside_mRICH_KPi.Accept.AddZone(zone_hside_mRICH);
0130 hside_mRICH_ePi.Accept.AddZone(zone_hside_mRICH);
0131
0132 Smear::Acceptance::Zone zone_DIRC( eta2theta( 1.24 ), eta2theta( -1.4 ));
0133 Smear::ParticleID DIRC("PIDMatrixFiles/DIRCPIDMatrix.dat");
0134 DIRC.Accept.AddZone(zone_DIRC);
0135
0136 Smear::Acceptance::Zone zone_eside_mRICH( eta2theta( -1.4 ), eta2theta( -3.9 ));
0137 Smear::ParticleID eside_mRICH_KPi("PIDMatrixFiles/mRICH_KPiPIDMatrix.dat");
0138 Smear::ParticleID eside_mRICH_ePi("PIDMatrixFiles/mRICH_ePiPIDMatrix.dat");
0139 eside_mRICH_KPi.Accept.AddZone(zone_eside_mRICH);
0140 eside_mRICH_ePi.Accept.AddZone(zone_eside_mRICH);
0141
0142
0143
0144 Smear::Detector det;
0145
0146 det.AddDevice(eemcE);
0147 det.AddDevice(cemcE);
0148 det.AddDevice(femcE);
0149
0150 det.AddDevice(chcalE);
0151 det.AddDevice(fhcalE);
0152
0153 det.AddDevice(trackingMomentum);
0154 det.AddDevice(trackingTheta);
0155 det.AddDevice(trackingPhi);
0156
0157
0158
0159 det.AddDevice(gasRICH_KPi);
0160 det.AddDevice(gasRICH_ePi);
0161 det.AddDevice(hside_mRICH_KPi);
0162 det.AddDevice(hside_mRICH_ePi);
0163 det.AddDevice(DIRC);
0164 det.AddDevice(eside_mRICH_KPi);
0165 det.AddDevice(eside_mRICH_ePi);
0166
0167 det.SetEventKinematicsCalculator("NM JB DA");
0168
0169 return det;
0170 }