CbmRoot
Loading...
Searching...
No Matches
CbmEcalTrackingMuch.cxx
Go to the documentation of this file.
1/* Copyright (C) 2011-2016 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Volker Friese [committer], Florian Uhlig */
4
6
7#include "CbmEcalInf.h"
8#include "CbmEcalStructure.h"
10#include "CbmStsTrack.h"
11#include "FairRootManager.h"
12#include "FairTrackParam.h"
13#include "TClonesArray.h"
14
15#include <iostream>
16
17using std::cerr;
18using std::cout;
19using std::endl;
20using std::list;
21
24{
25 Int_t n = fStsTracks->GetEntriesFast();
26 Int_t i = 0;
27 CbmStsTrack* tr;
28 FairTrackParam tpar;
29
30 fTrackPar->Clear();
31 for (; i < n; i++) {
32 tr = (CbmStsTrack*) fStsTracks->At(i);
33 if (!tr) continue;
34 fFitter->Extrapolate(tr, fCaloZ, &tpar);
35 new ((*fTrackPar)[i]) FairTrackParam(tpar);
36 }
37}
38
39
40CbmEcalTrackingMuch::CbmEcalTrackingMuch(const char* name, const Int_t iVerbose)
41 : FairTask(name, iVerbose)
42 , fStsTracks(NULL)
43 , fStr(NULL)
44 , fInf(NULL)
45 , fCaloZ(0.)
46 , fFitter(NULL)
47 , fTrackPar(NULL)
48{
49}
50
53{
54 FairRootManager* fManager = FairRootManager::Instance();
55 if (!fManager) {
56 Fatal("Init", "Can't find a Root Manager.");
57 return kFATAL;
58 }
59 fStsTracks = (TClonesArray*) fManager->GetObject("StsTrack");
60 if (!fStsTracks) {
61 Fatal("Init", "Can't find an array of STS tracks.");
62 return kFATAL;
63 }
64 fStr = (CbmEcalStructure*) fManager->GetObject("EcalStructure");
65 if (!fStr) {
66 Fatal("Init", "Can't find calorimeter structure in the system");
67 return kFATAL;
68 }
69 fTrackPar = new TClonesArray("FairTrackParam", 3000);
70 fManager->Register("EcalTrackParam", "ECAL", fTrackPar, IsOutputBranchPersistent("EcalTrackParam"));
72 fInf = fStr->GetEcalInf();
73 fCaloZ = fInf->GetZPos();
74
75 return kSUCCESS;
76}
77
80{
81 fTrackPar->Delete();
82 delete fTrackPar;
83 delete fFitter;
84}
85
ClassImp(CbmConverterManager)
Data class for STS tracks.
virtual InitStatus Init()
CbmEcalStructure * fStr
CbmStsKFTrackFitter * fFitter
virtual void Exec(Option_t *option)
void Extrapolate(CbmStsTrack *track, Double_t z, FairTrackParam *e_track)