StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StMcEventMaker.h
1 /**********************************************
2  *
3  * $Id: StMcEventMaker.h,v 1.28 2014/08/06 11:43:26 jeromel Exp $
4  * $Log: StMcEventMaker.h,v $
5  * Revision 1.28 2014/08/06 11:43:26 jeromel
6  * Suffix on literals need to be space (later gcc compiler makes it an error) - first wave of fixes
7  *
8  * Revision 1.27 2013/03/25 23:51:22 perev
9  * Mustafa.Pxl corrs
10  *
11  * Revision 1.26 2012/03/22 01:10:13 perev
12  * Etr add
13  *
14  * Revision 1.25 2011/10/11 01:24:52 perev
15  * Mtd added
16  *
17  * Revision 1.24 2011/07/20 17:36:52 perev
18  * Fsc added
19  *
20  * Revision 1.23 2011/01/26 19:48:35 perev
21  * FPD ==> STAR Soft
22  *
23  * Revision 1.22 2010/07/21 17:31:23 perev
24  * useBtof cancelled useTof is ON instead (F.Geurt)
25  *
26  * Revision 1.21 2009/07/24 19:06:41 perev
27  * Btof added (Geurts)
28  *
29  * Revision 1.20 2007/10/16 19:49:46 fisyak
30  * rename Hft => Pxl, remove Hpd, Igt and Fst
31  *
32  * Revision 1.19 2006/09/25 14:21:46 fisyak
33  * Add Hpd Hits
34  *
35  * Revision 1.18 2005/09/28 21:30:51 fisyak
36  * Persistent StMcEvent
37  *
38  * Revision 1.17 2005/07/07 18:21:18 calderon
39  * Added code for filling of IGT classes.
40  *
41  * Revision 1.16 2005/06/06 19:15:07 calderon
42  * Update for filling EEMC hits. All filling now done in one function,
43  * StMcEventMaker::fillEemc(), towers, prs, smdu, smdv.
44  *
45  * Revision 1.15 2005/05/27 23:38:06 calderon
46  * Update of EEMC filling for eprs, esmdu and esmdv hits.
47  *
48  * Revision 1.14 2005/05/11 20:53:13 calderon
49  * Added loading of SSD hits from g2t_ssd_hit table.
50  *
51  * Revision 1.13 2005/04/18 20:12:40 calderon
52  * Modifications to build the Fgt and Fst classes from the g2t tables.
53  *
54  * Revision 1.12 2003/12/04 05:58:15 calderon
55  * Introduction of Endcap EMC collections into StMcEvent. Read the corresponding
56  * g2t table for the hits, decode the volume Id and add it to the proper
57  * containers in StMcEvent and StMcTrack.
58  *
59  * Revision 1.11 2003/09/10 19:47:22 perev
60  * ansi corrs
61  *
62  * Revision 1.10 2003/08/20 18:51:01 calderon
63  * Filling of Tof and Pixel classes.
64  *
65  * Revision 1.9 2003/02/19 03:17:04 calderon
66  * Code to fill the StMcCtbHitCollection from the g2t tables by the Gansinator.
67  *
68  * Revision 1.8 2001/05/13 21:14:49 calderon
69  * Modifications from Aleksei : StMcEmcHitCollections changed, added
70  * method for printing Emc information of the event
71  *
72  * Revision 1.7 2000/06/22 23:53:31 calderon
73  * Changes from Aleksei for filling of emc hits.
74  * ttemp and ttempParticle are now data members.
75  *
76  * Revision 1.6 2000/06/06 03:00:18 calderon
77  * Introduction of Calorimeter classes. Filled according to algorithm from
78  * Aleksei, plus some additional checks.
79  *
80  * Revision 1.5 2000/05/11 14:40:29 calderon
81  * Added switches to do/do not load hit information from different detectors.
82  * By default, all the detectors' hit information is loaded.
83  *
84  * Revision 1.4 2000/04/20 16:53:39 calderon
85  * change maker name from "MCEvent" to "StMcEvent".
86  *
87  * Revision 1.3 1999/12/03 00:55:21 calderon
88  * Completely revised for StMcEvent 2.0
89  * Using StDbUtilities for coordinate transformations.
90  * Tested g2t_event table is read properly (when available).
91  * Added messages for diagnostics.
92  * Tested in Linux, Solaris 4.2 and HP.
93  *
94  * Revision 1.2 1999/07/28 20:27:43 calderon
95  * Version with SL99f libraries
96  *
97  *
98  **********************************************/
99 
100 #ifndef StMcEventMaker_HH
101 #define StMcEventMaker_HH
102 #include <vector>
103 #ifndef StMaker_H
104 #include "StMaker.h"
105 #endif
106 #ifndef ST_NO_NAMESPACES
107 using std::vector;
108 #endif
109 
110 class StMcEvent;
111 class StMcTrack;
113 class St_g2t_emc_hit;
114 
115 class StMcEventMaker : public StMaker {
116 public:
117 
118  StMcEventMaker(const char* name = "StMcEventMaker", const char* title = "");
119  virtual ~StMcEventMaker();
120 
121  virtual void Clear(const char* opt="");
122  virtual Int_t Init();
123  virtual Int_t Make();
124  virtual Int_t Finish();
125 
126  virtual const char* GetCVS() const
127  {static const char cvs[]="Tag $Name: $ $Id: StMcEventMaker.h,v 1.28 2014/08/06 11:43:26 jeromel Exp $ built " __DATE__ " " __TIME__; return cvs;}
128 
129 public:
130 
131  Bool_t doPrintEventInfo;
133  Bool_t doPrintCpuInfo;
134  Bool_t doUseTpc;
135  Bool_t doUseSvt;
136  Bool_t doUseSsd;
137  Bool_t doUseFtpc;
138  Bool_t doUseRich;
139  Bool_t doUseBemc;
140  Bool_t doUseBsmd;
141  Bool_t doUseCtb;
142  Bool_t doUseTofp;
143  Bool_t doUseTof;
144  Bool_t doUseMtd;
145  Bool_t doUseEemc;
146  Bool_t doUseFpd;
147  Bool_t doUseFsc;
148  Bool_t doUsePxl;
149  Bool_t doUseIst;
150  Bool_t doUseFgt;
151  Bool_t doUseEtr;
152 
153  void printEventInfo(); // *MENU*
154 protected:
155  void fillBemc(St_g2t_emc_hit*);
156  void fillBsmd(St_g2t_emc_hit*);
157  void fillEemc(St_g2t_emc_hit* g2t_tile,St_g2t_emc_hit* g2t_smd);
158  void fillFpd(St_g2t_emc_hit*);
159  void fillFsc(St_g2t_emc_hit*);
160 
161 
162 private:
163 #ifndef ST_NO_TEMPLATE_DEF_ARGS
164  vector<StMcTrack*> ttemp;
165  vector<StMcTrack*> ttempParticle;
166 #else
167  vector<StMcTrack*, allocator<StMcTrack*> > ttemp;
168  vector<StMcTrack*, allocator<StMcTrack*> > ttempParticle;
169 #endif
170  StMcEvent* mCurrentMcEvent;
171 
172  ClassDef(StMcEventMaker,0)
173 
174 };
175 
176 #endif
Monte Carlo Track class All information on a simulated track is stored in this class: kinematics...
Definition: StMcTrack.hh:144
virtual Int_t Make()
Filling of all StMcEvent classes from g2t tables Transform all the data in the g2t tables into the co...
Bool_t doPrintMemoryInfo
lots of screen output
virtual Int_t Finish()
Event data structure to hold all information from a Monte Carlo simulation. This class is the interfa...
Definition: StMcEvent.hh:169