1 #ifndef _ST_FGT_GEN_AGV_EFF_MAKER_
3 #define _ST_FGT_GEN_AGV_EFF_MAKER_
13 #include "StFgtGeneralBase.h"
42 AVPoint(Double_t mx, Double_t my, Double_t mz, Double_t mr, Double_t mPhi, Int_t mdID,Int_t mQuad, Double_t mRCharge, Double_t mPhiCharge, Double_t mRSize, Double_t mPhiSize)
78 vector<AVPoint>* points;
80 AVTrack(Double_t m_mx, Double_t m_my, Double_t m_ax, Double_t m_ay, Double_t m_ipZ=0.0,Double_t m_chi2=0.0)
99 pair<Double_t,Double_t> findCluChargeSize(Int_t iD,Char_t layer, Double_t ordinate);
104 void setUseChargeMatch(Bool_t use=
true);
106 virtual const char *GetCVS()
const
107 {
static const char cvs[]=
"Tag $Name: $ $Id: StFgtGenAVEMaker.h,v 1.22 2014/08/06 11:43:10 jeromel Exp $ built " __DATE__
" " __TIME__ ;
return cvs;}
109 vector<TH2D*> v_hClusP;
110 vector<TH2D*> v_hClusR;
111 Bool_t useChargeMatch;
114 ofstream* outTxtFile;
115 ofstream* cluNotFoundTxt;
117 pair<Double_t,Double_t> getChargeRatio(Float_t r, Float_t phi, Int_t iD, Int_t iq);
118 Bool_t printArea(Float_t r, Float_t phi, Int_t iD, Int_t iq);
119 Bool_t printArea1D(Int_t iD, Int_t iq,Int_t centerGeoId);
120 Bool_t
getTrack(vector<AVPoint>& points, Double_t ipZ);
121 pair<double,double>
getDca( vector<AVTrack>::iterator it);
122 vector<AVTrack> m_tracks;
125 void doNormalize(TH2D** hEff, TH2D** hNonEff);
126 void saveSigs(Double_t* sigR, Double_t* sigP, Double_t r, Double_t phi,Int_t maxR, Int_t maxPhi, Int_t discId, Int_t quad);
127 Double_t getRPhiRatio(vector<generalCluster>::iterator hitIterBegin, vector<generalCluster>::iterator hitIterEnd);
128 Double_t
findClosestPoint(
float mx,
float bx,
float my,
float by,
double xE,
double yE, Int_t iD);
129 Bool_t isSomewhatEff(Float_t r, Float_t phi, Int_t iD, Int_t iq);
131 Double_t findClosestStrip(Char_t layer,
double ord, Int_t iD, Int_t iQ);
133 Bool_t fitTheStrip(
generalStrip* pStrip,
generalStrip* pStripOtherLayer,
float* amp,
float* t0,
float* chi2Ndf,
int iD,
int iq,
int apvBin, Char_t layer);
144 TH2D** radioPlotsEff;
145 TH2D** radioPlotsNonEff;
147 TH2D** radioPlotsEffR;
148 TH2D** radioPlotsNonEffR;
150 TH2D** radioPlotsEffPhi;
151 TH2D** radioPlotsNonEffPhi;
153 TH2D** radioPlotsEffLoose;
154 TH2D** radioPlotsNonEffLoose;
157 TH2D* chargeCorrSum3;
159 TH2D* chargeCorrMaxStrip;
160 TH2D* chargeCorrMaxAdc;
163 TH1F** firstTbSigCloseClusterR;
164 TH1F** firstTbSigCloseClusterP;
165 TH1F** firstTbSigTrackClusterR;
166 TH1F** firstTbSigTrackClusterP;
169 TH1I** maxTbCloseClusterR;
170 TH1I** maxTbCloseClusterP;
172 TH1I** maxTbTrackClusterR;
173 TH1I** maxTbTrackClusterP;
175 TH1I** maxAdcTrackClusterR;
176 TH1I** maxAdcCloseClusterR;
178 TH1I** maxSigTrackClusterR;
179 TH1I** maxSigCloseClusterR;
183 TH1I** numClustersPhi;
189 TH1I** numFSigTrackClusterR;
190 TH1I** numFSigCloseClusterR;
192 TH1I** numFirstHighTrackClusterR;
193 TH1I** numFirstHighCloseClusterR;
195 TH1I** maxAdcTrackClusterP;
196 TH1I** maxAdcCloseClusterP;
198 TH1F** maxSigTrackClusterP;
199 TH1F** maxSigCloseClusterP;
201 TH1I** numFSigTrackClusterP;
202 TH1I** numFSigCloseClusterP;
204 TH1I** numFirstHighTrackClusterP;
205 TH1I** numFirstHighCloseClusterP;
207 TH1F** secondToLastRatioCloseClusterP;
208 TH1F** secondToLastRatioCloseClusterR;
210 TH1F** secondToLastRatioTrackClusterP;
211 TH1F** secondToLastRatioTrackClusterR;
222 TH1F** APVfirstTbSigCloseClusterP;
223 TH1F** APVfirstTbSigCloseClusterR;
224 TH1I** APVmaxAdcCloseClusterP;
225 TH1I** APVmaxAdcCloseClusterR;
226 TH1I** APVmaxTbCloseClusterP;
227 TH1I** APVmaxTbCloseClusterR;
228 TH1I** APVnumFSigCloseClusterP;
229 TH1I** APVnumFSigCloseClusterR;
230 TH1I** APVnumFirstHighCloseClusterP;
231 TH1I** APVnumFirstHighCloseClusterR;
232 TH1F** APVmaxSigCloseClusterP;
233 TH1F** APVmaxSigCloseClusterR;
234 TH1F** APVsecondToLastRatioCloseClusterP;
235 TH1F** APVsecondToLastRatioCloseClusterR;
237 TH1F* exPulseMaxAdcNormR;
239 TH1F* exPulseMaxAdcNormP;
242 TH1F* exPulseMaxAdcNormTrackR;
243 TH1F* exPulseSigTrackR;
244 TH1F* exPulseMaxAdcNormTrackP;
245 TH1F* exPulseSigTrackP;
260 TH1D** rPhiRatioPlots;
265 TH2D* chargeRatioInEffDisk;
266 TH2D* chargeAsymInEffDisk;
267 TH2D* chargeCorrInEffDisk;
268 TH2D* tpcFgtZVertexCorr;
269 TH2D* tpcFgtZVertexCorr2;
270 TH2D* tpcFgtZVertexCorr3;
275 TH1D** h_clusterSizeR;
276 TH1D** h_clusterSizePhi;
277 TH1D** h_clusterChargeR;
278 TH1D** h_clusterChargePhi;
299 TFile* pulsePictureFile;
311 inline void StFgtGenAVEMaker::setUseChargeMatch(Bool_t use){useChargeMatch=use;};
Short_t getQuadFromCoo(Double_t x, Double_t y)
this is too naive..., assumes non-rotated quads
Double_t findClosestPoint(float mx, float bx, float my, float by, double xE, double yE, Int_t iD)
void fillStripHistos(Float_t r, Float_t phi, Int_t iD, Int_t iq)
Bool_t getTrack(vector< AVPoint > &points, Double_t ipZ)
pair< double, double > getDca(vector< AVTrack >::iterator it)