00001 /********************************************** 00002 * 00003 * $Id: StMcEventMaker.h,v 1.26 2012/03/22 01:10:13 perev Exp $ 00004 * $Log: StMcEventMaker.h,v $ 00005 * Revision 1.26 2012/03/22 01:10:13 perev 00006 * Etr add 00007 * 00008 * Revision 1.25 2011/10/11 01:24:52 perev 00009 * Mtd added 00010 * 00011 * Revision 1.24 2011/07/20 17:36:52 perev 00012 * Fsc added 00013 * 00014 * Revision 1.23 2011/01/26 19:48:35 perev 00015 * FPD ==> STAR Soft 00016 * 00017 * Revision 1.22 2010/07/21 17:31:23 perev 00018 * useBtof cancelled useTof is ON instead (F.Geurt) 00019 * 00020 * Revision 1.21 2009/07/24 19:06:41 perev 00021 * Btof added (Geurts) 00022 * 00023 * Revision 1.20 2007/10/16 19:49:46 fisyak 00024 * rename Hft => Pxl, remove Hpd, Igt and Fst 00025 * 00026 * Revision 1.19 2006/09/25 14:21:46 fisyak 00027 * Add Hpd Hits 00028 * 00029 * Revision 1.18 2005/09/28 21:30:51 fisyak 00030 * Persistent StMcEvent 00031 * 00032 * Revision 1.17 2005/07/07 18:21:18 calderon 00033 * Added code for filling of IGT classes. 00034 * 00035 * Revision 1.16 2005/06/06 19:15:07 calderon 00036 * Update for filling EEMC hits. All filling now done in one function, 00037 * StMcEventMaker::fillEemc(), towers, prs, smdu, smdv. 00038 * 00039 * Revision 1.15 2005/05/27 23:38:06 calderon 00040 * Update of EEMC filling for eprs, esmdu and esmdv hits. 00041 * 00042 * Revision 1.14 2005/05/11 20:53:13 calderon 00043 * Added loading of SSD hits from g2t_ssd_hit table. 00044 * 00045 * Revision 1.13 2005/04/18 20:12:40 calderon 00046 * Modifications to build the Fgt and Fst classes from the g2t tables. 00047 * 00048 * Revision 1.12 2003/12/04 05:58:15 calderon 00049 * Introduction of Endcap EMC collections into StMcEvent. Read the corresponding 00050 * g2t table for the hits, decode the volume Id and add it to the proper 00051 * containers in StMcEvent and StMcTrack. 00052 * 00053 * Revision 1.11 2003/09/10 19:47:22 perev 00054 * ansi corrs 00055 * 00056 * Revision 1.10 2003/08/20 18:51:01 calderon 00057 * Filling of Tof and Pixel classes. 00058 * 00059 * Revision 1.9 2003/02/19 03:17:04 calderon 00060 * Code to fill the StMcCtbHitCollection from the g2t tables by the Gansinator. 00061 * 00062 * Revision 1.8 2001/05/13 21:14:49 calderon 00063 * Modifications from Aleksei : StMcEmcHitCollections changed, added 00064 * method for printing Emc information of the event 00065 * 00066 * Revision 1.7 2000/06/22 23:53:31 calderon 00067 * Changes from Aleksei for filling of emc hits. 00068 * ttemp and ttempParticle are now data members. 00069 * 00070 * Revision 1.6 2000/06/06 03:00:18 calderon 00071 * Introduction of Calorimeter classes. Filled according to algorithm from 00072 * Aleksei, plus some additional checks. 00073 * 00074 * Revision 1.5 2000/05/11 14:40:29 calderon 00075 * Added switches to do/do not load hit information from different detectors. 00076 * By default, all the detectors' hit information is loaded. 00077 * 00078 * Revision 1.4 2000/04/20 16:53:39 calderon 00079 * change maker name from "MCEvent" to "StMcEvent". 00080 * 00081 * Revision 1.3 1999/12/03 00:55:21 calderon 00082 * Completely revised for StMcEvent 2.0 00083 * Using StDbUtilities for coordinate transformations. 00084 * Tested g2t_event table is read properly (when available). 00085 * Added messages for diagnostics. 00086 * Tested in Linux, Solaris 4.2 and HP. 00087 * 00088 * Revision 1.2 1999/07/28 20:27:43 calderon 00089 * Version with SL99f libraries 00090 * 00091 * 00092 **********************************************/ 00093 00094 #ifndef StMcEventMaker_HH 00095 #define StMcEventMaker_HH 00096 #include <vector> 00097 #ifndef StMaker_H 00098 #include "StMaker.h" 00099 #endif 00100 #ifndef ST_NO_NAMESPACES 00101 using std::vector; 00102 #endif 00103 00104 class StMcEvent; 00105 class StMcTrack; 00106 class StMcEmcHitCollection; 00107 class St_g2t_emc_hit; 00108 00109 class StMcEventMaker : public StMaker { 00110 public: 00111 00112 StMcEventMaker(const char* name = "StMcEventMaker", const char* title = ""); 00113 virtual ~StMcEventMaker(); 00114 00115 virtual void Clear(const char* opt=""); 00116 virtual Int_t Init(); 00117 virtual Int_t Make(); 00118 virtual Int_t Finish(); 00119 00120 virtual const char* GetCVS() const 00121 {static const char cvs[]="Tag $Name: $ $Id: StMcEventMaker.h,v 1.26 2012/03/22 01:10:13 perev Exp $ built "__DATE__" "__TIME__; return cvs;} 00122 00123 public: 00124 00125 Bool_t doPrintEventInfo; 00126 Bool_t doPrintMemoryInfo; 00127 Bool_t doPrintCpuInfo; 00128 Bool_t doUseTpc; 00129 Bool_t doUseSvt; 00130 Bool_t doUseSsd; 00131 Bool_t doUseFtpc; 00132 Bool_t doUseRich; 00133 Bool_t doUseBemc; 00134 Bool_t doUseBsmd; 00135 Bool_t doUseCtb; 00136 Bool_t doUseTofp; 00137 Bool_t doUseTof; 00138 Bool_t doUseMtd; 00139 Bool_t doUseEemc; 00140 Bool_t doUseFpd; 00141 Bool_t doUseFsc; 00142 Bool_t doUsePixel; 00143 Bool_t doUseIst; 00144 Bool_t doUseFgt; 00145 Bool_t doUseEtr; 00146 00147 void printEventInfo(); // *MENU* 00148 protected: 00149 void fillBemc(St_g2t_emc_hit*); 00150 void fillBsmd(St_g2t_emc_hit*); 00151 void fillEemc(St_g2t_emc_hit* g2t_tile,St_g2t_emc_hit* g2t_smd); 00152 void fillFpd(St_g2t_emc_hit*); 00153 void fillFsc(St_g2t_emc_hit*); 00154 00155 00156 private: 00157 #ifndef ST_NO_TEMPLATE_DEF_ARGS 00158 vector<StMcTrack*> ttemp; 00159 vector<StMcTrack*> ttempParticle; 00160 #else 00161 vector<StMcTrack*, allocator<StMcTrack*> > ttemp; 00162 vector<StMcTrack*, allocator<StMcTrack*> > ttempParticle; 00163 #endif 00164 StMcEvent* mCurrentMcEvent; 00165 00166 ClassDef(StMcEventMaker,0) 00167 00168 }; 00169 00170 #endif
1.5.9