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

#include <PndTrackArrayMerger.h>

Inheritance diagram for PndTrackArrayMerger:

Public Member Functions

 PndTrackArrayMerger ()
 
 PndTrackArrayMerger (TString s)
 
virtual ~PndTrackArrayMerger ()
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual InitStatus ReInit ()
 
virtual void Exec (Option_t *opt)
 
virtual void FinishEvent ()
 
void SetPersistance (Bool_t p=kTRUE)
 
void AddInputBranch (TString s)
 
void SetOutputBranch (TString s)
 
 ClassDef (PndTrackArrayMerger, 1)
 

Private Member Functions

 PndTrackArrayMerger (const PndTrackArrayMerger &L)
 
PndTrackArrayMergeroperator= (const PndTrackArrayMerger &)
 

Private Attributes

Bool_t fPersistance
 
TString fOutputBranch
 Flag if to store. More...
 
TClonesArray * fOutputArray
 
std::vector< TStringfInputBranchList
 
std::vector< TClonesArray * > fInputArrayList
 

Detailed Description

Definition at line 8 of file PndTrackArrayMerger.h.

Constructor & Destructor Documentation

PndTrackArrayMerger::PndTrackArrayMerger ( )

Definition at line 13 of file PndTrackArrayMerger.cxx.

15 {}
TString fOutputBranch
Flag if to store.
std::vector< TString > fInputBranchList
TClonesArray * fOutputArray
std::vector< TClonesArray * > fInputArrayList
PndTrackArrayMerger::PndTrackArrayMerger ( TString  s)

Definition at line 17 of file PndTrackArrayMerger.cxx.

19 {}
TString fOutputBranch
Flag if to store.
std::vector< TString > fInputBranchList
TLorentzVector s
Definition: Pnd2DStar.C:50
TClonesArray * fOutputArray
std::vector< TClonesArray * > fInputArrayList
PndTrackArrayMerger::~PndTrackArrayMerger ( )
virtual

Definition at line 21 of file PndTrackArrayMerger.cxx.

22 {}
PndTrackArrayMerger::PndTrackArrayMerger ( const PndTrackArrayMerger L)
private

Member Function Documentation

void PndTrackArrayMerger::AddInputBranch ( TString  s)
inline

Definition at line 23 of file PndTrackArrayMerger.h.

References fInputBranchList.

23 {fInputBranchList.push_back(s);}
std::vector< TString > fInputBranchList
TLorentzVector s
Definition: Pnd2DStar.C:50
PndTrackArrayMerger::ClassDef ( PndTrackArrayMerger  ,
 
)
void PndTrackArrayMerger::Exec ( Option_t *  opt)
virtual

Definition at line 65 of file PndTrackArrayMerger.cxx.

References fInputArrayList, fInputBranchList, fOutputArray, PndTrack::GetChi2(), PndTrack::GetFlag(), PndTrack::GetNDF(), PndTrack::GetParamFirst(), PndTrack::GetParamLast(), PndTrack::GetPidHypo(), PndTrack::GetTrackCandPtr(), i, and TString.

66 {
67  fOutputArray->Clear();
68  // copy data from input arrays to output array
69  TClonesArray* tmparray;
70  PndTrack* tmptrk;
71  Int_t namenum=0;
72  TString brname;
73  Int_t entries=0;
74 
75 
76  for(std::vector<TClonesArray*>::iterator iter = fInputArrayList.begin(); iter!=fInputArrayList.end();++iter)
77  {
78  tmparray=*iter;
79 #if ROOT_VERSION_CODE >= ROOT_VERSION(5,29,1)
80  // MOVES References into a new TCA
81  // Just from root 5.29.02
82  if (tmparray != 0) {
83  fOutputArray->AbsorbObjects(tmparray, 0, tmparray->GetEntries() - 1);
84  }
85 #else
86  brname=fInputBranchList[namenum];
87  for ( Int_t i=0;i<tmparray->GetEntriesFast();i++)
88  {
89  tmptrk=(PndTrack*)tmparray->At(i);
90  entries=fOutputArray->GetEntriesFast();
91  PndTrack* mynewtrack = new ((*fOutputArray)[entries])
92  PndTrack(tmptrk->GetParamFirst(),tmptrk->GetParamLast(),*(tmptrk->GetTrackCandPtr()),
93  tmptrk->GetFlag(), tmptrk->GetChi2(), tmptrk->GetNDF(),
94  tmptrk->GetPidHypo(),-1,-1);
95  mynewtrack->Reset(); //resetting links
96  for(int nlin=0;nlin<tmptrk->GetNLinks();nlin++)
97  {
98  mynewtrack->AddLink(tmptrk->GetLink(nlin));
99  }
100  }
101  namenum++;
102 #endif
103  }
104 
105  return;
106 }
Int_t i
Definition: run_full.C:25
std::vector< TString > fInputBranchList
Int_t GetFlag() const
Definition: PndTrack.h:33
TClonesArray * fOutputArray
Int_t GetNDF() const
Definition: PndTrack.h:35
FairTrackParP GetParamLast()
Definition: PndTrack.h:50
Double_t GetChi2() const
Definition: PndTrack.h:34
Int_t GetPidHypo() const
Definition: PndTrack.h:32
PndTrackCand * GetTrackCandPtr()
Definition: PndTrack.h:48
std::vector< TClonesArray * > fInputArrayList
FairTrackParP GetParamFirst()
Definition: PndTrack.h:49
void PndTrackArrayMerger::FinishEvent ( )
virtual

Definition at line 108 of file PndTrackArrayMerger.cxx.

109 {
110  // called after all Tasks did their Exex() and the data is copied to the file
111 // fOutputArray->Clear();
112  FinishEvents();
113 }
InitStatus PndTrackArrayMerger::Init ( )
virtual

Definition at line 31 of file PndTrackArrayMerger.cxx.

References fInputArrayList, fInputBranchList, fOutputArray, fOutputBranch, fPersistance, and TString.

32 {
33  FairRootManager* ioman = FairRootManager::Instance();
34  if ( ! ioman )
35  {
36  std::cout << "-E- PndSdsStripHitProducer::Init: "
37  << "RootManager not instantiated!" << std::endl;
38  return kFATAL;
39  }
40 
41  //setup input arrays
42  TClonesArray* tmparray;
43  for(std::vector<TString>::iterator iter = fInputBranchList.begin(); iter!=fInputBranchList.end();++iter)
44  {
45  tmparray = (TClonesArray*) ioman->GetObject((*iter).Data());
46  if ( ! tmparray )
47  {
48  Error("Init()","No %s array! Skipping that name.",(*iter).Data());
49  continue;
50  }
51  TString namebuff = (TString) tmparray->GetClass()->GetName();
52  if(namebuff == "PndTrack"){
53  fInputArrayList.push_back(tmparray);
54  }
55  }
56 
57  //setup output array
58  fOutputArray = ioman->Register(fOutputBranch, "PndTrack", "AllTracks", fPersistance);
59  //fOutputArray = new TClonesArray("PndTrack");
60  // ioman->Register(fOutputBranch, "AllTracks", fOutputArray, fPersistance);
61 
62  return kSUCCESS;
63 }
TString fOutputBranch
Flag if to store.
std::vector< TString > fInputBranchList
TClonesArray * fOutputArray
std::vector< TClonesArray * > fInputArrayList
PndTrackArrayMerger& PndTrackArrayMerger::operator= ( const PndTrackArrayMerger )
inlineprivate

Definition at line 34 of file PndTrackArrayMerger.h.

34 {return *this;}
InitStatus PndTrackArrayMerger::ReInit ( )
virtual

Definition at line 27 of file PndTrackArrayMerger.cxx.

28 {return kSUCCESS;}
void PndTrackArrayMerger::SetOutputBranch ( TString  s)
inline

Definition at line 24 of file PndTrackArrayMerger.h.

References fOutputBranch, and s.

24 {fOutputBranch = s;}
TString fOutputBranch
Flag if to store.
TLorentzVector s
Definition: Pnd2DStar.C:50
void PndTrackArrayMerger::SetParContainers ( )
virtual

Definition at line 24 of file PndTrackArrayMerger.cxx.

25 {return;}
void PndTrackArrayMerger::SetPersistance ( Bool_t  p = kTRUE)
inline

Definition at line 22 of file PndTrackArrayMerger.h.

References fPersistance, and p.

22 {fPersistance = p;}
Double_t p
Definition: anasim.C:58

Member Data Documentation

std::vector<TClonesArray*> PndTrackArrayMerger::fInputArrayList
private

Definition at line 31 of file PndTrackArrayMerger.h.

Referenced by Exec(), and Init().

std::vector<TString> PndTrackArrayMerger::fInputBranchList
private

Definition at line 30 of file PndTrackArrayMerger.h.

Referenced by AddInputBranch(), Exec(), and Init().

TClonesArray* PndTrackArrayMerger::fOutputArray
private

Definition at line 29 of file PndTrackArrayMerger.h.

Referenced by Exec(), and Init().

TString PndTrackArrayMerger::fOutputBranch
private

Flag if to store.

Definition at line 28 of file PndTrackArrayMerger.h.

Referenced by Init(), and SetOutputBranch().

Bool_t PndTrackArrayMerger::fPersistance
private

Definition at line 27 of file PndTrackArrayMerger.h.

Referenced by Init(), and SetPersistance().


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