00001 00015 #ifndef STAR_StChain 00016 #define STAR_StChain 00017 00018 #include <stdlib.h> 00019 #include <stdio.h> 00020 00021 #ifndef StMaker_H 00022 #include "StMaker.h" 00023 #endif 00024 00025 00026 class StEvtHddr; 00027 class StChainOpt; 00028 enum EChainBits { 00029 kIsCalibrated = BIT(24) // if the TObject has been created after calibration 00030 }; 00031 00032 00033 class StChain : public StMaker { 00034 private: 00035 Int_t m_Version; //StChain version number 00036 Int_t m_VersionDate; //StChain version date 00037 Int_t mNTotal; //Total events processed 00038 Int_t mNFailed; //Failed events processed 00039 protected: 00040 StEvtHddr *m_EvtHddr; //Header of event 00041 StChainOpt *mChainOpt; 00042 public: 00043 StChain(const char *name="bfcChain", const Bool_t UseOwnHeader = kFALSE); 00044 virtual ~StChain(); 00045 virtual void Clear(Option_t *option=""); 00046 virtual Int_t Finish(); // *MENU* 00047 virtual Int_t Init(); 00048 virtual Int_t Make(); 00049 virtual Int_t Make(Int_t num){return IMake(num);} 00050 virtual Int_t IsChain() const {return 1;} 00051 virtual Int_t MakeEvent(); // *MENU* 00052 virtual Int_t EventLoop(Int_t jBeg,Int_t jEnd, StMaker *outMk=0); 00053 virtual Int_t EventLoop(Int_t jEnd=1000000, StMaker *outMk=0) {return EventLoop(1,jEnd,outMk);} 00054 Int_t GetVersion() const {return m_Version;} 00055 Int_t GetVersionDate() const {return m_VersionDate;} 00056 Int_t GetNTotal() const {return mNTotal;} 00057 Int_t GetNFailed() const {return mNFailed;} 00058 void SetChainOpt(StChainOpt *opt) {mChainOpt=opt;} 00059 virtual const StChainOpt *GetChainOpt() const; 00060 virtual const char *GetCVS() const 00061 {static const char cvs[]="Tag $Name: $ $Id: StChain.h,v 1.46 2014/08/06 11:42:55 jeromel Exp $ built " __DATE__ " " __TIME__ ; return cvs;} 00062 ClassDef(StChain, 0) //StChain control class 00063 }; 00064 00065 #endif 00066 00067 00068 // $Id: StChain.h,v 1.46 2014/08/06 11:42:55 jeromel Exp $ 00069 // $Log: StChain.h,v $ 00070 // Revision 1.46 2014/08/06 11:42:55 jeromel 00071 // Suffix on literals need to be space (later gcc compiler makes it an error) - first wave of fixes 00072 // 00073 // Revision 1.45 2007/04/26 20:36:49 perev 00074 // Some ChainOpt fixes 00075 // 00076 // Revision 1.44 2007/04/26 15:56:22 fisyak 00077 // Remove non implemented GetChainOpt method (use default from StMaker) 00078 // 00079 // Revision 1.43 2007/04/26 03:57:14 perev 00080 // StChainOpt interface to hide StBFChain dependency 00081 // 00082 // Revision 1.42 2005/08/29 21:42:21 fisyak 00083 // switch from fBits to fStatus for StMaker control bits 00084 // 00085 // Revision 1.41 2002/11/26 02:16:39 perev 00086 // EventLoop added 00087 // 00088 // Revision 1.40 2002/03/12 21:19:00 fisyak 00089 // Set only one StEvtHddr as default option (due to Embedding) 00090 // 00091 // Revision 1.39 2002/02/02 23:31:14 jeromel 00092 // doxygenized. Added some text for the Make() method. 00093 // 00094 // Revision 1.38 2001/04/10 22:32:43 perev 00095 // Overload clean 00096 // 00097 // Revision 1.37 2001/04/10 21:38:49 perev 00098 // Maki(int) --> IMake(int) 00099 // 00100 // Revision 1.36 2000/11/27 22:46:39 fisyak 00101 // Introduce kIsCalibrated BIT 00102 // 00103 // Revision 1.35 2000/11/27 13:31:23 fisyak 00104 // Add Production time set 00105 // 00106 // Revision 1.34 2000/09/27 19:34:59 fisyak 00107 // Temporal fix to get Run/EventNo from dst 00108 // 00109 // Revision 1.33 2000/07/26 20:58:22 fine 00110 // StChain::GetOption virtual dummy methods have been introduced 00111 // 00112 // Revision 1.32 2000/03/23 00:15:22 fine 00113 // Adjusted to libSTAR for ROOT 2.24 00114 // 00115 // Revision 1.31 1999/12/03 01:24:40 fine 00116 // Advanced timer has been introduced 00117 // 00118 // Revision 1.30 1999/07/15 13:56:46 perev 00119 // cleanup 00120 // 00121 // Revision 1.29 1999/07/14 15:26:18 fine 00122 // Context menu MakeEvent method has been introduced 00123 // 00124 // Revision 1.28 1999/07/13 02:19:33 perev 00125 // GetCVS,StEvtHddr,etc... 00126 // 00127 // Revision 1.27 1999/07/11 20:40:35 perev 00128 // Move Clear from StChain to StMaker 00129 // 00130 // Revision 1.26 1999/03/19 20:30:49 perev 00131 // GetCVSTag introduced 00132 // 00133 // Revision 1.25 1999/03/11 01:23:58 perev 00134 // new schema StChain 00135 // 00136 // Revision 1.18 1998/12/21 19:42:50 fisyak 00137 // Move ROOT includes to non system 00138 // 00139 // Revision 1.17 1998/11/25 21:58:21 fisyak 00140 // Cleanup 00141 // 00142 // Revision 1.16 1998/11/22 18:28:06 fisyak 00143 // Add name of tag 00144 // 00145 // Revision 1.15 1998/11/19 01:23:56 fine 00146 // StChain::MakeDoc has been introduced, StChain::MakeDoc has been fixed (see macros/bfc_doc.C macro 00147 // 00148 // Revision 1.14 1998/10/31 00:21:31 fisyak 00149 // Makers take care about branches 00150 // 00151 // Revision 1.13 1998/10/07 18:43:59 perev 00152 // Add Spy classes for Farm Monitor 00153 // 00154 // Revision 1.12 1998/10/06 18:00:27 perev 00155 // cleanup 00156 // 00157 // Revision 1.11 1998/09/18 14:35:29 fisyak 00158 // Fix makers 00159 // 00160 // Revision 1.10 1998/09/08 22:43:09 fisyak 00161 // Modify St_dst_Maker to account new calling sequence 00162 // 00163 // Revision 1.9 1998/09/08 13:42:00 love 00164 // new St_tpctest_Maker module 00165 // 00166 // Revision 1.8 1998/08/18 14:05:02 fisyak 00167 // Add to bfc dst 00168 // 00169 // Revision 1.7 1998/08/07 19:34:53 fisyak 00170 // Add St_run_Maker 00171 // 00172 // Revision 1.6 1998/07/20 15:08:08 fisyak 00173 // Add tcl and tpt 00174 //