16 #include <boost/assign/list_of.hpp>
30 : fAnnWeights(), fNN(nullptr) {}
35 TTree* simu =
new TTree(
"MonteCarlo",
"MontecarloData");
39 simu->Branch(
"x0", &
x[0],
"x0/D");
40 simu->Branch(
"x1", &
x[1],
"x1/D");
41 simu->Branch(
"x2", &
x[2],
"x2/D");
42 simu->Branch(
"x3", &
x[3],
"x3/D");
43 simu->Branch(
"x4", &
x[4],
"x4/D");
44 simu->Branch(
"x5", &
x[5],
"x5/D");
45 simu->Branch(
"xOut", &xOut,
"xOut/D");
47 fNN =
new TMultiLayerPerceptron(
"x0,x1,x2,x3,x4,x5:12:xOut", simu);
50 +
"/analysis/conversion2/KresAnalysis_ann_photons_weights.txt";
51 cout <<
"-I- CbmKresSelectAnnPhotons: get ANN weight parameters from: "
58 double PlaneAngle_last,
65 TMath::Sqrt(Momentum1.X() * Momentum1.X() + Momentum1.Y() * Momentum1.Y()
66 + Momentum1.Z() * Momentum1.Z());
68 TMath::Sqrt(Momentum2.X() * Momentum2.X() + Momentum2.Y() * Momentum2.Y()
69 + Momentum2.Z() * Momentum2.Z());
71 if (InvariantMass > 0.5 || OpeningAngle > 45 || ZPos > 100 || p1 > 10
79 params[0] = InvariantMass / 0.1;
80 params[1] = OpeningAngle / 30;
81 params[2] = PlaneAngle_last / 30;
82 params[3] = ZPos / 100;
86 if (params[0] > 1.0) params[0] = 1.0;
87 if (params[1] > 1.0) params[1] = 1.0;
88 if (params[2] > 1.0) params[2] = 1.0;
89 if (params[3] > 1.0) params[3] = 1.0;
90 if (params[4] > 1.0) params[4] = 1.0;
91 if (params[5] > 1.0) params[5] = 1.0;
93 AnnValue =
fNN->Evaluate(0, params);