106 for (
int i = 0; i < n; ++i) {
108 if (gamma1 == gamma2)
110 if (pi0Gamma !=
nullptr) {
111 if (pi0Gamma == gamma2)
115 if (pi0Mass < 0.07 || pi0Mass > 0.20)
117 const Particle* gammaLowEnergy, *gammaHighEnergy;
119 gammaLowEnergy = gamma2;
120 gammaHighEnergy = gamma1;
122 gammaLowEnergy = gamma1;
123 gammaHighEnergy = gamma2;
125 double gammaLowEnergyEnergy, gammaHighEnergyEnergy;
126 double gammaLowEnergyE9E21, gammaHighEnergyE9E21;
127 double gammaLowEnergyClusterTheta, gammaHighEnergyClusterTheta;
128 double gammaLowEnergyZernikeMVA, gammaHighEnergyZernikeMVA;
129 double gammaLowEnergyIsolation, gammaHighEnergyIsolation;
130 double cosHelicityAngleMomentum;
131 gammaLowEnergyEnergy = gammaLowEnergy->
getEnergy();
132 gammaHighEnergyEnergy = gammaHighEnergy->
getEnergy();
133 ROOT::Math::PxPyPzEVector gammaHighEnergyMomentum(
134 gammaHighEnergy->
getPx(), gammaHighEnergy->
getPy(),
135 gammaHighEnergy->
getPz(), gammaHighEnergyEnergy);
136 ROOT::Math::PxPyPzEVector gammaLowEnergyMomentum(
137 gammaLowEnergy->
getPx(), gammaLowEnergy->
getPy(),
138 gammaLowEnergy->
getPz(), gammaLowEnergyEnergy);
139 ROOT::Math::PxPyPzEVector momentum = gammaHighEnergyMomentum +
140 gammaLowEnergyMomentum;
141 ROOT::Math::XYZVector boost = momentum.BoostToCM();
142 gammaHighEnergyMomentum =
143 ROOT::Math::VectorUtil::boost(gammaHighEnergyMomentum, boost);
144 cosHelicityAngleMomentum =
145 fabs(ROOT::Math::VectorUtil::CosTheta(momentum,
146 gammaHighEnergyMomentum));
147 gammaLowEnergyE9E21 = Variable::eclClusterE9E21(gammaLowEnergy);
148 gammaHighEnergyE9E21 = Variable::eclClusterE9E21(gammaHighEnergy);
149 gammaLowEnergyClusterTheta = Variable::eclClusterTheta(gammaLowEnergy);
150 gammaHighEnergyClusterTheta = Variable::eclClusterTheta(gammaHighEnergy);
152 gammaLowEnergyZernikeMVA =
153 Variable::eclClusterZernikeMVA(gammaLowEnergy);
154 gammaHighEnergyZernikeMVA =
155 Variable::eclClusterZernikeMVA(gammaHighEnergy);
156 gammaLowEnergyIsolation = Variable::eclClusterIsolation(gammaLowEnergy);
157 gammaHighEnergyIsolation =
158 Variable::eclClusterIsolation(gammaHighEnergy);
160 m_dataset->m_input[0] = gammaLowEnergyEnergy;
162 m_dataset->m_input[2] = cosHelicityAngleMomentum;
163 m_dataset->m_input[3] = gammaLowEnergyE9E21;
164 m_dataset->m_input[4] = gammaHighEnergyE9E21;
165 m_dataset->m_input[5] = gammaLowEnergyClusterTheta;
166 m_dataset->m_input[6] = gammaHighEnergyClusterTheta;
168 m_dataset->m_input[7] = gammaLowEnergyZernikeMVA;
169 m_dataset->m_input[8] = gammaHighEnergyZernikeMVA;
170 m_dataset->m_input[9] = gammaLowEnergyIsolation;
171 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.