PandaRoot
PndFsmResponse.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: PndFsmResponse.hh,v 1.6 2007/05/24 08:07:40 klausg Exp $
16 //
17 // Description:
18 // Class PndFsmResponse
19 //
20 // Response of FsmDet for a FsmTrack
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 PNDFSMRESPONSE_H
34 #define PNDFSMRESPONSE_H
35 
36 //----------------------
37 // Base Class Headers --
38 //----------------------
39 
40 //-------------------------------
41 // Collaborating class Headers --
42 //-------------------------------
43 
44 //--------------------------------------------
45 // Collaborating class forward declarations --
46 // -------------------------------------------
47 #include <iosfwd>
48 #include "TVector3.h"
49 
50 class PndFsmAbsDet;
51 
53  public:
54  //--------------------
55  // Public interface --
56  //--------------------
57 
58  //
59  // Constructors
60  //
61 
64  /* Destructor
65  */
66  virtual ~PndFsmResponse();
67 
71  PndFsmAbsDet *detector() { return _detector; }
72  bool detected() { return _detected; }
73 
74  double dE() { return _dE; }
75  double dp() { return _dp; }
76  double dtheta() { return _dtheta; }
77  double dphi() { return _dphi; }
78  double dt() { return _dt; }
79  double dm() { return _dm; }
80  double m2() { return _m2; }
81  double MvddEdx() { return _MvddEdx; }
82  double TpcdEdx() { return _TpcdEdx; }
83  double SttdEdx() { return _SttdEdx; }
84  double DrcDiscThtc() { return _DrcDiscThtc; }
85  double DrcBarrelThtc() { return _DrcBarrelThtc; }
86  double RichThtc() { return _RichThtc; }
87  double EmcEcal() { return _EmcEcal; }
88  double MuoIron() { return _MuoIron; }
89 
90  double m2Err() { return _m2Err; }
91  double MvddEdxErr() { return _MvddEdxErr; }
92  double TpcdEdxErr() { return _TpcdEdxErr; }
93  double SttdEdxErr() { return _SttdEdxErr; }
94  double DrcDiscThtcErr() { return _DrcDiscThtcErr; }
95  double DrcBarrelThtcErr() { return _DrcBarrelThtcErr; }
96  double RichThtcErr() { return _RichThtcErr; }
97 
98  TVector3 dV() { return _dV; }
99  double dVx() { return _dV.X(); }
100  double dVy() { return _dV.Y(); }
101  double dVz() { return _dV.Z(); }
102 
103  double LHElectron() { return _LHElectron; }
104  double LHMuon() { return _LHMuon; }
105  double LHPion() { return _LHPion; }
106  double LHKaon() { return _LHKaon; }
107  double LHProton() { return _LHProton; }
108 
109  //
110  // Modifiers
111  //
113  void setDetected(bool isdet);
114 
115  void setdE(double val);
116  void setdp(double val);
117  void setdtheta(double val);
118  void setdphi(double val);
119  void setdt(double val);
120  void setdm(double val);
121  void setm2(double val, double err = 0);
122  void setMvddEdx(double val, double err = 0);
123  void setTpcdEdx(double val, double err = 0);
124  void setSttdEdx(double val, double err = 0);
125  void setDrcDiscThtc(double val, double err = 0);
126  void setDrcBarrelThtc(double val, double err = 0);
127  void setRichThtc(double val, double err = 0);
128  void setEmcEcal(double val) { _EmcEcal = val; } // , double err=0 //[R.K.03/2017] unused variable(s)
129  void setMuoIron(double val) { _MuoIron = val; } // , double err=0 //[R.K.03/2017] unused variable(s)
130 
131  void setdV(TVector3 v);
132  void setdV(double dx, double dy, double dz);
133 
134  void setLHElectron(double val);
135  void setLHMuon(double val);
136  void setLHPion(double val);
137  void setLHKaon(double val);
138  void setLHProton(double val);
139 
140  void print(std::ostream &o);
141 
142  private:
143  // reference to the responding detector
144  PndFsmAbsDet *_detector;
145  bool _detected;
146 
147  // resolutions (absolute values) of: energy, momentum, theta, phi, time
148  double _dE;
149  double _dp;
150  double _dtheta;
151  double _dphi;
152  double _dt;
153  double _dm; // smearing of mass
154 
155  double _m2; // square of particle mass in Tof
156  double _MvddEdx; // dEdx in Mvd
157  double _TpcdEdx; // dEdx in Tpc
158  double _SttdEdx; // dEdx in Stt
159  double _DrcDiscThtc; // Theta_c Disc Dirc
160  double _DrcBarrelThtc; // Theta_c Barrel Dirc
161  double _RichThtc; // Theta_c Rich
162  double _EmcEcal; // calibrated energy deposit in calorimeter
163  double _MuoIron; // penetration depth in Muon detector iron
164 
165  double _m2Err; // error of square of particle mass in Tof
166  double _MvddEdxErr; // error of dEdx in Mvd
167  double _TpcdEdxErr; // error of dEdx in Tpc
168  double _SttdEdxErr; // error of dEdx in Stt
169  double _DrcDiscThtcErr; // error of Theta_c Disc Dirc
170  double _DrcBarrelThtcErr; // error of Theta_c Barrel Dirc
171  double _RichThtcErr; // error of Theta_c Rich
172 
173  // resolution of vertex
174  TVector3 _dV;
175 
176  // PID likelihoods for various particle hypotheses
177  double _LHElectron;
178  double _LHMuon;
179  double _LHPion;
180  double _LHKaon;
181  double _LHProton;
182 };
183 
184 #endif
TVector3 dV()
double MuoIron()
void setDrcBarrelThtc(double val, double err=0)
virtual ~PndFsmResponse()
void setdV(TVector3 v)
void setdphi(double val)
void setLHElectron(double val)
void setLHProton(double val)
void setTpcdEdx(double val, double err=0)
double MvddEdxErr()
void setLHMuon(double val)
void print(std::ostream &o)
double MvddEdx()
double RichThtcErr()
PndFsmAbsDet * detector()
__m128 v
Definition: P4_F32vec4.h:15
void setm2(double val, double err=0)
double RichThtc()
double DrcDiscThtcErr()
void setMuoIron(double val)
void setdt(double val)
double SttdEdxErr()
double TpcdEdx()
void setDetector(PndFsmAbsDet *detector)
double SttdEdx()
void setDrcDiscThtc(double val, double err=0)
void setdp(double val)
double LHElectron()
void setLHKaon(double val)
void setEmcEcal(double val)
void setdE(double val)
double DrcDiscThtc()
void setRichThtc(double val, double err=0)
void setDetected(bool isdet)
void setdtheta(double val)
void setSttdEdx(double val, double err=0)
void setdm(double val)
double TpcdEdxErr()
double DrcBarrelThtcErr()
double EmcEcal()
void setMvddEdx(double val, double err=0)
double DrcBarrelThtc()
void setLHPion(double val)