FairRoot/PandaRoot
PndFsmCombiDet.h
Go to the documentation of this file.
1 //--------------------------------------------------------------------------
2 // Description:
3 // Class PndFsmCombiDet
4 //
5 // Detector class that combines responses from other detectors (same as PndFsmCombiDet)
6 // Includes a simple parametrization for charged particles
7 //
8 // This software was developed for the PANDA collaboration. If you
9 // use all or part of it, please give an appropriate acknowledgement.
10 //
11 // Author List:
12 // Oscar Reinecke Original Author
13 // Andreas Pitka Efficiency part
14 //
15 // Copyright Information:
16 // Copyright (C) 2008 GSI
17 //
18 //
19 //------------------------------------------------------------------------
20 
21 #ifndef FSMCOMBIDET_HH
22 #define FSMCOMBIDET_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 #include "PndFsmDetFactory.h"
35 #include <map>
36 #include "TFile.h"
37 
38 //--------------------------------------------
39 // Collaborating class forward declarations --
40 // -------------------------------------------
41 class PndFsmTrack;
42 class PndFsmResponse;
43 class PndFsmAbsDet;
44 class TString;
45 class TSpline3;
46 class TF1;
47 class TF3;
48 
49 template <class p> class TParameter;
50 
52 public:
53 
56  virtual ~PndFsmCombiDet();
57 
59 
60  // adds detector for pid contribution only
61  Bool_t AddDetector(std::string name, std::string params="");
62  // this can be used to subtract a known detector
63  // response from the parameterized track resolution
64  Bool_t SubtractDetector(std::string name, std::string params="");
65 
66 private:
67 
68  Bool_t setParameter(std::string &name, std::string &value);
69  Bool_t setParameter(std::string &name, Double_t value);
70  void readParameters();
71  void initParameters();
72 
73  typedef std::list<PndFsmAbsDet*> FsmAbsDetList;
77 
79  TFile* fEffFile;
80 
87  // this can be used do degrade the
88  // usually sharp likelihoods created
89  // by a typical fsim detector setup
91 
92  std::map<Int_t, TSpline3*> _d0;
93  std::map<Int_t, TSpline3*> _z0;
94  std::map<Int_t, TSpline3*> _tht;
95  std::map<Int_t, TSpline3*> _phi;
96  std::map<Int_t, TSpline3*> _mom;
97  std::map<Int_t, TParameter<Double_t>*> _mom0;
100  std::map<Int_t, TF1*> _d0Scale;
101  std::map<Int_t, TF1*> _z0Scale;
102  std::map<Int_t, TF1*> _thtScale;
103  std::map<Int_t, TF1*> _phiScale;
104  std::map<Int_t, TF1*> _momScale;
105 
106  TF3* fPipPara;
107  TF3* fPimPara;
108  TF3* fKpPara;
109  TF3* fKmPara;
110  TF3* fProtPara;
112  TF3* fepPara;
113  TF3* femPara;
114  TF3* fmupPara;
115  TF3* fmumPara;
116 
117  Double_t eval(TSpline3* spline, Double_t theta);
118 };
119 
120 #endif
std::map< Int_t, TSpline3 * > _phi
Double_t eval(TSpline3 *spline, Double_t theta)
std::map< Int_t, TSpline3 * > _tht
std::map< Int_t, TSpline3 * > _d0
std::list< std::string > ArgList
Definition: ArgList.h:7
Double_t _pidLhMulti
virtual ~PndFsmCombiDet()
Double_t par[3]
TString _parFileName
Double_t _d0ResMulti
Double_t _thtResMulti
std::map< Int_t, TF1 * > _thtScale
FsmAbsDetList fDetList
std::map< Int_t, TSpline3 * > _mom
FsmAbsDetList fSubtractDetList
std::map< Int_t, TSpline3 * > _z0
Double_t
std::map< Int_t, TF1 * > _z0Scale
std::map< Int_t, TF1 * > _momScale
Bool_t SubtractDetector(std::string name, std::string params="")
Double_t _z0ResMulti
std::list< PndFsmAbsDet * > FsmAbsDetList
TString name
TParameter< Double_t > * _tht1
Bool_t AddDetector(std::string name, std::string params="")
std::map< Int_t, TF1 * > _d0Scale
std::map< Int_t, TParameter< Double_t > * > _mom0
PndFsmDetFactory fDetFact
TTree * t
Definition: bump_analys.C:13
Bool_t setParameter(std::string &name, std::string &value)
virtual PndFsmResponse * respond(PndFsmTrack *t)
std::map< Int_t, TF1 * > _phiScale
TParameter< Double_t > * _tht0
Double_t _momResMulti
Double_t _phiResMulti