StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StFtpcClusterMaker.h
1 // $Id: StFtpcClusterMaker.h,v 1.32 2014/08/06 11:43:16 jeromel Exp $
2 // $Log: StFtpcClusterMaker.h,v $
3 // Revision 1.32 2014/08/06 11:43:16 jeromel
4 // Suffix on literals need to be space (later gcc compiler makes it an error) - first wave of fixes
5 //
6 // Revision 1.31 2009/08/04 08:37:28 jcs
7 // When the flaser option is included in the bfc, the 'perfect' gain table and
8 // adjustAverageWest = adjustAverageEast = 0.0, will be used for cluster finding
9 //
10 // Revision 1.30 2008/01/07 14:46:10 jcs
11 // create and fill the special set of Ftpc point histograms used to evaluate
12 // the Ftpc gain scan runs when bfc option fgain is in the chain
13 //
14 // Revision 1.29 2005/10/14 07:29:01 jcs
15 // Calculate microsecondsPerTimebin from RHIC ClockFrequency
16 // If RHIC ClockFrequency = 0, use default value from database
17 //
18 // Revision 1.28 2005/03/23 14:32:28 jcs
19 // additional changes for using body + extra temperatures starting with y2005
20 //
21 // Revision 1.27 2004/09/27 12:54:27 jcs
22 // pad vs. time histograms moved to St_QA_Maker
23 // set radial step histogram line color; red = FTPC East, blue=FTPC West
24 //
25 // Revision 1.26 2004/09/03 20:35:04 perev
26 // Big LeakOff + mem optimisation
27 //
28 // Revision 1.25 2004/02/12 19:38:46 oldi
29 // Removal of intermediate tables.
30 //
31 // Revision 1.24 2003/09/10 19:47:16 perev
32 // ansi corrs
33 //
34 // Revision 1.23 2003/08/21 14:27:23 jcs
35 // remove temporary fix to prevent segmentation violation which occurred when more than one run per job
36 //
37 // Revision 1.22 2003/07/15 09:35:49 jcs
38 // do not re-flavor FTPC drift maps if already flavored to avoid creating
39 // memory leak.
40 // meomory leak will occur if flavor (i.e. magnetic field) changes within one
41 // *.fz file (only possible for MC data)
42 //
43 // Revision 1.21 2003/06/12 10:01:25 jcs
44 // renamed ftpcClusterGeometry database table to ftpcClusterGeom
45 // (name was too long)
46 //
47 // Revision 1.20 2003/06/11 12:06:03 jcs
48 // get inner cathode and cluster geometry parameters from database
49 //
50 // Revision 1.19 2003/02/27 22:56:58 jcs
51 // use the ftpc body temperature readings to make temperature/pressure corrections
52 //
53 // Revision 1.18 2003/01/14 12:58:01 jcs
54 // use Geometry_ftpc/ftpcAsicMap to control corrections for error in Y2001-2002
55 // FTPC asic mapping
56 //
57 // Revision 1.17 2002/03/01 14:22:20 jcs
58 // add additional histograms to monitor cluster finding
59 //
60 // Revision 1.16 2002/02/10 21:14:44 jcs
61 // create separate radial chargestep histograms for Ftpc west and east
62 //
63 // Revision 1.15 2001/11/21 12:44:44 jcs
64 // make ftpcGas database table available to FTPC cluster maker
65 //
66 // Revision 1.14 2001/10/29 12:53:23 jcs
67 // select FTPC drift maps according to flavor of magnetic field
68 //
69 // Revision 1.13 2001/10/19 09:41:22 jcs
70 // tZero now in data base in ftpcElectronics
71 //
72 // Revision 1.12 2001/10/12 14:33:08 jcs
73 // create and fill charge step histograms for FTPC East and West
74 //
75 // Revision 1.11 2001/07/12 07:45:53 jcs
76 // define radial position of clusters histogram
77 //
78 // Revision 1.10 2001/04/02 12:10:20 jcs
79 // get FTPC calibrations,geometry from MySQL database and code parameters
80 // from StarDb/ftpc
81 //
82 // Revision 1.9 2001/03/19 15:52:47 jcs
83 // use ftpcDimensions from database
84 //
85 // Revision 1.8 2001/03/06 23:33:56 jcs
86 // use database instead of params
87 //
88 // Revision 1.7 2000/11/20 11:39:16 jcs
89 // remove remaining traces of fspar table
90 //
91 // Revision 1.6 2000/11/14 13:08:21 hummler
92 // add charge step calculation, minor cleanup
93 //
94 // Revision 1.5 2000/08/03 14:39:00 hummler
95 // Create param reader to keep parameter tables away from cluster finder and
96 // fast simulator. StFtpcClusterFinder now knows nothing about tables anymore!
97 //
98 // Revision 1.3 2000/01/27 09:47:18 hummler
99 // implement raw data reader, remove type ambiguities that bothered kcc
100 //
101 // Revision 1.2 1999/12/02 13:20:59 hummler
102 // Move cluster processing from maker to cluster finder class.
103 // (Preparations for new raw data implementation.)
104 //
105 //
106 #ifndef STAR_StFtpcClusterMaker
107 #define STAR_StFtpcClusterMaker
108 
110 // //
111 // StFtpcClusterMaker virtual base class for Maker //
112 // //
114 #ifndef StMaker_H
115 #include "StMaker.h"
116 #endif
117 
118 #ifndef __CINT__
119 #include "StDaqLib/GENERIC/EventReader.hh"
120 #include "StDaqLib/RICH/RICH_Reader.hh"
121 
122 #endif /*__CINT__*/
123 
124 class TH1F;
125 class TH2F;
126 
127 class St_db_Maker;
128 class DetectorReader;
129 class St_ftpcClusterPars;
130 class St_ftpcFastSimGas;
131 class St_ftpcFastSimPars;
132 class St_ftpcDimensions;
133 class St_ftpcPadrowZ;
134 class St_ftpcAsicMap;
135 class St_ftpcEField;
136 class St_ftpcVDrift;
137 class St_ftpcDeflection;
138 class St_ftpcdVDriftdP;
139 class St_ftpcdDeflectiondP;
140 class St_ftpcAmpSlope;
141 class St_ftpcAmpOffset;
142 class St_ftpcTimeOffset;
143 class St_ftpcDriftField;
144 class St_ftpcGas;
145 class St_ftpcElectronics;
146 class St_ftpcInnerCathode;
147 class St_ftpcClusterGeom;
148 class St_ftpcTemps;
149 class StEvent;
150 class StFtpcHitCollection;
151 class TObjArray;
152 
153 class StFtpcClusterMaker : public StMaker {
154  private:
155  Bool_t drawinit;
156  Bool_t laserRun;
157 // static Char_t m_VersionCVS = "$Id: StFtpcClusterMaker.h,v 1.32 2014/08/06 11:43:16 jeromel Exp $";
158  St_db_Maker *mDbMaker;
159  St_ftpcClusterPars *m_clusterpars;
160  St_ftpcFastSimGas *m_fastsimgas;
161  St_ftpcFastSimPars *m_fastsimpars;
162  St_ftpcDimensions *m_dimensions;
163  St_ftpcPadrowZ *m_padrow_z;
164  St_ftpcAsicMap *m_asicmap;
165  St_ftpcEField *m_efield;
166  St_ftpcVDrift *m_vdrift;
167  St_ftpcDeflection *m_deflection;
168  St_ftpcdVDriftdP *m_dvdriftdp;
169  St_ftpcdDeflectiondP *m_ddeflectiondp;
170  St_ftpcAmpSlope *m_ampslope;
171  St_ftpcAmpOffset *m_ampoffset;
172  St_ftpcTimeOffset *m_timeoffset;
173  St_ftpcDriftField *m_driftfield;
174  St_ftpcGas *m_gas;
175  St_ftpcElectronics *m_electronics;
176  St_ftpcInnerCathode *m_cathode;
177  St_ftpcClusterGeom *m_clustergeo;
178  St_ftpcTemps *m_temps;
179  void MakeHistograms();// Histograms for FTPC cluster finder
180 
181  protected:
182  StEvent* mCurrentEvent;
183  StFtpcHitCollection* mFtpcHitColl;
184  TObjArray* mHitArray;
185 
186 
187  char m_ThBeg[1];
188  TH1F *m_cluster_radial_West;
192  TH1F *m_flags;
193  TH1F *m_row;
194  TH1F *m_sector;
195  //TH1F *m_pads; //! pads
196  //TH1F *m_timebins; //! timebins
197  TH2F *m_pnt_xyFW;
198  TH2F *m_pnt_xyFE;
200  TH1F *m_pnt_planeF;
202  TH2F *m_row_sector;
203  //TH2F *m_npad_nbin; //! number of pads vs. number of timebins
204  TH2F *m_csteps;
205  TH2F *m_hitsvspad;
206  TH2F *m_hitsvstime;
208  TH1F *m_maxadc_East;
209  TH1F *m_charge_West;
210  TH1F *m_charge_East;
211  char m_ThEnd[1];
212 
213  Float_t microsecondsPerTimebin;
214 
215 
216  public:
217  StFtpcClusterMaker(const char *name="ftpc_hits");
218  virtual ~StFtpcClusterMaker();
219  virtual Int_t InitRun(int);
220  virtual Int_t Init();
221  virtual Int_t Make();
222 // virtual void Set_mode (Int_t m = 2){m_mode = m;} // *MENU*
223  virtual const char *GetCVS() const
224  {static const char cvs[]="Tag $Name: $ $Id: StFtpcClusterMaker.h,v 1.32 2014/08/06 11:43:16 jeromel Exp $ built " __DATE__ " " __TIME__ ; return cvs;}
225 
226  ClassDef(StFtpcClusterMaker,0) //StAF chain virtual base class for Makers
227 };
228 #endif
TH1F * m_flags
FTPC East charge step.
TH1F * m_cluster_radial_East
radial position of clusters in FTPC West
TH2F * m_pnt_xyFE
xy dist. of hits, ftpcW
TH2F * m_hitsvspad
charge step by (6*row)+sector
TH1F * m_pnt_planeF
padlength vs timelength of hits, ftpcW
TH1F * m_chargestep_East
FTPC West charge step.
TH2F * m_csteps
row vs. sector
TH1F * m_row
quality control flags
TH2F * m_pnt_padtimeFW
xy dist. of hits, ftpcE
TH1F * m_maxadc_West
number of found hits over cluster timelength
TH2F * m_pnt_padtimeFE
plane dist. of hits, ftpc
TH1F * m_chargestep_West
radial position of clusters in FTPC East
TH2F * m_pnt_xyFW
sectors
TH2F * m_row_sector
padlength vs timelength of hits, ftpcE
TH2F * m_hitsvstime
number of found hits over cluster padlength