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