12 #include <analysis/variables/AcceptanceVariables.h>
13 #include <analysis/VariableManager/Manager.h>
26 double thetaInCDCAcceptance(
const Particle* particle)
28 double theta = particle->get4Vector().Theta() * 180. / TMath::Pi();
29 if (theta > 17. && theta < 150.) {
34 double thetaInTOPAcceptance(
const Particle* particle)
36 double theta = particle->get4Vector().Theta() * 180. / TMath::Pi();
37 if (theta > 31. && theta < 128.) {
42 double thetaInARICHAcceptance(
const Particle* particle)
44 double theta = particle->get4Vector().Theta() * 180. / TMath::Pi();
45 if (theta > 14. && theta < 30.) {
50 double thetaInECLAcceptance(
const Particle* particle)
52 double theta = particle->get4Vector().Theta() * 180. / TMath::Pi();
53 if (theta > 12.4 && theta < 31.4) {
55 }
else if (theta > 32.2 && theta < 128.7) {
57 }
else if (theta > 130.7 && theta < 155.1) {
62 double thetaInBECLAcceptance(
const Particle* particle)
64 double acceptance = thetaInECLAcceptance(particle);
65 if (acceptance == 2) {
70 double thetaInEECLAcceptance(
const Particle* particle)
72 double acceptance = thetaInECLAcceptance(particle);
73 if (acceptance == 1 || acceptance == 3) {
78 double thetaInKLMAcceptance(
const Particle* particle)
80 double theta = particle->get4Vector().Theta() * 180. / TMath::Pi();
81 if (theta < 18.)
return 0;
82 if (theta < 37.)
return 1;
83 if (theta < 47.)
return 2;
84 if (theta < 122.)
return 3;
85 if (theta < 130.)
return 4;
86 if (theta < 155.)
return 5;
90 double thetaInBKLMAcceptance(
const Particle* particle)
92 double acceptance = thetaInKLMAcceptance(particle);
93 if (acceptance == 2 || acceptance == 3 || acceptance == 4) {
98 double thetaInEKLMAcceptance(
const Particle* particle)
100 double acceptance = thetaInKLMAcceptance(particle);
101 if (acceptance != 0 && acceptance != 3) {
106 double thetaInKLMOverlapAcceptance(
const Particle* particle)
108 double acceptance = thetaInKLMAcceptance(particle);
109 if (acceptance == 2 || acceptance == 4) {
116 double ptInTOPAcceptance(
const Particle* particle)
118 if (particle->getCharge() == 0)
return 1;
119 double pt = particle->get4Vector().Pt();
120 if (pt > 0.27)
return 1;
124 double ptInBECLAcceptance(
const Particle* particle)
126 if (particle->getCharge() == 0)
return 1;
127 double pt = particle->get4Vector().Pt();
128 if (pt > 0.28)
return 1;
132 double ptInBKLMAcceptance(
const Particle* particle)
134 if (particle->getCharge() == 0)
return 1;
135 double pt = particle->get4Vector().Pt();
136 if (pt > 0.6)
return 1;
142 double inCDCAcceptance(
const Particle* particle)
144 return thetaInCDCAcceptance(particle);
147 double inTOPAcceptance(
const Particle* particle)
149 return (thetaInTOPAcceptance(particle) && ptInTOPAcceptance(particle));
152 double inARICHAcceptance(
const Particle* particle)
154 return thetaInARICHAcceptance(particle);
157 double inECLAcceptance(
const Particle* particle)
159 return (thetaInEECLAcceptance(particle) || (thetaInBECLAcceptance(particle) && ptInBECLAcceptance(particle)));
162 double inKLMAcceptance(
const Particle* particle)
164 return (thetaInEKLMAcceptance(particle) || (thetaInBKLMAcceptance(particle) && ptInBKLMAcceptance(particle)));
169 VARIABLE_GROUP(
"Acceptance");
171 REGISTER_VARIABLE(
"thetaInCDCAcceptance", thetaInCDCAcceptance,
"Particle is within CDC angular acceptance.");
172 REGISTER_VARIABLE(
"thetaInTOPAcceptance", thetaInTOPAcceptance,
"Particle is within TOP angular acceptance.");
173 REGISTER_VARIABLE(
"thetaInARICHAcceptance", thetaInARICHAcceptance,
"Particle is within ARICH angular acceptance.");
174 REGISTER_VARIABLE(
"thetaInECLAcceptance", thetaInECLAcceptance,
175 "Particle is within ECL angular acceptance. 1: Forward; 2: Barrel; 3: Backwards.");
176 REGISTER_VARIABLE(
"thetaInBECLAcceptance", thetaInBECLAcceptance,
"Particle is within Barrel ECL angular acceptance.");
177 REGISTER_VARIABLE(
"thetaInEECLAcceptance", thetaInEECLAcceptance,
"Particle is within Endcap ECL angular acceptance.");
178 REGISTER_VARIABLE(
"thetaInKLMAcceptance", thetaInKLMAcceptance,
179 "Particle is within KLM angular acceptance. 1: Forward endcap; 2: Forward overalp; 3: Barrel; 4: Backward overlap; 5: Backward endcap.");
180 REGISTER_VARIABLE(
"thetaInBKLMAcceptance", thetaInBKLMAcceptance,
"Particle is within Barrel KLM angular acceptance.");
181 REGISTER_VARIABLE(
"thetaInEKLMAcceptance", thetaInEKLMAcceptance,
"Particle is within Endcap KLM angular acceptance.");
182 REGISTER_VARIABLE(
"thetaInKLMOverlapAcceptance", thetaInKLMOverlapAcceptance,
183 "Particle is within the angular region where KLM barrel and endcaps overlap.");
185 REGISTER_VARIABLE(
"ptInTOPAcceptance", ptInTOPAcceptance,
"Particle is within TOP transverse momentum acceptance.");
186 REGISTER_VARIABLE(
"ptInBECLAcceptance", ptInBECLAcceptance,
"Particle is within Barrel ECL transverse momentum acceptance.");
187 REGISTER_VARIABLE(
"ptInBKLMAcceptance", ptInBKLMAcceptance,
"Particle is within Barrel KLM transverse momentum acceptance.");
189 REGISTER_VARIABLE(
"inCDCAcceptance", inCDCAcceptance,
"Particle is within CDC geometrical acceptance.");
190 REGISTER_VARIABLE(
"inTOPAcceptance", inTOPAcceptance,
"Particle is within TOP geometrical acceptance.");
191 REGISTER_VARIABLE(
"inARICHAcceptance", inARICHAcceptance,
"Particle is within ARICH geometrical acceptance.");
192 REGISTER_VARIABLE(
"inECLAcceptance", inECLAcceptance,
"Particle is within ECL geometrical acceptance.");
193 REGISTER_VARIABLE(
"inKLMAcceptance", inKLMAcceptance,
"Particle is within KLM geometrical acceptance.");