VFrameChannel


class description - source file - inheritance tree

class VFrameChannel : public VVirtualFrameChannel


    public:
VFrameChannel VFrameChannel() VFrameChannel VFrameChannel(char* infodb, Option_t* mode = "READ", char* frameInfoBuild) VFrameChannel VFrameChannel(const VFrameChannel&) virtual void ~VFrameChannel() virtual void BuildInfoDB(char* nameDB, char* frameFiles, Option_t* opt) static TClass* Class() virtual Bool_t Connect(char* pathtoDB, Option_t* openopt = "READ") virtual VConditionSet* CreateConditionSet(const char* condfs, const char* selfs = "0") virtual void DrawCondition(const char* selexp, const char* selection, Option_t* option, Double_t start = 0, Double_t length = 0) virtual VNtuple* ExtractSMS(char* ntname, char* listofnames, Double_t start, Double_t length) virtual VNtuple* ExtractSMSR(char* ntname, char* listofnames, Double_t start, Double_t length) virtual FrVect* ExtractSMSVect(char* name0, Double_t start, Double_t length) virtual FrVect* ExtractSMSVectR(char* name0, Double_t start, Double_t length) virtual FrAdcData* GetAdcDirectB(VMetaData* meta, char* vectname) virtual Double_t GetEnd() virtual FrameH* GetFrame(Double_t time) virtual FrameH* GetFrameDirectB(char* vectname, VMetaData* meta, Option_t* opt = "full") virtual FrameH* GetFrameDirectB(VMetaData* meta, Option_t* opt = "full") virtual FrameH* GetFrameR(Double_t time) VFramesBuffer* GetFramesBuffer() virtual const char* GetInfoDBName() const virtual FrameH* GetNextFrame() virtual FrameH* GetNextFrame(VConditionSet* condset) virtual FrameH* GetNextFrame(Double_t time, VConditionSet* conds) virtual FrameH* GetNextFrame(Double_t time, const char* selection) FrameH* GetNextFrameB() FrameH* GetNextFrameB(VConditionSet* condset) FrameH* GetNextFrameB(Double_t time, VConditionSet* conds = 0) virtual FrameH* GetNextFrameR(Double_t time, VConditionSet* conds = 0) virtual FrameH* GetNextFrameR(Double_t time, const char* selection) virtual VFrVectObject* GetNextSignal(char* nameofvect, VConditionSet* condset, Option_t* opt) virtual VFrVectObject* GetNextSignal(char* nameofvect, Double_t gpstime, const char* selection, Option_t* opt) virtual VFrVectObject* GetNextSignalR(char* nameofvect, Double_t gpstime, const char* selection, Option_t* opt) virtual FrVect* GetNextVect(char* nameofvect, VConditionSet* condset, Option_t* opt) virtual FrVect* GetNextVect(char* nameofvect, Double_t gpstime, const char* selection, Option_t* opt) FrVect* GetNextVectB(Double_t gpstime, char* vectname, VConditionSet* conds = 0) virtual FrVect* GetNextVectR(char* nameofvect, Double_t gpstime, const char* selection, Option_t* opt) VVirtualFrameChannelPlayer* GetPlayer() virtual FrameH* GetPreviousFrame() FrameH* GetPreviousFrameB() virtual FrProcData* GetProcDirectB(VMetaData* meta, char* vectname) Double_t GetProcessLength() const char* GetProcessList() const Double_t GetProcessStart() Double_t GetProcessStep() virtual VFrVectObject* GetSignal(char* nameofvect, Double_t start, Double_t length, Option_t* opt) virtual VFrVectObject* GetSignalR(char* nameofvect, Double_t start, Double_t length, Option_t* opt) virtual FrSimData* GetSimDirectB(VMetaData* meta, char* vectname) virtual Double_t GetStart() virtual FrVect* GetVect(char* nameofvect, Double_t start, Double_t length, Option_t* opt) virtual FrVect* GetVectR(char* nameofvect, Double_t start, Double_t length, Option_t* opt) double GetViewerTime() virtual TClass* IsA() const Int_t MakeClass(const char* classname = "0", const char* cond, Option_t* option) Int_t MakeSelector(const char* selector = "0") virtual void Print(Option_t* opt) Int_t Process(const char* filename, const char* cond, Option_t* option) Int_t Process(VSelector* selector, double starttime, double length, const char* cond, Option_t* option) Int_t Process(const char* filename, double starttime, double length, const char* cond, Option_t* option) Int_t Process(VSelector* selector, const char* cond, Option_t* option) Int_t ProcessVect(VSelector* selector, const char* vectlist, const char* cond, Option_t* option) Int_t ProcessVect(const char* filename, const char* vectlist, const char* cond, Option_t* option) Int_t ProcessVect(const char* filename, double starttime, double length, const char* vectlist, const char* cond, Option_t* option) Int_t ProcessVect(VSelector* selector, double starttime, double length, const char* vectlist, const char* cond, Option_t* option) void SetProcessLength(Double_t length) void SetProcessList(const char* list) void SetProcessStart(Double_t start) void SetProcessStep(Double_t step) virtual void ShowMembers(TMemberInspector& insp, char* parent) void StartViewer(int mode = 0) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members

    private:
string mInfoDBName VMetaData* mCurMetaData VFramesBuffer* mFramesBuffer string mCurFrFileName FrFile* mCurFrFile string mCurVectName VVirtualFrameChannelPlayer* mPlayer

Class Description

                                                                      
 VFrameChannel                                                        
                                                                      
 Frame data access engine, seeking information from                   
 a VVirtualFrameInfoDB                                                
                                                                      


Bool_t Connect(char* pathtoDB, Option_t* openopt)
 Connect to a new meta info database

void BuildInfoDB(char* nameDB, char* frameFiles, Option_t* opt)
 Builds a new meta info database given frame file path and names

VConditionSet* CreateConditionSet(const char* condfs, const char* selfs)
 Creates a condition set adapted to the current Frame Info DB

FrameH* GetFrameR(Double_t gpstime)
 Gets the frame that contains data for time "gpstime"
 The time is a GPS time expressed as a double : seconds.nanoseconds
 If the reference time of this database is set, it will be
 added to gpstime

FrameH* GetFrame(Double_t gpstime)
 Gets the frame that contains data for time "gpstime"
 The time is a GPS time expressed as a double : seconds.nanoseconds
 gpstime is the absolute time, no reference included

FrameH* GetNextFrameR(Double_t gpstime, VConditionSet* conds)
 Gets the frame that contains data for time "gpstime" or the frame that
 is the nearest next one and that satisfies the condition set "conds".
 The time is a GPS time expressed as a double : seconds.nanoseconds
 If the reference time of this database is set, it will be
 added to gpstime
 If the pointer to condition is null, suppose no condition asked, will return
 the next nearest frame.

FrameH* GetNextFrameB(Double_t gpstime, VConditionSet* conds)
 Gets the frame that contains data for time "gpstime" or the frame that
 is the nearest next one and that satisfies the condition set "conds".
 The time is a GPS time expressed as a double : seconds.nanoseconds
 If the pointer to condition is null, suppose no condition asked, will return
 the next nearest frame.

FrVect* GetNextVectB(Double_t gpstime, char* vectname, VConditionSet* conds)
 Gets the vector named "vectname that contains data for time "gpstime"
 or the vector that is the nearest next one and that satisfies
 the selection formula "condf".
 The time is a GPS time expressed as a double : seconds.nanoseconds
 If the pointer to condition is null, suppose no condition asked, will return
 the next nearest frame.

FrameH* GetNextFrame(Double_t gpstime, VConditionSet* conds)
 Gets the frame that contains data for time "gpstime" or the frame that
 is the nearest next one and that satisfies the condition set "conds".
 The time is a GPS time expressed as a double : seconds.nanoseconds
 If the pointer to condition is null, suppose no condition asked, will return
 the next nearest frame.
 Uses buffered method, and then copies the frame

FrameH* GetNextFrame(Double_t gpstime, const char* selection)
 Gets the frame that contains data for time "gpstime" or the frame that
 is the nearest next one and that satisfies the selection formula "selection".
 The time is a GPS time expressed as a double : seconds.nanoseconds
 If the pointer to char is null, suppose no condition asked, will return
 the next nearest frame.
 Uses buffered method, and then copies the frame

FrameH* GetNextFrameR(Double_t gpstime, const char* selection)
 Gets the frame that contains data for time "gpstime" or the frame that
 is the nearest next one and that satisfies the selection formula "selection".
 The time is a GPS time expressed as a double : seconds.nanoseconds
 If the reference time of this database is set, it will be
 added to gpstime
 If the pointer to condition is null, suppose no condition asked, will return
 the next nearest frame.

FrameH* GetFrameDirectB(VMetaData* meta, Option_t* opt)
 Gets the frame that is described by meta data "meta"
 This should normally not be called directly, but only after
 finding the right position from the index tree.
 BE CAREFULL ! the output of this routine is managed by the buffer,
 You should not delete it.

FrameH* GetFrameDirectB(char* vectname, VMetaData* meta, Option_t* opt)
 Gets the frame that is described by meta data "meta"
 This should normally not be called directly, but only after
 finding the right position from the index tree.
 BE CAREFULL ! the output of this routine is managed by the buffer,
 You should not delete it.

FrAdcData* GetAdcDirectB(VMetaData* meta, char* vectname)
 Gets the adc "vectname" that is in frame defined by meta information "meta"
 This should normally not be called directly, but only after
 finding the right meta information.
 BE CAREFULL ! the output of this routine is managed by the buffer,
 You should not delete it.

FrProcData* GetProcDirectB(VMetaData* meta, char* vectname)
 Gets the proc "vectname" that is in frame defined by meta information "meta"
 This should normally not be called directly, but only after
 finding the right meta information.
 BE CAREFULL ! the output of this routine is managed by the buffer,
 You should not delete it.

FrSimData* GetSimDirectB(VMetaData* meta, char* vectname)
 Gets the proc "vectname" that is in frame defined by meta information "meta"
 This should normally not be called directly, but only after
 finding the right meta information.
 BE CAREFULL ! the output of this routine is managed by the buffer,
 You should not delete it.

FrameH* GetNextFrameB()
 Returns the frame following in time the last returned one (uses buffer)

FrameH* GetNextFrameB(VConditionSet* condset)
 Returns the first frame satisfying the next selection
 region of the condition set "condset". (uses buffer)
 Returns a a buffered frame pointer. User does not have to take care
 (delete) the frame. But the frame may be deleted at any time.

FrameH* GetNextFrame()
 Returns the frame following in time the last returned one
 Uses buffered method, and then copies the frame

FrameH* GetNextFrame(VConditionSet* condset)
 Returns the first frame satisfying the next selection
 region of the condition set "condset".
 Returns a frame copy. User has to take care (delete) it if necessary.

FrameH* GetPreviousFrameB()
 Returns the frame preceeding in time the last returned one

FrameH* GetPreviousFrame()
 Returns the frame preceeding in time the last returned one
 Uses buffered method, and then copies the frame

FrVect* GetNextVect(char* nameofvect, Double_t gpstime, const char* selection, Option_t* opt)
   Extracts a vector FrVect given it's name and type.
 The vector is satisfying the selection expression, i.e. it begins at the
 start of the ConditionSet defined by the selection and has a length defined
 by the length of this condition set. The search for the vector begins at
 time gps time.
 Vectors extracted from the database will be concatenated as needed
 to obtain the desired vector.
   The string nameofvect indicates the type (adc, proc, sim) and
 the name of the series to be extracted. The convention for the format
 is "type.name".
   For example "adc.IFO_DMRO" is a good format.
   If only the name is given, the groups of series in the frame
 will be searched in the order adc, proc, sim for that name.
   If more than one identical name was defined in the frame, the first
 found series with that name will be used.
 if the selection string is empty, will return 0

FrVect* GetNextVectR(char* nameofvect, Double_t gpstime, const char* selection, Option_t* opt)
   Extracts a vector FrVect given it's name and type.
 The vector is satisfying the selection expression, i.e. it begins at the
 start of the ConditionSet defined by the selection and has a length defined
 by the length of this condition set. The search for the vector begins at
 time gpstime, which is considered relative to the reference time.
 Vectors extracted from the database will be concatenated as needed
 to obtain the desired vector.
   The string nameofvect indicates the type (adc, proc, sim) and
 the name of the series to be extracted. The convention for the format
 is "type.name".
   For example "adc.IFO_DMRO" is a good format.
   If only the name is given, the groups of series in the frame
 will be searched in the order adc, proc, sim for that name.
   If more than one identical name was defined in the frame, the first
 found series with that name will be used.
 if the selection string is empty, will return 0

FrVect* GetNextVect(char* nameofvect, VConditionSet* condset, Option_t* opt)
   Extracts a vector FrVect given it's name and type.
 The vector is satisfying the condition set condset, i.e. it begins at the
 start of the ConditionSet "condset" and has a length defined by the length
 of this condition set.
 Vectors extracted from the database will be concatenated as needed
 to obtain the desired vector.
   The string nameofvect indicates the type (adc, proc, sim) and
 the name of the series to be extracted. The convention for the format
 is "type.name".
   For example "adc.IFO_DMRO" is a good format.
   If only the name is given, the groups of series in the frame
 will be searched in the order adc, proc, sim for that name.
   If more than one identical name was defined in the frame, the first
 found series with that name will be used.

VFrVectObject* GetNextSignal(char* nameofvect, VConditionSet* condset, Option_t* opt)
 Retrieve the next vector, encapsulate it in an object. Used with signal library
 See VFrameChannel::GetNextVect() for the meaning of variables

FrVect* GetVectR(char* nameofvect, Double_t start, Double_t length, Option_t* opt)
   Extracts a vector FrVect given it's name and type. The vector starts
 at time "start" and has a length "length". "start" is considered with
 respect to the reference time. Vectors extracted from
 the database will be concatenated as needed to obtain the desired vector
   The string nameofvect indicates the type (adc, proc, sim) and
 the name of the series to be extracted. The convention for the format
 is "type.name".
   For example "adc.IFO_DMRO" is a good format.
   If only the name is given, the groups of series in the frame
 will be searched in the order adc, proc, sim for that name.
   If more than one identical name was defined in the frame, the first
 found series with that name will be used.

FrVect* GetVect(char* nameofvect, Double_t start, Double_t length, Option_t* opt)
   Extracts a vector FrVect given it's name and type. The vector starts
 at time "start" and has a length "length". Vectors extracted from
 the database will be concatenated as needed to obtain the desired vector
   The string nameofvect indicates the type (adc, proc, sim) and
 the name of the series to be extracted. The convention for the format
 is "type.name".
   For example "adc.IFO_DMRO" is a good format.
   If only the name is given, the groups of series in the frame
 will be searched in the order adc, proc, sim for that name.
   If more than one identical name was defined in the frame, the first
 found series with that name will be used.
 All data will be casted to double, except if opt = "nocast" is given,
 in which case, the result vector will have the same type as the original
 ones

VFrVectObject* GetSignal(char* nameofvect, Double_t start, Double_t length, Option_t* opt)
 Retrieve a vector encapsulated in an object. Used with signal library
 See VFrameChannel::GetVect() for the meaning of variables

VFrVectObject* GetSignalR(char* nameofvect, Double_t start, Double_t length, Option_t* opt)
 Retrieve a vector encapsulated in an object. Used with signal library
 See VFrameChannel::GetVectR() for the meaning of variables

VFrVectObject* GetNextSignal(char* nameofvect, Double_t gpstime, const char* selection, Option_t* opt)
 Retrieve the next vector, encapsulate it in an object. Used with signal library
 See VFrameChannel::GetNextVect() for the meaning of variables

VFrVectObject* GetNextSignalR(char* nameofvect, Double_t gpstime, const char* selection, Option_t* opt)
 Retrieve the next vector, encapsulate it in an object. Used with signal library
 See VFrameChannel::GetNextVectR() for the meaning of variables

Double_t GetStart()
 Returns the start time of the first frame in the metadatabase

Double_t GetEnd()
 Returns the end time of the last frame in the metadatabase

VNtuple* ExtractSMSR(char* ntname, char* listofnames0, Double_t start, Double_t length)
   Builds a new NTuple and fills it with SMS data from the database
   The NTuple that is build is a VNtuple.
   If one wants to have this ntuple on disk rather than in memory,
   one should open a file in "RECREATE" or "UPDATE" mode first.
   On closing this file, the ntuple will automatically be saved on disk
   (AND THE NTUPLE DELETED).
   The SMS data starts at time "start" and has a length "length".
   start time is considered by reference to the reference time
   ntname is the name of the created ntuple
   listofnames is the list of names of the SMS stations/values one needs
   to include in the ntuple. The format is
   "name1:name2:name3:...." where namei is of the form "stationname.valuename",

VNtuple* ExtractSMS(char* ntname, char* listofnames0, Double_t start, Double_t length)
   Builds a new NTuple and fills it with SMS data from the database
   The NTuple that is build is a VNtuple.
   If one wants to have this ntuple on disk rather than in memory,
   one should open a file in "RECREATE" or "UPDATE" mode first.
   On closing this file, the ntuple will automatically be saved on disk
   (AND THE NTUPLE DELETED).
   The SMS data starts at time "start" and has a length "length".
   ntname is the name of the created ntuple
   listofnames is the list of names of the SMS stations/values one needs
   to include in the ntuple. The format is
   "name1:name2:name3:...." where namei is of the form "stationname.valuename",

FrVect* ExtractSMSVectR(char* name0, Double_t start, Double_t length)
   Builds a new FrVect and fills it with SMS data from the database
   The SMS data starts at time "start" and has a length "length".
   start time is considered by reference to the reference time
   listofnames is the name of the SMS station/value one needs
   to extract. The format is "stationname.valuename", for example
   TiServer.rtt2 (value of round trip time 2 for timing server)

FrVect* ExtractSMSVect(char* name0, Double_t start, Double_t length)
   Builds a new FrVect and fills it with SMS data from the database
   The SMS data starts at time "start" and has a length "length".
   listofnames is the name of the SMS station/value one needs
   to extract. The format is "stationname.valuename", for example
   TiServer.rtt2 (value of round trip time 2 for timing server)

void Print(Option_t* opt)
 Prints information about the database and it's contents
 option :
     "full" : prints all the database info. VERY LONG. mainly for test
     "conditions" : prints only conditions names

void DrawCondition(const char* selexp, const char* selection, Option_t* option, Double_t start, Double_t length)
   Draws expression selexp for conditions defined in the info database
   with respect to time.

   selexp is an expression (formula) referencing a combination of conditions
   Example:
      selexp = trig.amp   simplest case: draw a plot of amplitude of
                                          condition named trig
             = sqrt(trig.p)            : draw distribution of sqrt(trig.p)
             = x*y/z                   : where x, y and z are conditions
                                         defined in the database
   Note that selexp may contain a selection.
   example, if selexp= x*(y<0), the value plotted will be x if y<0
   and will be 0 otherwise.

   selection is an expression with a combination of the conditions.
   In a selection all the C++ operators are authorized.
   The value corresponding to the selection expression is used as a veto
   to plot the points. If it is not 0, the point is plotted.
   The value returned is not relevant, only relevant is
   (selection==0) -> point skipped or (selection!=0) -> point plotted

   Examples:
       selection1 = "x<y && sqrt(z)>3.2"
       selection2 = "(x+y)*(sqrt(z)>3.2"
   selection1 returns a value = 0 or 1
   selection2 returns a value  = x+y if sqrt(z)>3.2
              returns a value  = 0 otherwise.
   Warning : if there is no selection (selection=""), selexp itself
             will be taken as selection expression, i.e. only points where
             selexp != 0 will be plotted

   option is the drawing option
       see TGraph::Draw for the list of all drawing options.

   start is the start time of the first conditions to process
      (default is beginning of database values)
   length is the length in time of the data to process (default is all data)
 Draws a condition with respect to time

VVirtualFrameChannelPlayer* GetPlayer()
 Load the VFrameChannelPlayer (if not already done)

Int_t MakeSelector(const char *selector)
*-*-*-*-*-*-*Generate skeleton selector class for this Frame Channel*-*-*-*-*-*-*
*-*          =======================================================

   The following files are produced: selector.h and selector.C
   if selector is NULL, selector will be "MyFrameAnalysis".

   The generated code in selector.h includes the following:
      - Identification of the original frame channel and Input info database
      - Definition of selector class (data and functions)
      - the following class functions:
         - constructor and destructor
         - void    Begin(VFrameChannel *fc)
         - void    Init(VFrameChannel *fc)
         - Bool_t  ProcessCut(FrameH* frame);
         - Bool_t  ProcessFrame(FrameH* frame);
         - Bool_t  ProcessVect(int nbvect, FrVect** invects, FrVect* ouvect);
         - void    Terminate

   The class selector derives from VSelector.
   The generated code in selector.C includes empty functions defined above:

      - connect your frame channel (eg: fc = new VFrameChannel("infoDB.root");)
      - fc->MakeClass("MyClass");
    Where MyClass.h, MyClass.C the name of the files created by this function.
   In a vega session, you can do:
      vega > fc->Process("select.C")


Int_t MakeClass(const char *classname, const char* cond, Option_t *option)
*-*-*-*-*-*-*Generate skeleton analysis class for this Frame Channel*-*-*-*-*-*-*
*-*          =======================================================

   The following files are produced: classname.h and classname.C
   if classname is NULL, classname will be "MyFrameAnalysis".

   When the option "selector" is specified, the function generates the
   selector class described in VFrameChannel::MakeSelector.

   The generated code in classname.h includes the following:
      - Identification of the original frame channel and input conditions
      - Definition of analysis class (data and functions)
      - the following class functions:
         -constructor (connecting by default the frame channel)
         -Init(VFrameChannel *fc) to initialize a new VFrameChannel

   The generated code in classname.C includes only the main
   analysis function Loop.

   To use this function:
      - connect your frame channel (eg: fc = new VFrameChannel("infoDB.root");)
      - fc->MakeClass("MyClass");
    Where MyClass.h, MyClass.C the name of the files created by this function.
   In a vega session, you can do:
      Root > .L MyClass.C
      Root > MyClass t
      Root > t.Loop();       // Loop on the frames in the frame channel


const char* GetProcessList()
 Get list of channels/vectors to be processed

Double_t GetProcessStart()
 Get start time of processing

Double_t GetProcessLength()
 Get length (in time) for the processing

Double_t GetProcessStep()
 Get time step of the processing

void SetProcessList(const char* list)
 Set list of channels/vectors to be processed

void SetProcessStart(Double_t start)
 Set start time of processing

void SetProcessLength(Double_t length)
 Set length (in time) for the processing

void SetProcessStep(Double_t step)
 Set time step of the processing

Int_t Process(const char *filename, const char* cond,Option_t *option)
*-*-*-*-*-*-* Process data provided by this Frame Channel *-*-*-*-*-*-*
              ===========================================

Int_t Process(VSelector *selector, const char* cond,Option_t *option)
*-*-*-*-*-*-* Process data provided by this Frame Channel *-*-*-*-*-*-*
              ===========================================

Int_t Process(const char *filename, double starttime, double length, const char* cond,Option_t *option)

Int_t Process(VSelector *selector, double starttime, double length, const char* cond,Option_t *option)

Int_t ProcessVect(const char *filename,const char* vectlist, const char* cond,Option_t *option)

Int_t ProcessVect(VSelector *selector,const char* vectlist, const char* cond,Option_t *option)

Int_t ProcessVect(const char *filename, double starttime, double length, const char* vectlist, const char* cond,Option_t *option)

Int_t ProcessVect(VSelector *selector, double starttime, double length,const char* vectlist, const char* cond,Option_t *option)

void StartViewer(int mode)

double GetViewerTime()



Inline Functions


         VFrameChannel VFrameChannel()
         VFrameChannel VFrameChannel(char* infodb, Option_t* mode = "READ", char* frameInfoBuild)
        VFramesBuffer* GetFramesBuffer()
           const char* GetInfoDBName() const
               TClass* Class()
               TClass* IsA() const
                  void ShowMembers(TMemberInspector& insp, char* parent)
                  void Streamer(TBuffer& b)
                  void StreamerNVirtual(TBuffer& b)
         VFrameChannel VFrameChannel(const VFrameChannel&)
                  void ~VFrameChannel()
Last update: Tue Jul 1 17:28:23 2003


- ROOT page - VEGA page - Class index - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to , or contact with any questions or problems regarding ROOT or VEGA.