All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
LikelihoodPIDProcessor.hh
Go to the documentation of this file.
1 #ifndef LikelihoodPIDProcessor_hh
2 #define LikelihoodPIDProcessor_hh 1
3 
4 #include <string>
5 #include <vector>
6 #include <marlin/Processor.h>
7 #include <iostream>
8 #include <cstring>
9 #include <fstream>
10 
11 #include <EVENT/LCCollection.h>
12 
13 using namespace lcio ;
14 using namespace marlin ;
15 
16 class LikelihoodPID;
18 
19 class LikelihoodPIDProcessor : public Processor{
20 public:
21 
23  LikelihoodPIDProcessor& operator=(const LikelihoodPIDProcessor&) = delete;
24 
25  virtual Processor* newProcessor() { return new LikelihoodPIDProcessor ; }
27  virtual void init() ;
28  virtual void processRunHeader( LCRunHeader* run);
29  virtual void processEvent( LCEvent * evt );
30  virtual void check( LCEvent * evt );
31  virtual void end();
32 
33 private:
34  void createParticleIDClass(int parttype, ReconstructedParticle *part, PIDHandler &pidh, int algoID, float MVAoutput);
35 
36  LikelihoodPID *_myPID{};
37  std::string _description{};
38  std::string _inputPFOsCollection{};
39  std::string _PDFName{};
40  std::vector<std::string> _weightFileName{};
41 
42  std::vector<std::string> _methodstorun{};
43  std::string _methodstorun_version{};
44 
45  EVENT::FloatVec _energyBoundary{};
46  LCCollection* _pfoCol{};
47  std::vector<int> _pdgTable{};
48  std::vector<std::string> _particleNames{};
49  std::vector<std::string> _dEdxNames{};
50 
51  std::vector<float> _dEdxParamsElectron{};
52  std::vector<float> _dEdxParamsMuon{};
53  std::vector<float> _dEdxParamsPion{};
54  std::vector<float> _dEdxParamsKaon{};
55  std::vector<float> _dEdxParamsProton{};
56  std::vector<float> _cost{};
57 
59 
60  bool _basicFlg{}, _dEdxFlg{}, _showerShapesFlg{};
61  int _UseBayes{};
62  bool _UseMVA{};
63  float _dEdxNormalization{}, _dEdxErrorFactor{};
64 };
65 
66 #endif
virtual Processor * newProcessor()