113 for (
int i = 0; i < n; ++i) {
115 if (gamma1 == gamma2)
117 if (pi0Gamma !=
nullptr) {
118 if (pi0Gamma == gamma2)
122 if (pi0Mass < 0.07 || pi0Mass > 0.20)
124 const Particle* gammaLowEnergy, *gammaHighEnergy;
126 gammaLowEnergy = gamma2;
127 gammaHighEnergy = gamma1;
129 gammaLowEnergy = gamma1;
130 gammaHighEnergy = gamma2;
132 double gammaLowEnergyEnergy, gammaHighEnergyEnergy;
133 double gammaLowEnergyE9E21, gammaHighEnergyE9E21;
134 double gammaLowEnergyClusterTheta, gammaHighEnergyClusterTheta;
135 double gammaLowEnergyZernikeMVA, gammaHighEnergyZernikeMVA;
136 double gammaLowEnergyIsolation, gammaHighEnergyIsolation;
137 double cosHelicityAngleMomentum;
138 gammaLowEnergyEnergy = gammaLowEnergy->
getEnergy();
139 gammaHighEnergyEnergy = gammaHighEnergy->
getEnergy();
140 ROOT::Math::PxPyPzEVector gammaHighEnergyMomentum(
141 gammaHighEnergy->
getPx(), gammaHighEnergy->
getPy(),
142 gammaHighEnergy->
getPz(), gammaHighEnergyEnergy);
143 ROOT::Math::PxPyPzEVector gammaLowEnergyMomentum(
144 gammaLowEnergy->
getPx(), gammaLowEnergy->
getPy(),
145 gammaLowEnergy->
getPz(), gammaLowEnergyEnergy);
146 ROOT::Math::PxPyPzEVector momentum = gammaHighEnergyMomentum +
147 gammaLowEnergyMomentum;
148 ROOT::Math::XYZVector boost = momentum.BoostToCM();
149 gammaHighEnergyMomentum =
150 ROOT::Math::VectorUtil::boost(gammaHighEnergyMomentum, boost);
151 cosHelicityAngleMomentum =
152 fabs(ROOT::Math::VectorUtil::CosTheta(momentum,
153 gammaHighEnergyMomentum));
154 gammaLowEnergyE9E21 = Variable::eclClusterE9E21(gammaLowEnergy);
155 gammaHighEnergyE9E21 = Variable::eclClusterE9E21(gammaHighEnergy);
156 gammaLowEnergyClusterTheta = Variable::eclClusterTheta(gammaLowEnergy);
157 gammaHighEnergyClusterTheta = Variable::eclClusterTheta(gammaHighEnergy);
159 gammaLowEnergyZernikeMVA =
160 Variable::eclClusterZernikeMVA(gammaLowEnergy);
161 gammaHighEnergyZernikeMVA =
162 Variable::eclClusterZernikeMVA(gammaHighEnergy);
163 gammaLowEnergyIsolation = Variable::eclClusterIsolation(gammaLowEnergy);
164 gammaHighEnergyIsolation =
165 Variable::eclClusterIsolation(gammaHighEnergy);
167 m_dataset->m_input[0] = gammaLowEnergyEnergy;
169 m_dataset->m_input[2] = cosHelicityAngleMomentum;
170 m_dataset->m_input[3] = gammaLowEnergyE9E21;
171 m_dataset->m_input[4] = gammaHighEnergyE9E21;
172 m_dataset->m_input[5] = gammaLowEnergyClusterTheta;
173 m_dataset->m_input[6] = gammaHighEnergyClusterTheta;
175 m_dataset->m_input[7] = gammaLowEnergyZernikeMVA;
176 m_dataset->m_input[8] = gammaHighEnergyZernikeMVA;
177 m_dataset->m_input[9] = gammaLowEnergyIsolation;
178 m_dataset->m_input[10] = gammaHighEnergyIsolation;
Class to store reconstructed particles.
double getPx() const
Returns x component of momentum.
double getPz() const
Returns z component of momentum.
double getPy() const
Returns y component of momentum.
ROOT::Math::PxPyPzEVector get4Vector() const
Returns Lorentz vector.
void addExtraInfo(const std::string &name, double value)
Sets the user-defined data of given name to the given value.
const Particle * getDaughter(unsigned i) const
Returns a pointer to the i-th daughter particle.