|
stream
0.10.0
stream analysis framework
|
This could be generic processor for data, coming from MBS For the moment it is rather CERN beamtime-specific code
More...
#include <mbs/Processor.h>
Public Member Functions | |
| virtual | ~Processor () |
| destructor | |
| virtual bool | FirstBufferScan (const base::Buffer &buf) |
| Scan all messages, find reference signals. | |
| virtual bool | SecondBufferScan (const base::Buffer &buf) |
| Second generic scan of buffer Here selection of data for region-of-interest should be performed. | |
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 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 | |
| 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 | |
| virtual bool | doTriggerSelection () const |
| Returns true when processor used to select trigger signal TRB3 not yet able to perform trigger selection. | |
| virtual double | MaximumDisorderTm () const |
| This is maximum disorder time for MBS TODO: derive this value from sub-items. | |
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 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... | |
| 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::LocalStampConverter | fConv1 |
| ! use converter to emulate local time scale | |
| unsigned | fLastSync1 |
| ! last sync id in first scan | |
| unsigned | fLastSync2 |
| ! last sync id in second scan | |
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 could be generic processor for data, coming from MBS For the moment it is rather CERN beamtime-specific code