ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DrcPidFast.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file DrcPidFast.h
1 // Fast reconstruction for EIC Barrel DIRC
2 // original author: r.dzhygadlo at gsi.de
3 
4 #ifndef DrcPidFast_h
5 #define DrcPidFast_h 1
6 
7 #include "TFile.h"
8 #include "TH2F.h"
9 #include "TVector3.h"
10 #include "TRandom.h"
11 #include "TF1.h"
12 
13 #include <iostream>
14 
15 // probability - normalized to 1 probability for e,mu,pi,k,p
16 // sigma - deviation of the determined Cherenkov angle from expected in terms of Cherenkov track
17 // resolution cangle - Cherenkov angle cctr - combined Cherenkov track resolution
18 struct DrcPidInfo {
19  double probability[5];
20  double sigma[5];
21  double cangle;
22  double cctr;
23 };
24 
25 class DrcPidFast {
26 
27  public:
28 
29  // barid = 0 for 17 mm thickness of the radiator
30  // barid = 1 for 10 mm thickness of the radiator
31  DrcPidFast(int barid = 0);
33 
34  // read Cherenkov track resolution map from a file
35  void ReadMap(TString name);
36 
37  // pdg - Particle Data Group code of the particle
38  // mom - 3-momentum of the particle [GeV/c]
39  // track_err - error assosiated with track direction [mrad]
40  DrcPidInfo GetInfo(int pdg, TVector3 mom, double track_err = 0);
41 
42  // p - momentum of the particle [GeV/c]
43  // theta - polar angle of the particle [deg]
44  DrcPidInfo GetInfo(int pdg, double p, double theta, double track_err = 0);
45  TH2F *GetTrrMap() { return fTrrMap; }
46 
47  private:
48  int get_pid(int pdg);
49  TH2F *fTrrMap;
50  double fMass[5];
53 };
54 
55 #endif