Go to the documentation of this file.
5 #include "TMultiLayerPerceptron.h"
15 : fAnnWeights(
""), fNN(NULL), fSelectImpl(NULL) {
19 +
"/parameters/rich/rich_v17a_select_ann_weights.txt";
23 +
"/parameters/rich/rich_v16a_select_ann_weights.txt";
26 +
"/parameters/rich/rich_v17a_select_ann_weights.txt";
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:10:xOut", simu);
48 cout <<
"-I- CbmRichRingSelectAnn: get ANN weight parameters from: "
81 float nnEval =
fNN->Evaluate(0, params);
CbmRichRingSelectImpl * fSelectImpl
unsigned short GetNofHitsOnRing() const
@ CbmRichGeometryTypeTwoWings
void SetSelectionNN(float selectionNN)
static CbmRichGeoManager & GetInstance()
virtual void Init()
Initialize ANN.
float GetAngle(CbmRichRingLight *ring)
float GetRadialPosition() const
Return radial position of the ring.
void DoSelect(CbmRichRingLight *ring)
int GetNofHits() const
Return number of hits in ring.
Implementation for concrete RICH ring selection algorithm: reject rings using a trained neural net (i...
CbmRichRingSelectAnn()
Standard constructor.
@ CbmRichGeometryTypeCylindrical
virtual ~CbmRichRingSelectAnn()
Destructor.
int GetNofHitsOnRingCircle(CbmRichRingLight *ring)
TMultiLayerPerceptron * fNN
void SetAngle(float angle)
void SetNofHitsOnRing(unsigned short onring)