00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00129 #ifndef STAR_StSsdPointMaker
00130 #define STAR_StSsdPointMaker
00131 #include "Riostream.h"
00132 #ifndef StMaker_H
00133 #include "StMaker.h"
00134 #endif
00135 #include "StSsdUtil/StSsdDynamicControl.h"
00136 #include "StSsdUtil/StSsdClusterControl.h"
00137
00138 class TFile;
00139 class TH1F;
00140 class TH1S;
00141 class TH2S;
00142 class TH2F;
00143 class TNtuple;
00144
00145 class St_ssdDimensions;
00146 class St_ssdConfiguration;
00147 class St_ssdWafersPosition;
00148 class St_ssdStripCalib;
00149 class St_ssdGainCalibWafer;
00150 class St_ssdNoise;
00151 class St_ssdWaferConfiguration;
00152
00153 class StEvent;
00154 class StSsdHitCollection;
00155
00156 class StSsdBarrel;
00157 class StSsdLadder;
00158 class StSsdWafer;
00159 class StSsdStrip;
00160 class StSsdStripList;
00161 class StSsdPoint;
00162 class StSsdPointList;
00163 class StSsdCluster;
00164 class StSsdClusterList;
00165 class StSsdPackage;
00166 class StSsdPackageList;
00167 class ssdWafersPosition_st;
00168 class ssdDimensions_st;
00169 class ssdConfiguration_st;
00170 class StRunInfo;
00171 class StEventInfo;
00172
00173
00174 class StSsdPointMaker : public StMaker {
00175 public:
00176 StSsdPointMaker(const char *name="SsdPoint") : StMaker(name), m_noise2(0)
00177 #ifdef config_position_dimensions
00178 ,position(0), dimensions(0), config(0),
00179 m_dimensions(0), m_configuration(0), m_wafpos(0)
00180 #endif
00181 ,mHitNtuple(0), nHitNtuple(0), qHitNtuple(0), pHitNtuple(0), rHitNtuple(0) {}
00182 virtual ~StSsdPointMaker() {}
00183 virtual Int_t Init();
00184 virtual Int_t InitRun(Int_t runumber);
00185 virtual Int_t Make();
00186 virtual Int_t Finish();
00187 virtual void PrintInfo();
00188 private:
00189 TDataSet* DbConnector;
00190 St_ssdStripCalib *m_noise2;
00191 St_ssdNoise *m_noise3;
00192 St_ssdGainCalibWafer *mGain;
00193 St_ssdWaferConfiguration *mWafConfig;
00194 #ifdef config_position_dimensions
00195 St_ssdWafersPosition *position;
00196 ssdDimensions_st *dimensions;
00197 ssdConfiguration_st *config;
00198 St_ssdDimensions *m_dimensions;
00199 St_ssdConfiguration *m_configuration;
00200 St_ssdWafersPosition *m_wafpos;
00201 #endif
00202 Float_t Strips_hits[15];
00203 Float_t ClusterNtuple[15];
00204 Float_t ClustupleIn[15];
00205 Float_t hitNtuple[15];
00206 Float_t StripsIn[15];
00207 TNtuple *mHitNtuple;
00208 TNtuple *nHitNtuple;
00209 TNtuple *qHitNtuple;
00210 TNtuple *pHitNtuple;
00211 TNtuple *rHitNtuple;
00212 void makeScfCtrlHistograms(StSsdBarrel *mySsd);
00213 void makeScmCtrlHistograms(StSsdBarrel *mySsd);
00214 void DeclareNtuple();
00215 void debugUnPeu(StSsdBarrel *mySsd);
00216 void PrintStripSummary(StSsdBarrel *mySsd);
00217 void PrintClusterSummary(StSsdBarrel *mySsd);
00218 void PrintPointSummary(StSsdBarrel *mySsd);
00219 void WriteStripTuple(StSsdBarrel *mySsd);
00220 void WriteScfTuple(StSsdBarrel *mySsd);
00221 void WriteScmTuple(StSsdBarrel *mySsd);
00222 void PrintStripDetails(StSsdBarrel *mySsd, Int_t mywafer);
00223 void PrintClusterDetails(StSsdBarrel *mySsd, Int_t mywafer);
00224 void PrintPointDetails(StSsdBarrel *mySsd, Int_t mywafer);
00225 void PrintPackageDetails(StSsdBarrel *mySsd, Int_t mywafer);
00226 void Read_Strip(St_ssdStripCalib *strip_calib);
00227 void Read_Strip(St_ssdNoise *strip);
00228 void WriteMatchedClusters(StSsdBarrel *mySsd);
00229 void WriteMatchedStrips(StSsdBarrel *mySsd);
00230 void EvaluateEfficiency(StSsdBarrel *mySsd);
00231 void NormalizeEfficiency();
00232 void FillCalibTable();
00233 void FillWaferTable();
00234 void FillDefaultCalibTable();
00235 void FillDefaultWaferTable();
00236 Int_t ReadNoiseTable(StSsdBarrel *mySsd,Int_t year);
00237 protected:
00238
00239 StEvent *mCurrentEvent;
00240 StSsdHitCollection *mSsdHitColl;
00241 StSsdDynamicControl *mDynamicControl;
00242 StSsdClusterControl *mClusterControl;
00243 TFile *ScfCtrlFile;
00244
00245 TH1F *noisDisP;
00246 TH1F *snRatioP;
00247 TH1F *stpClusP;
00248 TH1F *totChrgP;
00249 TH1F *noisDisN;
00250 TH1F *snRatioN;
00251 TH1F *stpClusN;
00252 TH1F *totChrgN;
00253 TH2S *ClusNvsClusP;
00254
00255 TH2S *ClustMapP;
00256 TH2S *ClustMapN;
00257 TFile *ScmCtrlFile;
00258 TH2S *matchisto;
00259 TH1S *orthoproj;
00260 TH1S *kind;
00261 TH2S *matchisto_[20];
00262 TH2F *MatchedClusterP;
00263 TH2F *MatchedClusterN;
00264 Int_t UseCalibration ;
00265 Int_t UseWaferConfig ;
00266 Int_t NEvent;
00267 Int_t year;
00268 Int_t mode;
00269 Int_t noiseTableSize;
00270 Float_t CalibArray[320];
00271 Int_t WafStatus[20][16];
00272 Float_t ratioP[20][16];
00273 Float_t ratioN[20][16];
00274 virtual const char *GetCVS() const
00275 {static const char cvs[]="Tag $Name: $ $Id: StSsdPointMaker.h,v 1.36 2008/04/15 21:05:23 bouchet Exp $ built "__DATE__" "__TIME__ ; return cvs;}
00276
00277 ClassDef(StSsdPointMaker, 1)
00278 };
00279 #endif