1 #ifndef ALITRDPIDREFMAKERNN_H
2 #define ALITRDPIDREFMAKERNN_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
6 /* $Id: AliTRDpidRefMakerNN.h 27496 2008-07-22 08:35:45Z cblume $ */
8 //////////////////////////////////////////////////////
10 // Task to build PID reference tree for the training
11 // of neural networs for the TRD PID
13 // Authors: Alex Wilk <wilka@uni-muenster.de>
14 // Markus Heide <mheide@uni-muenster.de>
16 ///////////////////////////////////////////////////////
18 #ifndef ALITRDPIDREFMAKER_H
19 #include "AliTRDpidRefMaker.h"
23 class TMultiLayerPerceptron;
24 class AliTRDpidRefMakerNN : public AliTRDpidRefMaker
28 enum ETRDpidRefMakerNNgraph {
33 enum ETRDpidRefMakerNNmoni {
37 enum ETRDpidRefMakerNNsteer{
38 kMaxStat = 20000 // maximum statistics/PID bin
39 ,kMinStat = 50 // minimum statistics/PID bin
41 AliTRDpidRefMakerNN();
42 AliTRDpidRefMakerNN(const char *n);
43 virtual ~AliTRDpidRefMakerNN();
45 Int_t GetEpochs() const {return fEpochs;};
46 Int_t GetMinTrain() const {return fMinTrain;};
47 Int_t GetTrainMomBin() const {return fTrainMomBin;};
51 void SetEpochs(Int_t epochs) {fEpochs = epochs;};
52 void SetMinTrain(Int_t mintrain) {fMinTrain = mintrain;};
53 void SetTrainMomBin(Int_t trainmombin) {fTrainMomBin = trainmombin;};
54 void SetDate(Int_t date) {fDate = date;};
55 void SetDoTraining(Bool_t train) {fDoTraining = train;};
56 void SetContinueTraining(Bool_t continTrain) {fContinueTraining = continTrain;};
57 void SetTrainPath(Int_t path) {fTrainPath = path;};
58 Bool_t LoadFile(const Char_t *InFileNN);
59 void SetScaledEdx(Float_t s) {fScale = s;};
61 void MakeTrainingLists(Int_t mombin = 0); // build the training and the test list
62 void MonitorTraining(Int_t mombin); // monitor training process
65 void MakeRefs(Int_t mombin); // train the neural networks for a given momentum bin
68 AliTRDpidRefMakerNN(const AliTRDpidRefMakerNN&); // not implemented
69 AliTRDpidRefMakerNN& operator=(const AliTRDpidRefMakerNN&); // not implemented
70 void MakeTrainTestTrees();
72 TEventList *fTrain[AliTRDCalPID::kNMom]; // Training list for each momentum
73 TEventList *fTest[AliTRDCalPID::kNMom]; // Test list for each momentum
74 TMultiLayerPerceptron *fNet; // artificial neural network
76 Int_t fTrainMomBin; // momentum bin for the training
77 Int_t fEpochs; // Number of epochs for the training of the NNs
78 Int_t fMinTrain; // minimum of events needed for training
79 Int_t fDate; // date stamp for training of the NNs
80 Bool_t fDoTraining; // checks if training will be done
81 Bool_t fContinueTraining; // checks if training from an older run should be continued
82 Int_t fTrainPath; // sets the path for continuing the training
85 Int_t fLy; // TRD layer
86 Int_t fNtrkl; // No. tracklets
87 TTree *fTrainData[AliTRDCalPID::kNMom];
90 ClassDef(AliTRDpidRefMakerNN, 3); // TRD reference maker for NN