00001 // $Id: StFtpcClusterMaker.h,v 1.31 2009/08/04 08:37:28 jcs Exp $ 00002 // $Log: StFtpcClusterMaker.h,v $ 00003 // Revision 1.31 2009/08/04 08:37:28 jcs 00004 // When the flaser option is included in the bfc, the 'perfect' gain table and 00005 // adjustAverageWest = adjustAverageEast = 0.0, will be used for cluster finding 00006 // 00007 // Revision 1.30 2008/01/07 14:46:10 jcs 00008 // create and fill the special set of Ftpc point histograms used to evaluate 00009 // the Ftpc gain scan runs when bfc option fgain is in the chain 00010 // 00011 // Revision 1.29 2005/10/14 07:29:01 jcs 00012 // Calculate microsecondsPerTimebin from RHIC ClockFrequency 00013 // If RHIC ClockFrequency = 0, use default value from database 00014 // 00015 // Revision 1.28 2005/03/23 14:32:28 jcs 00016 // additional changes for using body + extra temperatures starting with y2005 00017 // 00018 // Revision 1.27 2004/09/27 12:54:27 jcs 00019 // pad vs. time histograms moved to St_QA_Maker 00020 // set radial step histogram line color; red = FTPC East, blue=FTPC West 00021 // 00022 // Revision 1.26 2004/09/03 20:35:04 perev 00023 // Big LeakOff + mem optimisation 00024 // 00025 // Revision 1.25 2004/02/12 19:38:46 oldi 00026 // Removal of intermediate tables. 00027 // 00028 // Revision 1.24 2003/09/10 19:47:16 perev 00029 // ansi corrs 00030 // 00031 // Revision 1.23 2003/08/21 14:27:23 jcs 00032 // remove temporary fix to prevent segmentation violation which occurred when more than one run per job 00033 // 00034 // Revision 1.22 2003/07/15 09:35:49 jcs 00035 // do not re-flavor FTPC drift maps if already flavored to avoid creating 00036 // memory leak. 00037 // meomory leak will occur if flavor (i.e. magnetic field) changes within one 00038 // *.fz file (only possible for MC data) 00039 // 00040 // Revision 1.21 2003/06/12 10:01:25 jcs 00041 // renamed ftpcClusterGeometry database table to ftpcClusterGeom 00042 // (name was too long) 00043 // 00044 // Revision 1.20 2003/06/11 12:06:03 jcs 00045 // get inner cathode and cluster geometry parameters from database 00046 // 00047 // Revision 1.19 2003/02/27 22:56:58 jcs 00048 // use the ftpc body temperature readings to make temperature/pressure corrections 00049 // 00050 // Revision 1.18 2003/01/14 12:58:01 jcs 00051 // use Geometry_ftpc/ftpcAsicMap to control corrections for error in Y2001-2002 00052 // FTPC asic mapping 00053 // 00054 // Revision 1.17 2002/03/01 14:22:20 jcs 00055 // add additional histograms to monitor cluster finding 00056 // 00057 // Revision 1.16 2002/02/10 21:14:44 jcs 00058 // create separate radial chargestep histograms for Ftpc west and east 00059 // 00060 // Revision 1.15 2001/11/21 12:44:44 jcs 00061 // make ftpcGas database table available to FTPC cluster maker 00062 // 00063 // Revision 1.14 2001/10/29 12:53:23 jcs 00064 // select FTPC drift maps according to flavor of magnetic field 00065 // 00066 // Revision 1.13 2001/10/19 09:41:22 jcs 00067 // tZero now in data base in ftpcElectronics 00068 // 00069 // Revision 1.12 2001/10/12 14:33:08 jcs 00070 // create and fill charge step histograms for FTPC East and West 00071 // 00072 // Revision 1.11 2001/07/12 07:45:53 jcs 00073 // define radial position of clusters histogram 00074 // 00075 // Revision 1.10 2001/04/02 12:10:20 jcs 00076 // get FTPC calibrations,geometry from MySQL database and code parameters 00077 // from StarDb/ftpc 00078 // 00079 // Revision 1.9 2001/03/19 15:52:47 jcs 00080 // use ftpcDimensions from database 00081 // 00082 // Revision 1.8 2001/03/06 23:33:56 jcs 00083 // use database instead of params 00084 // 00085 // Revision 1.7 2000/11/20 11:39:16 jcs 00086 // remove remaining traces of fspar table 00087 // 00088 // Revision 1.6 2000/11/14 13:08:21 hummler 00089 // add charge step calculation, minor cleanup 00090 // 00091 // Revision 1.5 2000/08/03 14:39:00 hummler 00092 // Create param reader to keep parameter tables away from cluster finder and 00093 // fast simulator. StFtpcClusterFinder now knows nothing about tables anymore! 00094 // 00095 // Revision 1.3 2000/01/27 09:47:18 hummler 00096 // implement raw data reader, remove type ambiguities that bothered kcc 00097 // 00098 // Revision 1.2 1999/12/02 13:20:59 hummler 00099 // Move cluster processing from maker to cluster finder class. 00100 // (Preparations for new raw data implementation.) 00101 // 00102 // 00103 #ifndef STAR_StFtpcClusterMaker 00104 #define STAR_StFtpcClusterMaker 00105 00107 // // 00108 // StFtpcClusterMaker virtual base class for Maker // 00109 // // 00111 #ifndef StMaker_H 00112 #include "StMaker.h" 00113 #endif 00114 00115 #ifndef __CINT__ 00116 #include "StDaqLib/GENERIC/EventReader.hh" 00117 #include "StDaqLib/RICH/RICH_Reader.hh" 00118 00119 #endif /*__CINT__*/ 00120 00121 class TH1F; 00122 class TH2F; 00123 00124 class St_db_Maker; 00125 class DetectorReader; 00126 class St_ftpcClusterPars; 00127 class St_ftpcFastSimGas; 00128 class St_ftpcFastSimPars; 00129 class St_ftpcDimensions; 00130 class St_ftpcPadrowZ; 00131 class St_ftpcAsicMap; 00132 class St_ftpcEField; 00133 class St_ftpcVDrift; 00134 class St_ftpcDeflection; 00135 class St_ftpcdVDriftdP; 00136 class St_ftpcdDeflectiondP; 00137 class St_ftpcAmpSlope; 00138 class St_ftpcAmpOffset; 00139 class St_ftpcTimeOffset; 00140 class St_ftpcDriftField; 00141 class St_ftpcGas; 00142 class St_ftpcElectronics; 00143 class St_ftpcInnerCathode; 00144 class St_ftpcClusterGeom; 00145 class St_ftpcTemps; 00146 class StEvent; 00147 class StFtpcHitCollection; 00148 class TObjArray; 00149 00150 class StFtpcClusterMaker : public StMaker { 00151 private: 00152 Bool_t drawinit; 00153 Bool_t laserRun; 00154 // static Char_t m_VersionCVS = "$Id: StFtpcClusterMaker.h,v 1.31 2009/08/04 08:37:28 jcs Exp $"; 00155 St_db_Maker *mDbMaker; 00156 St_ftpcClusterPars *m_clusterpars; 00157 St_ftpcFastSimGas *m_fastsimgas; 00158 St_ftpcFastSimPars *m_fastsimpars; 00159 St_ftpcDimensions *m_dimensions; 00160 St_ftpcPadrowZ *m_padrow_z; 00161 St_ftpcAsicMap *m_asicmap; 00162 St_ftpcEField *m_efield; 00163 St_ftpcVDrift *m_vdrift; 00164 St_ftpcDeflection *m_deflection; 00165 St_ftpcdVDriftdP *m_dvdriftdp; 00166 St_ftpcdDeflectiondP *m_ddeflectiondp; 00167 St_ftpcAmpSlope *m_ampslope; 00168 St_ftpcAmpOffset *m_ampoffset; 00169 St_ftpcTimeOffset *m_timeoffset; 00170 St_ftpcDriftField *m_driftfield; 00171 St_ftpcGas *m_gas; 00172 St_ftpcElectronics *m_electronics; 00173 St_ftpcInnerCathode *m_cathode; 00174 St_ftpcClusterGeom *m_clustergeo; 00175 St_ftpcTemps *m_temps; 00176 void MakeHistograms();// Histograms for FTPC cluster finder 00177 00178 protected: 00179 StEvent* mCurrentEvent; 00180 StFtpcHitCollection* mFtpcHitColl; 00181 TObjArray* mHitArray; 00182 00183 00184 char m_ThBeg[1]; 00185 TH1F *m_cluster_radial_West; 00186 TH1F *m_cluster_radial_East; 00187 TH1F *m_chargestep_West; 00188 TH1F *m_chargestep_East; 00189 TH1F *m_flags; 00190 TH1F *m_row; 00191 TH1F *m_sector; 00192 //TH1F *m_pads; //! pads 00193 //TH1F *m_timebins; //! timebins 00194 TH2F *m_pnt_xyFW; 00195 TH2F *m_pnt_xyFE; 00196 TH2F *m_pnt_padtimeFW; 00197 TH1F *m_pnt_planeF; 00198 TH2F *m_pnt_padtimeFE; 00199 TH2F *m_row_sector; 00200 //TH2F *m_npad_nbin; //! number of pads vs. number of timebins 00201 TH2F *m_csteps; 00202 TH2F *m_hitsvspad; 00203 TH2F *m_hitsvstime; 00204 TH1F *m_maxadc_West; 00205 TH1F *m_maxadc_East; 00206 TH1F *m_charge_West; 00207 TH1F *m_charge_East; 00208 char m_ThEnd[1]; 00209 00210 Float_t microsecondsPerTimebin; 00211 00212 00213 public: 00214 StFtpcClusterMaker(const char *name="ftpc_hits"); 00215 virtual ~StFtpcClusterMaker(); 00216 virtual Int_t InitRun(int); 00217 virtual Int_t Init(); 00218 virtual Int_t Make(); 00219 // virtual void Set_mode (Int_t m = 2){m_mode = m;} // *MENU* 00220 virtual const char *GetCVS() const 00221 {static const char cvs[]="Tag $Name: $ $Id: StFtpcClusterMaker.h,v 1.31 2009/08/04 08:37:28 jcs Exp $ built "__DATE__" "__TIME__ ; return cvs;} 00222 00223 ClassDef(StFtpcClusterMaker,0) //StAF chain virtual base class for Makers 00224 }; 00225 #endif
1.5.9