FairRoot/PandaRoot
PndFsmCmpDet.h
Go to the documentation of this file.
1 //--------------------------------------------------------------------------
2 // Description:
3 // Class PndFsmCmpDet
4 //
5 // Detector class that combines responses from oher detectors
6 //
7 // This software was developed for the PANDA collaboration. If you
8 // use all or part of it, please give an appropriate acknowledgement.
9 //
10 // Author List:
11 // Oscar Reinecke Original Author
12 //
13 // Copyright Information:
14 // Copyright (C) 2008 GSI
15 //
16 //------------------------------------------------------------------------
17 
18 #ifndef FsmCmpDet_hh
19 #define FsmCmpDet_hh
20 
21 //----------------------
22 // Base Class Headers --
23 //----------------------
24 
25 //-------------------------------
26 // Collaborating class Headers --
27 //-------------------------------
28 #include <iosfwd>
29 #include "ArgList.h"
30 #include "PndFsmAbsDet.h"
31 #include "PndFsmDetFactory.h"
32 #include <map>
33 
34 #include "TParameter.h"
35 
36 //--------------------------------------------
37 // Collaborating class forward declarations --
38 // -------------------------------------------
39 class PndFsmTrack;
40 class PndFsmResponse;
41 class PndFsmAbsDet;
42 class TString;
43 class TSpline3;
44 class TF1;
45 template <class p> class TParameter;
46 
47 class PndFsmCmpDet: public PndFsmAbsDet {
48 public:
49 
50  PndFsmCmpDet();
52  virtual ~PndFsmCmpDet();
53 
55 
56  // adds detector for pid contribution only
57  bool AddDetector(std::string name, std::string params="");
58  // this can be used to subtract a known detector
59  // response from the parameterized track resolution
60  bool SubtractDetector(std::string name, std::string params="");
61 
62 private:
63 
64  bool setParameter(std::string &name, std::string &value);
65  bool setParameter(std::string &name, double value);
66  void readParameters();
67  void initParameters();
68 
69  typedef std::list<PndFsmAbsDet*> FsmAbsDetList;
70  FsmAbsDetList fDetList;
71  FsmAbsDetList fSubtractDetList;
73 
75  bool _parFile;
76  double _d0ResMulti;
77  double _z0ResMulti;
78  double _thtResMulti;
79  double _phiResMulti;
80  double _momResMulti;
81  // this can be used do degrade the
82  // usually sharp likelihoods created
83  // by a typical fsim detector setup
84  double _pidLhMulti;
85 
86  std::map<int, TSpline3*> _d0;
87  std::map<int, TSpline3*> _z0;
88  std::map<int, TSpline3*> _tht;
89  std::map<int, TSpline3*> _phi;
90  std::map<int, TSpline3*> _mom;
91  std::map<int, TParameter<double>*> _mom0;
94  std::map<int, TF1*> _d0Scale;
95  std::map<int, TF1*> _z0Scale;
96  std::map<int, TF1*> _thtScale;
97  std::map<int, TF1*> _phiScale;
98  std::map<int, TF1*> _momScale;
99 
100  double eval(TSpline3* spline, double theta);
101 };
102 
103 #endif
FsmAbsDetList fSubtractDetList
Definition: PndFsmCmpDet.h:71
std::map< int, TSpline3 * > _d0
Definition: PndFsmCmpDet.h:86
std::map< int, TF1 * > _d0Scale
Definition: PndFsmCmpDet.h:94
double _d0ResMulti
Definition: PndFsmCmpDet.h:76
std::list< std::string > ArgList
Definition: ArgList.h:7
std::map< int, TParameter< double > * > _mom0
Definition: PndFsmCmpDet.h:91
double _z0ResMulti
Definition: PndFsmCmpDet.h:77
std::map< int, TF1 * > _phiScale
Definition: PndFsmCmpDet.h:97
std::map< int, TF1 * > _z0Scale
Definition: PndFsmCmpDet.h:95
std::map< int, TSpline3 * > _phi
Definition: PndFsmCmpDet.h:89
bool SubtractDetector(std::string name, std::string params="")
FsmAbsDetList fDetList
Definition: PndFsmCmpDet.h:70
Double_t par[3]
TParameter< double > * _tht1
Definition: PndFsmCmpDet.h:93
bool AddDetector(std::string name, std::string params="")
std::map< int, TSpline3 * > _tht
Definition: PndFsmCmpDet.h:88
std::list< PndFsmAbsDet * > FsmAbsDetList
Definition: PndFsmCmpDet.h:69
void readParameters()
std::map< int, TF1 * > _thtScale
Definition: PndFsmCmpDet.h:96
std::map< int, TF1 * > _momScale
Definition: PndFsmCmpDet.h:98
virtual PndFsmResponse * respond(PndFsmTrack *t)
TParameter< double > * _tht0
Definition: PndFsmCmpDet.h:92
void initParameters()
std::map< int, TSpline3 * > _z0
Definition: PndFsmCmpDet.h:87
std::map< int, TSpline3 * > _mom
Definition: PndFsmCmpDet.h:90
TString name
double _thtResMulti
Definition: PndFsmCmpDet.h:78
virtual ~PndFsmCmpDet()
double _phiResMulti
Definition: PndFsmCmpDet.h:79
PndFsmDetFactory fDetFact
Definition: PndFsmCmpDet.h:72
TString _parFileName
Definition: PndFsmCmpDet.h:74
double _pidLhMulti
Definition: PndFsmCmpDet.h:84
TTree * t
Definition: bump_analys.C:13
double _momResMulti
Definition: PndFsmCmpDet.h:80
bool setParameter(std::string &name, std::string &value)
double eval(TSpline3 *spline, double theta)