using namespace std; #include "TError.h" #include "hmdctrackdset.h" #include "hmdctrackfinder.h" #include "hmdcclustertohit.h" #include "hmdc12fit.h" #include "TCutG.h" #include #include #include #include "TArrayD.h" //*-- Author : Vladimir Pechenov //*-- Modified : 22.07.2002 by V.Pechenov //*-- Modified : 16.02.2010 by V.Pechenov // HMdcTrackFinder param.: HMdcTrackFinder* HMdcTrackDSet::pTrackFinder = 0; Bool_t HMdcTrackDSet::trFndrIsAdded = kFALSE; Bool_t HMdcTrackDSet::isCoiloff = kFALSE; Int_t HMdcTrackDSet::clFinderType = -1; // =0 - segment finder, =1 - mdc finder, // =2 - mixed(segment+mdc) cluster finder Int_t HMdcTrackDSet::level4[2] = {-10,-10}; Int_t HMdcTrackDSet::level5[2] = {-50,-30}; Int_t HMdcTrackDSet::nLayersInMod[6][4] = {{-6,-6,-6,-6},{-6,-6,-6,-6},{-6,-6,-6,-6}, {-6,-6,-6,-6},{-6,-6,-6,-6},{-6,-6,-6,-6}}; // HMdcLookUpTb param: Bool_t HMdcTrackDSet::findVertex = kFALSE; Double_t HMdcTrackDSet::dDistCutVF = 0.5; Int_t HMdcTrackDSet::levelVertF = 11; Int_t HMdcTrackDSet::nBinXSeg1 = 320; // 1194; // Project plot size; Int_t HMdcTrackDSet::nBinYSeg1 = 886; // 1100; Bool_t HMdcTrackDSet::useFloatLevSeg1 = kTRUE; Bool_t HMdcTrackDSet::useAmpCutSeg1 = kTRUE; Char_t HMdcTrackDSet::fakeSuppFlSeg1 = 1; Bool_t HMdcTrackDSet::useDrTimeSeg1 = kFALSE; Double_t HMdcTrackDSet::constUncertSeg1 = 0.7; // ??? 0.4; // //1.3; //0.7; Double_t HMdcTrackDSet::dDistCutSeg1 = 0.7; //1.5; // 1.0; Double_t HMdcTrackDSet::dDistCutYcorSeg1 = 1.5; Double_t HMdcTrackDSet::dDistCorrLaySeg1[4][6] = { {1.10,1.09,1.27,1.23,0.90,0.83}, // MDC I {0.94,0.95,1.36,1.40,1.12,1.14}, // MDC II { 1., 1., 1., 1., 1., 1.}, // MDC III { 1., 1., 1., 1., 1., 1.} }; // MDC IV // HMdc34ClFinder param: Int_t HMdcTrackDSet::nBinXSeg2 = 320; // 1194; // Project plot size; Int_t HMdcTrackDSet::nBinYSeg2 = 886; // 1100; Bool_t HMdcTrackDSet::useFloatLevSeg2 = kTRUE; Char_t HMdcTrackDSet::fakeSuppFlSeg2 = 1; Int_t HMdcTrackDSet::wLevSeg2 = 1000; Int_t HMdcTrackDSet::wBinSeg2 = 100; Int_t HMdcTrackDSet::wLaySeg2 = 600; Int_t HMdcTrackDSet::dWtCutSeg2 = 1650; Bool_t HMdcTrackDSet::useDrTimeSeg2 = kFALSE; Double_t HMdcTrackDSet::dDistCutSeg2 = 0.2; Double_t HMdcTrackDSet::dDistCutYcorSeg2 = 2.3; Double_t HMdcTrackDSet::dDistCorrLaySeg2[2][6] = { {0.5,0.2,0.1,0.1, 0.,0.3}, // MDC III {1.9,0.7,0.8,0.9,0.6,2.0} }; // MDC IV Bool_t HMdcTrackDSet::useDxDyCut = kTRUE; TCutG HMdcTrackDSet::cutDxDyArr[36]; Bool_t HMdcTrackDSet::isDxDyInited = kFALSE; // Meta match: Bool_t HMdcTrackDSet::doMetaMatch = kTRUE; //kFALSE; Bool_t HMdcTrackDSet::doMMPlots = kFALSE; // HMdcClusterToHit param.: HMdcClusterToHit* HMdcTrackDSet::pClusterToHit = 0; Int_t HMdcTrackDSet::modForSeg1 = 1; Int_t HMdcTrackDSet::modForSeg2 = 3; // HMdc12Fit param.: HMdc12Fit* HMdcTrackDSet::p12Fit = 0; Bool_t HMdcTrackDSet::useAnotherFit = kFALSE; Int_t HMdcTrackDSet::fitAuthor = -1; Int_t HMdcTrackDSet::distTimeVer = -1; Int_t HMdcTrackDSet::fitType = -1; Bool_t HMdcTrackDSet::fntuple = kFALSE; Bool_t HMdcTrackDSet::fprint = kFALSE; Int_t HMdcTrackDSet::useWireOffset = 1; Int_t HMdcTrackDSet::mixFitCut = 2; Int_t HMdcTrackDSet::mixClusCut = 4; Bool_t HMdcTrackDSet::isSetCall = kFALSE; HReconstructor* HMdcTrackDSet::hMdcTrackFinder(const Char_t* name,const Char_t* title) { if(trFndrIsAdded) return pTrackFinder; if(pTrackFinder) exitSetup("hMdcTrackFinder","HMdcTrackFinder"); isSetCall = kTRUE; pTrackFinder = new HMdcTrackFinder(name,title); isSetCall = kFALSE; return pTrackFinder; } Bool_t HMdcTrackDSet::isModActive(UInt_t sec,UInt_t mod) { return nLayersInMod[sec][mod] > 0 && sec<6 && mod<4; } Bool_t HMdcTrackDSet::isSegActive(UInt_t sec,UInt_t seg) { return seg<2 && (isModActive(sec,seg*2) || isModActive(sec,seg*2+1)); } Bool_t HMdcTrackDSet::isSecActive(UInt_t sec) { return isSegActive(sec,0) || isSegActive(sec,1); } void HMdcTrackDSet::useThisTrackFinder(HMdcTrackFinder* trFndr) { if(pTrackFinder) trFndrIsAdded=kTRUE; else Error("useThisTrackFinder(HMdcTrackFinder* trFndr)"," trFndr==0 !!!"); } HReconstructor* HMdcTrackDSet::hMdcClusterToHit(const Char_t* name,const Char_t* title) { if(pClusterToHit) exitSetup("hMdcClusterToHit","HMdcClusterToHit"); isSetCall = kTRUE; pClusterToHit=new HMdcClusterToHit(name,title); isSetCall = kFALSE; return pClusterToHit; } HReconstructor* HMdcTrackDSet::hMdcClusterToHit(const Char_t* name,const Char_t* title, Int_t mSeg1, Int_t mSeg2) { setMdcClusterToHit(mSeg1,mSeg2); return hMdcClusterToHit(name,title); } HReconstructor* HMdcTrackDSet::hMdc12Fit(const Char_t* name,const Char_t* title) { if(p12Fit) { if(useAnotherFit) return p12Fit; exitSetup("hMdc12Fit","HMdc12Fit"); } isSetCall = kTRUE; p12Fit = new HMdc12Fit(name,title); isSetCall = kFALSE; return p12Fit; } void HMdcTrackDSet::setAnotherFit(HMdc12Fit* fit) { p12Fit = fit; useAnotherFit = kTRUE; } HReconstructor* HMdcTrackDSet::hMdc12Fit(const Char_t* name,const Char_t* title, Int_t author, Int_t version, Int_t indep, Bool_t nTuple, Bool_t prnt) { setMdc12Fit(author,version,indep,nTuple,prnt); return hMdc12Fit(name,title); } void HMdcTrackDSet::setMdcTrackFinder(Bool_t coilSt,Int_t type) { // Function for HMdcTrackFinderSetup only (see mdc/hmdcsetup.cc) if(isSetCall) return; setCoilStatus(coilSt); if(clFinderType<0) setClFinderType(type); // if clFinderType >= 0) - don't change it } void HMdcTrackDSet::setClFinderType(Int_t type) { if(isSetCall) return; if(type<0 || type>3) exitSetup("setClFinderType(Int_t):",1,"0,1 or 2",type); clFinderType = type; } void HMdcTrackDSet::setTrFnLevel(Int_t l4s1,Int_t l5s1,Int_t l4s2,Int_t l5s2) { // Function for HMdcTrackFinderSetup only (see mdc/hmdcsetup.cc) if(isSetCall) return; // if level4[seg] >= 0) - don't change it if(level4[0] < 0) setTrFnSegLevel(0,l4s1,l5s1); if(level4[1] < 0) setTrFnSegLevel(1,l4s2,l5s2); } void HMdcTrackDSet::setTrackFinderLevel(Int_t l4s1,Int_t l5s1,Int_t l4s2,Int_t l5s2) { setTrFnSegLevel(0,l4s1,l5s1); setTrFnSegLevel(1,l4s2,l5s2); } void HMdcTrackDSet::setTrFnSegLevel(Int_t seg, Int_t l4, Int_t l5) { if(isSetCall) return; if(seg<0||seg>1) exitSetup("setTrFnSegLevel(Int_t,Int_t,Int_t):",1,"0 or 1",seg); level4[seg] = l4; level5[seg] = l5; } void HMdcTrackDSet::setTrFnNLayers(const Int_t* lst) { // Function for HMdcTrackFinderSetup only (see mdc/hmdcsetup.cc) if(isSetCall) return; if(!lst) { Error("setTrFnNLayers(const Int_t*)"," lst-pointer = 0"); exit(1); } for(Int_t s=0;s<6;s++) for(Int_t m=0;m<4;m++) { if(nLayersInMod[s][m]<0) setTrFnNLayers(s,m,lst[s*4+m]); // if nLayersInMod>=0 - don't change it } } void HMdcTrackDSet::setTrFnNLayers(Int_t s, Int_t m,Int_t nl) { if(isSetCall) return; if(s<0 || s>5) exitSetup("setTrFnNLayers(Int_t,Int_t,Int_t):",1,"0,...,5",s); if(m<0 || m>3) exitSetup("setTrFnNLayers(Int_t,Int_t,Int_t):",2,"0,...,3",m); if(nl<0||nl>6) exitSetup("setTrFnNLayers(Int_t,Int_t,Int_t):",3,"0,...,6",nl); nLayersInMod[s][m] = nl; } void HMdcTrackDSet::setMdcClusterToHit(Int_t mSeg1,Int_t mSeg2) { // Function for HMdcTrackFinderSetup only (see mdc/hmdcsetup.cc) if(isSetCall) return; if(mSeg1<-1 || mSeg1>1) exitSetup("setMdcClusterToHit(Int_t,Int_t):",1,"-1, 0 or 1",mSeg1); modForSeg1 = mSeg1; if(mSeg2!=-1 && mSeg2!=2 && mSeg2!=3) exitSetup("setMdcClusterToHit(Int_t,Int_t):",2,"-1, 2 or 3",mSeg2); modForSeg2 = mSeg2; } void HMdcTrackDSet::setMdc12Fit(Int_t author,Int_t version,Int_t indep,Bool_t nTuple,Bool_t prnt) { // Function for HMdcTrackFinderSetup only (see mdc/hmdcsetup.cc) if(isSetCall) return; if(fitAuthor<0) setFitAuthor(author); if(distTimeVer<0) setFitVersion(version); if(fitType<0) setFitType(indep); setFitOutput(nTuple,prnt); } void HMdcTrackDSet::setFitAuthor(Int_t author) { if(isSetCall) return; if(author<1 || author>2) exitSetup("setFitAuthor(Int_t):",1,"1 or 2",author); fitAuthor = author; } void HMdcTrackDSet::setFitVersion(Int_t ver) { if(isSetCall) return; if(ver<0||ver>1) exitSetup("setFitVersion(Int_t):",1,"0 or 1",ver); distTimeVer = ver; } void HMdcTrackDSet::setFitType(Int_t type) { if(isSetCall) return; if(type<0 || type>1) exitSetup("setFitType(Int_t):",1,"0 or 1",type); fitType = type; } void HMdcTrackDSet::setFitOutput(Bool_t nTuple, Bool_t prnt) { if(isSetCall) return; fntuple = nTuple; fprint = prnt; } void HMdcTrackDSet::setUseWireOffset(Bool_t off) { // Function for HMdcTrackFinderSetup only (see mdc/hmdcsetup.cc) useWireOffset = off; } void HMdcTrackDSet::setMixFitCut(Int_t cut) { mixFitCut = cut; } void HMdcTrackDSet::setMixClusCut(Int_t cut) { mixClusCut = cut; } void HMdcTrackDSet::setMixCuts(Int_t cutFit,Int_t cutClus) { mixFitCut = cutFit; mixClusCut = cutClus; } void HMdcTrackDSet::exitSetup(const Char_t* funNm, Int_t npar,const Char_t* use, Int_t inst) { Error(funNm,"\n unknown argument %i: use %s instead %i",npar,use,inst); exit(1); } void HMdcTrackDSet::getTrFnLevels(Int_t& l4s1,Int_t& l5s1,Int_t& l4s2,Int_t& l5s2) { l4s1 = level4[0]; l4s2 = level4[1]; l5s1 = level5[0]; l5s2 = level5[1]; } void HMdcTrackDSet::printStatus(void) { if(pTrackFinder) pTrackFinder->printStatus(); if(pClusterToHit) pClusterToHit->printStatus(); if(p12Fit) p12Fit->printStatus(); } void HMdcTrackDSet::setTrackFinder(HMdcTrackFinder* tr) { if(isSetCall) return; if(pTrackFinder) exitSetup("setTrackFinder","HMdcTrackFinder"); pTrackFinder = tr; } void HMdcTrackDSet::setClusterToHit(HMdcClusterToHit* cl) { if(isSetCall) return; if(pClusterToHit) exitSetup("setClusterToHit","HMdcClusterToHit"); pClusterToHit = cl; } void HMdcTrackDSet::set12Fit(HMdc12Fit* fit) { if(isSetCall) return; if(p12Fit) exitSetup("set12Fit","HMdc12Fit"); p12Fit = fit; } void HMdcTrackDSet::exitSetup(const Char_t* funNm,const Char_t* className) { Error(funNm,"%s object exist already.",className); exit(1); } void HMdcTrackDSet::setGhostRemovingParamSeg2(Int_t wlev,Int_t wbin,Int_t wlay,Int_t dWtCut) { wLevSeg2 = wlev; wBinSeg2 = wbin; wLaySeg2 = wlay; dWtCutSeg2 = dWtCut; fakeSuppFlSeg2 = 1; } Char_t HMdcTrackDSet::getGhostRemovingParamSeg2(Int_t &wlev,Int_t &wbin,Int_t &wlay,Int_t &dWtCut) { wlev = wLevSeg2; wbin = wBinSeg2; wlay = wLaySeg2; dWtCut = dWtCutSeg2; return fakeSuppFlSeg2; } void HMdcTrackDSet::setProjectPlotSizeSeg1(Int_t xb,Int_t yb) { if(xb>20) nBinXSeg1 = xb; if(yb>20) nBinYSeg1 = yb; } void HMdcTrackDSet::getProjectPlotSizeSeg1(Int_t &xb,Int_t &yb) { xb = nBinXSeg1; yb = nBinYSeg1; } void HMdcTrackDSet::setProjectPlotSizeSeg2(Int_t xb,Int_t yb) { if(xb>20) nBinXSeg2 = xb; if(yb>20) nBinYSeg2 = yb; } void HMdcTrackDSet::getProjectPlotSizeSeg2(Int_t &xb,Int_t &yb) { xb = nBinXSeg2; yb = nBinYSeg2; } Bool_t HMdcTrackDSet::getVertexFinderPar(Double_t &d,Int_t &l) { d = dDistCutVF; l = levelVertF; return findVertex; } void HMdcTrackDSet::setVertexFinderPar(Double_t dc, Int_t lv) { dDistCutVF = dc; levelVertF = lv; findVertex = dc >= 0.; } void HMdcTrackDSet::setDrTimeProjParamSeg1(Double_t cUns, Double_t cut) { constUncertSeg1 = cUns; // Constant part in LookUpTbCell::yProjUncer dDistCutSeg1 = cut; // Cut: dDist/yProjUncer < dDistCut } void HMdcTrackDSet::setDrTimeCutLCorrSeg1(Int_t m,Double_t* corr) { if(m<0 || m>3) return; for(Int_t lay=0;lay<6;lay++) if(corr[lay]>0.) dDistCorrLaySeg1[m][lay] = corr[lay]; } void HMdcTrackDSet::getDrTimeProjParSeg1(Double_t &uns,Double_t &cut,Double_t &ycor,Double_t *lcor) { uns = constUncertSeg1; cut = dDistCutSeg1; ycor = dDistCutYcorSeg1; for(Int_t m=0;m<4;m++) for(Int_t l=0;l<6;l++) lcor[m*6+l] = dDistCorrLaySeg1[m][l]; } void HMdcTrackDSet::setDrTimeCutLCorrSeg2(Int_t m,Double_t* corr) { if(m<2 || m>3) return; for(Int_t lay=0;lay<6;lay++) if(corr[lay]>0.) dDistCorrLaySeg2[m-2][lay] = corr[lay]; } void HMdcTrackDSet::getDrTimeProjParSeg2(Double_t &cut,Double_t &ycor,Double_t *lcor) { cut = dDistCutSeg2; ycor = dDistCutYcorSeg2; for(Int_t im=0;im<2;im++) for(Int_t l=0;l<6;l++) lcor[im*6+l] = dDistCorrLaySeg2[im][l]; } void HMdcTrackDSet::setDxDyKickCut(TCutG* cutR) { // cutR is pointer to array TCutG cutReg[36] ! for(Int_t nr=0;nr<36;nr++) cutDxDyArr[nr] = cutR[nr]; isDxDyInited = kTRUE; useDxDyCut = kTRUE; } Bool_t HMdcTrackDSet::getDxDyKickCut(TCutG* cutR) { // cutR is pointer to array TCutG cutReg[36] ! if(!isDxDyInited) initDxDyCut(); for(Int_t nr=0;nr<36;nr++) cutR[nr] = cutDxDyArr[nr]; return useDxDyCut; } void HMdcTrackDSet::initDxDyCut(void) { //-------------- Butterfly cut (for kick dX dY on the project plane) ---------- isDxDyInited = kTRUE; cutDxDyArr[0].Set(28); cutDxDyArr[0].SetPoint(0,16.3862,-25.1868); cutDxDyArr[0].SetPoint(1,15.4919,-63.6264); cutDxDyArr[0].SetPoint(2,7.66667,-92.7473); cutDxDyArr[0].SetPoint(3,-1.94715,-103.231); cutDxDyArr[0].SetPoint(4,-17.3741,-98.6845); cutDxDyArr[0].SetPoint(5,-22.6394,-86.2294); cutDxDyArr[0].SetPoint(6,-23.8095,-68.2386); cutDxDyArr[0].SetPoint(7,-20.2805,-39.1648); cutDxDyArr[0].SetPoint(8,-15.3618,-17.033); cutDxDyArr[0].SetPoint(9,-2.39431,-0.725275); cutDxDyArr[0].SetPoint(10,-1.72358,20.2418); cutDxDyArr[0].SetPoint(11,-9.99594,21.4066); cutDxDyArr[0].SetPoint(12,-20.0569,34.2198); cutDxDyArr[0].SetPoint(13,-40.4024,80.8132); cutDxDyArr[0].SetPoint(14,-72.1504,183.319); cutDxDyArr[0].SetPoint(15,-72.9526,209.926); cutDxDyArr[0].SetPoint(16,-63.9614,235.075); cutDxDyArr[0].SetPoint(17,-49.3455,235.736); cutDxDyArr[0].SetPoint(18,-24.752,179.824); cutDxDyArr[0].SetPoint(19,-16.2561,155.363); cutDxDyArr[0].SetPoint(20,-5.3808,117.204); cutDxDyArr[0].SetPoint(21,4.56484,74.3034); cutDxDyArr[0].SetPoint(22,6.61247,49.3932); cutDxDyArr[0].SetPoint(23,3.9798,25.8668); cutDxDyArr[0].SetPoint(24,-1.28553,14.7956); cutDxDyArr[0].SetPoint(25,-1.5,-1.89011); cutDxDyArr[0].SetPoint(26,12.1382,-8.87912); cutDxDyArr[0].SetPoint(27,16.3862,-25.1868); cutDxDyArr[1].Set(28); cutDxDyArr[1].SetPoint(0,31.2937,-40.1396); cutDxDyArr[1].SetPoint(1,31.7719,-111.768); cutDxDyArr[1].SetPoint(2,20.2513,-165.011); cutDxDyArr[1].SetPoint(3,2.25014,-201.013); cutDxDyArr[1].SetPoint(4,-20.8252,-189.907); cutDxDyArr[1].SetPoint(5,-30.8665,-144.326); cutDxDyArr[1].SetPoint(6,-29.432,-107.426); cutDxDyArr[1].SetPoint(7,-17.0407,-66.302); cutDxDyArr[1].SetPoint(8,-14,-40.1843); cutDxDyArr[1].SetPoint(9,-11.7403,-16.2636); cutDxDyArr[1].SetPoint(10,-2.39024,0.443182); cutDxDyArr[1].SetPoint(11,-3.77236,16.404); cutDxDyArr[1].SetPoint(12,-9.30081,17.855); cutDxDyArr[1].SetPoint(13,-19.5285,30.9138); cutDxDyArr[1].SetPoint(14,-37.4959,62.8354); cutDxDyArr[1].SetPoint(15,-55.7398,104.914); cutDxDyArr[1].SetPoint(16,-77.2476,220.326); cutDxDyArr[1].SetPoint(17,-74.3787,259.395); cutDxDyArr[1].SetPoint(18,-59.5558,276.76); cutDxDyArr[1].SetPoint(19,-32.5203,245.659); cutDxDyArr[1].SetPoint(20,-10.3058,198.62); cutDxDyArr[1].SetPoint(21,1.7561,142.639); cutDxDyArr[1].SetPoint(22,6.17886,80.2472); cutDxDyArr[1].SetPoint(23,5.95147,35.8295); cutDxDyArr[1].SetPoint(24,-1.00813,17.855); cutDxDyArr[1].SetPoint(25,-0.731708,0.443182); cutDxDyArr[1].SetPoint(26,15.3008,-6.81173); cutDxDyArr[1].SetPoint(27,31.2937,-40.1396); cutDxDyArr[2].Set(25); cutDxDyArr[2].SetPoint(0,31.8623,-47.2211); cutDxDyArr[2].SetPoint(1,39.7692,-104.905); cutDxDyArr[2].SetPoint(2,28.3773,-184.389); cutDxDyArr[2].SetPoint(3,0.905657,-215.118); cutDxDyArr[2].SetPoint(4,-21.3333,-137.39); cutDxDyArr[2].SetPoint(5,-23.691,-60.9238); cutDxDyArr[2].SetPoint(6,-21.0753,-19.4586); cutDxDyArr[2].SetPoint(7,-13.9105,-7.40188); cutDxDyArr[2].SetPoint(8,-0.80359,-1.91571); cutDxDyArr[2].SetPoint(9,-0.80359,10.8428); cutDxDyArr[2].SetPoint(10,-17.8057,34.765); cutDxDyArr[2].SetPoint(11,-24.7031,58.1223); cutDxDyArr[2].SetPoint(12,-30.6576,96.7648); cutDxDyArr[2].SetPoint(13,-41.02,143.212); cutDxDyArr[2].SetPoint(14,-45.4008,258.505); cutDxDyArr[2].SetPoint(15,-25.2874,281.579); cutDxDyArr[2].SetPoint(16,-2.93927,257.063); cutDxDyArr[2].SetPoint(17,10.0972,232.547); cutDxDyArr[2].SetPoint(18,16.8524,108.126); cutDxDyArr[2].SetPoint(19,11.294,26.7909); cutDxDyArr[2].SetPoint(20,0.177299,10.8428); cutDxDyArr[2].SetPoint(21,0.177299,1.27392); cutDxDyArr[2].SetPoint(22,19.7814,-6.84211); cutDxDyArr[2].SetPoint(23,26.0074,-19.4586); cutDxDyArr[2].SetPoint(24,31.8623,-47.2211); cutDxDyArr[3].Set(26); cutDxDyArr[3].SetPoint(0,21.8623,-68.0107); cutDxDyArr[3].SetPoint(1,26.332,-151.904); cutDxDyArr[3].SetPoint(2,22.9798,-179.36); cutDxDyArr[3].SetPoint(3,5.38057,-209.867); cutDxDyArr[3].SetPoint(4,-13.6154,-200.715); cutDxDyArr[3].SetPoint(5,-27.0243,-173.259); cutDxDyArr[3].SetPoint(6,-36.8016,-100.043); cutDxDyArr[3].SetPoint(7,-36.5223,-39.0293); cutDxDyArr[3].SetPoint(8,-24.7895,-10.048); cutDxDyArr[3].SetPoint(9,-1.04453,-0.896); cutDxDyArr[3].SetPoint(10,-1.04453,11.3067); cutDxDyArr[3].SetPoint(11,-10.8219,25.0347); cutDxDyArr[3].SetPoint(12,-17.247,70.7947); cutDxDyArr[3].SetPoint(13,-13.8947,169.941); cutDxDyArr[3].SetPoint(14,-7.46964,247.733); cutDxDyArr[3].SetPoint(15,19.3482,272.139); cutDxDyArr[3].SetPoint(16,39.7409,226.379); cutDxDyArr[3].SetPoint(17,42.5344,177.568); cutDxDyArr[3].SetPoint(18,40.2996,137.909); cutDxDyArr[3].SetPoint(19,26.332,70.7947); cutDxDyArr[3].SetPoint(20,11.5263,21.984); cutDxDyArr[3].SetPoint(21,0.0728744,11.3067); cutDxDyArr[3].SetPoint(22,-0.206478,-0.896); cutDxDyArr[3].SetPoint(23,17.9514,-10.048); cutDxDyArr[3].SetPoint(24,21.0243,-37.504); cutDxDyArr[3].SetPoint(25,21.8623,-68.0107); cutDxDyArr[4].Set(32); cutDxDyArr[4].SetPoint(0,42.096,-149.264); cutDxDyArr[4].SetPoint(1,44.868,-185.478); cutDxDyArr[4].SetPoint(2,31.008,-200.799); cutDxDyArr[4].SetPoint(3,3.288,-200.799); cutDxDyArr[4].SetPoint(4,-20.428,-167.371); cutDxDyArr[4].SetPoint(5,-34.596,-100.515); cutDxDyArr[4].SetPoint(6,-35.212,-67.0865); cutDxDyArr[4].SetPoint(7,-32.132,-32.2655); cutDxDyArr[4].SetPoint(8,-24.74,-15.5515); cutDxDyArr[4].SetPoint(9,-11.5377,-8.48539); cutDxDyArr[4].SetPoint(10,2.31842,-0.711981); cutDxDyArr[4].SetPoint(11,2.31842,15.2188); cutDxDyArr[4].SetPoint(12,-6.15297,20.5291); cutDxDyArr[4].SetPoint(13,-9.99974,39.9163); cutDxDyArr[4].SetPoint(14,-11.145,71.8616); cutDxDyArr[4].SetPoint(15,-6.45552,119.654); cutDxDyArr[4].SetPoint(16,3.17167,179.821); cutDxDyArr[4].SetPoint(17,10.8429,204.676); cutDxDyArr[4].SetPoint(18,22.384,240.731); cutDxDyArr[4].SetPoint(19,37.8939,270.364); cutDxDyArr[4].SetPoint(20,59.96,283.909); cutDxDyArr[4].SetPoint(21,76.9,233.767); cutDxDyArr[4].SetPoint(22,70.432,166.91); cutDxDyArr[4].SetPoint(23,53.492,100.054); cutDxDyArr[4].SetPoint(24,40.3164,78.625); cutDxDyArr[4].SetPoint(25,24.848,42.9477); cutDxDyArr[4].SetPoint(26,3.50013,12.6904); cutDxDyArr[4].SetPoint(27,3.8419,-3.44354); cutDxDyArr[4].SetPoint(28,14.684,-22.5157); cutDxDyArr[4].SetPoint(29,16.224,-48.9796); cutDxDyArr[4].SetPoint(30,19.92,-86.5862); cutDxDyArr[4].SetPoint(31,42.096,-149.264); cutDxDyArr[5].Set(27); cutDxDyArr[5].SetPoint(0,24.58,-66.7476); cutDxDyArr[5].SetPoint(1,22.6,-90.8835); cutDxDyArr[5].SetPoint(2,15.34,-106.243); cutDxDyArr[5].SetPoint(3,3.02,-99.6602); cutDxDyArr[5].SetPoint(4,-17.88,-41.5146); cutDxDyArr[5].SetPoint(5,-16.12,-17.3786); cutDxDyArr[5].SetPoint(6,-8.64,-5.31068); cutDxDyArr[5].SetPoint(7,1.7,-3.1165); cutDxDyArr[5].SetPoint(8,2.20189,16.3683); cutDxDyArr[5].SetPoint(9,-4.20361,16.3683); cutDxDyArr[5].SetPoint(10,-8.2,30.8932); cutDxDyArr[5].SetPoint(11,-9.74,68.1942); cutDxDyArr[5].SetPoint(12,0.16,119.757); cutDxDyArr[5].SetPoint(13,20.62,174.612); cutDxDyArr[5].SetPoint(14,32.94,206.427); cutDxDyArr[5].SetPoint(15,63.9335,261.41); cutDxDyArr[5].SetPoint(16,70.9202,255.991); cutDxDyArr[5].SetPoint(17,72.4728,227.09); cutDxDyArr[5].SetPoint(18,62.2,184.485); cutDxDyArr[5].SetPoint(19,43.72,107.689); cutDxDyArr[5].SetPoint(20,28.98,57.2233); cutDxDyArr[5].SetPoint(21,14.2122,29.9146); cutDxDyArr[5].SetPoint(22,3.00258,14.1106); cutDxDyArr[5].SetPoint(23,2.14,-3.1165); cutDxDyArr[5].SetPoint(24,12.04,-11.8932); cutDxDyArr[5].SetPoint(25,17.54,-32.7379); cutDxDyArr[5].SetPoint(26,24.58,-66.7476); cutDxDyArr[6].Set(27); cutDxDyArr[6].SetPoint(0,10.2197,-50.1176); cutDxDyArr[6].SetPoint(1,0.0901413,-90.5882); cutDxDyArr[6].SetPoint(2,-29.187,-139.353); cutDxDyArr[6].SetPoint(3,-73.6113,-190.078); cutDxDyArr[6].SetPoint(4,-79.5493,-168.157); cutDxDyArr[6].SetPoint(5,-78.1521,-137.804); cutDxDyArr[6].SetPoint(6,-25.878,-40.782); cutDxDyArr[6].SetPoint(7,-19.561,-18.3795); cutDxDyArr[6].SetPoint(8,-12.9431,-5.68481); cutDxDyArr[6].SetPoint(9,-2.11382,-1.20431); cutDxDyArr[6].SetPoint(10,-1.81301,11.4904); cutDxDyArr[6].SetPoint(11,-8.73171,25.6787); cutDxDyArr[6].SetPoint(12,-16.8537,49.5746); cutDxDyArr[6].SetPoint(13,-28.2846,103.341); cutDxDyArr[6].SetPoint(14,-39.3803,147.176); cutDxDyArr[6].SetPoint(15,-66.9746,228.118); cutDxDyArr[6].SetPoint(16,-68.3718,251.725); cutDxDyArr[6].SetPoint(17,-63.831,265.216); cutDxDyArr[6].SetPoint(18,-38.3324,228.118); cutDxDyArr[6].SetPoint(19,-13.8817,172.471); cutDxDyArr[6].SetPoint(20,3.60163,114.542); cutDxDyArr[6].SetPoint(21,9.87042,64.549); cutDxDyArr[6].SetPoint(22,6.37747,20.7059); cutDxDyArr[6].SetPoint(23,-0.308943,14.4774); cutDxDyArr[6].SetPoint(24,-0.00813029,-1.95106); cutDxDyArr[6].SetPoint(25,9.52113,-13.0196); cutDxDyArr[6].SetPoint(26,10.2197,-50.1176); cutDxDyArr[7].Set(29); cutDxDyArr[7].SetPoint(0,15.8182,-65.9598); cutDxDyArr[7].SetPoint(1,9.36028,-122.773); cutDxDyArr[7].SetPoint(2,-4.01683,-170.845); cutDxDyArr[7].SetPoint(3,-35.6633,-220.759); cutDxDyArr[7].SetPoint(4,-72.7475,-227.658); cutDxDyArr[7].SetPoint(5,-85.202,-212.362); cutDxDyArr[7].SetPoint(6,-84.7407,-186.141); cutDxDyArr[7].SetPoint(7,-42.7643,-92.1811); cutDxDyArr[7].SetPoint(8,-23.3712,-42.4205); cutDxDyArr[7].SetPoint(9,-16.9327,-17.8873); cutDxDyArr[7].SetPoint(10,-2.47465,-0.902564); cutDxDyArr[7].SetPoint(11,-3.70385,14.6667); cutDxDyArr[7].SetPoint(12,-10.6694,23.6308); cutDxDyArr[7].SetPoint(13,-16.4057,56.1846); cutDxDyArr[7].SetPoint(14,-26.2394,113.272); cutDxDyArr[7].SetPoint(15,-36.8925,148.656); cutDxDyArr[7].SetPoint(16,-49.1846,185.456); cutDxDyArr[7].SetPoint(17,-60.2929,229.03); cutDxDyArr[7].SetPoint(18,-60.2929,279.288); cutDxDyArr[7].SetPoint(19,-51.0673,290.213); cutDxDyArr[7].SetPoint(20,-11.3973,237.771); cutDxDyArr[7].SetPoint(21,5.72008,165.641); cutDxDyArr[7].SetPoint(22,10.6369,119.405); cutDxDyArr[7].SetPoint(23,11.0467,65.6205); cutDxDyArr[7].SetPoint(24,8.43772,28); cutDxDyArr[7].SetPoint(25,-0.0162272,7.58974); cutDxDyArr[7].SetPoint(26,-0.8357,-0.902564); cutDxDyArr[7].SetPoint(27,12.5892,-17.8873); cutDxDyArr[7].SetPoint(28,15.8182,-65.9598); cutDxDyArr[8].Set(26); cutDxDyArr[8].SetPoint(0,24.6815,-94.2084); cutDxDyArr[8].SetPoint(1,17.8855,-156.017); cutDxDyArr[8].SetPoint(2,7.8615,-190.011); cutDxDyArr[8].SetPoint(3,-3.5217,-200.828); cutDxDyArr[8].SetPoint(4,-15.7763,-185.18); cutDxDyArr[8].SetPoint(5,-20.1718,-166.833); cutDxDyArr[8].SetPoint(6,-24.0794,-115.841); cutDxDyArr[8].SetPoint(7,-24.759,-54.033); cutDxDyArr[8].SetPoint(8,-18.2034,-6.13178); cutDxDyArr[8].SetPoint(9,-1.21356,-1.22636); cutDxDyArr[8].SetPoint(10,-1.21356,11.0372); cutDxDyArr[8].SetPoint(11,-12.5263,24.7726); cutDxDyArr[8].SetPoint(12,-22.3804,75.7645); cutDxDyArr[8].SetPoint(13,-26.1182,128.302); cutDxDyArr[8].SetPoint(14,-26.2881,221.014); cutDxDyArr[8].SetPoint(15,-13.5457,251.918); cutDxDyArr[8].SetPoint(16,0.89566,251.918); cutDxDyArr[8].SetPoint(17,15.7763,199.896); cutDxDyArr[8].SetPoint(18,18.2034,136.126); cutDxDyArr[8].SetPoint(19,15.7763,57.6387); cutDxDyArr[8].SetPoint(20,12.5401,23.3008); cutDxDyArr[8].SetPoint(21,-0.40452,11.0372); cutDxDyArr[8].SetPoint(22,-0.40452,1.22636); cutDxDyArr[8].SetPoint(23,14.9673,-6.13178); cutDxDyArr[8].SetPoint(24,23.0577,-33.1116); cutDxDyArr[8].SetPoint(25,24.6815,-94.2084); cutDxDyArr[9].Set(26); cutDxDyArr[9].SetPoint(0,28.0162,-90.6667); cutDxDyArr[9].SetPoint(1,26.2672,-157.333); cutDxDyArr[9].SetPoint(2,15.5547,-172); cutDxDyArr[9].SetPoint(3,1.12551,-184); cutDxDyArr[9].SetPoint(4,-8.05668,-169.333); cutDxDyArr[9].SetPoint(5,-19.6437,-134.667); cutDxDyArr[9].SetPoint(6,-24.2348,-89.3333); cutDxDyArr[9].SetPoint(7,-23.5789,-60); cutDxDyArr[9].SetPoint(8,-16.8016,-5.33333); cutDxDyArr[9].SetPoint(9,-1.21356,-1.22636); cutDxDyArr[9].SetPoint(10,-1.21356,11.0372); cutDxDyArr[9].SetPoint(11,-10.113,13.4899); cutDxDyArr[9].SetPoint(12,-14.9673,35.5643); cutDxDyArr[9].SetPoint(13,-18.2058,117.174); cutDxDyArr[9].SetPoint(14,-14.0554,194.876); cutDxDyArr[9].SetPoint(15,-4.00713,233.727); cutDxDyArr[9].SetPoint(16,9.53621,235.346); cutDxDyArr[9].SetPoint(17,21.7689,206.208); cutDxDyArr[9].SetPoint(18,26.3562,154.407); cutDxDyArr[9].SetPoint(19,21.7689,88.0361); cutDxDyArr[9].SetPoint(20,12.5401,23.3008); cutDxDyArr[9].SetPoint(21,-0.40452,11.0372); cutDxDyArr[9].SetPoint(22,-0.40452,1.22636); cutDxDyArr[9].SetPoint(23,14.9673,-6.13178); cutDxDyArr[9].SetPoint(24,20.8016,-17.3333); cutDxDyArr[9].SetPoint(25,28.0162,-90.6667); cutDxDyArr[10].Set(30); cutDxDyArr[10].SetPoint(0,45.5459,-110.814); cutDxDyArr[10].SetPoint(1,67.7998,-150.932); cutDxDyArr[10].SetPoint(2,70.7025,-213.339); cutDxDyArr[10].SetPoint(3,58.608,-237.856); cutDxDyArr[10].SetPoint(4,27.264,-217); cutDxDyArr[10].SetPoint(5,-5.40464,-178.923); cutDxDyArr[10].SetPoint(6,-18.353,-135.986); cutDxDyArr[10].SetPoint(7,-21.0531,-46.411); cutDxDyArr[10].SetPoint(8,-17.8294,-19.4322); cutDxDyArr[10].SetPoint(9,1.80155,-0.564426); cutDxDyArr[10].SetPoint(10,1.80155,15.2395); cutDxDyArr[10].SetPoint(11,-4.60395,17.4972); cutDxDyArr[10].SetPoint(12,-11.0094,22.0126); cutDxDyArr[10].SetPoint(13,-14.2122,37.8165); cutDxDyArr[10].SetPoint(14,-17.4149,105.548); cutDxDyArr[10].SetPoint(15,-11.8101,177.794); cutDxDyArr[10].SetPoint(16,-1.12507,232.73); cutDxDyArr[10].SetPoint(17,23.0497,257.727); cutDxDyArr[10].SetPoint(18,43.751,261.894); cutDxDyArr[10].SetPoint(19,49.6014,228.563); cutDxDyArr[10].SetPoint(20,46.9012,191.067); cutDxDyArr[10].SetPoint(21,29.0973,116.525); cutDxDyArr[10].SetPoint(22,22.3244,83.0932); cutDxDyArr[10].SetPoint(23,10.2299,27.3729); cutDxDyArr[10].SetPoint(24,3.40292,12.9818); cutDxDyArr[10].SetPoint(25,3.40292,-2.82213); cutDxDyArr[10].SetPoint(26,14.6125,-11.8529); cutDxDyArr[10].SetPoint(27,22.096,-25.1429); cutDxDyArr[10].SetPoint(28,30.0649,-68.4661); cutDxDyArr[10].SetPoint(29,45.5459,-110.814); cutDxDyArr[11].Set(31); cutDxDyArr[11].SetPoint(0,51.0438,-97.6457); cutDxDyArr[11].SetPoint(1,67.28,-129.355); cutDxDyArr[11].SetPoint(2,67.3425,-150.363); cutDxDyArr[11].SetPoint(3,62.949,-162.512); cutDxDyArr[11].SetPoint(4,12.384,-114.925); cutDxDyArr[11].SetPoint(5,-8.348,-78.1935); cutDxDyArr[11].SetPoint(6,-13.7359,-53.1689); cutDxDyArr[11].SetPoint(7,-14.6125,-25.3992); cutDxDyArr[11].SetPoint(8,-10.1,-6.04301); cutDxDyArr[11].SetPoint(9,1.872,-3.41935); cutDxDyArr[11].SetPoint(10,2.20189,15.2395); cutDxDyArr[11].SetPoint(11,-4.20361,17.4972); cutDxDyArr[11].SetPoint(12,-10.9401,29.8508); cutDxDyArr[11].SetPoint(13,-11.3395,68.3233); cutDxDyArr[11].SetPoint(14,-8.348,101.527); cutDxDyArr[11].SetPoint(15,1.4012,141.671); cutDxDyArr[11].SetPoint(16,19.8138,195.89); cutDxDyArr[11].SetPoint(17,58.1562,264.736); cutDxDyArr[11].SetPoint(18,62.949,256.636); cutDxDyArr[11].SetPoint(19,62.949,228.288); cutDxDyArr[11].SetPoint(20,49.4424,177.794); cutDxDyArr[11].SetPoint(21,37.7868,139.194); cutDxDyArr[11].SetPoint(22,30.997,114.895); cutDxDyArr[11].SetPoint(23,21.8108,76.4228); cutDxDyArr[11].SetPoint(24,11.027,29.8508); cutDxDyArr[11].SetPoint(25,3.332,16.2581); cutDxDyArr[11].SetPoint(26,3.04,-2.10753); cutDxDyArr[11].SetPoint(27,15.0129,-11.8529); cutDxDyArr[11].SetPoint(28,31.8273,-50.2339); cutDxDyArr[11].SetPoint(29,43.92,-83.4409); cutDxDyArr[11].SetPoint(30,51.0438,-97.6457); cutDxDyArr[12].Set(32); cutDxDyArr[12].SetPoint(0,8.91993,-62.0728); cutDxDyArr[12].SetPoint(1,4.51911,-73.9704); cutDxDyArr[12].SetPoint(2,-17.8028,-105.787); cutDxDyArr[12].SetPoint(3,-38.7726,-129.123); cutDxDyArr[12].SetPoint(4,-80.2052,-148.355); cutDxDyArr[12].SetPoint(5,-84.9859,-137.537); cutDxDyArr[12].SetPoint(6,-81.002,-115.901); cutDxDyArr[12].SetPoint(7,-57.9171,-88.9421); cutDxDyArr[12].SetPoint(8,-49.525,-73.1366); cutDxDyArr[12].SetPoint(9,-39.5694,-44.9852); cutDxDyArr[12].SetPoint(10,-26.6873,-18.76); cutDxDyArr[12].SetPoint(11,-15.4278,-5.9882); cutDxDyArr[12].SetPoint(12,-1.24706,-1.039); cutDxDyArr[12].SetPoint(13,-0.563526,9.62504); cutDxDyArr[12].SetPoint(14,-6.63581,19.1034); cutDxDyArr[12].SetPoint(15,-18.0563,53.8325); cutDxDyArr[12].SetPoint(16,-22.5714,88.5616); cutDxDyArr[12].SetPoint(17,-54.1771,178.581); cutDxDyArr[12].SetPoint(18,-61.8793,221.852); cutDxDyArr[12].SetPoint(19,-57.5493,239.467); cutDxDyArr[12].SetPoint(20,-20.1489,211.55); cutDxDyArr[12].SetPoint(21,-0.688129,180.545); cutDxDyArr[12].SetPoint(22,12.7567,132.72); cutDxDyArr[12].SetPoint(23,15.5581,108.48); cutDxDyArr[12].SetPoint(24,17.4257,50.6769); cutDxDyArr[12].SetPoint(25,14.6146,26.4377); cutDxDyArr[12].SetPoint(26,7.42134,13.7934); cutDxDyArr[12].SetPoint(27,0.632665,8.10161); cutDxDyArr[12].SetPoint(28,0.192753,-0.656174); cutDxDyArr[12].SetPoint(29,10.7211,-13.0533); cutDxDyArr[12].SetPoint(30,12.2213,-36.4631); cutDxDyArr[12].SetPoint(31,8.91993,-62.0728); cutDxDyArr[13].Set(32); cutDxDyArr[13].SetPoint(0,16.9084,-85.5055); cutDxDyArr[13].SetPoint(1,3.22065,-121.508); cutDxDyArr[13].SetPoint(2,-15.2981,-162.01); cutDxDyArr[13].SetPoint(3,-29.791,-177.761); cutDxDyArr[13].SetPoint(4,-75.1549,-213.33); cutDxDyArr[13].SetPoint(5,-87.3883,-200.032); cutDxDyArr[13].SetPoint(6,-80.507,-158.66); cutDxDyArr[13].SetPoint(7,-48.3944,-87.7361); cutDxDyArr[13].SetPoint(8,-39.2193,-56.7071); cutDxDyArr[13].SetPoint(9,-25.839,-34.5435); cutDxDyArr[13].SetPoint(10,-22.7807,-18.2902); cutDxDyArr[13].SetPoint(11,-14.7525,-3.51451); cutDxDyArr[13].SetPoint(12,-1.61033,0.); cutDxDyArr[13].SetPoint(13,-0.805163,11.2507); cutDxDyArr[13].SetPoint(14,-12.0775,24.7516); cutDxDyArr[13].SetPoint(15,-15.2981,51.7533); cutDxDyArr[13].SetPoint(16,-26.5704,103.507); cutDxDyArr[13].SetPoint(17,-35.0141,156.063); cutDxDyArr[13].SetPoint(18,-34.6318,219.599); cutDxDyArr[13].SetPoint(19,-26.6036,249.15); cutDxDyArr[13].SetPoint(20,-18.5755,252.106); cutDxDyArr[13].SetPoint(21,3.21529,218.121); cutDxDyArr[13].SetPoint(22,20.8008,157.541); cutDxDyArr[13].SetPoint(23,25.7706,98.438); cutDxDyArr[13].SetPoint(24,21.1831,51.1557); cutDxDyArr[13].SetPoint(25,13.6878,24.7516); cutDxDyArr[13].SetPoint(26,7.24647,15.751); cutDxDyArr[13].SetPoint(27,0.,9.00058); cutDxDyArr[13].SetPoint(28,0.,0.); cutDxDyArr[13].SetPoint(29,12.8826,-9.00058); cutDxDyArr[13].SetPoint(30,17.3602,-46.3641); cutDxDyArr[13].SetPoint(31,16.9084,-85.5055); cutDxDyArr[14].Set(26); cutDxDyArr[14].SetPoint(0,27.325,-81.8395); cutDxDyArr[14].SetPoint(1,20.0414,-111.721); cutDxDyArr[14].SetPoint(2,3.61489,-143.96); cutDxDyArr[14].SetPoint(3,-18.1715,-150.542); cutDxDyArr[14].SetPoint(4,-28.5145,-98.9512); cutDxDyArr[14].SetPoint(5,-28.9547,-48.1542); cutDxDyArr[14].SetPoint(6,-22.1327,-12.7145); cutDxDyArr[14].SetPoint(7,-16.1909,-4.44519); cutDxDyArr[14].SetPoint(8,0.627792,-0.727627); cutDxDyArr[14].SetPoint(9,0.529744,9.06588); cutDxDyArr[14].SetPoint(10,-8.19657,13.6362); cutDxDyArr[14].SetPoint(11,-14.3736,30.6116); cutDxDyArr[14].SetPoint(12,-24.9833,92.0517); cutDxDyArr[14].SetPoint(13,-27.6486,123.056); cutDxDyArr[14].SetPoint(14,-23.453,171.572); cutDxDyArr[14].SetPoint(15,-7.32504,191.803); cutDxDyArr[14].SetPoint(16,9.33656,196.97); cutDxDyArr[14].SetPoint(17,23.8608,131.407); cutDxDyArr[14].SetPoint(18,21.9943,81.2677); cutDxDyArr[14].SetPoint(19,14.178,28.6319); cutDxDyArr[14].SetPoint(20,1.80437,8.41298); cutDxDyArr[14].SetPoint(21,2.017,-0.982102); cutDxDyArr[14].SetPoint(22,13.2225,-6.72763); cutDxDyArr[14].SetPoint(23,23.9933,-36.0077); cutDxDyArr[14].SetPoint(24,28.6577,-56.2276); cutDxDyArr[14].SetPoint(25,27.325,-81.8395); cutDxDyArr[15].Set(26); cutDxDyArr[15].SetPoint(0,29.6766,-101.508); cutDxDyArr[15].SetPoint(1,20.7894,-134.135); cutDxDyArr[15].SetPoint(2,8.8551,-144.261); cutDxDyArr[15].SetPoint(3,-15.7752,-127.384); cutDxDyArr[15].SetPoint(4,-25.932,-90.2571); cutDxDyArr[15].SetPoint(5,-28.7251,-52.0046); cutDxDyArr[15].SetPoint(6,-23.9006,-12.6271); cutDxDyArr[15].SetPoint(7,-12.4742,-3.62651); cutDxDyArr[15].SetPoint(8,-0.0321159,0.873776); cutDxDyArr[15].SetPoint(9,-0.286036,12.1245); cutDxDyArr[15].SetPoint(10,-9.17326,16.6248); cutDxDyArr[15].SetPoint(11,-17.2987,34.6259); cutDxDyArr[15].SetPoint(12,-25.1702,86.3792); cutDxDyArr[15].SetPoint(13,-24.6624,153.884); cutDxDyArr[15].SetPoint(14,-4.34876,201.137); cutDxDyArr[15].SetPoint(15,7.5855,203.387); cutDxDyArr[15].SetPoint(16,19.7737,167.384); cutDxDyArr[15].SetPoint(17,22.5668,120.131); cutDxDyArr[15].SetPoint(18,17.9962,57.1274); cutDxDyArr[15].SetPoint(19,11.3943,22.2501); cutDxDyArr[15].SetPoint(20,1.49141,9.87435); cutDxDyArr[15].SetPoint(21,1.49141,1.99885); cutDxDyArr[15].SetPoint(22,19.5198,-7.00173); cutDxDyArr[15].SetPoint(23,27.6452,-28.3781); cutDxDyArr[15].SetPoint(24,32.2158,-72.2559); cutDxDyArr[15].SetPoint(25,29.6766,-101.508); cutDxDyArr[16].Set(27); cutDxDyArr[16].SetPoint(0,88.3277,-162.971); cutDxDyArr[16].SetPoint(1,88.7721,-184.472); cutDxDyArr[16].SetPoint(2,81.6616,-198.807); cutDxDyArr[16].SetPoint(3,47.3548,-192.283); cutDxDyArr[16].SetPoint(4,14.4913,-164.567); cutDxDyArr[16].SetPoint(5,-4.61538,-130.383); cutDxDyArr[16].SetPoint(6,-14.1687,-103.591); cutDxDyArr[16].SetPoint(7,-21.0471,-65.7113); cutDxDyArr[16].SetPoint(8,-20.1068,-30.3784); cutDxDyArr[16].SetPoint(9,-14.7739,-8.87686); cutDxDyArr[16].SetPoint(10,-1.55831,-0.115486); cutDxDyArr[16].SetPoint(11,-1.17618,8.19947); cutDxDyArr[16].SetPoint(12,-15.6973,27.601); cutDxDyArr[16].SetPoint(13,-24.1042,57.1654); cutDxDyArr[16].SetPoint(14,-25.4396,150.593); cutDxDyArr[16].SetPoint(15,-11.2187,202.554); cutDxDyArr[16].SetPoint(16,2.55781,222.264); cutDxDyArr[16].SetPoint(17,16.3343,224.056); cutDxDyArr[16].SetPoint(18,31.6873,187.433); cutDxDyArr[16].SetPoint(19,30.1108,139.842); cutDxDyArr[16].SetPoint(20,9.90571,21.1339); cutDxDyArr[16].SetPoint(21,1.49876,10.9711); cutDxDyArr[16].SetPoint(22,0.734491,-1.03937); cutDxDyArr[16].SetPoint(23,16.7787,-8.87686); cutDxDyArr[16].SetPoint(24,36.6551,-54.6247); cutDxDyArr[16].SetPoint(25,60.3474,-108.21); cutDxDyArr[16].SetPoint(26,88.3277,-162.971); cutDxDyArr[17].Set(26); cutDxDyArr[17].SetPoint(0,74.0717,-122.266); cutDxDyArr[17].SetPoint(1,72.4966,-141.655); cutDxDyArr[17].SetPoint(2,66.1962,-148.705); cutDxDyArr[17].SetPoint(3,29.8908,-123.429); cutDxDyArr[17].SetPoint(4,5.23573,-89.1429); cutDxDyArr[17].SetPoint(5,-7.27047,-62.8571); cutDxDyArr[17].SetPoint(6,-14.1339,-37.6581); cutDxDyArr[17].SetPoint(7,-13.7402,-12.9809); cutDxDyArr[17].SetPoint(8,-1.91067,-1.14286); cutDxDyArr[17].SetPoint(9,-1.55335,10.2857); cutDxDyArr[17].SetPoint(10,-13.7022,24); cutDxDyArr[17].SetPoint(11,-17.6779,68.1012); cutDxDyArr[17].SetPoint(12,-11.9156,144); cutDxDyArr[17].SetPoint(13,2.37717,187.429); cutDxDyArr[17].SetPoint(14,38.1092,242.286); cutDxDyArr[17].SetPoint(15,59.502,253.18); cutDxDyArr[17].SetPoint(16,62.6522,228.503); cutDxDyArr[17].SetPoint(17,59.5484,201.143); cutDxDyArr[17].SetPoint(18,28.1042,113.143); cutDxDyArr[17].SetPoint(19,10.5955,34.2857); cutDxDyArr[17].SetPoint(20,0.947891,11.4286); cutDxDyArr[17].SetPoint(21,0.233251,-1.14286); cutDxDyArr[17].SetPoint(22,18.8139,-8); cutDxDyArr[17].SetPoint(23,27.6062,-27.0822); cutDxDyArr[17].SetPoint(24,69.3464,-99.3511); cutDxDyArr[17].SetPoint(25,74.0717,-122.266); cutDxDyArr[18].Set(32); cutDxDyArr[18].SetPoint(0,4.39437,-58.1417); cutDxDyArr[18].SetPoint(1,-3.91147,-82.1732); cutDxDyArr[18].SetPoint(2,-24.9601,-104.419); cutDxDyArr[18].SetPoint(3,-44.7591,-118.663); cutDxDyArr[18].SetPoint(4,-70.8544,-138.284); cutDxDyArr[18].SetPoint(5,-100.81,-137.892); cutDxDyArr[18].SetPoint(6,-107.684,-118.663); cutDxDyArr[18].SetPoint(7,-103.983,-96.2294); cutDxDyArr[18].SetPoint(8,-55.5563,-50.2339); cutDxDyArr[18].SetPoint(9,-43.4788,-34.43); cutDxDyArr[18].SetPoint(10,-28.1807,-11.8529); cutDxDyArr[18].SetPoint(11,-16.1033,-5.07983); cutDxDyArr[18].SetPoint(12,-1.61033,-0.564426); cutDxDyArr[18].SetPoint(13,-0.805163,10.7241); cutDxDyArr[18].SetPoint(14,-7.37223,29.9738); cutDxDyArr[18].SetPoint(15,-10.4869,65.4488); cutDxDyArr[18].SetPoint(16,-13.9477,83.7585); cutDxDyArr[18].SetPoint(17,-25.0221,138.688); cutDxDyArr[18].SetPoint(18,-42.326,185.606); cutDxDyArr[18].SetPoint(19,-43.7015,221.049); cutDxDyArr[18].SetPoint(20,-35.7697,232.266); cutDxDyArr[18].SetPoint(21,13.7384,173.018); cutDxDyArr[18].SetPoint(22,23.4286,147.843); cutDxDyArr[18].SetPoint(23,28.2456,86.8772); cutDxDyArr[18].SetPoint(24,23.2214,47.8147); cutDxDyArr[18].SetPoint(25,14.429,22.7031); cutDxDyArr[18].SetPoint(26,7.24647,15.2395); cutDxDyArr[18].SetPoint(27,0,8.46639); cutDxDyArr[18].SetPoint(28,0,-0.564426); cutDxDyArr[18].SetPoint(29,8.89336,-7.79003); cutDxDyArr[18].SetPoint(30,10.9698,-28.3885); cutDxDyArr[18].SetPoint(31,4.39437,-58.1417); cutDxDyArr[19].Set(31); cutDxDyArr[19].SetPoint(0,20.2173,-53.6963); cutDxDyArr[19].SetPoint(1,15.835,-90.1675); cutDxDyArr[19].SetPoint(2,-11.2555,-140.147); cutDxDyArr[19].SetPoint(3,-40.2582,-160.861); cutDxDyArr[19].SetPoint(4,-67.4286,-172.565); cutDxDyArr[19].SetPoint(5,-79.7112,-156.346); cutDxDyArr[19].SetPoint(6,-73.8028,-86.1152); cutDxDyArr[19].SetPoint(7,-43.4788,-47.9762); cutDxDyArr[19].SetPoint(8,-38.3461,-32.0838); cutDxDyArr[19].SetPoint(9,-25.996,-14.5236); cutDxDyArr[19].SetPoint(10,-16.1033,-5.07983); cutDxDyArr[19].SetPoint(11,-1.61033,-0.564426); cutDxDyArr[19].SetPoint(12,-0.805163,10.7241); cutDxDyArr[19].SetPoint(13,-11.2723,31.0434); cutDxDyArr[19].SetPoint(14,-15.2981,60.3936); cutDxDyArr[19].SetPoint(15,-18.5188,82.9706); cutDxDyArr[19].SetPoint(16,-18.5188,125.867); cutDxDyArr[19].SetPoint(17,-15.2981,168.763); cutDxDyArr[19].SetPoint(18,-1.29577,201.602); cutDxDyArr[19].SetPoint(19,7.46881,205.654); cutDxDyArr[19].SetPoint(20,30.5962,184.567); cutDxDyArr[19].SetPoint(21,39.7384,147.571); cutDxDyArr[19].SetPoint(22,37.3481,84.0838); cutDxDyArr[19].SetPoint(23,25.7652,53.6205); cutDxDyArr[19].SetPoint(24,14.4929,22.0126); cutDxDyArr[19].SetPoint(25,7.24647,15.2395); cutDxDyArr[19].SetPoint(26,0.,8.46639); cutDxDyArr[19].SetPoint(27,0.,-0.564426); cutDxDyArr[19].SetPoint(28,10.4671,-2.82213); cutDxDyArr[19].SetPoint(29,17.827,-21.2775); cutDxDyArr[19].SetPoint(30,20.2173,-53.6963); cutDxDyArr[20].Set(27); cutDxDyArr[20].SetPoint(0,26.8118,-87.662); cutDxDyArr[20].SetPoint(1,17.9831,-117.476); cutDxDyArr[20].SetPoint(2,8.12955,-132.758); cutDxDyArr[20].SetPoint(3,-3.93658,-145.082); cutDxDyArr[20].SetPoint(4,-19.7674,-149.499); cutDxDyArr[20].SetPoint(5,-40.4693,-110.851); cutDxDyArr[20].SetPoint(6,-42.9049,-56.7437); cutDxDyArr[20].SetPoint(7,-30.1184,-22.5127); cutDxDyArr[20].SetPoint(8,-17.6364,-3.74085); cutDxDyArr[20].SetPoint(9,0.24635,0.); cutDxDyArr[20].SetPoint(10,0.24635,11.2507); cutDxDyArr[20].SetPoint(11,-8.62225,15.751); cutDxDyArr[20].SetPoint(12,-16.5055,29.2519); cutDxDyArr[20].SetPoint(13,-20.6808,73.5549); cutDxDyArr[20].SetPoint(14,-17.9408,144.225); cutDxDyArr[20].SetPoint(15,-9.11205,157.476); cutDxDyArr[20].SetPoint(16,13.1121,159.685); cutDxDyArr[20].SetPoint(17,23.463,147.538); cutDxDyArr[20].SetPoint(18,30.1607,118.828); cutDxDyArr[20].SetPoint(19,30.1607,86.8056); cutDxDyArr[20].SetPoint(20,17.6786,24.969); cutDxDyArr[20].SetPoint(21,1.23175,9.00058); cutDxDyArr[20].SetPoint(22,1.23175,0.); cutDxDyArr[20].SetPoint(23,17.3742,-7.05352); cutDxDyArr[20].SetPoint(24,24.8814,-29.2519); cutDxDyArr[20].SetPoint(25,30.4651,-58.9521); cutDxDyArr[20].SetPoint(26,26.8118,-87.662); cutDxDyArr[21].Set(26); cutDxDyArr[21].SetPoint(0,37.6658,-97.6428); cutDxDyArr[21].SetPoint(1,28.3131,-152.726); cutDxDyArr[21].SetPoint(2,18.9603,-155.021); cutDxDyArr[21].SetPoint(3,-16.5251,-121.742); cutDxDyArr[21].SetPoint(4,-33.5801,-76.9865); cutDxDyArr[21].SetPoint(5,-32.7548,-50.5923); cutDxDyArr[21].SetPoint(6,-26.1529,-31.0835); cutDxDyArr[21].SetPoint(7,-11.5736,-1.24662); cutDxDyArr[21].SetPoint(8,-0.295301,1.04853); cutDxDyArr[21].SetPoint(9,-0.295301,11.3767); cutDxDyArr[21].SetPoint(10,-9.37296,15.967); cutDxDyArr[21].SetPoint(11,-16.25,29.7379); cutDxDyArr[21].SetPoint(12,-30.8292,76.7884); cutDxDyArr[21].SetPoint(13,-34.9892,133.307); cutDxDyArr[21].SetPoint(14,-26.3261,167.395); cutDxDyArr[21].SetPoint(15,-10.7484,175.48); cutDxDyArr[21].SetPoint(16,13.4587,139.905); cutDxDyArr[21].SetPoint(17,20.3357,85.969); cutDxDyArr[21].SetPoint(18,18.4102,54.9845); cutDxDyArr[21].SetPoint(19,11.5332,15.967); cutDxDyArr[21].SetPoint(20,1.63026,9.08155); cutDxDyArr[21].SetPoint(21,1.63026,1.04853); cutDxDyArr[21].SetPoint(22,17.3099,-5.83691); cutDxDyArr[21].SetPoint(23,31.8891,-26.4932); cutDxDyArr[21].SetPoint(24,38.7661,-58.6253); cutDxDyArr[21].SetPoint(25,37.6658,-97.6428); cutDxDyArr[22].Set(27); cutDxDyArr[22].SetPoint(0,85.6911,-135.497); cutDxDyArr[22].SetPoint(1,88.7288,-157.086); cutDxDyArr[22].SetPoint(2,80.122,-180.336); cutDxDyArr[22].SetPoint(3,58.0596,-179.14); cutDxDyArr[22].SetPoint(4,37.2705,-167.43); cutDxDyArr[22].SetPoint(5,6.92804,-125); cutDxDyArr[22].SetPoint(6,-5.01241,-109.677); cutDxDyArr[22].SetPoint(7,-13.8313,-84.4194); cutDxDyArr[22].SetPoint(8,-20.0149,-51); cutDxDyArr[22].SetPoint(9,-15.5654,-10.9462); cutDxDyArr[22].SetPoint(10,-1.84119,-0.688172); cutDxDyArr[22].SetPoint(11,-2.34739,9.87097); cutDxDyArr[22].SetPoint(12,-18.6031,17.2855); cutDxDyArr[22].SetPoint(13,-28.6203,37.2473); cutDxDyArr[22].SetPoint(14,-35.9156,74.3226); cutDxDyArr[22].SetPoint(15,-42.9047,140.176); cutDxDyArr[22].SetPoint(16,-35.3104,180.033); cutDxDyArr[22].SetPoint(17,-20.0149,194.871); cutDxDyArr[22].SetPoint(18,2.95285,184.129); cutDxDyArr[22].SetPoint(19,14.3052,128.551); cutDxDyArr[22].SetPoint(20,9.7866,18.5806); cutDxDyArr[22].SetPoint(21,0.62531,8.34409); cutDxDyArr[22].SetPoint(22,0.272953,-1.29032); cutDxDyArr[22].SetPoint(23,20.3806,-5.96411); cutDxDyArr[22].SetPoint(24,35.0628,-29.2137); cutDxDyArr[22].SetPoint(25,50.2134,-55.7742); cutDxDyArr[22].SetPoint(26,85.6911,-135.497); cutDxDyArr[23].Set(27); cutDxDyArr[23].SetPoint(0,99.4932,-97.423); cutDxDyArr[23].SetPoint(1,100.281,-112.313); cutDxDyArr[23].SetPoint(2,92.2476,-128.629); cutDxDyArr[23].SetPoint(3,42.6641,-122.726); cutDxDyArr[23].SetPoint(4,14.8828,-97.6099); cutDxDyArr[23].SetPoint(5,-2.97657,-79.3437); cutDxDyArr[23].SetPoint(6,-8.92971,-61.0775); cutDxDyArr[23].SetPoint(7,-15.875,-35.9615); cutDxDyArr[23].SetPoint(8,-13.9029,-9.52564); cutDxDyArr[23].SetPoint(9,-2.29851,-0.787401); cutDxDyArr[23].SetPoint(10,-1.98438,9.70391); cutDxDyArr[23].SetPoint(11,-14.8828,16.5537); cutDxDyArr[23].SetPoint(12,-29.969,60.631); cutDxDyArr[23].SetPoint(13,-31.1165,130.788); cutDxDyArr[23].SetPoint(14,-24.2311,179.734); cutDxDyArr[23].SetPoint(15,-8.16507,207.47); cutDxDyArr[23].SetPoint(16,17.6553,210.734); cutDxDyArr[23].SetPoint(17,29.7049,204.207); cutDxDyArr[23].SetPoint(18,33.1476,169.945); cutDxDyArr[23].SetPoint(19,15.934,101.42); cutDxDyArr[23].SetPoint(20,6.1796,23.1054); cutDxDyArr[23].SetPoint(21,0.0398016,8.66142); cutDxDyArr[23].SetPoint(22,-0.42786,-1.41732); cutDxDyArr[23].SetPoint(23,22.4876,-8.97638); cutDxDyArr[23].SetPoint(24,35.7188,-24.5452); cutDxDyArr[23].SetPoint(25,61.8369,-61.7352); cutDxDyArr[23].SetPoint(26,99.4932,-97.423); cutDxDyArr[24].Set(26); cutDxDyArr[24].SetPoint(0,46.0375,161.099); cutDxDyArr[24].SetPoint(1,54.2521,123.035); cutDxDyArr[24].SetPoint(2,49.3387,71.4672); cutDxDyArr[24].SetPoint(3,36.7708,40.306); cutDxDyArr[24].SetPoint(4,11.1079,10.6652); cutDxDyArr[24].SetPoint(5,0.877232,7.32813); cutDxDyArr[24].SetPoint(6,-0.517857,0.654038); cutDxDyArr[24].SetPoint(7,6.65417,-12.5714); cutDxDyArr[24].SetPoint(8,6.075,-44.5283); cutDxDyArr[24].SetPoint(9,-11.8792,-86.3181); cutDxDyArr[24].SetPoint(10,-64.89,-134.412); cutDxDyArr[24].SetPoint(11,-105.61,-164.548); cutDxDyArr[24].SetPoint(12,-134.81,-160.752); cutDxDyArr[24].SetPoint(13,-149.773,-153.061); cutDxDyArr[24].SetPoint(14,-149.773,-124.217); cutDxDyArr[24].SetPoint(15,-66.9,-33.4663); cutDxDyArr[24].SetPoint(16,-26.3583,-6.42588); cutDxDyArr[24].SetPoint(17,-2.84301,-0.680781); cutDxDyArr[24].SetPoint(18,-0.517857,12.6674); cutDxDyArr[24].SetPoint(19,-2.6125,38.8329); cutDxDyArr[24].SetPoint(20,-9.11694,89.2243); cutDxDyArr[24].SetPoint(21,-20.3395,168.063); cutDxDyArr[24].SetPoint(22,-15.1023,193.061); cutDxDyArr[24].SetPoint(23,-3.87973,210.367); cutDxDyArr[24].SetPoint(24,23.0545,198.829); cutDxDyArr[24].SetPoint(25,46.0375,161.099); cutDxDyArr[25].Set(25); cutDxDyArr[25].SetPoint(0,53.975,87.7037); cutDxDyArr[25].SetPoint(1,37.8,44.6667); cutDxDyArr[25].SetPoint(2,13.65,10); cutDxDyArr[25].SetPoint(3,0.7,7.33333); cutDxDyArr[25].SetPoint(4,0,-1.33333); cutDxDyArr[25].SetPoint(5,14.3186,-11.3832); cutDxDyArr[25].SetPoint(6,16.7263,-42.1495); cutDxDyArr[25].SetPoint(7,10.1052,-84.4533); cutDxDyArr[25].SetPoint(8,-18.1847,-126.757); cutDxDyArr[25].SetPoint(9,-49.1667,-155.153); cutDxDyArr[25].SetPoint(10,-91.6181,-190.213); cutDxDyArr[25].SetPoint(11,-100.647,-176.752); cutDxDyArr[25].SetPoint(12,-97.0354,-140.217); cutDxDyArr[25].SetPoint(13,-54.9014,-38.3037); cutDxDyArr[25].SetPoint(14,-27.1375,-8.2963); cutDxDyArr[25].SetPoint(15,-2.1,0); cutDxDyArr[25].SetPoint(16,-1.4,8.66667); cutDxDyArr[25].SetPoint(17,-8.75,22.6667); cutDxDyArr[25].SetPoint(18,-7.95216,88.6075); cutDxDyArr[25].SetPoint(19,1.67845,146.294); cutDxDyArr[25].SetPoint(20,18.532,177.061); cutDxDyArr[25].SetPoint(21,32.978,184.752); cutDxDyArr[25].SetPoint(22,43.8124,184.752); cutDxDyArr[25].SetPoint(23,56.1208,155.259); cutDxDyArr[25].SetPoint(24,53.975,87.7037); cutDxDyArr[26].Set(25); cutDxDyArr[26].SetPoint(0,-1.20609,-175.525); cutDxDyArr[26].SetPoint(1,-40.9017,-168.651); cutDxDyArr[26].SetPoint(2,-60.5907,-98.0282); cutDxDyArr[26].SetPoint(3,-60.5907,-70.5292); cutDxDyArr[26].SetPoint(4,-34.868,-19.9061); cutDxDyArr[26].SetPoint(5,-19.3073,-6.15661); cutDxDyArr[26].SetPoint(6,-3.11148,0.718131); cutDxDyArr[26].SetPoint(7,-1.20609,6.9679); cutDxDyArr[26].SetPoint(8,-20.8951,34.4464); cutDxDyArr[26].SetPoint(9,-31.0572,82.6507); cutDxDyArr[26].SetPoint(10,-29.1518,148.759); cutDxDyArr[26].SetPoint(11,-25.6586,166.962); cutDxDyArr[26].SetPoint(12,26.1045,179.462); cutDxDyArr[26].SetPoint(13,51.5097,153.837); cutDxDyArr[26].SetPoint(14,54.6853,118.214); cutDxDyArr[26].SetPoint(15,27.6923,36.3418); cutDxDyArr[26].SetPoint(16,10.5438,9.46781); cutDxDyArr[26].SetPoint(17,0.6993,7.59288); cutDxDyArr[26].SetPoint(18,0.0641709,-1.1568); cutDxDyArr[26].SetPoint(19,13.0843,-5.53164); cutDxDyArr[26].SetPoint(20,34.6787,-31.7807); cutDxDyArr[26].SetPoint(21,38.4895,-63.0295); cutDxDyArr[26].SetPoint(22,38.1719,-94.2784); cutDxDyArr[26].SetPoint(23,29.5977,-127.402); cutDxDyArr[26].SetPoint(24,-1.20609,-175.525); cutDxDyArr[27].Set(25); cutDxDyArr[27].SetPoint(0,-7.8755,-157.328); cutDxDyArr[27].SetPoint(1,-20.8632,-141.701); cutDxDyArr[27].SetPoint(2,-35.2839,-108.89); cutDxDyArr[27].SetPoint(3,-39.0458,-49.3436); cutDxDyArr[27].SetPoint(4,-32.149,-25.0389); cutDxDyArr[27].SetPoint(5,-24.3116,-12.8866); cutDxDyArr[27].SetPoint(6,-2.25014,0.); cutDxDyArr[27].SetPoint(7,-2.25014,5.82696); cutDxDyArr[27].SetPoint(8,-38.1053,40.5836); cutDxDyArr[27].SetPoint(9,-52.526,91.6234); cutDxDyArr[27].SetPoint(10,-46.2562,135.372); cutDxDyArr[27].SetPoint(11,-39.0458,159.676); cutDxDyArr[27].SetPoint(12,5.47024,175.474); cutDxDyArr[27].SetPoint(13,18.3235,134.157); cutDxDyArr[27].SetPoint(14,22.3989,81.9016); cutDxDyArr[27].SetPoint(15,15.8155,35.7227); cutDxDyArr[27].SetPoint(16,8.91867,15.0638); cutDxDyArr[27].SetPoint(17,0.,8.74044); cutDxDyArr[27].SetPoint(18,0.,0.); cutDxDyArr[27].SetPoint(19,28.3553,-8.02567); cutDxDyArr[27].SetPoint(20,55.9427,-48.1284); cutDxDyArr[27].SetPoint(21,56.8832,-91.8767); cutDxDyArr[27].SetPoint(22,43.8778,-136.934); cutDxDyArr[27].SetPoint(23,15.502,-178.158); cutDxDyArr[27].SetPoint(24,-7.8755,-157.328); cutDxDyArr[28].Set(24); cutDxDyArr[28].SetPoint(0,100.798,-169.619); cutDxDyArr[28].SetPoint(1,74.2692,-185.22); cutDxDyArr[28].SetPoint(2,40.8461,-172.152); cutDxDyArr[28].SetPoint(3,-24.5928,-76.9926); cutDxDyArr[28].SetPoint(4,-27.6224,-34.104); cutDxDyArr[28].SetPoint(5,-20.9573,-9.9792); cutDxDyArr[28].SetPoint(6,-2.1739,-1.64278); cutDxDyArr[28].SetPoint(7,-2.1739,8.0713); cutDxDyArr[28].SetPoint(8,-17.9277,14.7497); cutDxDyArr[28].SetPoint(9,-62.7984,88.6761); cutDxDyArr[28].SetPoint(10,-65.0091,138.948); cutDxDyArr[28].SetPoint(11,-59.1137,178.819); cutDxDyArr[28].SetPoint(12,-37.743,196.154); cutDxDyArr[28].SetPoint(13,-14.2516,183.271); cutDxDyArr[28].SetPoint(14,-3.67228,146.603); cutDxDyArr[28].SetPoint(15,5.0971,94.5617); cutDxDyArr[28].SetPoint(16,11.6308,41.871); cutDxDyArr[28].SetPoint(17,0.249768,7.46417); cutDxDyArr[28].SetPoint(18,-0.356148,-0.428519); cutDxDyArr[28].SetPoint(19,25.0923,-5.89269); cutDxDyArr[28].SetPoint(20,51.7526,-30.0832); cutDxDyArr[28].SetPoint(21,83.8662,-81.0134); cutDxDyArr[28].SetPoint(22,103.746,-140.149); cutDxDyArr[28].SetPoint(23,100.798,-169.619); cutDxDyArr[29].Set(26); cutDxDyArr[29].SetPoint(0,121.479,-160.02); cutDxDyArr[29].SetPoint(1,86.3769,-158.286); cutDxDyArr[29].SetPoint(2,38.2524,-119.453); cutDxDyArr[29].SetPoint(3,-5.62536,-75.7505); cutDxDyArr[29].SetPoint(4,-16.8761,-34.9618); cutDxDyArr[29].SetPoint(5,-13.2915,-15.0769); cutDxDyArr[29].SetPoint(6,-1.63229,-1.37965); cutDxDyArr[29].SetPoint(7,-4.50029,11.6539); cutDxDyArr[29].SetPoint(8,-17.9552,15.7419); cutDxDyArr[29].SetPoint(9,-47.1031,57.9752); cutDxDyArr[29].SetPoint(10,-54.7071,108.676); cutDxDyArr[29].SetPoint(11,-43.2314,184.951); cutDxDyArr[29].SetPoint(12,-18.2548,205.753); cutDxDyArr[29].SetPoint(13,4.69672,197.086); cutDxDyArr[29].SetPoint(14,12.1222,172.816); cutDxDyArr[29].SetPoint(15,10.4274,123.496); cutDxDyArr[29].SetPoint(16,6.72185,82.6732); cutDxDyArr[29].SetPoint(17,3.37522,34.9618); cutDxDyArr[29].SetPoint(18,-1.12507,17.4809); cutDxDyArr[29].SetPoint(19,1.28251,-0.238213); cutDxDyArr[29].SetPoint(20,27.6482,-4.00282); cutDxDyArr[29].SetPoint(21,81.7309,-59.5931); cutDxDyArr[29].SetPoint(22,117.007,-84.491); cutDxDyArr[29].SetPoint(23,145.106,-121.882); cutDxDyArr[29].SetPoint(24,145.106,-149.619); cutDxDyArr[29].SetPoint(25,121.479,-160.02); cutDxDyArr[30].Set(28); cutDxDyArr[30].SetPoint(0,117.007,104.885); cutDxDyArr[30].SetPoint(1,91.1308,72.837); cutDxDyArr[30].SetPoint(2,63.004,46.6157); cutDxDyArr[30].SetPoint(3,40.5026,32.0483); cutDxDyArr[30].SetPoint(4,16.2322,14.5394); cutDxDyArr[30].SetPoint(5,4.6728,13.0855); cutDxDyArr[30].SetPoint(6,-0.41334,-1.93859); cutDxDyArr[30].SetPoint(7,3.749,-16.9626); cutDxDyArr[30].SetPoint(8,3.749,-45.6015); cutDxDyArr[30].SetPoint(9,-6.75043,-72.837); cutDxDyArr[30].SetPoint(10,-60.7539,-119.453); cutDxDyArr[30].SetPoint(11,-118.133,-151.501); cutDxDyArr[30].SetPoint(12,-197.864,-167.199); cutDxDyArr[30].SetPoint(13,-200.263,-104.885); cutDxDyArr[30].SetPoint(14,-175.511,-75.7505); cutDxDyArr[30].SetPoint(15,-79.5844,-22.849); cutDxDyArr[30].SetPoint(16,-4.11235,-1.45394); cutDxDyArr[30].SetPoint(17,2.36092,16.478); cutDxDyArr[30].SetPoint(18,0.97379,30.0481); cutDxDyArr[30].SetPoint(19,2.25014,69.9236); cutDxDyArr[30].SetPoint(20,4.50029,113.626); cutDxDyArr[30].SetPoint(21,12.3758,136.934); cutDxDyArr[30].SetPoint(22,36.0023,171.895); cutDxDyArr[30].SetPoint(23,69.7545,195.203); cutDxDyArr[30].SetPoint(24,82.1303,201.03); cutDxDyArr[30].SetPoint(25,97.8813,206.857); cutDxDyArr[30].SetPoint(26,120.383,157.328); cutDxDyArr[30].SetPoint(27,117.007,104.885); cutDxDyArr[31].Set(28); cutDxDyArr[31].SetPoint(0,117.007,104.885); cutDxDyArr[31].SetPoint(1,77.3422,58.4734); cutDxDyArr[31].SetPoint(2,30.513,23.0579); cutDxDyArr[31].SetPoint(3,10.1256,11.6539); cutDxDyArr[31].SetPoint(4,0.,8.74044); cutDxDyArr[31].SetPoint(5,-1.12507,2.91348); cutDxDyArr[31].SetPoint(6,17.1333,-13.3148); cutDxDyArr[31].SetPoint(7,18.3496,-60.2165); cutDxDyArr[31].SetPoint(8,15.3088,-84.1459); cutDxDyArr[31].SetPoint(9,-49.5032,-154.415); cutDxDyArr[31].SetPoint(10,-119.258,-192.29); cutDxDyArr[31].SetPoint(11,-174.386,-154.415); cutDxDyArr[31].SetPoint(12,-163.494,-116.69); cutDxDyArr[31].SetPoint(13,-103.507,-46.6157); cutDxDyArr[31].SetPoint(14,-70.8795,-17.4809); cutDxDyArr[31].SetPoint(15,-27.0017,-2.91348); cutDxDyArr[31].SetPoint(16,-3.37522,2.91348); cutDxDyArr[31].SetPoint(17,-1.12507,14.5674); cutDxDyArr[31].SetPoint(18,-5.62536,26.2213); cutDxDyArr[31].SetPoint(19,-3.37522,75.7505); cutDxDyArr[31].SetPoint(20,9.00058,116.539); cutDxDyArr[31].SetPoint(21,18.0012,142.761); cutDxDyArr[31].SetPoint(22,46.128,168.982); cutDxDyArr[31].SetPoint(23,70.8795,180.636); cutDxDyArr[31].SetPoint(24,88.8807,186.463); cutDxDyArr[31].SetPoint(25,101.256,186.463); cutDxDyArr[31].SetPoint(26,121.508,142.761); cutDxDyArr[31].SetPoint(27,117.007,104.885); cutDxDyArr[32].Set(25); cutDxDyArr[32].SetPoint(0,-42.3705,-177.505); cutDxDyArr[32].SetPoint(1,-66.8234,-152.366); cutDxDyArr[32].SetPoint(2,-70.9758,-108.374); cutDxDyArr[32].SetPoint(3,-66.8234,-58.0968); cutDxDyArr[32].SetPoint(4,-42.4065,-15.1545); cutDxDyArr[32].SetPoint(5,-2.69919,1.19241); cutDxDyArr[32].SetPoint(6,-3,8.09756); cutDxDyArr[32].SetPoint(7,-15.1492,53.4554); cutDxDyArr[32].SetPoint(8,-19.3016,108.446); cutDxDyArr[32].SetPoint(9,-11.4582,155.581); cutDxDyArr[32].SetPoint(10,3.76721,177.577); cutDxDyArr[32].SetPoint(11,21.2995,190.146); cutDxDyArr[32].SetPoint(12,41.1387,187.004); cutDxDyArr[32].SetPoint(13,61.4393,150.867); cutDxDyArr[32].SetPoint(14,63.2848,117.873); cutDxDyArr[32].SetPoint(15,53.5959,72.3093); cutDxDyArr[32].SetPoint(16,22.5014,20.3944); cutDxDyArr[32].SetPoint(17,0,8.74044); cutDxDyArr[32].SetPoint(18,0.162601,-0.498645); cutDxDyArr[32].SetPoint(19,21.7609,-18.8179); cutDxDyArr[32].SetPoint(20,37.4477,-53.3833); cutDxDyArr[32].SetPoint(21,30.9884,-119.372); cutDxDyArr[32].SetPoint(22,10.2265,-158.651); cutDxDyArr[32].SetPoint(23,-11.752,-174.892); cutDxDyArr[32].SetPoint(24,-42.3705,-177.505); cutDxDyArr[33].Set(27); cutDxDyArr[33].SetPoint(0,-2.25014,-174.809); cutDxDyArr[33].SetPoint(1,-27.0017,-139.847); cutDxDyArr[33].SetPoint(2,-42.7527,-104.885); cutDxDyArr[33].SetPoint(3,-45.9335,-71.2715); cutDxDyArr[33].SetPoint(4,-40.9515,-25.0313); cutDxDyArr[33].SetPoint(5,-20.5254,-4.80119); cutDxDyArr[33].SetPoint(6,-2.25014,0); cutDxDyArr[33].SetPoint(7,-2.25014,5.82696); cutDxDyArr[33].SetPoint(8,-41.6277,40.7887); cutDxDyArr[33].SetPoint(9,-60.7539,69.9236); cutDxDyArr[33].SetPoint(10,-75.8253,107.909); cutDxDyArr[33].SetPoint(11,-77.3199,168.6); cutDxDyArr[33].SetPoint(12,-59.3848,200.39); cutDxDyArr[33].SetPoint(13,-19.1262,195.203); cutDxDyArr[33].SetPoint(14,14.6259,180.636); cutDxDyArr[33].SetPoint(15,22.2927,168.688); cutDxDyArr[33].SetPoint(16,27.1707,131.097); cutDxDyArr[33].SetPoint(17,28.6341,100.043); cutDxDyArr[33].SetPoint(18,18.8322,39.994); cutDxDyArr[33].SetPoint(19,-1.12507,8.74044); cutDxDyArr[33].SetPoint(20,-1.12507,0); cutDxDyArr[33].SetPoint(21,32.6271,-8.74044); cutDxDyArr[33].SetPoint(22,79.1141,-48.1514); cutDxDyArr[33].SetPoint(23,87.5834,-92.9466); cutDxDyArr[33].SetPoint(24,84.0961,-139.187); cutDxDyArr[33].SetPoint(25,57.6916,-176.757); cutDxDyArr[33].SetPoint(26,-2.25014,-174.809); cutDxDyArr[34].Set(25); cutDxDyArr[34].SetPoint(0,143.862,-184.247); cutDxDyArr[34].SetPoint(1,89.2487,-189.936); cutDxDyArr[34].SetPoint(2,35.394,-161.494); cutDxDyArr[34].SetPoint(3,-16.1851,-88.9687); cutDxDyArr[34].SetPoint(4,-20.7362,-37.7742); cutDxDyArr[34].SetPoint(5,-17.7021,-15.021); cutDxDyArr[34].SetPoint(6,0,0); cutDxDyArr[34].SetPoint(7,-3.37522,8.74044); cutDxDyArr[34].SetPoint(8,-25.8767,14.5674); cutDxDyArr[34].SetPoint(9,-117.007,93.2314); cutDxDyArr[34].SetPoint(10,-131.48,157.049); cutDxDyArr[34].SetPoint(11,-123.136,191.179); cutDxDyArr[34].SetPoint(12,-100.131,206.857); cutDxDyArr[34].SetPoint(13,-55.9283,185.519); cutDxDyArr[34].SetPoint(14,-19.9777,137.141); cutDxDyArr[34].SetPoint(15,-4.04884,84.5239); cutDxDyArr[34].SetPoint(16,2.25014,23.3079); cutDxDyArr[34].SetPoint(17,-2.25014,11.6539); cutDxDyArr[34].SetPoint(18,2.25014,0); cutDxDyArr[34].SetPoint(19,50.9686,-10.0749); cutDxDyArr[34].SetPoint(20,94.506,-37.8753); cutDxDyArr[34].SetPoint(21,138.552,-73.3259); cutDxDyArr[34].SetPoint(22,161.308,-111.722); cutDxDyArr[34].SetPoint(23,161.308,-162.916); cutDxDyArr[34].SetPoint(24,143.862,-184.247); cutDxDyArr[35].Set(26); cutDxDyArr[35].SetPoint(0,183.794,-154.258); cutDxDyArr[35].SetPoint(1,155.07,-162.033); cutDxDyArr[35].SetPoint(2,37.477,-99.8291); cutDxDyArr[35].SetPoint(3,11.4451,-75.2067); cutDxDyArr[35].SetPoint(4,-3.40807,-44.2481); cutDxDyArr[35].SetPoint(5,-5.8296,-21.0956); cutDxDyArr[35].SetPoint(6,-1.19283,-4.08269); cutDxDyArr[35].SetPoint(7,-5.62536,14.5674); cutDxDyArr[35].SetPoint(8,-38.565,26.9354); cutDxDyArr[35].SetPoint(9,-112.431,80.3036); cutDxDyArr[35].SetPoint(10,-133.077,128.253); cutDxDyArr[35].SetPoint(11,-127.691,169.722); cutDxDyArr[35].SetPoint(12,-107.534,204.641); cutDxDyArr[35].SetPoint(13,-67.5043,203.944); cutDxDyArr[35].SetPoint(14,-32.6271,174.809); cutDxDyArr[35].SetPoint(15,-19.1262,149.92); cutDxDyArr[35].SetPoint(16,-9.00058,90.6597); cutDxDyArr[35].SetPoint(17,-3.37522,40.7887); cutDxDyArr[35].SetPoint(18,-3.37522,17.4809); cutDxDyArr[35].SetPoint(19,1.47534,-2.34625); cutDxDyArr[35].SetPoint(20,61.879,-17.4809); cutDxDyArr[35].SetPoint(21,95.6311,-32.0483); cutDxDyArr[35].SetPoint(22,141.759,-52.4427); cutDxDyArr[35].SetPoint(23,179.985,-86.7835); cutDxDyArr[35].SetPoint(24,194.35,-126.439); cutDxDyArr[35].SetPoint(25,183.794,-154.258); } void HMdcTrackDSet::printMdc34ClFinderPar(void) { printf(" Project plot size of outer segment: %ix%i\n",nBinXSeg2,nBinYSeg2); printf(" Drift time is %sused at the filling of project plot.\n",useDriftTimeSeg2 ? "":"NOT "); printf(" Cut for the kick angle is %sused.\n",useDxDyCut ? "":"NOT "); printf(" Meta matching is %s.\n",doMetaMatch ? "ON" : "OFF"); printf(" %s level of cluster finder is used.\n",useFloatLevSeg2 ? "Float":"Fixed"); if (fakeSuppFlSeg2<0) printf(" Cluster mergering ON. Fake suppression OFF.\n"); else if(fakeSuppFlSeg2==0) printf(" Fake suppression OFF. Cluster mergering OFF.\n"); else if(fakeSuppFlSeg2==1) printf(" Fake suppression ON. Cluster mergering OFF.\n"); else printf(" Fake suppression ON but ghosts will not removed.\n"); } void HMdcTrackDSet::setDefParAu15Au(void) { // =================== Inner segment track finder parameters: =================== // Cluster finder: Int_t nBinXS1 = 398; Int_t nBinYS1 = 1106; Bool_t useFloatLevelS1 = kTRUE; Bool_t useAmpCutS1 = kTRUE; Char_t fakeRemS1 = 1; Bool_t useDriftTimeS1 = kTRUE; for(Int_t s=0;s<6;s++) for(Int_t m=0;m<4;m++) HMdcTrackDSet::setTrFnNLayers(s,m,6); HMdcTrackDSet::setTrackFinderLevel(10,5000,10,5000); HMdcTrackDSet::setClFinderType(0); // vertex finder parameters:distCutVF,levelVF) Bool_t fndClVertex = kTRUE; Double_t distCutVF = 0.5; // Cut: dDist/yProjUncer < dDistCut Int_t levelVF = 11; // Level is used in HMdcLookUpTbSec::testBinForVertexF(...) // For cut of drift time distance in cluster finder: Double_t constUncertS1 = 0.7; // ??? 0.4; // //1.3; //0.7; Double_t dDistCutS1 = 0.7; //1.5; // 1.0; Double_t dDistCutYcorS1 = 1.5; Double_t dDistCorrMod1Lay[6] = {1.10,1.09,1.27,1.23,0.90,0.83}; // MDC I Double_t dDistCorrMod2Lay[6] = {0.94,0.95,1.36,1.40,1.12,1.14}; // MDC II // =================== Outer segment track finder parameters: =================== // Cluster finder: Int_t nBinXS2 = 1194; //398; Int_t nBinYS2 = 1100; Bool_t useFloatLevelS2 = kTRUE; Char_t fakeRemS2 = 1; Bool_t useDriftTimeS2 = kTRUE; Bool_t useDxDyCuts = kTRUE; // For cut of drift time distance in cluster finder: Double_t dDistCutS2 = 0.2; //3.5; //-3.0; //??? Double_t dDistCutYcorS2 = 2.3; Double_t dDistCorrMod3Lay[6] = {0.5,0.2,0.1,0.1,0.,0.3}; // MDC III Double_t dDistCorrMod4Lay[6] = {1.9,0.7,0.8,0.9,0.6,2.0}; // MDC IV // Meta match: Bool_t doMMatch = kTRUE; //kFALSE; Bool_t doMMPl = kFALSE; //================================================================================ // Inner segment finder: HMdcTrackDSet::setProjectPlotSizeSeg1(nBinXS1,nBinYS1); HMdcTrackDSet::setFloatLevelSeg1(useFloatLevelS1); HMdcTrackDSet::setSegAmpCutSeg1(useAmpCutS1); HMdcTrackDSet::setRemoveGhostsSeg1(fakeRemS1); HMdcTrackDSet::setUseDriftTimeSeg1(useDriftTimeS1); HMdcTrackDSet::setVertexFinderFlag(fndClVertex); HMdcTrackDSet::setVertexFinderPar(distCutVF,levelVF); HMdcTrackDSet::setDrTimeProjParamSeg1(constUncertS1,dDistCutS1); HMdcTrackDSet::setDrTimeCutYCorrSeg1(dDistCutYcorS1); HMdcTrackDSet::setDrTimeCutLCorrSeg1(0,dDistCorrMod1Lay); HMdcTrackDSet::setDrTimeCutLCorrSeg1(1,dDistCorrMod2Lay); //-------------------------------------------------------------------------------- // Outer segment finder: HMdcTrackDSet::setProjectPlotSizeSeg2(nBinXS2,nBinYS2); HMdcTrackDSet::setFloatLevelSeg2(useFloatLevelS2); HMdcTrackDSet::setRemoveGhostsSeg2(fakeRemS2); HMdcTrackDSet::setUseDriftTimeSeg2(useDriftTimeS2); HMdcTrackDSet::setDrTimeProjParamSeg2(dDistCutS2); HMdcTrackDSet::setDrTimeCutYCorrSeg2(dDistCutYcorS2); HMdcTrackDSet::setDrTimeCutLCorrSeg2(2,dDistCorrMod3Lay); HMdcTrackDSet::setDrTimeCutLCorrSeg2(3,dDistCorrMod4Lay); HMdcTrackDSet::setDxDyCut(useDxDyCuts); HMdcTrackDSet::setMetaMatchFlag(doMMatch,doMMPl); } void HMdcTrackDSet::setTrackParamAug11(void) { HMdcTrackDSet::setDefParAu15Au(); // =================== Inner segment track finder parameters: =================== // Cluster finder: // Set clusterfinder level =9 for outer segment: for(Int_t s=0;s<6;s++) HMdcTrackDSet::setTrFnNLayers(s,1,5); for(Int_t s=0;s<6;s++) HMdcTrackDSet::setTrFnNLayers(s,2,5); // For cut of drift time distance in cluster finder: Double_t constUncertS1 = 0.9; // ??? 0.4; // //1.3; //0.7; Double_t dDistCutS1 = 0.9; //1.5; // 1.0; Double_t dDistCutYcorS1 = 1.5; Double_t dDistCorrMod1Lay[6] = {1.23,1.09,1.33,1.28,0.88,0.85}; // MDC I Double_t dDistCorrMod2Lay[6] = {0.96,0.92,1.40,1.40,1.08,1.10}; // MDC II // =================== Outer segment track finder parameters: =================== // Cluster finder: Int_t wLev = 1000; Int_t wBin = 67; //For level 9! // For level 10: 100; Int_t wLay = 467; //For level 9! // For level 10: 600; Int_t dWtCut = 1700; //For level 9! // For level 10: 1650; // For cut of drift time distance in cluster finder: Double_t dDistCutS2 = 0.5; //3.5; //-3.0; //??? Double_t dDistCutYcorS2 = 2.8; Double_t dDistCorrMod3Lay[6] = {0.5,0.25,0.55,0.55,0.05,0.2}; // MDC III Double_t dDistCorrMod4Lay[6] = {1.85,0.65,1.45,1.50,0.72,2.0}; // MDC IV //================================================================================ // Inner segment finder: HMdcTrackDSet::setDrTimeProjParamSeg1(constUncertS1,dDistCutS1); HMdcTrackDSet::setDrTimeCutYCorrSeg1(dDistCutYcorS1); HMdcTrackDSet::setDrTimeCutLCorrSeg1(0,dDistCorrMod1Lay); HMdcTrackDSet::setDrTimeCutLCorrSeg1(1,dDistCorrMod2Lay); //-------------------------------------------------------------------------------- // Outer segment finder: HMdcTrackDSet::setDrTimeProjParamSeg2(dDistCutS2); HMdcTrackDSet::setDrTimeCutYCorrSeg2(dDistCutYcorS2); HMdcTrackDSet::setDrTimeCutLCorrSeg2(2,dDistCorrMod3Lay); HMdcTrackDSet::setDrTimeCutLCorrSeg2(3,dDistCorrMod4Lay); HMdcTrackDSet::setGhostRemovingParamSeg2(wLev,wBin,wLay,dWtCut); } // Bool_t HMdcTrackDSet::setTrackParamAug11(void) { // // =================== Inner segment track finder parameters: =================== // // Cluster finder: // Int_t nBinXSeg1 = 398; // Int_t nBinYSeg1 = 1106; // Bool_t useFloatLevelS1 = kTRUE; // Bool_t useAmpCutSeg1 = kTRUE; // Char_t fakeRemSeg1 = 1; // Bool_t useDriftTimeS1 = kTRUE; // // HMdcTrackDSet::setTrFnLevel(10,5000,10,5000); // // // vertex finder parameters: // Bool_t fndClVertex = kTRUE; // Double_t distCutVF = 0.5; // Cut: dDist/yProjUncer < dDistCut // Int_t levelVF = 11; // Level is used in HMdcLookUpTbSec::testBinForVertexF(...) // // // For cut of drift time distance in cluster finder: // Double_t constUncertS1 = 0.9; // ??? 0.4; // //1.3; //0.7; // Double_t dDistCutS1 = 0.9; //1.5; // 1.0; // Double_t dDistCutYcorS1 = 1.5; // Double_t dDistCorrMod1Lay[6] = {1.23,1.09,1.33,1.28,0.88,0.85}; // MDC I // Double_t dDistCorrMod2Lay[6] = {0.96,0.92,1.40,1.40,1.08,1.10}; // MDC II // // // =================== Outer segment track finder parameters: =================== // // Cluster finder: // Int_t nBinXSeg2 = 1194; //398; // Int_t nBinYSeg2 = 1100; // Bool_t useFloatLevelS2 = kTRUE; // Char_t fakeRemSeg2 = 1; // Bool_t useDriftTimeS2 = kTRUE; // Bool_t useDxDyCuts = kTRUE; // Int_t wLev = 1000; // Int_t wBin = 67; //For level 9! // For level 10: 100; // Int_t wLay = 467; //For level 9! // For level 10: 600; // Int_t dWtCut = 1700; //For level 9! // For level 10: 1650; // // // For cut of drift time distance in cluster finder: // Double_t dDistCutS2 = 0.5; //3.5; //-3.0; //??? // Double_t dDistCutYcorS2 = 2.8; // Double_t dDistCorrMod3Lay[6] = {0.5,0.25,0.55,0.55,0.05,0.2}; // MDC III // Double_t dDistCorrMod4Lay[6] = {1.85,0.65,1.45,1.50,0.72,2.0}; // MDC IV // // // Meta match: // Bool_t doMMatch = kTRUE; // Bool_t doMMPlots = kFALSE; // // //================================================================================ // // Inner segment finder: // HMdcTrackDSet::setProjectPlotSizeSeg1(nBinXSeg1,nBinYSeg1); // HMdcTrackDSet::setFloatLevelSeg1(useFloatLevelS1); // HMdcTrackDSet::setSegAmpCutSeg1(useAmpCutSeg1); // HMdcTrackDSet::setRemoveGhostsSeg1(fakeRemSeg1); // HMdcTrackDSet::setUseDriftTimeSeg1(useDriftTimeS1); // HMdcTrackDSet::setVertexFinderFlag(fndClVertex); // HMdcTrackDSet::setVertexFinderPar(distCutVF,levelVF); // HMdcTrackDSet::setDrTimeProjParamSeg1(constUncertS1,dDistCutS1); // HMdcTrackDSet::setDrTimeCutYCorrSeg1(dDistCutYcorS1); // HMdcTrackDSet::setDrTimeCutLCorrSeg1(0,dDistCorrMod1Lay); // HMdcTrackDSet::setDrTimeCutLCorrSeg1(1,dDistCorrMod2Lay); // // //-------------------------------------------------------------------------------- // // Outer segment finder: // HMdcTrackDSet::setProjectPlotSizeSeg2(nBinXSeg2,nBinYSeg2); // HMdcTrackDSet::setFloatLevelSeg2(useFloatLevelS2); // HMdcTrackDSet::setRemoveGhostsSeg2(fakeRemSeg2); // HMdcTrackDSet::setUseDriftTimeSeg2(useDriftTimeS2); // HMdcTrackDSet::setDrTimeProjParamSeg2(dDistCutS2); // HMdcTrackDSet::setDrTimeCutYCorrSeg2(dDistCutYcorS2); // HMdcTrackDSet::setDrTimeCutLCorrSeg2(2,dDistCorrMod3Lay); // HMdcTrackDSet::setDrTimeCutLCorrSeg2(3,dDistCorrMod4Lay); // HMdcTrackDSet::setMetaMatchFlag(doMMatch,doMMPlots); // HMdcTrackDSet::setGhostRemovingParamSeg2(wLev,wBin,wLay,dWtCut); // HMdcTrackDSet::setDxDyCut(useDxDyCuts); // // return kTRUE; // } ClassImp(HMdcTrackDSet)