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