FairRoot/PandaRoot
Public Member Functions | Private Member Functions | Private Attributes | List of all members
PndGemIdealPatternRecoTask Class Reference

Task class for track finding. More...

#include <PndGemIdealPatternRecoTask.h>

Inheritance diagram for PndGemIdealPatternRecoTask:

Public Member Functions

 PndGemIdealPatternRecoTask ()
 
virtual ~PndGemIdealPatternRecoTask ()
 
virtual InitStatus Init ()
 
virtual void Exec (Option_t *opt)
 
virtual void SetParContainers ()
 

Private Member Functions

 ClassDef (PndGemIdealPatternRecoTask, 1)
 

Private Attributes

TClonesArray * fGemHitArr
 
TClonesArray * fMCTrackArr
 
TClonesArray * fGemPointArr
 
TClonesArray * fPndTrackCandArr
 

Detailed Description

Task class for track finding.

Author
A.Bubak arkad.nosp@m.iusz.nosp@m..buba.nosp@m.k@gm.nosp@m.ail.c.nosp@m.om
Date
27.01.2008 Ideal Pattern reco task

Definition at line 26 of file PndGemIdealPatternRecoTask.h.

Constructor & Destructor Documentation

PndGemIdealPatternRecoTask::PndGemIdealPatternRecoTask ( )

Default constructor

Definition at line 29 of file PndGemIdealPatternRecoTask.cxx.

References fGemHitArr, fGemPointArr, fMCTrackArr, and fPndTrackCandArr.

29  {
30  fMCTrackArr = NULL;
31  fGemHitArr = NULL;
32  fGemPointArr = NULL;
33  fPndTrackCandArr = NULL;
34 }
PndGemIdealPatternRecoTask::~PndGemIdealPatternRecoTask ( )
virtual

Destructor

Definition at line 44 of file PndGemIdealPatternRecoTask.cxx.

References fGemHitArr, fGemPointArr, fMCTrackArr, and fPndTrackCandArr.

44  {
45  fMCTrackArr->Delete();
46  fGemHitArr->Delete();
47  fGemPointArr->Delete();
48  fPndTrackCandArr->Delete();
49  if(fMCTrackArr != NULL) delete fMCTrackArr;
50  if(fGemHitArr != NULL) delete fGemHitArr;
51  if(fGemPointArr != NULL) delete fGemPointArr;
52  if(fPndTrackCandArr != NULL) delete fPndTrackCandArr;
53 }

Member Function Documentation

PndGemIdealPatternRecoTask::ClassDef ( PndGemIdealPatternRecoTask  ,
 
)
private
void PndGemIdealPatternRecoTask::Exec ( Option_t *  opt)
virtual

Task execution

Definition at line 110 of file PndGemIdealPatternRecoTask.cxx.

References PndTrackCand::AddHit(), fGemHitArr, fGemPointArr, fPndTrackCandArr, PndGemHit::GetPosition(), hit, nhits, npoints, and point.

110  {
111  fPndTrackCandArr->Delete();
112 
113  std::map<int,PndTrackCand*> cands;
114 
115  int nhits = fGemHitArr->GetEntriesFast();
116  int npoints = fGemPointArr->GetEntriesFast();
117  for(int ihit=0;ihit<nhits;++ihit){
118  PndGemHit* gemHit = (PndGemHit*)fGemHitArr->At(ihit);
119  FairHit * hit = gemHit;
120  int index = hit->GetRefIndex();
121  assert(index<npoints);
122  PndGemMCPoint *gemPoint = (PndGemMCPoint*)fGemPointArr->At(index);
123  FairMCPoint *point = gemPoint;
124  int trackId = point->GetTrackID();
125  if(cands[trackId]==NULL) {
126  cands[trackId] = new PndTrackCand;
127  // cands[trackId]->setMcTrackId(trackId);
128  //PndMCTrack *myMCTrack = (PndMCTrack*)fMCTrackArr->At(trackId); //[R.K. 03/2017] unused variable?
129  //int pdg = myMCTrack->GetPdgCode(); //[R.K.02/2017] Unused variable?
130  //double charge; //[R.K. 01/2017] unused variable?
131  //if(pdg<100000000){ //[R.K. 01/2017] unused variable?
132  //charge = TDatabasePDG::Instance()->GetParticle(pdg)->Charge()/3.; //[R.K. 01/2017] unused variable?
133  //} //[R.K. 01/2017] unused variable?
134  //else{ //[R.K. 01/2017] unused variable?
135  //charge = 0.; //[R.K. 01/2017] unused variable?
136  //} //[R.K. 01/2017] unused variable?
137 
138  }
139  cands[trackId]->AddHit(FairRootManager::Instance()->GetBranchId("GEMHit"),ihit,gemHit->GetPosition().Mag());
140  }
141 
142  for(std::map<int,PndTrackCand*>::iterator iter=cands.begin();
143  iter!=cands.end();++iter){
144  int nentries = fPndTrackCandArr->GetEntriesFast();
145  if(iter->second->GetNHits()>0) new ((*fPndTrackCandArr)[nentries]) PndTrackCand(*(iter->second));
146  delete iter->second;
147  }
148 }
void AddHit(UInt_t detId, UInt_t hitId, Double_t rho)
TVector3 GetPosition() const
Definition: PndGemHit.h:71
PndSdsMCPoint * hit
Definition: anasim.C:70
PndSdsMCPoint * point
Definition: anaLmdCluster.C:72
InitStatus PndGemIdealPatternRecoTask::Init ( )
virtual

Initialisation at beginning of each event

Definition at line 59 of file PndGemIdealPatternRecoTask.cxx.

References fGemHitArr, fGemPointArr, fMCTrackArr, and fPndTrackCandArr.

59  {
60 
61  // Get and check FairRootManager
62  FairRootManager* ioman = FairRootManager::Instance();
63  if( !ioman ) {
64  std::cout << "-E- PndGemIdealPatternRecoTask::Init: "
65  << "RootManager not instantised!" << std::endl;
66  return kFATAL;
67  }
68 
69  fMCTrackArr = (TClonesArray*) ioman->GetObject("MCTrack");
70  if ( !fMCTrackArr ) {
71  std::cout << "-W- PndGemIdealPatternRecoTask::Init: No MCTrack array!" << std::endl;
72  return kERROR;
73  }
74 
75  fGemPointArr = (TClonesArray*) ioman->GetObject("GEMPoint");
76  if ( !fGemPointArr ) {
77  std::cout << "-W- PndGemIdealPatternRecoTask::Init: No PndGemPoint array!" << std::endl;
78  return kERROR;
79  }
80  fGemHitArr = (TClonesArray*) ioman->GetObject("GEMHit");
81  if ( !fGemHitArr ) {
82  std::cout << "-W- PndGemIdealPatternRecoTask::Init: No PndGemHit array!" << std::endl;
83  return kERROR;
84  }
85 
86  // Create and register GemTrack array
87  fPndTrackCandArr = new TClonesArray("PndTrackCand",100);
88  ioman->Register("GemPndTrackCand", "Gem", fPndTrackCandArr , kTRUE);
89 
90  std::cout << "PndGemIdealPatternRecoTask::Init() finished" << std::endl;
91  return kSUCCESS;
92 
93 }
void PndGemIdealPatternRecoTask::SetParContainers ( )
virtual

SetParContainers

Definition at line 99 of file PndGemIdealPatternRecoTask.cxx.

References rtdb.

99  {
100  FairRunAna* ana = FairRunAna::Instance();
101  FairRuntimeDb* rtdb = ana->GetRuntimeDb();
102  rtdb->getContainer("FairBaseParSet");
103  rtdb->getContainer("PndGeoPassivePar");
104 }
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66

Member Data Documentation

TClonesArray* PndGemIdealPatternRecoTask::fGemHitArr
private

Accessors Set concrete track finder Set use digi or hits Option: "hit/chit/digi", Default: "hit"

Definition at line 62 of file PndGemIdealPatternRecoTask.h.

Referenced by Exec(), Init(), PndGemIdealPatternRecoTask(), and ~PndGemIdealPatternRecoTask().

TClonesArray* PndGemIdealPatternRecoTask::fGemPointArr
private
TClonesArray* PndGemIdealPatternRecoTask::fMCTrackArr
private
TClonesArray* PndGemIdealPatternRecoTask::fPndTrackCandArr
private

The documentation for this class was generated from the following files: