stream
0.10.0
stream analysis framework
|
This is specialized process for spill structures
More...
#include <hadaq/StartProcessor.h>
Public Member Functions | |
StartProcessor () | |
constructor | |
virtual | ~StartProcessor () |
destructor | |
virtual bool | FirstBufferScan (const base::Buffer &buf) |
Scan all messages, find reference signals. More... | |
void | SetStartId (unsigned id) |
set start id | |
void | SetTdcRange (unsigned min, unsigned max) |
set tdc range | |
Public Member Functions inherited from base::StreamProc | |
virtual | ~StreamProc () |
destructor | |
void | SetTimeSorting (bool on) |
Enable/disable time sorting of data in output event. | |
bool | IsTimeSorting () const |
Is time sorting enabled. | |
void | SetTriggerMargin (double margin=0.) |
Set minimal distance between two triggers. | |
void | CreateTriggerHist (unsigned multipl=40, unsigned nbins=2500, double left=-1e-6, double right=4e-6) |
create histograms for triggers | |
virtual void | SetTriggerWindow (double left, double right) |
Set window relative to some reference signal, which will be used as region-of-interest interval to select messages from the stream. | |
void | SetRawScanOnly () |
Method set raw-scan only mode for processor Processor will not be used for any data selection. | |
bool | IsRawScanOnly () const |
Is only raw scan will be performed. | |
bool | IsRawAnalysis () const |
Is raw analysis only. | |
bool | IsTriggeredAnalysis () const |
Is triggered events analysis. | |
bool | IsStreamAnalysis () const |
Is full stream analysis. | |
bool | IsSynchronisationRequired () const |
Method indicate if any kind of time-synchronization technique should be applied for the processor. More... | |
unsigned | minNumSyncRequired () const |
Returns minimal number of syncs required for time synchronisation. | |
virtual bool | AddNextBuffer (const Buffer &buf) |
Provide next port of data to the processor. More... | |
virtual bool | ScanNewBuffers () |
Scanning all new buffers in the queue. More... | |
virtual bool | ScanNewBuffersTm () |
With new calibration set (where possible) time of buffers. More... | |
virtual void | SkipAllData () |
Method to remove all buffers, all triggers and so on. More... | |
virtual bool | SkipBuffers (unsigned cnt) |
Force processor to skip buffers from input. More... | |
unsigned | numSyncs () const |
Returns total number of sync markers. | |
unsigned | numReadySyncs () const |
Returns number of read sync markers. | |
SyncMarker & | getSync (unsigned n) |
Returns sync marker. | |
unsigned | findSyncWithId (unsigned syncid) const |
find sync marker | |
virtual bool | CollectTriggers (GlobalMarksQueue &queue) |
Method to deliver detected triggers from processor to central manager. More... | |
virtual bool | DistributeTriggers (const GlobalMarksQueue &queue) |
This is method to get back identified triggers from central manager. More... | |
virtual bool | ScanDataForNewTriggers () |
Here each processor should scan data again for new triggers Method made virtual while some subprocessors will do it in connection with others. More... | |
unsigned | NumReadySubevents () const |
Returns number of already build events. | |
virtual bool | AppendSubevent (base::Event *evt) |
Append data for first trigger to the main event. More... | |
virtual bool | SecondBufferScan (const base::Buffer &) |
Second generic scan of buffer Here selection of data for region-of-interest should be performed. | |
virtual void | Store (Event *) |
Generic method to store processor data, In case of ROOT one should copy event data in temporary structures, which are mapped to the branch. | |
virtual void | ResetStore () |
Generic method to store processor data, In case of ROOT one should copy event data in temporary structures, which are mapped to the branch. | |
Public Member Functions inherited from base::Processor | |
virtual | ~Processor () |
destructor | |
ProcMgr * | mgr () const |
Return manager instance. | |
const char * | GetName () const |
Get processor name. | |
unsigned | GetID () const |
Get processor ID. | |
void | SetHistFilling (int lvl=99) |
Set histogram filling level. | |
bool | IsHistFilling () const |
Is histogram filling enabled. | |
int | HistFillLevel () const |
Get histogram filling level. | |
unsigned | GetStoreKind () const |
Get store kind. | |
bool | IsStoreEnabled () const |
Is store enabled. | |
virtual void | SetStoreKind (unsigned kind=1) |
Set store kind. | |
void | SetStoreEnabled (bool on=true) |
Enable store - set store kind 1. | |
virtual void | UserPreLoop () |
pre loop | |
virtual void | UserPostLoop () |
post loop | |
Protected Member Functions | |
int | EpochDiff (unsigned ep1, unsigned ep2) |
Calculates most realistic difference between epochs. | |
double | EpochTmDiff (unsigned ep1, unsigned ep2) |
Return time difference between epochs in seconds. | |
Protected Member Functions inherited from base::StreamProc | |
StreamProc (const char *name="", unsigned brdid=DummyBrdId, bool basehist=true) | |
Make constructor protected - no way to create base class instance. More... | |
void | SetSynchronisationKind (SyncKind kind=sync_Inter) |
Method indicate if any kind of time-synchronization technique should be applied for the processor. More... | |
void | AddSyncMarker (SyncMarker &marker) |
add sync marker | |
bool | AddTriggerMarker (LocalTimeMarker &marker, double tm_range=0.) |
Add new local trigger. More... | |
GlobalTime_t | LocalToGlobalTime (GlobalTime_t localtm, unsigned *sync_index=0) |
Method converts local time (in ns representation) to global time. More... | |
bool | IsSyncIndexWithInterpolation (unsigned indx) const |
Method return true when sync_index is means interpolation of time. | |
virtual bool | doTriggerSelection () const |
Returns true when processor used to select trigger signal. | |
virtual GlobalTime_t | ProvidePotentialFlushTime (GlobalTime_t last_marker) |
Method should return time, which could be flushed from the processor. More... | |
bool | VerifyFlushTime (const base::GlobalTime_t &flush_time) |
Method must ensure that processor scanned such time and can really skip this data. More... | |
virtual double | MaximumDisorderTm () const |
Time constant, defines how far disorder of messages can go. | |
unsigned | TestHitTime (const base::GlobalTime_t &hittime, bool normal_hit, bool can_close_event=true) |
Method decides to which trigger window belong hit normal_hit - indicates that time is belong to data, which than can be assigned to output can_close_event - when true, hit time can be used to decide that event is ready. More... | |
template<class EventClass , class MessageClass > | |
void | AddMessage (unsigned indx, EventClass *ev, const MessageClass &msg) |
add new message to event | |
bool | eraseSyncAt (unsigned indx) |
Removes sync at specified position. More... | |
bool | eraseFirstSyncs (unsigned sync_num) |
Remove specified number of syncs. More... | |
Protected Member Functions inherited from base::Processor | |
Processor (const char *name="", unsigned brdid=DummyBrdId) | |
Make constructor protected - no way to create base class instance. More... | |
void | SetBoardId (unsigned id) |
Set board id. | |
void | SetPathPrefix (const std::string &prefix) |
Set path prefix for histogramsid. | |
void | SetSubPrefix (const char *subname="", int indx=-1, const char *subname2="", int indx2=-1) |
Set subprefix for histograms and conditions. More... | |
void | SetSubPrefix2 (const char *subname="", int indx=-1, const char *subname2="", int indx2=-1) |
Set subprefix for histograms and conditions, index uses 2 symbols. More... | |
H1handle | MakeH1 (const char *name, const char *title, int nbins, double left, double right, const char *xtitle=0) |
Adds processor prefix to histogram name and calls base::ProcMgr::MakeH1 method. | |
void | FillH1 (H1handle h1, double x, double weight=1.) |
Fill 1-D histogram. | |
void | FastFillH1 (H1handle h1, int x, double weight=1.) |
Fast fill 1-D histogram. More... | |
double | GetH1Content (H1handle h1, int nbin) |
Get bin content of 1-D histogram. | |
void | SetH1Content (H1handle h1, int nbin, double v=0.) |
Set bin content of 1-D histogram. | |
int | GetH1NBins (H1handle h1) |
Get bins numbers for 1-D histogram. | |
void | ClearH1 (H1handle h1) |
Clear 1-D histogram. | |
void | CopyH1 (H1handle tgt, H1handle src) |
Copy 1-D histogram from src to tgt. | |
void | SetH1Title (H1handle h1, const char *title) |
Set 1-D histogram title. | |
H2handle | MakeH2 (const char *name, const char *title, int nbins1, double left1, double right1, int nbins2, double left2, double right2, const char *options=0) |
Adds processor prefix to histogram name and calls base::ProcMgr::MakeH2 method. | |
void | FillH2 (H1handle h2, double x, double y, double weight=1.) |
Fill 2-D histogram. | |
void | FastFillH2 (H1handle h2, int x, int y) |
Fast fill 2-D histogram. More... | |
void | SetH2Content (H2handle h2, int nbin1, int nbin2, double v=0.) |
Set bin content of 2-D histogram. | |
double | GetH2Content (H2handle h2, int bin1, int bin2) |
Get bin content of 2-D histogram. | |
bool | GetH2NBins (H2handle h2, int &nBins1, int &nBins2) |
Get number of bins for 2-D histogram. | |
void | ClearH2 (base::H2handle h2) |
Clear 2-D histogram. | |
void | SetH2Title (H2handle h2, const char *title) |
Change title of 2-D histogram. | |
C1handle | MakeC1 (const char *name, double left, double right, H1handle h1=0) |
Create condition. | |
void | ChangeC1 (C1handle c1, double left, double right) |
Change condition limits. | |
int | TestC1 (C1handle c1, double value, double *dist=0) |
Test condition. | |
double | GetC1Limit (C1handle c1, bool isleft=true) |
Get condition limit. | |
virtual void | CreateBranch (TTree *) |
Create branch. | |
virtual bool | RegisterObject (TObject *tobj, const char *subfolder=0) |
Register object. | |
Protected Attributes | |
base::H1handle | fEvType |
HADAQ event type. | |
base::H1handle | fEvSize |
HADAQ event size. | |
base::H1handle | fSubevSize |
HADAQ sub-event size. | |
base::H1handle | fEpochDiff |
epoch differences | |
unsigned | fStartId |
HUB with start detector. | |
unsigned | fTdcMin |
minimal TDC id | |
unsigned | fTdcMax |
maximal TDC id | |
Protected Attributes inherited from base::StreamProc | |
BuffersQueue | fQueue |
! buffers queue | |
unsigned | fQueueScanIndex |
index of next buffer which should be scanned | |
unsigned | fQueueScanIndexTm |
index of buffer to scan and set correct times of the buffer head | |
AnalysisKind | fAnalysisKind |
defines that processor is doing | |
SyncKind | fSynchronisationKind |
kind of synchronization | |
SyncMarksQueue | fSyncs |
list of sync markers | |
unsigned | fSyncScanIndex |
sync scan index, indicate number of syncs which can really be used for synchronization | |
bool | fSyncFlag |
boolean, used in sync adjustment procedure | |
LocalMarkersQueue | fLocalMarks |
queue with local markers | |
double | fTriggerAcceptMaring |
time margin (in local time) to accept new trigger | |
GlobalTime_t | fLastLocalTriggerTm |
time of last local trigger | |
GlobalMarksQueue | fGlobalMarks |
list of global triggers in work | |
unsigned | fGlobalTrigScanIndex |
index with first trigger which is not yet ready | |
unsigned | fGlobalTrigRightIndex |
temporary value, used during second buffers scan | |
bool | fTimeSorting |
defines if time sorting should be used for the messages | |
base::H1handle | fTriggerTm |
! histogram with time relative to the trigger | |
base::H1handle | fMultipl |
! histogram of event multiplicity | |
base::C1handle | fTriggerWindow |
window used for data selection | |
Protected Attributes inherited from base::Processor | |
std::string | fName |
processor name, used for event naming | |
unsigned | fID |
identifier, used mostly for debugging | |
ProcMgr * | fMgr |
direct pointer on manager | |
std::string | fPathPrefix |
histogram path prefix, used for histogram folder name | |
std::string | fPrefix |
prefix, used for histogram names | |
std::string | fSubPrefixD |
sub-prefix for histogram directory | |
std::string | fSubPrefixN |
sub-prefix for histogram names | |
int | fHistFilling |
level of histogram filling | |
unsigned | fStoreKind |
if >0, store will be enabled for processor | |
bool | fIntHistFormat |
if true, internal histogram format is used | |
Additional Inherited Members | |
Public Types inherited from base::StreamProc | |
enum | SyncKind { sync_None , sync_Inter , sync_Left , sync_Right } |
kind of synchronization More... | |
Static Public Member Functions inherited from base::StreamProc | |
static void | SetMarksQueueCapacity (unsigned sz) |
Set markers queue capacity. | |
static void | SetBufsQueueCapacity (unsigned sz) |
Set buffers queue capacity. | |
Protected Types inherited from base::StreamProc | |
typedef RecordsQueue< base::Buffer, false > | BuffersQueue |
buffers queue | |
typedef RecordsQueue< base::SyncMarker, false > | SyncMarksQueue |
sync markers queue | |
Protected Types inherited from base::Processor | |
enum | { DummyBrdId = 0xffffffff } |
Static Protected Attributes inherited from base::StreamProc | |
static unsigned | fMarksQueueCapacity = 10000 |
maximum number of items in the marksers queue | |
static unsigned | fBufsQueueCapacity = 100 |
maximum number of items in the queue | |
This is specialized process for spill structures
|
virtual |
Scan all messages, find reference signals.
<! Extract data portion from the whole packet (in a loop)
Reimplemented from base::StreamProc.