Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PIDplots.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PIDplots.h
1 //
2 // PIDplots.h
3 //
4 // Author : Weihu Ma
5 // Created: 04/2021
6 // Version: 1.0
7 //
8 
9 #include <iostream>
10 #include <fstream>
11 #include <iomanip>
12 #include <stdio.h>
13 #include <stdlib.h>
14 #include <string>
15 #include <math.h>
16 
17 #include "TROOT.h"
18 #include "TApplication.h"
19 #include "TDirectory.h"
20 #include "TMath.h"
21 #include "TGraph.h"
22 #include "TGraph2D.h"
23 #include "TRandom.h"
24 #include "TStyle.h"
25 #include "TCanvas.h"
26 #include "TPad.h"
27 #include "TF3.h"
28 #include "TError.h"
29 #include "Fit/LogLikelihoodFCN.h"
30 #include "Fit/BasicFCN.h"
31 #include "Fit/BinData.h"
32 #include "Fit/UnBinData.h"
33 #include "Fit/FcnAdapter.h"
34 #include "Fit/FitConfig.h"
35 #include "Fit/FitResult.h"
36 #include "Fit/Fitter.h"
37 #include "Fit/Chi2FCN.h"
38 #include "Fit/PoissonLikelihoodFCN.h"
39 #include "TVirtualFitter.h"
40 #include "Math/Minimizer.h"
41 #include "Math/MinimizerOptions.h"
42 #include "Math/FitMethodFunction.h"
43 #include "Math/WrappedMultiTF1.h"
44 #include "Math/Error.h"
45 #include "Math/VirtualIntegrator.h"
46 #include "Math/GSLIntegrator.h"
47 #include "HFitInterface.h"
48 #include "Fit/FitExecutionPolicy.h"
49 #include "TF2.h"
50 #include "TF1.h"
51 #include "TGraphErrors.h"
52 #include "TGraph.h"
53 #include "TGaxis.h"
54 #include "TString.h"
55 #include "TSystem.h"
56 #include "TTree.h"
57 #include "TLegend.h"
58 #include "TText.h"
59 #include "TLatex.h"
60 #include "TFile.h"
61 #include "TAxis.h"
62 #include "TNtuple.h"
63 #include "TH1F.h"
64 #include "TH2F.h"
65 #include "TFrame.h"
66 #include "TVector3.h"
67 #include "TFormula.h"
68 
69 #include "TMVA/Factory.h"
70 #include "TMVA/DataLoader.h"
71 #include "TMVA/Tools.h"
72 #include "TMVA/TMVAGui.h"
73 
74 
75 #include "omp.h"
76 using namespace std;
77 
78 class PIDplots//A
79 {
80  private:
81 
82  int Nfile;
83  int Nevent;
84  int Nmpnbin;
85  int tag;
86 
87  float me;
88  float mep;
89  float men;
90  float pi;
91  float rYs[3];
92 
93  const char *input_file[400];
94  char input_file_embed[400];
95 
96  const char * output_eID;
97  const char * output_plot_eID;
98  const char * output_plot_eID_eta;
99  const char * output_plot_eID_pt;
100  const char * output_plot_eID_HOM;
101  const char * output_plot_eID_HOP;
102  const char * output_plot_eID_EOP;
103 
105  TFile *fHistogramFile_eID;
106  TH1F *h1pt_e;
107  TH1F *h1EOP;
108  TH1F *h1EOP_e;
109  TH1F *h1HOM;
110  TH1F *h1HOP;
111  TH1F *h1dR;//dR=sqrt(deta*deta+dphi*dphi)
112  TH1F *h1gflavor;
113 
114  int NEID_electron;
115 
116  int NEID_electron_eta[50];
117  int NEID_electron_pt[50];
118  int NEID_electron_HOP[50];
119  int NEID_electron_HOM[50];
120  int NEID_electron_EOP[50];
121 
122 
123  int N_electron_eta[50];
124  int N_electron_pt[50];
125  int N_electron_HOM[50];
126  int N_electron_HOP[50];
127  int N_electron_EOP[50];
128 
129  int N_pion_eta[50];
130  int N_K_eta[50];
131  int N_antiproton_eta[50];
132  int N_pion_pt[50];
133  int N_K_pt[50];
134  int N_antiproton_pt[50];
135  int N_pion_HOM[50];
136  int N_K_HOM[50];
137  int N_antiproton_HOM[50];
138  int N_pion_HOP[50];
139  int N_K_HOP[50];
140  int N_antiproton_HOP[50];
141  int N_pion_EOP[50];
142  int N_K_EOP[50];
143  int N_antiproton_EOP[50];
144 
145  int NEID_pion_eta[50];
146  int NEID_K_eta[50];
147  int NEID_antiproton_eta[50];
148  int NEID_pion_pt[50];
149  int NEID_K_pt[50];
150  int NEID_antiproton_pt[50];
151 
152 
153  int NEID_pion;
154  int NEID_K;
155  int NEID_antiproton;
156  float eta_point[50];
157  float pt_point[50];
158  float HOM_point[50];
159  float HOP_point[50];
160  float EOP_point[50];
161 
162 public:
163 
164  void inputpars();
165  void fhistogram_eID();
166  void eID();
167  void eIDoutput();
168 };
169