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

#include <PndTimeOffsetFinderTask.h>

Inheritance diagram for PndTimeOffsetFinderTask:

Public Member Functions

 PndTimeOffsetFinderTask ()
 
 PndTimeOffsetFinderTask (const char *name)
 
 PndTimeOffsetFinderTask (TString inputBranch, TString outputBranch, TString folderName)
 
virtual ~PndTimeOffsetFinderTask ()
 
virtual InitStatus Init ()
 
virtual InitStatus ReInit ()
 
virtual void Exec (Option_t *opt)
 
virtual void FinishEvent ()
 
virtual void FinishTask ()
 
virtual void SetParContainers ()
 
void SetStartTime (Double_t val)
 
void SetTerminateTime (Double_t val)
 
void SetInputBranch (TString val)
 
void SetStartIndex (Int_t val)
 
void SetPersistance (Bool_t p=kTRUE)
 
Bool_t GetPersistance ()
 

Protected Member Functions

 ClassDef (PndTimeOffsetFinderTask, 2)
 

Protected Attributes

Bool_t fPersistance
 
TString fInputBranch
 
TClonesArray * fInputArray
 
TString fOutputBranch
 
TString fFolder
 
TClonesArray * fOutputArray
 
Int_t fEntryNr
 
BinaryFunctor * fFunctor
 
Double_t fLastTimeStamp
 
Double_t fTimeOffset
 
Double_t fTerminateTime
 
Bool_t fFirstExecute
 
Int_t fStartIndex
 
TH1D * fHc0c1
 
TH1D * fHc0c2
 
TH1D * fHc0c3
 
TH1D * fHc1c2
 
TH1D * fHc1c3
 
TH1D * fHc2c3
 

Detailed Description

Definition at line 27 of file PndTimeOffsetFinderTask.h.

Constructor & Destructor Documentation

PndTimeOffsetFinderTask::PndTimeOffsetFinderTask ( )
inline

Default constructor

Definition at line 32 of file PndTimeOffsetFinderTask.h.

References SetVerbose().

32  :
33  FairTask("TimeOffsetFinderTask"),
34  fPersistance(kTRUE),
35  fInputBranch("MVDHitsPixel"),
36  fInputArray(0),
37  fOutputBranch(),
38  fFolder(),
39  fOutputArray(0),
40  fEntryNr(0),
41  fFunctor(new StopTime()),
42  fLastTimeStamp(0),
43  fTimeOffset(100000000),
44  fTerminateTime(0),
45  fFirstExecute(kTRUE),
46  fStartIndex(0)
47  {
48  SetVerbose(0);
49  }
drchit SetVerbose(iVerbose)
PndTimeOffsetFinderTask::PndTimeOffsetFinderTask ( const char *  name)
inline

Named constructor

Definition at line 52 of file PndTimeOffsetFinderTask.h.

References SetVerbose().

52  :
53  FairTask(name),
54  fPersistance(kTRUE),
55  fInputBranch("MVDHitsPixel"),
56  fInputArray(0),
57  fOutputBranch(),
58  fFolder(),
59  fOutputArray(0),
60  fEntryNr(0),
61  fFunctor(new StopTime()),
62  fLastTimeStamp(0),
63  fTimeOffset(100000000),
64  fTerminateTime(0),
65  fFirstExecute(kTRUE),
66  fStartIndex(0)
67  {
68  SetVerbose(0);
69  }
TString name
drchit SetVerbose(iVerbose)
PndTimeOffsetFinderTask::PndTimeOffsetFinderTask ( TString  inputBranch,
TString  outputBranch,
TString  folderName 
)
inline

Definition at line 71 of file PndTimeOffsetFinderTask.h.

References SetVerbose().

71  :
72  FairTask("Sorter"),
73  fPersistance(kTRUE),
74  fInputBranch(inputBranch),
75  fInputArray(0),
76  fOutputBranch(outputBranch),
77  fFolder(folderName),
78  fOutputArray(0),
79  fEntryNr(0),
80  fFunctor(new StopTime()),
81  fLastTimeStamp(0),
82  fTimeOffset(100000000),
83  fTerminateTime(0),
84  fFirstExecute(kTRUE),
85  fStartIndex(0)
86  {
87  SetVerbose(0);
88  }
drchit SetVerbose(iVerbose)
virtual PndTimeOffsetFinderTask::~PndTimeOffsetFinderTask ( )
inlinevirtual

Destructor

Definition at line 91 of file PndTimeOffsetFinderTask.h.

91  {
92  }

Member Function Documentation

PndTimeOffsetFinderTask::ClassDef ( PndTimeOffsetFinderTask  ,
 
)
protected
void PndTimeOffsetFinderTask::Exec ( Option_t *  opt)
virtual

Virtual method Exec

Definition at line 71 of file PndTimeOffsetFinderTask.cxx.

References fEntryNr, fFunctor, fHc0c1, fHc0c2, fHc0c3, fHc1c2, fHc1c3, fHc2c3, fInputArray, fInputBranch, fLastTimeStamp, fTerminateTime, fTimeOffset, PndSdsHit::GetSensorID(), and i.

72 {
73  if (FairRunAna::Instance()->IsTimeStamp() != kTRUE){
74  std::cout << "-E- PndTimeOffsetFinderTask::Exec not running in time based mode." << std::endl;
75  return;
76  }
77 // if (fFirstExecute){
78 // std::cout << "PndTimeOffsetFinderTask::Exec first execute called with time " << fStartTime << std::endl;
79 // fFirstExecute = kFALSE;
80 //
81 // if (fStartIndex > 0){
82 // fInputArray = FairRootManager::Instance()->GetData(fInputBranch, fFunctor, 0);
83 //
84 // FairTSBufferFunctional* buffer = FairRootManager::Instance()->GetTSBuffer(fInputBranch);
85 // if (buffer != 0){
86 // buffer->SetBranchIndex(fStartIndex);
87 // std::cout << "BranchIndex: " << buffer->GetBranchIndex() << std::endl;
88 // }
89 // }
90 // fInputArray = FairRootManager::Instance()->GetData(fInputBranch, fFunctor, fStartTime);
91 //
92 // //std::cout << "fInputArray size: " << fInputArray->GetEntriesFast() << std::endl;
93 // fInputArray->Delete();
94 // fLastTimeStamp = fStartTime;
95 // }
96  fInputArray = FairRootManager::Instance()->GetData(fInputBranch, fFunctor, fLastTimeStamp + fTimeOffset);
97  //std::cout << "Exec called: " << fEntryNr++ << std::endl;
98  for (int i = 0; i < fInputArray->GetEntriesFast(); i++){
99  PndSdsHit* second = (PndSdsHit*)fInputArray->At(i);
100  // std::cout << i << " : " << std::setw(12) << second->GetTimeStamp() << std::endl;
101  }
102  PndSdsHit* first;
103  //std::cout << "NEntries " << fInputArray->GetEntriesFast() << std::endl;
104  if (fInputArray->GetEntriesFast() > 1){
105  first = (PndSdsHit*)fInputArray->At(0);
106 // std::cout << "first: " << *first << std::endl;
107  if (first != 0)
108  fLastTimeStamp = first->GetTimeStamp();
109  }
111 
113  std::cout << "PndTimeOffsetFinderTask::Exec fLastTimeStamp " << fLastTimeStamp << " > TerminateTime " << fTerminateTime << std::endl;
114  FairRootManager::Instance()->TerminateTSBuffer(fInputBranch);
115  return;
116  }
117  if (fEntryNr++ % 1000 == 0)
118  std::cout << "EventProcessed: " << fEntryNr << " fLastTimeStamp: " << fLastTimeStamp << " TeminateTime " << fTerminateTime << std::endl;
119 
120 
121  if (fInputArray->GetEntriesFast() > 1){
122  //PndSdsHit* first = (PndSdsHit*)fInputArray->At(0);
123  for (int i = 1; i < fInputArray->GetEntriesFast(); i++){
124  PndSdsHit* second = (PndSdsHit*)fInputArray->At(i);
125  // std::cout << "first: " << std::setw(12) << first->GetTimeStamp() << " second: " << std::setw(12) << second->GetTimeStamp() <<
126  // " diff " << second->GetTimeStamp() - first->GetTimeStamp() << std::endl;
127  if (first->GetSensorID() == second->GetSensorID())
128  continue;
129 
130  double diff;
131  if (first->GetSensorID() < second->GetSensorID())
132  diff = second->GetTimeStamp() - first->GetTimeStamp();
133  else diff = first->GetTimeStamp() - second->GetTimeStamp();
134 
135  if ((first->GetSensorID() == 0 && second->GetSensorID() == 1)
136  || (first->GetSensorID() == 1 && second->GetSensorID() == 0))
137  fHc0c1->Fill(diff);
138  else if ((first->GetSensorID() == 0 && second->GetSensorID() == 2)
139  || (first->GetSensorID() == 2 && second->GetSensorID() == 0))
140  fHc0c2->Fill(diff);
141  else if ((first->GetSensorID() == 0 && second->GetSensorID() == 3)
142  || (first->GetSensorID() == 3 && second->GetSensorID() == 0))
143  fHc0c3->Fill(diff);
144  else if ((first->GetSensorID() == 1 && second->GetSensorID() == 2)
145  || (first->GetSensorID() == 2 && second->GetSensorID() == 1))
146  fHc1c2->Fill(diff);
147  else if ((first->GetSensorID() == 1 && second->GetSensorID() == 3)
148  || (first->GetSensorID() == 3 && second->GetSensorID() == 1))
149  fHc1c3->Fill(diff);
150  else if ((first->GetSensorID() == 2 && second->GetSensorID() == 3)
151  || (first->GetSensorID() == 3 && second->GetSensorID() == 2))
152  fHc2c3->Fill(diff);
153 
154  }
155  TClonesArray* tempArray = new TClonesArray(fInputArray->GetClass()->GetName());
156  tempArray->AbsorbObjects(fInputArray,1,fInputArray->GetEntriesFast()-1);
157  fInputArray->Delete();
158  fInputArray->AbsorbObjects(tempArray,0,tempArray->GetEntriesFast()-1);
159  delete(tempArray);
160  //std::cout << "RemoveFirst: " << fInputArray->GetEntriesFast() << std::endl;
161  }
162 }
Int_t i
Definition: run_full.C:25
Int_t GetSensorID() const
Definition: PndSdsHit.h:90
void PndTimeOffsetFinderTask::FinishEvent ( )
virtual

Definition at line 166 of file PndTimeOffsetFinderTask.cxx.

167 {
168  // fOutputArray->Delete();
169 }
void PndTimeOffsetFinderTask::FinishTask ( )
virtual

Definition at line 171 of file PndTimeOffsetFinderTask.cxx.

References fHc0c1, fHc0c2, fHc0c3, fHc1c2, fHc1c3, and fHc2c3.

172 {
173  fHc0c1->Write();
174  fHc0c2->Write();
175  fHc0c3->Write();
176  fHc1c2->Write();
177  fHc1c3->Write();
178  fHc2c3->Write();
179 
180 }
Bool_t PndTimeOffsetFinderTask::GetPersistance ( )
inline

Definition at line 111 of file PndTimeOffsetFinderTask.h.

References fPersistance.

InitStatus PndTimeOffsetFinderTask::Init ( )
virtual

Virtual method Init

Definition at line 35 of file PndTimeOffsetFinderTask.cxx.

References fFunctor, fHc0c1, fHc0c2, fHc0c3, fHc1c2, fHc1c3, fHc2c3, fInputArray, fInputBranch, and fStartIndex.

36 {
37 
38  FairRootManager* ioman = FairRootManager::Instance();
39  if ( ! ioman ) {
40  std::cout << "-E- PndTimeOffsetFinderTaskT::Init: "
41  << "RootManager not instantiated!" << std::endl;
42  return kFATAL;
43  }
44 
45  // Create and register output array
46  fInputArray = (TClonesArray*)FairRootManager::Instance()->GetObject("MVDHitsPixel");
47 
48  //if(fVerbose>1) { Info("Init","Registering this branch: %s/%s",fFolder.Data(),fOutputBranch.Data()); }
49  //fOutputArray = ioman->Register(fOutputBranch, fInputArray->GetClass()->GetName(), fFolder, fPersistance);
50 
51  fHc0c1 = new TH1D("fHc0c1", "fHc0c1", 2000000, -5000000, 15000000);
52  fHc0c2 = new TH1D("fHc0c2", "fHc0c2", 2000000, -5000000, 15000000);
53  fHc0c3 = new TH1D("fHc0c3", "fHc0c3", 2000000, -5000000, 15000000);
54  fHc1c2 = new TH1D("fHc1c2", "fHc1c2", 2000000, -5000000, 15000000);
55  fHc1c3 = new TH1D("fHc1c3", "fHc1c3", 2000000, -5000000, 15000000);
56  fHc2c3 = new TH1D("fHc2c3", "fHc2c3", 2000000, -5000000, 15000000);
57 
58  FairRootManager::Instance()->InitTSBuffer(fInputBranch, fFunctor);
59  FairTSBufferFunctional* buffer = FairRootManager::Instance()->GetTSBuffer(fInputBranch);
60  if (buffer != 0){
61  buffer->SetBranchIndex(fStartIndex);
62  std::cout << "BranchIndex: " << buffer->GetBranchIndex() << std::endl;
63  }
64 
65 
66  return kSUCCESS;
67 }
InitStatus PndTimeOffsetFinderTask::ReInit ( )
virtual

Definition at line 29 of file PndTimeOffsetFinderTask.cxx.

30 {
31  return kSUCCESS;
32 }
void PndTimeOffsetFinderTask::SetInputBranch ( TString  val)
inline

Definition at line 106 of file PndTimeOffsetFinderTask.h.

References fInputBranch, and val.

106 {fInputBranch = val;}
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
virtual void PndTimeOffsetFinderTask::SetParContainers ( )
inlinevirtual

Definition at line 103 of file PndTimeOffsetFinderTask.h.

103 {};
void PndTimeOffsetFinderTask::SetPersistance ( Bool_t  p = kTRUE)
inline

Definition at line 110 of file PndTimeOffsetFinderTask.h.

References fPersistance, and p.

110 {fPersistance=p;};
Double_t p
Definition: anasim.C:58
void PndTimeOffsetFinderTask::SetStartIndex ( Int_t  val)
inline

Definition at line 108 of file PndTimeOffsetFinderTask.h.

References fStartIndex, and val.

108 { fStartIndex = val;}
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
void PndTimeOffsetFinderTask::SetStartTime ( Double_t  val)
inline

Definition at line 104 of file PndTimeOffsetFinderTask.h.

References fLastTimeStamp, and val.

104 { fLastTimeStamp = val;}
Double_t val[nBoxes][nFEBox]
Definition: createCalib.C:11
void PndTimeOffsetFinderTask::SetTerminateTime ( Double_t  val)
inline

Definition at line 105 of file PndTimeOffsetFinderTask.h.

References fTerminateTime, and val.

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

Member Data Documentation

Int_t PndTimeOffsetFinderTask::fEntryNr
protected

Definition at line 127 of file PndTimeOffsetFinderTask.h.

Referenced by Exec().

Bool_t PndTimeOffsetFinderTask::fFirstExecute
protected

Definition at line 133 of file PndTimeOffsetFinderTask.h.

TString PndTimeOffsetFinderTask::fFolder
protected

Definition at line 125 of file PndTimeOffsetFinderTask.h.

BinaryFunctor* PndTimeOffsetFinderTask::fFunctor
protected

Definition at line 128 of file PndTimeOffsetFinderTask.h.

Referenced by Exec(), and Init().

TH1D* PndTimeOffsetFinderTask::fHc0c1
protected

Definition at line 136 of file PndTimeOffsetFinderTask.h.

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

TH1D* PndTimeOffsetFinderTask::fHc0c2
protected

Definition at line 137 of file PndTimeOffsetFinderTask.h.

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

TH1D* PndTimeOffsetFinderTask::fHc0c3
protected

Definition at line 138 of file PndTimeOffsetFinderTask.h.

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

TH1D* PndTimeOffsetFinderTask::fHc1c2
protected

Definition at line 139 of file PndTimeOffsetFinderTask.h.

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

TH1D* PndTimeOffsetFinderTask::fHc1c3
protected

Definition at line 140 of file PndTimeOffsetFinderTask.h.

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

TH1D* PndTimeOffsetFinderTask::fHc2c3
protected

Definition at line 141 of file PndTimeOffsetFinderTask.h.

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

TClonesArray* PndTimeOffsetFinderTask::fInputArray
protected

Definition at line 122 of file PndTimeOffsetFinderTask.h.

Referenced by Exec(), and Init().

TString PndTimeOffsetFinderTask::fInputBranch
protected

Input array of PndSdsPixelDigis

Definition at line 121 of file PndTimeOffsetFinderTask.h.

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

Double_t PndTimeOffsetFinderTask::fLastTimeStamp
protected

Definition at line 129 of file PndTimeOffsetFinderTask.h.

Referenced by Exec(), and SetStartTime().

TClonesArray* PndTimeOffsetFinderTask::fOutputArray
protected

Definition at line 126 of file PndTimeOffsetFinderTask.h.

TString PndTimeOffsetFinderTask::fOutputBranch
protected

Output array of sorted PndSdsDigis

Definition at line 124 of file PndTimeOffsetFinderTask.h.

Bool_t PndTimeOffsetFinderTask::fPersistance
protected

switch to turn on/off storing the arrays to a file

Definition at line 111 of file PndTimeOffsetFinderTask.h.

Referenced by GetPersistance(), and SetPersistance().

Int_t PndTimeOffsetFinderTask::fStartIndex
protected

Definition at line 134 of file PndTimeOffsetFinderTask.h.

Referenced by Init(), and SetStartIndex().

Double_t PndTimeOffsetFinderTask::fTerminateTime
protected

Definition at line 132 of file PndTimeOffsetFinderTask.h.

Referenced by Exec(), and SetTerminateTime().

Double_t PndTimeOffsetFinderTask::fTimeOffset
protected

Definition at line 130 of file PndTimeOffsetFinderTask.h.

Referenced by Exec().


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