00001 // $Id: StFtpcFastSimu.hh,v 1.17 2004/02/12 19:38:46 oldi Exp $ 00002 // 00003 // $Log: StFtpcFastSimu.hh,v $ 00004 // Revision 1.17 2004/02/12 19:38:46 oldi 00005 // Removal of intermediate tables. 00006 // 00007 // Revision 1.16 2004/01/28 02:04:43 jcs 00008 // replace all instances of StFtpcReducedPoint and StFtpcPoint with StFtpcConfMapPoint 00009 // 00010 // Revision 1.15 2003/10/10 12:36:15 jcs 00011 // implement new FTPC geant volume id method 00012 // initialize counters and arrays to zero 00013 // replace many int,float's wiht Int_t,Float_t 00014 // 00015 // Revision 1.14 2002/09/16 12:43:22 jcs 00016 // replace large statically dimensioned arrays with dynamically dimensioned arrays 00017 // 00018 // Revision 1.13 2001/03/19 15:52:47 jcs 00019 // use ftpcDimensions from database 00020 // 00021 // Revision 1.12 2001/01/25 15:25:49 oldi 00022 // Fix of several bugs which caused memory leaks: 00023 // - Some arrays were not allocated and/or deleted properly. 00024 // - TClonesArray seems to have a problem (it could be that I used it in a 00025 // wrong way in StFtpcTrackMaker form where Holm cut and pasted it). 00026 // I changed all occurences to TObjArray which makes the program slightly 00027 // slower but much more save (in terms of memory usage). 00028 // 00029 // Revision 1.11 2001/01/08 17:10:04 jcs 00030 // move remaining constants from code to database 00031 // 00032 // Revision 1.10 2000/11/24 15:02:33 hummler 00033 // commit changes omitted in last commit 00034 // 00035 // Revision 1.8 2000/09/18 14:26:49 hummler 00036 // expand StFtpcParamReader to supply data for slow simulator as well 00037 // introduce StFtpcGeantReader to separate g2t tables from simulator code 00038 // implement StFtpcGeantReader in StFtpcFastSimu 00039 // 00040 // Revision 1.7 2000/08/03 14:39:00 hummler 00041 // Create param reader to keep parameter tables away from cluster finder and 00042 // fast simulator. StFtpcClusterFinder now knows nothing about tables anymore! 00043 // 00044 // Revision 1.6 2000/02/04 13:49:42 hummler 00045 // upgrade ffs: 00046 // -remove unused fspar table 00047 // -make hit smearing gaussian with decent parameters and static rand engine 00048 // -separate hit smearing from cluster width calculation 00049 // 00050 // Revision 1.5 2000/02/02 15:40:08 hummler 00051 // make hit smearing gaussian instead of box-shaped 00052 // 00053 // Revision 1.4 2000/02/02 15:20:37 hummler 00054 // correct acceptance at sector boundaries, 00055 // take values from fcl_det 00056 // 00057 // Revision 1.3 2000/01/03 12:48:59 jcs 00058 // Add CVS Id strings 00059 // 00060 00061 #ifndef STAR_StFtpcFastSimu 00062 #define STAR_StFtpcFastSimu 00063 #include "ffs_gepoint.h" 00064 #include "TObjArray.h" 00065 #include "StFtpcGeantPoint.hh" 00066 #include "StFtpcTrackMaker/StFtpcConfMapPoint.hh" 00067 00068 #define TRUE 1 00069 #define FALSE 0 00070 00071 class RandGauss; 00072 class StFtpcParamReader; 00073 class StFtpcDbReader; 00074 class StFtpcGeantReader; 00075 00076 class StFtpcFastSimu 00077 { 00078 private: 00079 StFtpcParamReader *mParam; 00080 StFtpcDbReader *mDb; 00081 StFtpcGeantReader *mGeant; 00082 StFtpcConfMapPoint *mPoint; 00083 StFtpcGeantPoint *mGeantPoint; 00084 00085 Char_t mStart; // start of simple variables 00086 00087 Int_t nPoints; 00088 Int_t nPadrows; 00089 Int_t * nrowmax; 00090 Int_t * nrow; 00091 00092 Float_t Va; 00093 Float_t Vhm[4]; 00094 Float_t Tbm[4]; 00095 Float_t s_rad[4]; 00096 Float_t s_azi[4]; 00097 Float_t err_rad[4]; 00098 Float_t err_azi[4]; 00099 Float_t ri; 00100 Float_t ra; 00101 Float_t phimin; 00102 Float_t phisec; 00103 Float_t sector_phi_min; 00104 Float_t sector_phi_max; 00105 00106 Char_t mEnd; //End of simple variables 00107 00108 double myModulo(double x1, double x2) 00109 { 00110 return x1-(double)(int)(x1/x2)*x2; 00111 } 00112 public: 00113 StFtpcFastSimu(StFtpcGeantReader *geantReader, 00114 StFtpcParamReader *paramReader, 00115 StFtpcDbReader *dbReader, 00116 TObjArray *pointarray, 00117 TObjArray *geantarray); 00118 ~StFtpcFastSimu(); 00119 int ffs_gen_padres(); 00120 int ffs_hit_rd(); 00121 int ffs_hit_smear(float phi, 00122 float xi, 00123 float yi, 00124 float zi, 00125 float *xo, 00126 float *yo, 00127 float *zo, 00128 float st_dev_l_hit, 00129 float st_dev_tr_hit, 00130 float *st_dev_z, 00131 float *st_dev_x, 00132 float *st_dev_y, 00133 RandGauss *quasiRandom); 00134 int ffs_ini(); 00135 int ffs_merge_tagger(); 00136 int ffs_tag(); 00137 }; 00138 00139 #endif
1.5.9