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
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)
46 , DoKresReconstruction(0)
47 , DoKresKF(0)
48 , DoKresManual(0)
49 , DoKresManualmbias(0)
50 , DoKresTemperature(0)
51 , DoKresPhotons(0)
52 , DoKresCorrectedPhotons(0)
53 , DoKresEtaMCAnalysis(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) {
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) {
142 cout << "\t *** CbmKresConversionManualmbias (b <= 2 fm) ==> "
143 "analysis is activated"
144 << endl;
145
148 cout << "\t *** CbmKresConversionManualmbias (2 < b <= 6 fm) ==> "
149 "analysis is activated"
150 << endl;
151
154 cout << "\t *** CbmKresConversionManualmbias (6 < b <= 10 fm) ==> "
155 "analysis is activated"
156 << endl;
157
160 cout << "\t *** CbmKresConversionManualmbias (b > 10 fm) ==> "
161 "analysis is activated"
162 << endl;
163 }
164
165 if (DoKresTemperature) {
168 cout << "\t *** CbmKresTemperature ==> "
169 "analysis is activated"
170 << endl;
171 }
172
173 if (DoKresPhotons) {
176 cout << "\t *** CbmKresConversionPhotons ==> "
177 "analysis is activated"
178 << endl;
179 }
180
184 cout << "\t *** CbmKresConversionCorrectedPhotons ==> "
185 "analysis is activated"
186 << endl;
187 }
188
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
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) ");
285 gDirectory->cd("..");
286
287 gDirectory->mkdir("2 < b <= 6 ");
288 gDirectory->cd("2 < b <= 6 ");
290 gDirectory->cd("..");
291
292 gDirectory->mkdir("6 < b <= 10 ");
293 gDirectory->cd("6 < b <= 10 ");
295 gDirectory->cd("..");
296
297 gDirectory->mkdir("b > 10 (miss) ");
298 gDirectory->cd("b > 10 (miss) ");
300 gDirectory->cd("..");
301
302 gDirectory->cd("..");
303 }
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.
void Exec(int fEventNumDP, double OpeningAngleCut, double GammaInvMassCut, int RealPID)
void SetKF(CbmKFParticleFinder *kfparticle, CbmKFParticleFinderQa *kfparticleQA)
void Exec(int fEventNumKF, double OpeningAngleCut, double GammaInvMassCut, int RealPID)
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
void Exec(int fEventNumMan, double OpeningAngleCut, double GammaInvMassCut, int RealPID)
void Exec(int fEventNumMan, double OpeningAngleCut, double GammaInvMassCut, int RealPID)
void Exec(int fEventNumMan, double OpeningAngleCut, double GammaInvMassCut, int RealPID)
void Exec(int fEventNumMan, double OpeningAngleCut, double GammaInvMassCut, int RealPID)
void Exec(int fEventNumMan, double OpeningAngleCut, double GammaInvMassCut, int RealPID)
void Exec(int fEventNumDP, double OpeningAngleCut, double GammaInvMassCut, int RealPID)
void Exec(int Event, double OpeningAngleCut, double GammaInvMassCut)
void Exec(int fEventNumEta, double OpeningAngleCut, double GammaInvMassCut, int RealPID)
void Exec(int fEventNumTempr)
Hash for CbmL1LinkKey.