//*-- Author : Valeri Fine (Faine); E-mail: fine@bnl.gov, fine@mail.cern.ch //*CMZ : 23/03/98 // Copyright (C) FineSoft, Valery Fine at Brookhaven National Laboratory (fine@bnl.gov) // $Id: St_Module.h,v 1.11 2003/09/07 03:49:07 perev Exp $ // $Log: St_Module.h,v $ // Revision 1.11 2003/09/07 03:49:07 perev // gcc 3.2 + WarnOff // // Revision 1.10 2001/07/16 23:58:35 fine // suppressing the compilation warning // // Revision 1.9 2000/03/26 01:59:23 fine // new version of St_Module. Works for STAF module only // // Revision 1.8 2000/03/24 20:35:22 fine // adjusted to ROOT 2.24. Doesn't work yet. Under development // // Revision 1.7 1999/12/07 22:26:27 fine // Clean up to remove the compilation warnings // // Revision 1.6 1999/07/28 15:36:33 fisyak // Resolve clash with TSystem for ELogLevel // // Revision 1.5 1999/02/24 17:10:57 fine // St_Table New and Purge method have been introdiced, some clean up for St_module as well // // Revision 1.4 1998/11/25 21:58:34 fisyak // Cleanup // // Revision 1.3 1998/08/25 23:07:24 didenko // New base with Tree // ////////////////////////////////////////////////////////////////////////// // // // St_Module // // // // St_Module is a virtual base class to call the begin_html PAMS - Physics Analysis Modules end_html // modules from C++ programs and begin_html ROOT end_html batch and interactive environments. // // ////////////////////////////////////////////////////////////////////////// #ifndef STAFF_St_Module #define STAFF_St_Module #include "Rtypes.h" #include "St_table_header_Table.h" #include "TObjArray.h" // Copyright (C) FineSoft 1998 Valeri Fine (Faine) E-mail: fine@bnl.gov ///////////////////////////////////////////////////////////////////// // // // St_Module // // // ///////////////////////////////////////////////////////////////////// //______________________________________________________________________________ //*-- Author : Valery Fine 24/03/98 ////////////////////////////////////////////////////////////////////////// // // // St_Module // // // // St_Module is a virtual base class to call the begin_html PAMS - Physics Analysis Modules end_html // modules from C++ programs and begin_html ROOT end_html batch and interactive environments. // // ////////////////////////////////////////////////////////////////////////// #ifdef __CINT__ #pragma Ccomment on #endif class St_Module { private: TObjArray *fParams; // Array of the input tables TObjArray *fHeaders; // Array of the headers of that tables char *fName; // Name of the module for the dynamic loading Int_t fIndex; // The index pof the current element protected: void ClearParams(); virtual void SetParameter(TTable *f); virtual void SetAllParameters( TTable *f1,TTable *f2,TTable *f3,TTable *f4 ,TTable *f5,TTable *f6,TTable *f7,TTable *f8 ,TTable *f9,TTable *f10,TTable *f11,TTable *f12 ,TTable *f13,TTable *f14,TTable *f15,TTable *f16 ,TTable *f17,TTable *f18,TTable *f19,TTable *f20 ,TTable *f21,TTable *f22,TTable *f23,TTable *f24 ,TTable *f25,TTable *f26,TTable *f27,TTable *f28 ,TTable *f29,TTable *f30,TTable *f31,TTable *f32 ,TTable *f33,TTable *f34,TTable *f35,TTable *f36 ,TTable *f37,TTable *f38 ); public: St_Module(); // Default ctor; St_Module( TTable *f1, TTable *f2=0, TTable *f3=0, TTable *f4=0 ,TTable *f5=0, TTable *f6=0, TTable *f7=0, TTable *f8=0 ,TTable *f9=0, TTable *f10=0, TTable *f11=0, TTable *f12=0 ,TTable *f13=0, TTable *f14=0, TTable *f15=0, TTable *f16=0 ,TTable *f17=0, TTable *f18=0, TTable *f19=0, TTable *f20=0 ,TTable *f21=0, TTable *f22=0, TTable *f23=0, TTable *f24=0 ,TTable *f25=0, TTable *f26=0, TTable *f27=0, TTable *f28=0 ,TTable *f29=0, TTable *f30=0, TTable *f31=0, TTable *f32=0 ,TTable *f33=0, TTable *f34=0, TTable *f35=0, TTable *f36=0 ,TTable *f37=0, TTable *f38=0 ); St_Module(Char_t *name, TTable *f1=0, TTable *f2=0, TTable *f3=0, TTable *f4=0 ,TTable *f5=0, TTable *f6=0, TTable *f7=0, TTable *f8=0 ,TTable *f9=0, TTable *f10=0, TTable *f11=0, TTable *f12=0 ,TTable *f13=0, TTable *f14=0, TTable *f15=0, TTable *f16=0 ,TTable *f17=0, TTable *f18=0, TTable *f19=0, TTable *f20=0 ,TTable *f21=0, TTable *f22=0, TTable *f23=0, TTable *f24=0 ,TTable *f25=0, TTable *f26=0, TTable *f27=0, TTable *f28=0 ,TTable *f29=0, TTable *f30=0, TTable *f31=0, TTable *f32=0 ,TTable *f33=0, TTable *f34=0, TTable *f35=0, TTable *f36=0 ,TTable *f37=0, TTable *f38=0 ); virtual ~St_Module(); // virtual void Call(){Int_t i=ExecuteModule();} virtual void Call(){ExecuteModule();} virtual Int_t CheckParameters(const Char_t *names[]=0); virtual Int_t CheckResults(Int_t res, const Char_t *names[]=0); virtual Int_t ExecuteModule(); table_head_st *GetHeader(Int_t i) const {return ((St_table_header *)fHeaders->At(i))->GetTable();} TTable *GetTable(Int_t i) const {return (TTable *)fParams->At(i);} void *GetStruct(Int_t i) const {return ((TTable *)fParams->At(i))->GetArray();} //VP virtual Int_t operator()() { return ExecuteModule(); } Int_t InvokeModule(TTable *f1, TTable *f2=0, TTable *f3=0, TTable *f4=0 ,TTable *f5=0, TTable *f6=0, TTable *f7=0, TTable *f8=0 ,TTable *f9=0, TTable *f10=0, TTable *f11=0, TTable *f12=0 ,TTable *f13=0, TTable *f14=0, TTable *f15=0, TTable *f16=0 ,TTable *f17=0, TTable *f18=0, TTable *f19=0, TTable *f20=0 ,TTable *f21=0, TTable *f22=0, TTable *f23=0, TTable *f24=0 ,TTable *f25=0, TTable *f26=0, TTable *f27=0, TTable *f28=0 ,TTable *f29=0, TTable *f30=0, TTable *f31=0, TTable *f32=0 ,TTable *f33=0, TTable *f34=0, TTable *f35=0, TTable *f36=0 ,TTable *f37=0, TTable *f38=0 ); virtual const Char_t *GetTitle(){ return "title";} virtual const Char_t *GetName() { return "virtual St_Module";} ClassDef(St_Module,0) }; #endif