00001 00005 /*********************************************************** 00006 * $Id: StPmdClusterMaker.h,v 1.12 2010/04/15 06:52:13 rashmi Exp $ 00007 * 00008 * Author: 00009 * 00010 ************************************************************ 00011 * 00012 * Description: Base class for PMD cluster Maker 00013 * 00014 ************************************************************ 00015 * 00016 * $Log: StPmdClusterMaker.h,v $ 00017 * Revision 1.12 2010/04/15 06:52:13 rashmi 00018 * Clustering with option to turn calibration refineclustering on/off 00019 * 00020 * Revision 1.11 2007/08/31 10:54:39 rashmi 00021 * Included ReadCalibration to read PMD_MIP value from DB; Included inline SetAdcCutOff() 00022 * 00023 * Revision 1.10 2004/09/22 19:24:55 perev 00024 * Leak fixed + mess with i,j indexes 00025 * 00026 * Revision 1.8 2004/09/03 14:31:44 subhasis 00027 * OptHist introduced 00028 * 00029 * Revision 1.7 2004/06/24 13:48:33 subhasis 00030 * several changes in clustering code 00031 * 00032 * Revision 1.6 2004/04/09 23:01:48 jeromel 00033 * GetCVS() missing 00034 * 00035 * Revision 1.5 2004/03/23 05:18:51 subhasis 00036 * refclust changed to have correct sigma/ncell 00037 * 00038 * Revision 1.4 2003/09/10 19:47:26 perev 00039 * ansi corrs 00040 * 00041 * Revision 1.3 2003/05/14 10:49:12 subhasis 00042 * CPV clustering added 00043 * 00044 * Initial version: 00045 ************************************************************/ 00046 #ifndef STAR_StPmdClusterMaker 00047 #define STAR_StPmdClusterMaker 00048 #ifndef StMaker_H 00049 #include "StMaker.h" 00050 #endif 00051 #include <TH2.h> 00052 #include <TH1.h> 00053 #include <TCanvas.h> 00054 #include <TNtuple.h> 00055 #include <TFile.h> 00056 #include "tables/St_pmdSMChain_GNF_Table.h" 00057 00058 class StPmdCollection; 00059 class StPmdDetector; 00060 class StPmdClusterMaker: public StMaker{ 00061 00062 private: 00063 00064 Bool_t mOptHist; 00065 Bool_t mOptCalibrate; 00066 Bool_t mOptSimulate; 00067 Bool_t mOptRefineCluster; 00068 Double_t adccutoff; 00069 Float_t SM_chain_factor[24][48]; 00070 Float_t PMD_MIP; 00071 TDataSet * mDb; 00072 protected: 00073 00074 // booking Pmd cluster histograms 00075 TH1F *mNclust; 00076 TH1F *mNclust1; 00077 TH1F *mNclust2; 00078 TH1F *mNclust3; 00079 00080 TH1F *mSmPmdCluster; 00081 TH1F *mEdepPmdCluster; 00082 TH1F *mSigmaLPmdCluster; 00083 TH1F *mSigmaSPmdCluster; 00084 TH1F *mNcellPmdCluster; 00085 TH1F *mEtaPmdCluster; 00086 TH1F *mPhiPmdCluster; 00087 TH2F *mEtaPhiPmdCluster; 00088 TH2F *mPhi2ModPmd; 00089 TH2F *mHitVscluster; 00090 TH1F *mExtraclusterPmd; 00091 TH2F *mClusterEdepFracPmd; 00092 TH1F *mPmdCluster; 00093 00094 TH2F *mXYPmdCluster; 00095 00096 TH1F *mSmCpvCluster; 00097 TH1F *mEdepCpvCluster; 00098 TH1F *mSigmaLCpvCluster; 00099 TH1F *mSigmaSCpvCluster; 00100 TH1F *mNcellCpvCluster; 00101 TH1F *mEtaCpvCluster; 00102 TH1F *mPhiCpvCluster; 00103 TH2F *mEtaPhiCpvCluster; 00104 TH2F *mPhi2ModCpv; 00105 TH1F *mExtraclusterCpv; 00106 TH2F *mClusterEdepFracCpv; 00107 TH1F *mCpvCluster; 00108 00109 TH2F *mXYCpvCluster; 00110 public: 00112 StPmdClusterMaker(const char *name="pmdClust"); 00113 ~StPmdClusterMaker(); 00114 00115 virtual Int_t Init(); 00116 virtual Int_t InitRun(Int_t runnr); // Init for every run to read D\B 00117 00118 virtual Int_t Make(); 00119 virtual Int_t Finish(); 00120 00121 //Int_t getChoice(Int_t num); 00122 void FillStEvent(StPmdDetector*, StPmdDetector*); 00123 00124 void bookHistograms(); 00125 void FillHistograms(StPmdDetector*, StPmdDetector*); 00126 void setPrint(Bool_t a) { mOptHist = a;} 00127 void Browse(TBrowser* b); 00128 void SetAdcCutOff(Double_t adccutoff); 00129 00130 Bool_t ReadCalibrationsConst(); 00131 void SetOptCalibrate(Bool_t a=kTRUE){mOptCalibrate = a;} // Default is on; YES Calibrate 00132 void SetOptSimulate(Bool_t a=kFALSE){mOptSimulate = a;} // Default is off; No Simulation 00133 void SetOptRefineCluster(Bool_t a=kTRUE){mOptRefineCluster = a;} // Default is on; Yes Refine Clustering 00134 00135 virtual const char *GetCVS() const { 00136 static const char cvs[]="Tag $Name: $ $Id: StPmdClusterMaker.h,v 1.12 2010/04/15 06:52:13 rashmi Exp $ built "__DATE__" "__TIME__ ; 00137 return cvs; 00138 } 00139 00140 ClassDef(StPmdClusterMaker,0) 00141 }; 00142 00143 inline void StPmdClusterMaker::SetAdcCutOff(Double_t cutoff){ 00144 adccutoff = cutoff; 00145 } 00146 00147 00148 #endif 00149 00150 00151 00152 00153 00154 00155 00156 00157 00158 00159 00160 00161 00162 00163 00164 00165
1.5.9