PandaRoot
PndRichReco.h
Go to the documentation of this file.
1 #ifndef PNDRICHRECO_H
2 #define PNDRICHRECO_H
3 
4 #include "FairGeoSet.h"
5 #include "TVector3.h"
6 #include "TClonesArray.h"
7 #include "PndRichGeo.h"
8 #include "PndRichPhoton.h"
9 #include "PndRichBarPoint.h"
10 #include "PndRichMirrorSegment.h"
11 #include "TVector3.h"
12 #include "TLorentzVector.h"
13 #include <map>
14 #include <TVectorT.h>
15 #include <TMatrixT.h>
16 
17 class TClonesArray;
18 
19 using std::map;
20 using std::pair;
21 using std::vector;
22 
23 class PndRichReco //: public FairGeoSet
24 {
25 
26  private:
27  // removed from PndPidCorrelator.h
28  TClonesArray *fRichPDHit;
29 
30  PndRichGeo *fGeo;
31  UInt_t fEvent;
32  UInt_t fGeoVersion;
33  UInt_t fGeoVersionMirr;
34  UInt_t fParticleID;
35  Double_t fMirrorLength;
36  TVector3 fTrackPosition;
37  TVector3 fTrackDirection;
38  // flat mirror parametrs
39  std::vector<PndRichMirrorSegment> fMirrSegs;
40 
41  Double_t fPhDetAngle;
42  Double_t fZamid;
43  Double_t fTrackTime;
44  TVectorT<double> gResVect;
45  TMatrixT<double> gRotMatr;
46 
47  protected:
48  public:
49  PndRichReco();
50  PndRichReco(UInt_t version);
51  virtual ~PndRichReco();
52 
53  void Init();
54  void Register();
55 
56  void SetGeoVersion(UInt_t version) { fGeoVersion = version; };
57  void RichFullReconstruction(TVector3 pos, TVector3 dir, Float_t ts, Float_t &chi2, Float_t &chTh, Float_t &dChTh, Int_t &nph);
58  std::vector<double> GetPhis();
59  std::vector<double> GetThetas();
60  std::vector<double> GetDThetas();
61  std::vector<PndRichPhoton> CherenkovPhotonListFlat(PndRichBarPoint *track);
62  double BetaPeakFinding(std::vector<PndRichPhoton> photons, Double_t nopt, Double_t nnz);
63  void HitSelection(std::vector<size_t> &it, std::vector<double> &ph, std::vector<double> &th, std::vector<PndRichPhoton> photons, Double_t beta, Double_t nopt, Double_t nnz,
64  Double_t dthc);
65  void AppendFlatMirrorReflections(std::vector<PndRichPhoton> &ph, TVector3 hit, Double_t hitTime, PndRichBarPoint *track);
66 
68 };
69 
70 #endif
std::vector< double > GetDThetas()
void HitSelection(std::vector< size_t > &it, std::vector< double > &ph, std::vector< double > &th, std::vector< PndRichPhoton > photons, Double_t beta, Double_t nopt, Double_t nnz, Double_t dthc)
void RichFullReconstruction(TVector3 pos, TVector3 dir, Float_t ts, Float_t &chi2, Float_t &chTh, Float_t &dChTh, Int_t &nph)
double BetaPeakFinding(std::vector< PndRichPhoton > photons, Double_t nopt, Double_t nnz)
void AppendFlatMirrorReflections(std::vector< PndRichPhoton > &ph, TVector3 hit, Double_t hitTime, PndRichBarPoint *track)
virtual ~PndRichReco()
void Register()
ClassDef(PndRichReco, 1)
std::vector< double > GetThetas()
std::vector< PndRichPhoton > CherenkovPhotonListFlat(PndRichBarPoint *track)
std::vector< double > GetPhis()
void SetGeoVersion(UInt_t version)
Definition: PndRichReco.h:56