PandaRoot
PndFsmMvd2.h
Go to the documentation of this file.
1 //--------------------------------------------------------------------------
2 // File and Version Information:
3 // $Id: FsmMvd2.hh,v 1.4 2006/08/10 09:58:41 klausg Exp $
4 //
5 // Description:
6 // Class FsmMvd2
7 //
8 // Implementation of the MVD for the Fast Sim Detectors
9 //
10 // This software was developed for the PANDA collaboration. If you
11 // use all or part of it, please give an appropriate acknowledgement.
12 //
13 // Author List:
14 // Klaus Goetzen Original Author
15 //
16 // Copyright Information:
17 // Copyright (C) 2006 GSI
18 //
19 //------------------------------------------------------------------------
20 
21 #ifndef FsmMvd2_hh
22 #define FsmMvd2_hh
23 
24 //----------------------
25 // Base Class Headers --
26 //----------------------
27 
28 //-------------------------------
29 // Collaborating class Headers --
30 //-------------------------------
31 #include <iosfwd>
32 #include "ArgList.h"
33 #include "PndFsmAbsDet.h"
34 
35 //--------------------------------------------
36 // Collaborating class forward declarations --
37 // -------------------------------------------
38 class PndFsmTrack;
39 class PndFsmResponse;
40 
41 class PndFsmMvd2 : public PndFsmAbsDet {
42  public:
43  //--------------------
44  // Public interface --
45  //--------------------
46 
47  //
48  // Constructors
49  //
50 
52  PndFsmMvd2();
53  PndFsmMvd2(ArgList &par);
56  virtual ~PndFsmMvd2();
57 
62  virtual PndFsmResponse *respond(PndFsmTrack *t);
63 
64  private:
65  bool detected(PndFsmTrack *t) const;
66  double dp(PndFsmTrack *t) const;
67  double dphi(PndFsmTrack *t) const;
68  double dtheta(PndFsmTrack *t) const;
69 
70  void initParameters();
71  void print(std::ostream &o);
72  bool setParameter(std::string &name, double value);
73 
74  //
75  // Modifiers
76  //
77 
78  double _thtMin;
79  double _thtMax;
80  double _radiationLength; // material budget
81  double _pmin;
82  double _vtxRes; // vertex resolution dx,dy,dz
83  double _pRes;
84  double _dEdxResMulti;
85  double _phiRes;
86  double _thetaRes;
87 
88  // Local pid type (BARBAR)
89  enum { nPidType = 5 };
90  enum PidType { electron, muon, pion, kaon, proton };
91 
92  double MeanEnergyLoss(PidType particle);
93  double LandauGaus(double s_mpv, double width1, double width2);
94  double Likelihood(PidType particle);
95  double mpv(PidType particle);
96  double width1(PidType particle);
97  double width2(PidType particle);
98 
99  double _momentum;
100  double _energyloss;
101 };
102 
103 #endif
std::list< std::string > ArgList
Definition: ArgList.h:7
virtual ~PndFsmMvd2()
virtual PndFsmResponse * respond(PndFsmTrack *t)