36 const Int_t kStart = 2041;
37 const Int_t kFinish = 3589;
39 set<Double_t> energies;
43 for (
Int_t iRun = kStart; iRun < kFinish; iRun++) {
46 if (pCurrentRun == NULL) {
55 if (targStar == NULL || eneStar == NULL || apprCurrentStar == NULL)
60 energies.insert(*eneStar);
61 targets.insert(*targStar);
62 beams.insert(beamPart);
66 c->
Divide(energies.size(), beams.size());
67 TPie* charts[beams.size()][energies.size()];
69 const Int_t nProjectiles = 1;
70 TString PROJECTILES[nProjectiles] = {
"C"};
72 const Int_t nEnergies = 1;
73 const Double_t ENERGIES[nEnergies] = {3.17};
75 const Int_t nTargs = 5;
76 const TString TARGETS[nTargs] = {
"H2",
"Pb",
"SRC Lead 1",
"SRC Lead 2",
"SRC Lead 3"};
78 Long_t nEvs[beams.size()][energies.size()][nTargs];
79 for (
Int_t iProj = 0; iProj < beams.size(); iProj++)
80 for (
Int_t iEne = 0; iEne < energies.size(); iEne++)
81 for (
Int_t iTarg = 0; iTarg < nTargs; iTarg++)
82 nEvs[iProj][iEne][iTarg] = 0;
85 for (
auto itBeam : beams) {
86 for (
auto itEne : energies) {
87 for (
Int_t iRun = kStart; iRun < kFinish; iRun++) {
90 if (pCurrentRun == NULL) {
99 if (targStar == NULL || eneStar == NULL || apprCurrentStar == NULL)
103 if (*apprCurrentStar < FLT_EPSILON)
108 if (proj != itBeam || *eneStar != itEne)
115 Int_t idxBeam = (proj == PROJECTILES[0]) ? 0 : -1;
117 Int_t idxEne = (
Abs(*eneStar - ENERGIES[0]) < FLT_EPSILON) ? 0 : -1;
120 for (
Int_t iTarg = 0; iTarg < nTargs; iTarg++)
121 if (targ == TARGETS[iTarg]) {
126 nEvs[idxBeam][idxEne][idxTarg] += *pCurrentRun->
GetEventCount();
131 for (
Int_t iProj = 0; iProj < beams.size(); iProj++)
132 for (
Int_t iEne = 0; iEne < energies.size(); iEne++)
133 for (
Int_t iTarg = 0; iTarg < nTargs; iTarg++)
134 cout << iProj <<
" " << iEne <<
" " << iTarg <<
" " << nEvs[iProj][iEne][iTarg] / 1e6 <<
" MEvs"
138 for (
Int_t iProj = 0; iProj < beams.size(); iProj++)
139 for (
Int_t iEne = 0; iEne < energies.size(); iEne++) {
141 Int_t colors[nTargs];
142 for (
Int_t iTarg = 0; iTarg < nTargs; iTarg++) {
143 pieContent[iTarg] = nEvs[iProj][iEne][iTarg] / 1e6;
144 colors[iTarg] = 2 + iTarg;
148 for (
Int_t iTarg = 0; iTarg < nTargs; iTarg++)
149 pieContentSum += pieContent[iTarg];
151 charts[iProj][iEne] =
152 new TPie(
Form(
"Projectile %s (T = %G GeV/n)", PROJECTILES[iProj].Data(), ENERGIES[iEne]),
153 Form(
"Projectile %s (T = %G GeV/n)", PROJECTILES[iProj].Data(), ENERGIES[iEne]), nTargs,
156 for (
Int_t iTarg = 0; iTarg < nTargs; iTarg++) {
159 TString sliceTitle = (valSlice > FLT_EPSILON) ? TARGETS[iTarg] :
"";
160 if (valSlice < FLT_EPSILON)
169 charts[iProj][iEne]->
SetLabelFormat(
"#splitline{%txt (%perc)}{%val MEvs}");
170 if (pieContentSum > FLT_EPSILON) {
172 charts[iProj][iEne]->
Draw(
"3d nol");
177 c->
SaveAs(
"SRC_physEvents_Run7.pdf");
virtual void SetTextSize(Float_t tsize=1)
void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override