BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
CbmStsFitTracks.cxx
Go to the documentation of this file.
1
// -------------------------------------------------------------------------
2
// ----- CbmStsFitTracks source file -----
3
// ----- Created 18/02/05 by V. Friese -----
4
// -------------------------------------------------------------------------
5
#include "
CbmStsFitTracks.h
"
6
7
#include "CbmStsTrackFitter.h"
8
#include "FairRootManager.h"
9
#include "
TClonesArray.h
"
10
11
#include <iomanip>
12
#include <iostream>
13
14
using
std::cout;
15
using
std::endl;
16
using
std::fixed;
17
using
std::left;
18
using
std::right;
19
using
std::setprecision;
20
using
std::setw;
21
22
// ----- Default constructor -------------------------------------------
23
CbmStsFitTracks::CbmStsFitTracks
()
24
:
FairTask
(
"STSFitTracks"
)
25
,
fFitter
(NULL)
26
,
fTracks
(NULL)
27
,
fTimer
()
28
,
fNEvents
(0)
29
,
fNFailed
(0)
30
,
fTime
(0.)
31
,
fNTracks
(0)
32
{}
33
34
// ----- Standard constructor ------------------------------------------
35
CbmStsFitTracks::CbmStsFitTracks
(
CbmStsTrackFitter
* fitter,
Int_t
iVerbose)
36
:
FairTask
(
"STSFitTracks"
)
37
,
fFitter
(fitter)
38
,
fTracks
(NULL)
39
,
fTimer
()
40
,
fNEvents
(0)
41
,
fNFailed
(0)
42
,
fTime
(0.)
43
,
fNTracks
(0)
44
{}
45
46
// ----- Constructor with name -----------------------------------------
47
CbmStsFitTracks::CbmStsFitTracks
(
const
char
* name,
CbmStsTrackFitter
* fitter,
Int_t
iVerbose)
48
:
FairTask
(name, iVerbose)
49
,
fFitter
(fitter)
50
,
fTracks
(NULL)
51
,
fTimer
()
52
,
fNEvents
(0)
53
,
fNFailed
(0)
54
,
fTime
(0.)
55
,
fNTracks
(0)
56
{}
57
58
// ----- Destructor ----------------------------------------------------
59
CbmStsFitTracks::~CbmStsFitTracks
() {}
60
// -------------------------------------------------------------------------
61
62
// ----- Virtual public method Exec ------------------------------------
63
void
CbmStsFitTracks::Exec
(
Option_t
* opt)
64
{
65
fTimer
.Start();
66
67
if
(!
fTracks
) {
68
cout <<
"-E- "
<< fName <<
"::Exec: No StsTrack array! "
<< endl;
69
fNFailed
++;
70
return
;
71
}
72
73
Int_t
nTracks =
fTracks
->GetEntriesFast();
74
for
(
Int_t
iTrack = 0; iTrack < nTracks; iTrack++) {
75
CbmStsTrack
* pTrack = (
CbmStsTrack
*)
fTracks
->At(iTrack);
76
fFitter
->DoFit(pTrack);
77
}
78
79
fTimer
.Stop();
80
if
(fVerbose)
81
cout <<
"+ "
<< setw(15) << left << fName <<
": "
<< setprecision(4) << setw(8) << fixed << right
82
<<
fTimer
.RealTime() <<
" s, tracks fitted "
<< nTracks << endl;
83
84
fNEvents
++;
85
fTime
+=
fTimer
.RealTime();
86
fNTracks
+=
Double_t
(nTracks);
87
}
88
// -------------------------------------------------------------------------
89
90
// ----- Virtual private method Init -------------- --------------------
91
InitStatus
CbmStsFitTracks::Init
()
92
{
93
94
// Check for Track fitter
95
if
(!
fFitter
) {
96
cout <<
"-E- CbmStsFitTracks: No track fitter selected!"
<< endl;
97
return
kERROR;
98
}
99
100
// Get and check FairRootManager
101
FairRootManager* ioman = FairRootManager::Instance();
102
if
(!ioman) {
103
cout <<
"-E- CbmStsFitTracks::Init: "
104
<<
"RootManager not instantised!"
<< endl;
105
return
kFATAL;
106
}
107
108
// Get StsTrack array
109
fTracks
= (
TClonesArray
*)ioman->GetObject(
"StsTrack"
);
//=>SG
110
if
(!
fTracks
) {
111
cout <<
"-E- CbmStsFitTracks::Init: No StsTrack array!"
<< endl;
112
return
kERROR;
113
}
114
115
// Call the Init method of the track fitter
116
fFitter
->Init();
117
118
return
kSUCCESS;
119
}
120
// -------------------------------------------------------------------------
121
122
// ----- Virtual private method Finish ---------------------------------
123
void
CbmStsFitTracks::Finish
()
124
{
125
126
cout << endl;
127
cout <<
"============================================================"
<< endl;
128
cout <<
"===== "
<< GetName() <<
": Run summary "
<< endl;
129
cout <<
"===== "
<< endl;
130
cout <<
"===== Good events : "
<< setw(6) <<
fNEvents
<< endl;
131
cout <<
"===== Failed events : "
<< setw(6) <<
fNFailed
<< endl;
132
cout <<
"===== Average time : "
<< setprecision(4) << setw(8) << right <<
fTime
/
Double_t
(
fNEvents
) <<
" s"
133
<< endl;
134
cout <<
"===== "
<< endl;
135
cout <<
"===== Fitted tracks per event : "
<< fixed << setprecision(0) <<
fNTracks
/
Double_t
(
fNEvents
) << endl;
136
cout <<
"============================================================"
<< endl;
137
}
138
// -------------------------------------------------------------------------
Int_t
int Int_t
Double_t
double Double_t
Option_t
const char Option_t
TClonesArray.h
CbmStsFitTracks::fTime
Double_t fTime
Definition
CbmStsFitTracks.h:70
CbmStsFitTracks::fNEvents
Int_t fNEvents
Definition
CbmStsFitTracks.h:68
CbmStsFitTracks::fFitter
CbmStsTrackFitter * fFitter
Definition
CbmStsFitTracks.h:65
CbmStsFitTracks::CbmStsFitTracks
CbmStsFitTracks()
Default constructor.
Definition
CbmStsFitTracks.cxx:23
CbmStsFitTracks::fTracks
TClonesArray * fTracks
Definition
CbmStsFitTracks.h:66
CbmStsFitTracks::Finish
virtual void Finish()
Finish at the end of each event.
Definition
CbmStsFitTracks.cxx:123
CbmStsFitTracks::fNTracks
Double_t fNTracks
Definition
CbmStsFitTracks.h:71
CbmStsFitTracks::fNFailed
Int_t fNFailed
Definition
CbmStsFitTracks.h:69
CbmStsFitTracks::fTimer
TStopwatch fTimer
Definition
CbmStsFitTracks.h:67
CbmStsFitTracks::Init
virtual InitStatus Init()
Initialisation at beginning of each event.
Definition
CbmStsFitTracks.cxx:91
CbmStsFitTracks::Exec
virtual void Exec(Option_t *opt)
Task execution.
Definition
CbmStsFitTracks.cxx:63
CbmStsFitTracks::~CbmStsFitTracks
virtual ~CbmStsFitTracks()
Destructor.
Definition
CbmStsFitTracks.cxx:59
CbmStsTrackFitter
Definition
CbmStsTrackFitter.h:24
CbmStsTrack
Definition
CbmStsTrack.h:28
FairTask
TClonesArray
CbmStsFitTracks.h
detectors
sts
CbmStsFitTracks.cxx
Generated on
for BmnRoot by
1.17.0