StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
St_Module.h
1 //*-- Author : Valeri Fine (Faine); E-mail: fine@bnl.gov, fine@mail.cern.ch
2 //*CMZ : 23/03/98
3 // Copyright (C) FineSoft, Valery Fine at Brookhaven National Laboratory (fine@bnl.gov)
4 // $Id: St_Module.h,v 1.11 2003/09/07 03:49:07 perev Exp $
5 // $Log: St_Module.h,v $
6 // Revision 1.11 2003/09/07 03:49:07 perev
7 // gcc 3.2 + WarnOff
8 //
9 // Revision 1.10 2001/07/16 23:58:35 fine
10 // suppressing the compilation warning
11 //
12 // Revision 1.9 2000/03/26 01:59:23 fine
13 // new version of St_Module. Works for STAF module only
14 //
15 // Revision 1.8 2000/03/24 20:35:22 fine
16 // adjusted to ROOT 2.24. Doesn't work yet. Under development
17 //
18 // Revision 1.7 1999/12/07 22:26:27 fine
19 // Clean up to remove the compilation warnings
20 //
21 // Revision 1.6 1999/07/28 15:36:33 fisyak
22 // Resolve clash with TSystem for ELogLevel
23 //
24 // Revision 1.5 1999/02/24 17:10:57 fine
25 // St_Table New and Purge method have been introdiced, some clean up for St_module as well
26 //
27 // Revision 1.4 1998/11/25 21:58:34 fisyak
28 // Cleanup
29 //
30 // Revision 1.3 1998/08/25 23:07:24 didenko
31 // New base with Tree
32 //
33 
35 // //
36 // St_Module //
37 // //
38 // St_Module is a virtual base class to call the begin_html <A HREF="http://www.rhic.bnl.gov/STAR/html/ssd_l/staf_l/STAF-current/pams/pams.html">PAMS - Physics Analysis Modules</A> end_html
39 // modules from C++ programs and begin_html <A HREF="http://root.cern.ch">ROOT</A> end_html batch and interactive environments.
40 // //
42 
43 
44 
45 #ifndef STAFF_St_Module
46 #define STAFF_St_Module
47 
48 
49 #include "Rtypes.h"
50 #include "St_table_header_Table.h"
51 #include "TObjArray.h"
52 
53 // Copyright (C) FineSoft 1998 Valeri Fine (Faine) E-mail: fine@bnl.gov
54 
56 // //
57 // St_Module //
58 // //
60 
61 //______________________________________________________________________________
62 
63 //*-- Author : Valery Fine 24/03/98
64 
66 // //
67 // St_Module //
68 // //
69 // St_Module is a virtual base class to call the begin_html <A HREF="http://www.rhic.bnl.gov/STAR/html/ssd_l/staf_l/STAF-current/pams/pams.html">PAMS - Physics Analysis Modules</A> end_html
70 // modules from C++ programs and begin_html <A HREF="http://root.cern.ch">ROOT</A> end_html batch and interactive environments.
71 // //
73 
74 #ifdef __CINT__
75 #pragma Ccomment on
76 #endif
77 
78 class St_Module {
79 private:
80  TObjArray *fParams; // Array of the input tables
81  TObjArray *fHeaders; // Array of the headers of that tables
82  char *fName; // Name of the module for the dynamic loading
83  Int_t fIndex; // The index pof the current element
84 protected:
85  void ClearParams();
86  virtual void SetParameter(TTable *f);
87  virtual void SetAllParameters(
88  TTable *f1,TTable *f2,TTable *f3,TTable *f4
89  ,TTable *f5,TTable *f6,TTable *f7,TTable *f8
90  ,TTable *f9,TTable *f10,TTable *f11,TTable *f12
91  ,TTable *f13,TTable *f14,TTable *f15,TTable *f16
92  ,TTable *f17,TTable *f18,TTable *f19,TTable *f20
93  ,TTable *f21,TTable *f22,TTable *f23,TTable *f24
94  ,TTable *f25,TTable *f26,TTable *f27,TTable *f28
95  ,TTable *f29,TTable *f30,TTable *f31,TTable *f32
96  ,TTable *f33,TTable *f34,TTable *f35,TTable *f36
97  ,TTable *f37,TTable *f38
98  );
99 
100 public:
101 
102  St_Module(); // Default ctor;
103  St_Module( TTable *f1, TTable *f2=0, TTable *f3=0, TTable *f4=0
104  ,TTable *f5=0, TTable *f6=0, TTable *f7=0, TTable *f8=0
105  ,TTable *f9=0, TTable *f10=0, TTable *f11=0, TTable *f12=0
106  ,TTable *f13=0, TTable *f14=0, TTable *f15=0, TTable *f16=0
107  ,TTable *f17=0, TTable *f18=0, TTable *f19=0, TTable *f20=0
108  ,TTable *f21=0, TTable *f22=0, TTable *f23=0, TTable *f24=0
109  ,TTable *f25=0, TTable *f26=0, TTable *f27=0, TTable *f28=0
110  ,TTable *f29=0, TTable *f30=0, TTable *f31=0, TTable *f32=0
111  ,TTable *f33=0, TTable *f34=0, TTable *f35=0, TTable *f36=0
112  ,TTable *f37=0, TTable *f38=0
113  );
114 
115  St_Module(Char_t *name, TTable *f1=0, TTable *f2=0, TTable *f3=0, TTable *f4=0
116  ,TTable *f5=0, TTable *f6=0, TTable *f7=0, TTable *f8=0
117  ,TTable *f9=0, TTable *f10=0, TTable *f11=0, TTable *f12=0
118  ,TTable *f13=0, TTable *f14=0, TTable *f15=0, TTable *f16=0
119  ,TTable *f17=0, TTable *f18=0, TTable *f19=0, TTable *f20=0
120  ,TTable *f21=0, TTable *f22=0, TTable *f23=0, TTable *f24=0
121  ,TTable *f25=0, TTable *f26=0, TTable *f27=0, TTable *f28=0
122  ,TTable *f29=0, TTable *f30=0, TTable *f31=0, TTable *f32=0
123  ,TTable *f33=0, TTable *f34=0, TTable *f35=0, TTable *f36=0
124  ,TTable *f37=0, TTable *f38=0
125  );
126 
127 
128  virtual ~St_Module();
129 
130  // virtual void Call(){Int_t i=ExecuteModule();}
131  virtual void Call(){ExecuteModule();}
132  virtual Int_t CheckParameters(const Char_t *names[]=0);
133  virtual Int_t CheckResults(Int_t res, const Char_t *names[]=0);
134  virtual Int_t ExecuteModule();
135 
136  table_head_st *GetHeader(Int_t i) const {return ((St_table_header *)fHeaders->At(i))->GetTable();}
137  TTable *GetTable(Int_t i) const {return (TTable *)fParams->At(i);}
138  void *GetStruct(Int_t i) const {return ((TTable *)fParams->At(i))->GetArray();}
139 
140 //VP virtual Int_t operator()() { return ExecuteModule(); }
141  Int_t InvokeModule(TTable *f1, TTable *f2=0, TTable *f3=0, TTable *f4=0
142  ,TTable *f5=0, TTable *f6=0, TTable *f7=0, TTable *f8=0
143  ,TTable *f9=0, TTable *f10=0, TTable *f11=0, TTable *f12=0
144  ,TTable *f13=0, TTable *f14=0, TTable *f15=0, TTable *f16=0
145  ,TTable *f17=0, TTable *f18=0, TTable *f19=0, TTable *f20=0
146  ,TTable *f21=0, TTable *f22=0, TTable *f23=0, TTable *f24=0
147  ,TTable *f25=0, TTable *f26=0, TTable *f27=0, TTable *f28=0
148  ,TTable *f29=0, TTable *f30=0, TTable *f31=0, TTable *f32=0
149  ,TTable *f33=0, TTable *f34=0, TTable *f35=0, TTable *f36=0
150  ,TTable *f37=0, TTable *f38=0
151  );
152 
153  virtual const Char_t *GetTitle(){ return "title";}
154  virtual const Char_t *GetName() { return "virtual St_Module";}
155 
156  ClassDef(St_Module,0)
157 };
158 #endif
virtual Int_t ExecuteModule()
Definition: St_Module.cxx:241
virtual Int_t CheckResults(Int_t res, const Char_t *names[]=0)
Definition: St_Module.cxx:199
Definition: TTable.h:48