BmnRoot
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 "FairRootManager.h"
8#include "CbmStsTrackFitter.h"
9
10#include "TClonesArray.h"
11
12#include <iostream>
13#include <iomanip>
14
15using std::cout;
16using std::endl;
17using std::right;
18using std::left;
19using std::setw;
20using std::setprecision;
21using std::fixed;
22
23// ----- Default constructor -------------------------------------------
25: FairTask("STSFitTracks"),
26 fFitter(NULL),
27 fTracks(NULL),
28 fTimer(),
29 fNEvents(0),
30 fNFailed(0),
31 fTime(0.),
32 fNTracks(0)
33{}
34
35// ----- Standard constructor ------------------------------------------
37: FairTask("STSFitTracks"),
38 fFitter(fitter),
39 fTracks(NULL),
40 fTimer(),
41 fNEvents(0),
42 fNFailed(0),
43 fTime(0.),
44 fNTracks(0)
45{}
46
47// ----- Constructor with name -----------------------------------------
48CbmStsFitTracks::CbmStsFitTracks(const char* name, CbmStsTrackFitter* fitter, Int_t iVerbose)
49: FairTask(name, iVerbose),
50 fFitter(fitter),
51 fTracks(NULL),
52 fTimer(),
53 fNEvents(0),
54 fNFailed(0),
55 fTime(0.),
56 fNTracks(0)
57{}
58
59// ----- Destructor ----------------------------------------------------
61// -------------------------------------------------------------------------
62
63
64// ----- Virtual public method Exec ------------------------------------
65void CbmStsFitTracks::Exec(Option_t* opt) {
66 fTimer.Start();
67
68
69 if ( ! fTracks ) {
70 cout << "-E- " << fName << "::Exec: No StsTrack array! " << endl;
71 fNFailed++;
72 return;
73 }
74
75 Int_t nTracks = fTracks->GetEntriesFast();
76 for (Int_t iTrack=0; iTrack<nTracks; iTrack++) {
77 CbmStsTrack* pTrack = (CbmStsTrack*)fTracks->At(iTrack);
78 fFitter->DoFit(pTrack);
79 }
80
81 fTimer.Stop();
82 if ( fVerbose )
83 cout << "+ " << setw(15) << left << fName << ": " << setprecision(4)
84 << setw(8) << fixed << right << fTimer.RealTime()
85 << " s, tracks fitted " << nTracks << endl;
86
87 fNEvents++;
88 fTime += fTimer.RealTime();
89 fNTracks += Double_t(nTracks);
90
91}
92// -------------------------------------------------------------------------
93
94
95
96// ----- Virtual private method Init -------------- --------------------
98
99 // Check for Track fitter
100 if (! fFitter) {
101 cout << "-E- CbmStsFitTracks: No track fitter selected!" << endl;
102 return kERROR;
103 }
104
105 // Get and check FairRootManager
106 FairRootManager* ioman = FairRootManager::Instance();
107 if (! ioman) {
108 cout << "-E- CbmStsFitTracks::Init: "
109 << "RootManager not instantised!" << endl;
110 return kFATAL;
111 }
112
113 // Get StsTrack array
114 fTracks = (TClonesArray*) ioman->GetObject("StsTrack"); //=>SG
115 if ( ! fTracks) {
116 cout << "-E- CbmStsFitTracks::Init: No StsTrack array!"
117 << endl;
118 return kERROR;
119 }
120
121 // Call the Init method of the track fitter
122 fFitter->Init();
123
124 return kSUCCESS;
125
126}
127// -------------------------------------------------------------------------
128
129
130// ----- Virtual private method Finish ---------------------------------
132
133 cout << endl;
134 cout << "============================================================"
135 << endl;
136 cout << "===== " << GetName() << ": Run summary " << endl;
137 cout << "===== " << endl;
138 cout << "===== Good events : " << setw(6) << fNEvents << endl;
139 cout << "===== Failed events : " << setw(6) << fNFailed << endl;
140 cout << "===== Average time : " << setprecision(4) << setw(8) << right
141 << fTime / Double_t(fNEvents) << " s" << endl;
142 cout << "===== " << endl;
143 cout << "===== Fitted tracks per event : " << fixed << setprecision(0)
144 << fNTracks / Double_t(fNEvents) << endl;
145 cout << "============================================================"
146 << endl;
147
148}
149// -------------------------------------------------------------------------
virtual void Finish()
virtual InitStatus Init()
virtual void Exec(Option_t *opt)
virtual ~CbmStsFitTracks()
virtual Int_t DoFit(CbmStsTrack *pTrack, Int_t pidHypo=211)=0
virtual void Init()