FairRoot/PandaRoot
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PndBranchBurstBuilder_timeCut_STB Class Reference

#include <PndBranchBurstBuilder_timeCut_STB.h>

Inheritance diagram for PndBranchBurstBuilder_timeCut_STB:
PndBranchBurstBuilder

Public Member Functions

 PndBranchBurstBuilder_timeCut_STB ()
 
virtual ~PndBranchBurstBuilder_timeCut_STB ()
 
virtual InitStatus Init ()
 
virtual TClonesArray * GetBurstData (size_t branchNum)
 
void SetTimePeriod (double val)
 
virtual void FinishTask ()
 
virtual void Exec (Option_t *opt)
 
void SetOutputPrefix (TString prefix)
 
void AddInputBranch (TString branchName)
 
void SetPersistence (Bool_t val)
 

Protected Member Functions

 ClassDef (PndBranchBurstBuilder_timeCut_STB, 0)
 
 ClassDef (PndBranchBurstBuilder, 0)
 

Protected Attributes

double fTimePeriod
 
double fBurstNum
 
bool fWriteOut
 
std::vector< TClonesArray * > fTempArrays
 
std::vector< TStringfInBranchNames
 
std::vector< TClonesArray * > fInArrays
 
std::vector< TClonesArray * > fOutArrays
 
TString fOutputPrefix
 
Bool_t fPersistence
 

Detailed Description

Definition at line 28 of file PndBranchBurstBuilder_timeCut_STB.h.

Constructor & Destructor Documentation

PndBranchBurstBuilder_timeCut_STB::PndBranchBurstBuilder_timeCut_STB ( )
PndBranchBurstBuilder_timeCut_STB::~PndBranchBurstBuilder_timeCut_STB ( )
virtual

Destructor

Definition at line 34 of file PndBranchBurstBuilder_timeCut_STB.cxx.

35 {
36 }

Member Function Documentation

void PndBranchBurstBuilder::AddInputBranch ( TString  branchName)
inlineinherited

Definition at line 58 of file PndBranchBurstBuilder.h.

References PndBranchBurstBuilder::fInBranchNames.

58 { fInBranchNames.push_back(branchName);};
std::vector< TString > fInBranchNames
PndBranchBurstBuilder_timeCut_STB::ClassDef ( PndBranchBurstBuilder_timeCut_STB  ,
 
)
protected
PndBranchBurstBuilder::ClassDef ( PndBranchBurstBuilder  ,
 
)
protectedinherited
void PndBranchBurstBuilder::Exec ( Option_t *  opt)
virtualinherited

Virtual method Exec

Definition at line 74 of file PndBranchBurstBuilder.cxx.

References PndBranchBurstBuilder::fInBranchNames, PndBranchBurstBuilder::fOutArrays, PndBranchBurstBuilder::GetBurstData(), and i.

75 {
76 
77  for (size_t i = 0; i < fInBranchNames.size(); i++) {
78 
79  fOutArrays[i]->Delete(); // make sure data written out from old events are deleted
80  fOutArrays[i]->AbsorbObjects(GetBurstData(i));
81 
82  }
83 
84 }
std::vector< TString > fInBranchNames
std::vector< TClonesArray * > fOutArrays
Int_t i
Definition: run_full.C:25
virtual TClonesArray * GetBurstData(size_t inBranchNum)=0
void PndBranchBurstBuilder_timeCut_STB::FinishTask ( )
virtual

Virtual method Exec

Definition at line 84 of file PndBranchBurstBuilder_timeCut_STB.cxx.

References PndBranchBurstBuilder::fInBranchNames, PndBranchBurstBuilder::fOutArrays, fTempArrays, and i.

85 {
86  // write out the data collected for a maybe last and uncomplete Burst
87 
88  for (size_t i =0; i < fInBranchNames.size();i++){
89  fOutArrays[i]->Delete(); // make sure data written out from old events are deleted
90  fOutArrays[i]->AbsorbObjects(fTempArrays[i]);
91  }
92  FairRootManager::Instance()->SetLastFill();
93 
94 }
std::vector< TString > fInBranchNames
std::vector< TClonesArray * > fOutArrays
Int_t i
Definition: run_full.C:25
TClonesArray * PndBranchBurstBuilder_timeCut_STB::GetBurstData ( size_t  branchNum)
virtual

Implements PndBranchBurstBuilder.

Definition at line 53 of file PndBranchBurstBuilder_timeCut_STB.cxx.

References At, fBurstNum, PndBranchBurstBuilder::fInArrays, fTempArrays, fTimePeriod, fWriteOut, GetEntriesFast(), and i.

54 {
55 
56  TClonesArray* emptyArray = new TClonesArray(fInArrays[branchNum]->GetClass()->GetName());
57  double timeStamp;
58 
59  if (branchNum==0) { //only the "master branch" is controling the writeout to ensure synchron writeouts
60  fWriteOut = false;
61  if (fInArrays[branchNum]->GetEntriesFast()>0) {
62  fWriteOut = true; //set potential writeout
63  for (int i = 0; i< fInArrays[branchNum]->GetEntriesFast(); i++){ // loop over all timestamps of the event
64  timeStamp = ((FairTimeStamp*)fInArrays[branchNum]->At(i))->GetTimeStamp(); // access the timestamps
65  if (timeStamp < fBurstNum*fTimePeriod+fTimePeriod){ // if at least one timestamp is within the Range
66  fWriteOut = false; // deactivate the WriteOut
67  break; // save computing time and break the loop
68  }
69  }
70  }
71  if (fWriteOut == true) fBurstNum++; // increase the Burst number for the next Burst
72 
73  } // masterBranch end
74 
75  if (fWriteOut == true){
76  emptyArray->AbsorbObjects(fTempArrays[branchNum]); // prepare writeOut and "clear" the temporary buffer arrays
77  }
78  fTempArrays[branchNum]->AbsorbObjects(fInArrays[branchNum]); //absorb data into buffer
79 
80  return emptyArray; // writeout empty or Data array.
81 }
Int_t i
Definition: run_full.C:25
cout<< "POINTs for new FwEndCap == "<< tsim-> GetEntriesFast()
std::vector< TClonesArray * > fInArrays
cout<<"the Event No is "<< i<< endl;{{if(hit_array->GetEntriesFast()!=mc_array->GetEntriesFast()) continue;PndSdsHit *hit=(PndSdsHit *) hit_array-> At(j)
Definition: anaLmdCluster.C:71
InitStatus PndBranchBurstBuilder_timeCut_STB::Init ( )
virtual

Virtual method Init

Reimplemented from PndBranchBurstBuilder.

Definition at line 40 of file PndBranchBurstBuilder_timeCut_STB.cxx.

References PndBranchBurstBuilder::fInArrays, PndBranchBurstBuilder::fInBranchNames, fTempArrays, i, PndBranchBurstBuilder::Init(), and status.

41 {
42 
43  InitStatus status = PndBranchBurstBuilder::Init();
44 
45  for (size_t i =0; i < fInBranchNames.size();i++){
46  fTempArrays.push_back(new TClonesArray(fInArrays[i]->GetClass()->GetName()));
47  }
48 
49  return status;
50 }
std::vector< TString > fInBranchNames
Int_t i
Definition: run_full.C:25
std::vector< TClonesArray * > fInArrays
virtual InitStatus Init()
int status[10]
Definition: f_Init.h:28
void PndBranchBurstBuilder::SetOutputPrefix ( TString  prefix)
inlineinherited

Definition at line 56 of file PndBranchBurstBuilder.h.

References PndBranchBurstBuilder::fOutputPrefix.

56 {fOutputPrefix=prefix;};
void PndBranchBurstBuilder::SetPersistence ( Bool_t  val)
inlineinherited

Definition at line 61 of file PndBranchBurstBuilder.h.

References PndBranchBurstBuilder::fPersistence, and val.

61 { fPersistence = val;};
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
void PndBranchBurstBuilder_timeCut_STB::SetTimePeriod ( double  val)
inline

Definition at line 47 of file PndBranchBurstBuilder_timeCut_STB.h.

References fTimePeriod, and val.

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

Member Data Documentation

double PndBranchBurstBuilder_timeCut_STB::fBurstNum
protected
std::vector<TClonesArray*> PndBranchBurstBuilder::fInArrays
protectedinherited
std::vector<TString> PndBranchBurstBuilder::fInBranchNames
protectedinherited
std::vector<TClonesArray*> PndBranchBurstBuilder::fOutArrays
protectedinherited
TString PndBranchBurstBuilder::fOutputPrefix
protectedinherited
Bool_t PndBranchBurstBuilder::fPersistence
protectedinherited
std::vector<TClonesArray*> PndBranchBurstBuilder_timeCut_STB::fTempArrays
protected

Definition at line 64 of file PndBranchBurstBuilder_timeCut_STB.h.

Referenced by FinishTask(), GetBurstData(), and Init().

double PndBranchBurstBuilder_timeCut_STB::fTimePeriod
protected
bool PndBranchBurstBuilder_timeCut_STB::fWriteOut
protected

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