CbmRoot
Loading...
Searching...
No Matches
CbmKresConversionMain.cxx
Go to the documentation of this file.
1/* Copyright (C) 2017-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Ievgenii Kres, Florian Uhlig [committer] */
4
17
19
20#include "CbmGlobalTrack.h"
21#include "CbmMCTrack.h"
22#include "CbmMvdHit.h"
23#include "CbmRichHit.h"
24#include "CbmRichPoint.h"
25#include "CbmRichRing.h"
26#include "CbmStsHit.h"
27#include "CbmStsTrack.h"
28#include "CbmTrackMatchNew.h"
29
30#include "FairRootManager.h"
31
32#include "TDirectory.h"
33
34#include <boost/assign/list_of.hpp>
35
36#include <iostream>
37#include <string>
38
39using namespace std;
40using boost::assign::list_of;
41
44 : FairTask("CbmKresConversionMain")
45 , DoKresGeneral(0)
47 , DoKresKF(0)
48 , DoKresManual(0)
51 , DoKresPhotons(0)
54 , DoKresEta(0)
55 , fKresGeneral(nullptr)
56 , fKresReco(nullptr)
57 , fKresKF(nullptr)
58 , fKresManual(nullptr)
59 , fKFparticle(nullptr)
60 , fKFparticleFinderQA(nullptr)
61 , fKresManualmbiasPart1(nullptr)
62 , fKresManualmbiasPart2(nullptr)
63 , fKresManualmbiasPart3(nullptr)
64 , fKresManualmbiasPart4(nullptr)
65 , fKresTemperature(nullptr)
66 , fKresPhotons(nullptr)
67 , fKresCorrectedPhotons(nullptr)
68 , fKresEtaMCAnalysis(nullptr)
69 , fKresEta(nullptr)
70 , fEventNum(0)
71 , OpeningAngleCut(0.)
72 , GammaInvMassCut(0.)
73 , fRealPID(0)
74{
75 OpeningAngleCut = 2.; // Opening angle cut for photon reconstruction
76 GammaInvMassCut = 0.02; // Invariant mass for photon reconstruction
77 fRealPID = 1; // Particle identifiaction from detectors. 1 is Real !!!; 0 is MC.
78
79 DoKresGeneral = 0;
80 DoKresReconstruction = 0; // estimation for eta and pi^0 reconstruction
81 DoKresManual = 0; // central mode
82 DoKresPhotons = 0; // photons mode
83 DoKresCorrectedPhotons = 0; // photons mode with apllying of acceptance (rough) correction
84
85 DoKresKF = 0;
86 DoKresManualmbias = 1; // mbias mode
87
88 DoKresTemperature = 0; // temperature mode
89
90 DoKresEtaMCAnalysis = 0; // Monte Carlo analysis for eta
91 DoKresEta = 0; // eta mode
92}
93
94
96
97
100{
101
102 cout << "CbmKresConversionMain::Init" << endl;
103
104 // if (DoKresManual == 1 && DoKresManualmbias == 1) { Fatal("", " !!!! Central and mbias modes are activated together !!!! "); }
105
106
107 cout << endl;
108 if (DoKresGeneral) {
110 fKresGeneral->Init();
111 cout << endl;
112 cout << "\t *** CbmKresConversionGeneral ==> "
113 "analysis is activated"
114 << endl;
115 }
116
119 fKresReco->Init();
120 cout << "\t *** CbmKresConversionReconstruction ==> "
121 "analysis is activated"
122 << endl;
123 }
124 if (DoKresKF) {
127 fKresKF->Init();
128 cout << "\t *** CbmKresConversionKF ==> "
129 "analysis is activated"
130 << endl;
131 }
132 if (DoKresManual) {
134 fKresManual->Init();
135 cout << "\t *** CbmKresConversionManual ==> "
136 "analysis is activated"
137 << endl;
138 }
139 if (DoKresManualmbias) {
141 fKresManualmbiasPart1->Init();
142 cout << "\t *** CbmKresConversionManualmbias (b <= 2 fm) ==> "
143 "analysis is activated"
144 << endl;
145
147 fKresManualmbiasPart2->Init();
148 cout << "\t *** CbmKresConversionManualmbias (2 < b <= 6 fm) ==> "
149 "analysis is activated"
150 << endl;
151
153 fKresManualmbiasPart3->Init();
154 cout << "\t *** CbmKresConversionManualmbias (6 < b <= 10 fm) ==> "
155 "analysis is activated"
156 << endl;
157
159 fKresManualmbiasPart4->Init();
160 cout << "\t *** CbmKresConversionManualmbias (b > 10 fm) ==> "
161 "analysis is activated"
162 << endl;
163 }
164
165 if (DoKresTemperature) {
167 fKresTemperature->Init();
168 cout << "\t *** CbmKresTemperature ==> "
169 "analysis is activated"
170 << endl;
171 }
172
173 if (DoKresPhotons) {
175 fKresPhotons->Init();
176 cout << "\t *** CbmKresConversionPhotons ==> "
177 "analysis is activated"
178 << endl;
179 }
180
184 cout << "\t *** CbmKresConversionCorrectedPhotons ==> "
185 "analysis is activated"
186 << endl;
187 }
188
191 fKresEtaMCAnalysis->Init();
192 cout << "\t *** CbmKresEtaMCAnalysis ==> "
193 "analysis is activated"
194 << endl;
195 }
196
197 if (DoKresEta) {
198 fKresEta = new CbmKresEta();
199 fKresEta->Init();
200 cout << "\t *** CbmKresEta ==> "
201 "analysis is activated"
202 << endl;
203 }
204
205
206 cout << "\t CUTS : " << endl;
207 cout << "\t Gamma Invariant Mass cut = " << GammaInvMassCut << endl;
208 cout << "\t Gamma Opening Angle cut = " << OpeningAngleCut << endl;
209 if (fRealPID == 1) { cout << "\t PID mode is << RealPID >> " << endl; }
210 else {
211 cout << "\t PID mode is << MCPID >> " << endl;
212 }
213 cout << endl;
214
215
217
218 return kSUCCESS;
219}
220
223
256
259{
260 fKFparticle = kfparticle;
261 fKFparticleFinderQA = kfparticleQA;
262 if (fKFparticle) { cout << "kf works" << endl; }
263 else {
264 cout << "kf works not" << endl;
265 }
266}
267
270{
271 gDirectory->mkdir("conversionKres");
272 gDirectory->cd("conversionKres");
273
274 if (DoKresGeneral) { fKresGeneral->Finish(); }
275 if (DoKresReconstruction) { fKresReco->Finish(); }
276 if (DoKresKF) { fKresKF->Finish(); }
277 if (DoKresManual) { fKresManual->Finish(); }
278 if (DoKresManualmbias) {
279 gDirectory->mkdir("Manual_mbias");
280 gDirectory->cd("Manual_mbias");
281
282 gDirectory->mkdir("b <= 2 (central) ");
283 gDirectory->cd("b <= 2 (central) ");
284 fKresManualmbiasPart1->Finish();
285 gDirectory->cd("..");
286
287 gDirectory->mkdir("2 < b <= 6 ");
288 gDirectory->cd("2 < b <= 6 ");
289 fKresManualmbiasPart2->Finish();
290 gDirectory->cd("..");
291
292 gDirectory->mkdir("6 < b <= 10 ");
293 gDirectory->cd("6 < b <= 10 ");
294 fKresManualmbiasPart3->Finish();
295 gDirectory->cd("..");
296
297 gDirectory->mkdir("b > 10 (miss) ");
298 gDirectory->cd("b > 10 (miss) ");
299 fKresManualmbiasPart4->Finish();
300 gDirectory->cd("..");
301
302 gDirectory->cd("..");
303 }
304 if (DoKresTemperature) { fKresTemperature->Finish(); }
305 if (DoKresPhotons) { fKresPhotons->Finish(); }
307 if (DoKresEtaMCAnalysis) { fKresEtaMCAnalysis->Finish(); }
308 if (DoKresEta) { fKresEta->Finish(); }
309
310 gDirectory->cd("..");
311
312 // remove unnecessary folders, which are created by default
313 gDirectory->rmdir("cbmout");
314 gDirectory->rmdir("BranchList");
315 gDirectory->rmdir("TimeBasedBranchList");
316 gDirectory->rmdir("FileHeader");
317
318
319 cout << endl;
320 cout << "END... we will continue soon... " << fEventNum << endl;
321}
322
ClassImp(CbmConverterManager)
Data class for a reconstructed hit in the STS.
Data class for STS tracks.
CbmKresConversionCorrectedPhotons * fKresCorrectedPhotons
virtual void Exec(Option_t *option)
CbmKresConversionGeneral * fKresGeneral
CbmKresConversionManualmbias1 * fKresManualmbiasPart1
CbmKresConversionManualmbias3 * fKresManualmbiasPart3
CbmKresConversionManualmbias4 * fKresManualmbiasPart4
CbmKFParticleFinderQa * fKFparticleFinderQA
CbmKresConversionManual * fKresManual
CbmKresConversionManualmbias2 * fKresManualmbiasPart2
CbmKresConversionKF * fKresKF
CbmKresConversionReconstruction * fKresReco
CbmKresTemperature * fKresTemperature
void SetKF(CbmKFParticleFinder *kfparticle, CbmKFParticleFinderQa *kfparticleQA)
CbmKresEtaMCAnalysis * fKresEtaMCAnalysis
CbmKFParticleFinder * fKFparticle
CbmKresConversionPhotons * fKresPhotons
Hash for CbmL1LinkKey.