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