File indexing completed on 2025-08-05 08:19:38
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022 #include "KFPHistogramSet.h"
0023 #include "KFPartEfficiencies.h"
0024
0025 KFPHistogramSet::KFPHistogramSet(int iPart)
0026 {
0027
0028
0029
0030
0031 KFPartEfficiencies fParteff;
0032 std::string parName[NHisto1D] = {"M","p","p_{t}","y","DecayL","c#tau","chi2ndf","prob","#theta","phi","X","Y","Z","R", "L", "l/dl","Multiplicity"};
0033 #ifdef CBM
0034 int nBins[NHisto1D] = {1000,
0035 100,
0036 100,
0037 100,
0038 100,
0039 100,
0040 100,
0041 100,
0042 100,
0043 100,
0044 200,
0045 200,
0046 360,
0047 200,
0048 200,
0049 200,
0050 fParteff.partMaxMult[iPart]+1};
0051 float xMin[NHisto1D] = { fParteff.partMHistoMin[iPart],
0052 0.f,
0053 0.f,
0054 0.f,
0055 -5.f,
0056 0.f,
0057 0.f,
0058 0.f,
0059 -2.f,
0060 -2.f,
0061 -50.f,
0062 -50.f,
0063 -10.f,
0064 0.f,
0065 0.f,
0066 -1.f,
0067 -0.5f };
0068 float xMax[NHisto1D] = { fParteff.partMHistoMax[iPart],
0069 10.f,
0070 3.f,
0071 6.f,
0072 55.f,
0073 30.f,
0074 20.f,
0075 1.f,
0076 2.f,
0077 2.f,
0078 50.f,
0079 50.f,
0080 80.f,
0081 50.f,
0082 100.f,
0083 35.f,
0084 float(fParteff.partMaxMult[iPart])+0.5f};
0085 #else
0086 int nBins[NHisto1D] = {1000,
0087 100,
0088 100,
0089 100,
0090 100,
0091 100,
0092 100,
0093 100,
0094 100,
0095 100,
0096 100,
0097 1000,
0098 1000,
0099 1000,
0100 1000,
0101 1000,
0102 fParteff.partMaxMult[iPart]+1};
0103 float xMin[NHisto1D] = { fParteff.partMHistoMin[iPart],
0104 0.f,
0105 0.f,
0106 -6.f,
0107 -5.f,
0108 0.f,
0109 0.f,
0110 0.f,
0111 -2.f,
0112 -2.f,
0113 -200.f,
0114 -200.f,
0115 -200.f,
0116 0.f,
0117 0.f,
0118 -1.f,
0119 -0.5f };
0120 float xMax[NHisto1D] = { fParteff.partMHistoMax[iPart],
0121 10.f,
0122 3.f,
0123 6.f,
0124 55.f,
0125 30.f,
0126 20.f,
0127 1.f,
0128 2.f,
0129 2.f,
0130 200.f,
0131 200.f,
0132 200.f,
0133 200.f,
0134 400.f,
0135 35.f,
0136 float(fParteff.partMaxMult[iPart])+0.5f};
0137 #endif
0138 for(int iHisto=0; iHisto<NHisto1D; iHisto++)
0139 fKFPHistogram1D[iHisto] = KFPHistogram1D(parName[iHisto], nBins[iHisto], xMin[iHisto], xMax[iHisto]);
0140 }
0141
0142 void KFPHistogramSet::SetHistogramMemory(int* pointer)
0143 {
0144
0145
0146
0147 for(int i=0; i<NHisto1D; i++)
0148 {
0149 fKFPHistogram1D[i].SetHistogramMemory(pointer);
0150 pointer += fKFPHistogram1D[i].DataSize();
0151 }
0152 }
0153
0154 void KFPHistogramSet::Fill(const KFParticle& particle)
0155 {
0156
0157
0158
0159 float mass = 0, p=0, pt=0, err = 0;
0160 particle.GetMass(mass, err);
0161 particle.GetMomentum(p, err);
0162 particle.GetPt(pt, err);
0163 float rapidity = particle.GetRapidity();
0164 float chi2ndf = particle.GetChi2()/float(particle.GetNDF());
0165 float r = sqrt(particle.X()*particle.X() + particle.Y()*particle.Y());
0166 float l = sqrt(particle.X()*particle.X() + particle.Y()*particle.Y() + particle.Z()*particle.Z());
0167
0168 fKFPHistogram1D[0].Fill(mass);
0169 fKFPHistogram1D[1].Fill(p);
0170 fKFPHistogram1D[2].Fill(pt);
0171 fKFPHistogram1D[3].Fill(rapidity);
0172 fKFPHistogram1D[6].Fill(chi2ndf);
0173 fKFPHistogram1D[10].Fill(particle.X());
0174 fKFPHistogram1D[11].Fill(particle.Y());
0175 fKFPHistogram1D[12].Fill(particle.Z());
0176 fKFPHistogram1D[13].Fill(r);
0177 fKFPHistogram1D[14].Fill(l);
0178 }