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

#include <PndGapEventBuilderTask.h>

Inheritance diagram for PndGapEventBuilderTask:

Public Member Functions

 PndGapEventBuilderTask ()
 
virtual ~PndGapEventBuilderTask ()
 
virtual void SetParContainers ()
 
virtual InitStatus Init ()
 
virtual InitStatus ReInit ()
 
virtual void Exec (Option_t *opt)
 
virtual void FinishEvent ()
 
void SetTimeGap (double val)
 
void SetBranchName (TString name)
 
void AddAdditionalBranches (TString branchName, Double_t timeWindow)
 
void SetPersistence (Bool_t val)
 

Private Member Functions

void Register ()
 
void Reset ()
 
void ProduceHits ()
 
 ClassDef (PndGapEventBuilderTask, 1)
 

Private Attributes

int fEventNr
 
double fTimeGap
 
TString fMainBranchName
 
TClonesArray * fMainHitArray
 
TClonesArray * fMainEventHitArray
 
std::vector< std::pair
< TString, Double_t > > 
fAddBranches
 
std::vector< TClonesArray * > fAddHitArray
 
std::vector< TClonesArray * > fAddEventHitArray
 
Bool_t fInitDone
 
Bool_t fPersistence
 
BinaryFunctor * fStartFunctor
 
BinaryFunctor * fStopFunctor
 
BinaryFunctor * fTimeGapFunctor
 
Int_t fEntryNr
 

Detailed Description

Definition at line 12 of file PndGapEventBuilderTask.h.

Constructor & Destructor Documentation

PndGapEventBuilderTask::PndGapEventBuilderTask ( )

Definition at line 18 of file PndGapEventBuilderTask.cxx.

18  :
19  FairTask("Pnd Gap Event Builder"), fTimeGap(10), fMainBranchName(), fPersistence(kTRUE), fEntryNr(0)
20 {
21 }
PndGapEventBuilderTask::~PndGapEventBuilderTask ( )
virtual

Definition at line 23 of file PndGapEventBuilderTask.cxx.

24 {
25 }

Member Function Documentation

void PndGapEventBuilderTask::AddAdditionalBranches ( TString  branchName,
Double_t  timeWindow 
)
inline

Definition at line 30 of file PndGapEventBuilderTask.h.

References fAddBranches, and val.

30  {
31  std::pair<TString, Double_t> val(branchName, timeWindow);
32  fAddBranches.push_back(val);
33  }
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
std::vector< std::pair< TString, Double_t > > fAddBranches
PndGapEventBuilderTask::ClassDef ( PndGapEventBuilderTask  ,
 
)
private
void PndGapEventBuilderTask::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 75 of file PndGapEventBuilderTask.cxx.

References Double_t, fAddBranches, fAddEventHitArray, fAddHitArray, fEntryNr, fMainBranchName, fMainEventHitArray, fMainHitArray, fStartFunctor, fStopFunctor, fTimeGap, fTimeGapFunctor, fVerbose, and i.

76 {
77  fMainHitArray->Delete();
78  fMainEventHitArray->Delete();
79  for (size_t i = 0; i < fAddHitArray.size(); i++){
80  fAddEventHitArray[i]->Delete();
81  }
82 
83 
84 
85  fMainHitArray = FairRootManager::Instance()->GetData(fMainBranchName, fTimeGapFunctor, fTimeGap);
86 
87  if (++fEntryNr % 1000 == 0 && fVerbose > 0) {
88  std::cout << "-I- PndGapEventBuilderTask:Exec " << fEntryNr << std::endl;
89  }
90 
91 
92  fMainEventHitArray->AbsorbObjects(fMainHitArray);
93 
94 
95 
96  if (fMainEventHitArray->GetEntriesFast() > 0 && fAddHitArray.size() > 0){
97 
98  FairTimeStamp* data = (FairTimeStamp*)fMainEventHitArray->At(0);
99  Double_t startTime = data->GetTimeStamp() - 10;
100  if (startTime < 0) startTime = 0;
101 
102  data = (FairTimeStamp*)fMainEventHitArray->At(fMainEventHitArray->GetEntriesFast() - 1);
103  Double_t stopTime = data->GetTimeStamp();
104 
105  for (size_t i = 0; i < fAddHitArray.size(); i++){
106  TClonesArray* tempArray = FairRootManager::Instance()->GetData(fAddBranches[i].first, fStartFunctor, startTime, fStopFunctor, stopTime + fAddBranches[i].second);
107  fAddEventHitArray[i]->AbsorbObjects(tempArray);
108  }
109  }
110 
111 }
int fVerbose
Definition: poormantracks.C:24
Int_t i
Definition: run_full.C:25
std::vector< TClonesArray * > fAddEventHitArray
std::vector< std::pair< TString, Double_t > > fAddBranches
std::vector< TClonesArray * > fAddHitArray
Double_t
void PndGapEventBuilderTask::FinishEvent ( )
virtual

Definition at line 113 of file PndGapEventBuilderTask.cxx.

114 {
115 // fMainEventHitArray->Delete();
116 }
InitStatus PndGapEventBuilderTask::Init ( )
virtual

Definition at line 40 of file PndGapEventBuilderTask.cxx.

References fAddBranches, fAddEventHitArray, fAddHitArray, fInitDone, fMainBranchName, fMainEventHitArray, fMainHitArray, fPersistence, fStartFunctor, fStopFunctor, fTimeGapFunctor, i, and TString.

41 {
42  FairRootManager* ioman = FairRootManager::Instance();
43 
44  if ( ! ioman )
45  {
46  std::cout << "-E- PndGapEventBuilderTask::Init: "
47  << "RootManager not instantiated!" << std::endl;
48  return kFATAL;
49  }
50 
51  TString outputName = fMainBranchName;
52  outputName.Append("_event");
53  fMainHitArray = (TClonesArray*) FairRootManager::Instance()->GetObject(fMainBranchName);
54  std::cout << "ClassName of HitArray: " << fMainHitArray->ClassName() << std::endl;
55  fMainEventHitArray = ioman->Register(outputName.Data(), fMainHitArray->GetClass()->GetName(), "EventData", fPersistence);
56 
57  for (size_t i = 0; i < fAddBranches.size(); i++){
58  outputName = fAddBranches[i].first;
59  fAddHitArray.push_back((TClonesArray*)ioman->GetObject(outputName.Data()));
60  outputName.Append("_event");
61  fAddEventHitArray.push_back(ioman->Register(outputName.Data(), fAddHitArray[i]->GetClass()->GetName(), "EventData", fPersistence));
62  }
63 
64  fStartFunctor = new StopTime();
65  fStopFunctor= new StopTime();
66  fTimeGapFunctor = new TimeGap();
67 
68  std::cout << "-I- PndGapEventBuilderTask: Initialisation successfull" << std::endl;
69  fInitDone = kTRUE;
70  return kSUCCESS;
71 }
Int_t i
Definition: run_full.C:25
std::vector< TClonesArray * > fAddEventHitArray
std::vector< std::pair< TString, Double_t > > fAddBranches
std::vector< TClonesArray * > fAddHitArray
void PndGapEventBuilderTask::ProduceHits ( )
private
void PndGapEventBuilderTask::Register ( )
private
InitStatus PndGapEventBuilderTask::ReInit ( )
virtual

Definition at line 33 of file PndGapEventBuilderTask.cxx.

34 {
35  InitStatus stat=kSUCCESS;
36  return stat;
37 }
void PndGapEventBuilderTask::Reset ( )
private
void PndGapEventBuilderTask::SetBranchName ( TString  name)
inline

Definition at line 28 of file PndGapEventBuilderTask.h.

References fMainBranchName, and name.

TString name
void PndGapEventBuilderTask::SetParContainers ( )
virtual

Virtual method Init

Definition at line 27 of file PndGapEventBuilderTask.cxx.

28 {
29  //FairRuntimeDb* rtdb = FairRunAna::Instance()->GetRuntimeDb(); //[R.K. 01/2017] unused variable?
30 // fSttParameters = (PndGeoSttPar*) rtdb->getContainer("PndGeoSttPar");
31 }
void PndGapEventBuilderTask::SetPersistence ( Bool_t  val)
inline

Definition at line 35 of file PndGapEventBuilderTask.h.

References fPersistence, and val.

35 { fPersistence = val;};
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
void PndGapEventBuilderTask::SetTimeGap ( double  val)
inline

Definition at line 27 of file PndGapEventBuilderTask.h.

References fTimeGap, and val.

27 {fTimeGap = val;}
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11

Member Data Documentation

std::vector<std::pair<TString, Double_t> > PndGapEventBuilderTask::fAddBranches
private

Definition at line 47 of file PndGapEventBuilderTask.h.

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

std::vector<TClonesArray*> PndGapEventBuilderTask::fAddEventHitArray
private

Definition at line 49 of file PndGapEventBuilderTask.h.

Referenced by Exec(), and Init().

std::vector<TClonesArray*> PndGapEventBuilderTask::fAddHitArray
private

Definition at line 48 of file PndGapEventBuilderTask.h.

Referenced by Exec(), and Init().

Int_t PndGapEventBuilderTask::fEntryNr
private

Definition at line 58 of file PndGapEventBuilderTask.h.

Referenced by Exec().

int PndGapEventBuilderTask::fEventNr
private

Definition at line 35 of file PndGapEventBuilderTask.h.

Bool_t PndGapEventBuilderTask::fInitDone
private

Definition at line 51 of file PndGapEventBuilderTask.h.

Referenced by Init().

TString PndGapEventBuilderTask::fMainBranchName
private

Definition at line 43 of file PndGapEventBuilderTask.h.

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

TClonesArray* PndGapEventBuilderTask::fMainEventHitArray
private

Definition at line 45 of file PndGapEventBuilderTask.h.

Referenced by Exec(), and Init().

TClonesArray* PndGapEventBuilderTask::fMainHitArray
private

Definition at line 44 of file PndGapEventBuilderTask.h.

Referenced by Exec(), and Init().

Bool_t PndGapEventBuilderTask::fPersistence
private

Definition at line 52 of file PndGapEventBuilderTask.h.

Referenced by Init(), and SetPersistence().

BinaryFunctor* PndGapEventBuilderTask::fStartFunctor
private

Definition at line 54 of file PndGapEventBuilderTask.h.

Referenced by Exec(), and Init().

BinaryFunctor* PndGapEventBuilderTask::fStopFunctor
private

Definition at line 55 of file PndGapEventBuilderTask.h.

Referenced by Exec(), and Init().

double PndGapEventBuilderTask::fTimeGap
private

Definition at line 42 of file PndGapEventBuilderTask.h.

Referenced by Exec(), and SetTimeGap().

BinaryFunctor* PndGapEventBuilderTask::fTimeGapFunctor
private

Definition at line 56 of file PndGapEventBuilderTask.h.

Referenced by Exec(), and Init().


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