BmnRoot
Loading...
Searching...
No Matches
CbmEcalTrackExtrapolationKF.cxx
Go to the documentation of this file.
1
2#include <iostream>
3
4#include "TClonesArray.h"
5
6#include "CbmEcalStructure.h"
7#include "CbmEcalInf.h"
8#include "FairTrackParam.h"
9#include "CbmMCTrack.h"
10#include "CbmKFTrack.h"
11#include "CbmStsTrack.h"
12#include "CbmGlobalTrack.h"
13#include "CbmStsKFTrackFitter.h"
14#include "FairTrackParam.h"
15#include "FairRootManager.h"
17
18using namespace std;
19
20// ----- Default constructor -------------------------------------------
22 : CbmEcalTrackExtrapolation(1), fTrackParamArray(NULL), fSTSArray(NULL), iEx(-1)
23{
24 ;
25}
26// -------------------------------------------------------------------------
27
28
29
30// ----- Standard constructor ------------------------------------------
32 : CbmEcalTrackExtrapolation(verbose), fTrackParamArray(NULL), fSTSArray(NULL), iEx(-1)
33{
34 ;
35}
36// -------------------------------------------------------------------------
37
38
39
40// ----- Destructor ----------------------------------------------------
45// -------------------------------------------------------------------------
46
47
48
49// ----- Public method Init --------------------------------------------
51{
52 CbmEcalTrackExtrapolation::Init();
53 //Get and check FairRootManager
54 FairRootManager* ioman=FairRootManager::Instance();
55 if (!ioman)
56 Fatal("CbmEcalTrackExtrapolationKF::Init()", "Can't instantise Rootmanager");
57
58 //Get STS track array
59 fSTSArray=(TClonesArray*)ioman->GetObject("StsTrack");
60 if (!fSTSArray)
61 cout << "-W- CbmEcalTrackExtrapolationKF::Init: No sts track array!" << endl;
62}
63// -------------------------------------------------------------------------
64
65
66
67// ----- Public method DoExtrapolate ------------------------------------------
68Int_t CbmEcalTrackExtrapolationKF::DoExtrapolate(TClonesArray *gTrackArray, TClonesArray *fTrackParamArray_)
69{
70 if (!fTrackParamArray_)
71 {
72 cout << "-E- CbmEcalTrackExtrapolationKF::DoExtrapolate: ";
73 cout << "TrackParamArray missing! " << endl;
74 return -1;
75 }
76
77 if (!gTrackArray)
78 {
79 cout << "-E- CbmEcalTrackExtrapolationKF::DoExtrapolate: ";
80 cout << "Track Array missing! " << endl;
81 return -1;
82 }
83 Int_t nTr=0;
84 Int_t i=0;
85 Int_t n=gTrackArray->GetEntriesFast();
87 CbmKFTrack kfTr;
88 FairTrackParam trpar;
89 for(;i<n;i++)
90 {
91 Map()[nTr]=-1111;
92 tr=(CbmGlobalTrack*)gTrackArray->At(i);
93 if (!tr) continue;
94 if (tr->GetStsTrackIndex()<0||tr->GetTrdTrackIndex()<0)
95 continue;
96 kfTr.SetTrackParam(*(const_cast<FairTrackParam*>(tr->GetParamLast())));
97 kfTr.Extrapolate(Str()->GetEcalInf()->GetZPos());
98 kfTr.GetTrackParam(trpar);
99 Map()[nTr]=i;
100 new ((*fTrackParamArray_)[nTr++]) FairTrackParam(trpar);
101 }
102
103 return nTr;
104}
105// -------------------------------------------------------------------------
106
107
108// ----- Public method Finish ------------------------------------------
113//-----------------------------------------------------------------------------------
int i
Definition P4_F32vec4.h:22
virtual Int_t DoExtrapolate(TClonesArray *gTrackArray, TClonesArray *fTrackParamArray)
const FairTrackParam * GetParamLast() const
Int_t GetTrdTrackIndex() const
Int_t GetStsTrackIndex() const
Int_t Extrapolate(Double_t z, Double_t *QP0=0, Bool_t line=false)
Access to i-th hit.
void SetTrackParam(FairTrackParam &track)
void GetTrackParam(FairTrackParam &track)
STL namespace.