PandaRoot
PndRichReco.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 #ifndef PNDRICHRECO_H
14 #define PNDRICHRECO_H
15 
16 #include "FairGeoSet.h"
17 #include "TVector3.h"
18 #include "TClonesArray.h"
19 #include "PndRichGeo.h"
20 #include "PndRichPhoton.h"
21 #include "PndRichBarPoint.h"
22 #include "PndRichMirrorSegment.h"
23 #include "TVector3.h"
24 #include "TLorentzVector.h"
25 #include <map>
26 #include <TVectorT.h>
27 #include <TMatrixT.h>
28 
29 class TClonesArray;
30 
31 using std::map;
32 using std::pair;
33 using std::vector;
34 
35 class PndRichReco //: public FairGeoSet
36 {
37 
38  private:
39  // removed from PndPidCorrelator.h
40  TClonesArray *fRichPDHit;
41 
42  PndRichGeo *fGeo;
43  UInt_t fEvent;
44  UInt_t fGeoVersion;
45  UInt_t fGeoVersionMirr;
46  UInt_t fParticleID;
47  Double_t fMirrorLength;
48  TVector3 fTrackPosition;
49  TVector3 fTrackDirection;
50  // flat mirror parametrs
51  std::vector<PndRichMirrorSegment> fMirrSegs;
52 
53  Double_t fPhDetAngle;
54  Double_t fZamid;
55  Double_t fTrackTime;
56  TVectorT<double> gResVect;
57  TMatrixT<double> gRotMatr;
58 
59  protected:
60  public:
61  PndRichReco();
62  PndRichReco(UInt_t version);
63  virtual ~PndRichReco();
64 
65  void Init();
66  void Register();
67 
68  void SetGeoVersion(UInt_t version) { fGeoVersion = version; };
69  void RichFullReconstruction(TVector3 pos, TVector3 dir, Float_t ts, Float_t &chi2, Float_t &chTh, Float_t &dChTh, Int_t &nph);
70  std::vector<double> GetPhis();
71  std::vector<double> GetThetas();
72  std::vector<double> GetDThetas();
73  std::vector<PndRichPhoton> CherenkovPhotonListFlat(PndRichBarPoint *track);
74  double BetaPeakFinding(std::vector<PndRichPhoton> photons, Double_t nopt, Double_t nnz);
75  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,
76  Double_t dthc);
77  void AppendFlatMirrorReflections(std::vector<PndRichPhoton> &ph, TVector3 hit, Double_t hitTime, PndRichBarPoint *track);
78 
80 };
81 
82 #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:68