void runAngleOpt() { gSystem->AddIncludePath("-I${ANITA_UTIL_INSTALL_DIR}/include"); double startVal=0; double stepSize=0.1; double minVal=-2; double maxVal=2; Double_t p0 = 0; //Load libraries. Need to have ANITA_UTIL_INSTALL_DIR/lib and ROOTSYS/lib in the LD_LIBRARY_PATH gSystem->Load("libfftw3.so"); gSystem->Load("libMathMore.so"); gSystem->Load("libPhysics.so"); gSystem->Load("libGeom.so"); gSystem->Load("libMinuit.so"); gSystem->Load("libRootFftwWrapper.so"); gSystem->Load("libAnitaEvent.so"); gSystem->Load("libAnitaCorrelator.so"); AnitaGeomTool *fGeomTool = AnitaGeomTool::Instance(); gSystem->CompileMacro("anglePlotterOpt.C","k"); Double_t relDeltaOut=0; TMinuit *myMin = new TMinuit(1); myMin->SetObjectFit(anglePlotterOpt); myMin->SetFCN(iHateRoot); //setArray(); for(int u = 0; u < 1; u++){ int middle = 16; for(int y = 16; y <32; y++){ int leftOpt, rightOpt; fGeomTool->getThetaPartners(middle,leftOpt,rightOpt); myMin->DefineParameter(0, "antNum", middle, stepSize, minVal, maxVal); myMin->FixParameter(0); myMin->DefineParameter(1, "deltaT", startVal, stepSize, minVal, maxVal); Double_t deltaT,deltaTErr; //*********MINUIT METHOD******************* myMin->SetPrintLevel(-1); myMin->Migrad(); myMin->GetParameter(1,deltaT,deltaTErr); setValue(rightOpt,deltaT); // printArray(); // cout << middle << " " << rightOpt << " " << deltaT << endl; cout << "deltaTArrayMod[" << rightOpt << "] = " << deltaT << ";" << endl; middle = rightOpt; } } // myMin->DeleteArrays(); // myMin->DeleteArrays(); }
void runQuickOptAllAntFixedZ() { gSystem->AddIncludePath("-I${ANITA_UTIL_INSTALL_DIR}/include"); double startVal=0; double stepSize=0.05; double minVal=-0.5; double maxVal=0.5; Double_t p0 = 0; //Load libraries. Need to have ANITA_UTIL_INSTALL_DIR/lib and ROOTSYS/lib in the LD_LIBRARY_PATH gSystem->Load("libfftw3.so"); gSystem->Load("libMathMore.so"); gSystem->Load("libPhysics.so"); gSystem->Load("libGeom.so"); gSystem->Load("libMinuit.so"); gSystem->Load("libRootFftwWrapper.so"); gSystem->Load("libAnitaEvent.so"); gSystem->Load("libAnitaCorrelator.so"); AnitaGeomTool *fGeomTool = AnitaGeomTool::Instance(); gSystem->CompileMacro("quickOptAllAntFixedZ.C","k"); fillArrays(eventNumberIndex, thetaWaveIndex, phiWaveIndex, antIndex1, antIndex2, maxCorrTimeIndex, adjacent); Double_t relDeltaOut=0; TMinuit *myMin = new TMinuit(192); myMin->SetObjectFit(quickOptAllAntFixedZ); myMin->SetFCN(iHateRoot); // myMin->SetMaxIterations(2); //myMin->SetErrorDef(1000); // int ierflg; // double eps[1] = {2.}; // myMin->mnexcm("SET EPS", eps, 1, ierflg); //setArray(); double startValR[MAX_ANTENNAS] ={0}; double startValZ[MAX_ANTENNAS] ={0}; double startValPhi[MAX_ANTENNAS] ={0}; double startValCableDelays[MAX_ANTENNAS] ={0}; for(int y = 0; y <MAX_ANTENNAS; y++){ char name[30]; sprintf(name,"r%d",y); myMin->DefineParameter(y, name, startValR[y], stepSize, -0.1, 0.1); sprintf(name,"z%d",y); myMin->DefineParameter(y+MAX_ANTENNAS, name, startValZ[y], stepSize, -0.1, 0.1); myMin->FixParameter(y+MAX_ANTENNAS); sprintf(name,"phi%d",y); myMin->DefineParameter(y+MAX_ANTENNAS*2, name, startValPhi[y], stepSize, -0.1, 0.1); sprintf(name,"cable%d",y); myMin->DefineParameter(y+MAX_ANTENNAS*3, name, startValCableDelays[y], stepSize, -0.5, 0.5); } Double_t deltaR[MAX_ANTENNAS],deltaRErr[MAX_ANTENNAS]; Double_t deltaZ[MAX_ANTENNAS],deltaZErr[MAX_ANTENNAS]; Double_t deltaPhi[MAX_ANTENNAS],deltaPhiErr[MAX_ANTENNAS]; Double_t deltaCableDelays[MAX_ANTENNAS],deltaCableDelaysErr[MAX_ANTENNAS]; //*********MINUIT METHOD******************* // myMin->SetPrintLevel(-1); myMin->Migrad(); // int error_flag; // myMin->mnexcm("MINOS",0,0,error_flag); ofstream newfile("newLindaNumbersCableDelays_ALLANTENNAS_RMS_GRAD_FixedZ.txt"); for(int u = 0; u <MAX_ANTENNAS; u++){ myMin->GetParameter(u,deltaR[u],deltaRErr[u]); cout << "deltaR[" << u << "] = " << deltaR[u] << " +/- " << deltaRErr[u] << endl; myMin->GetParameter(u+MAX_ANTENNAS,deltaZ[u],deltaZErr[u]); cout << " deltaZ[" << u << "] = " << deltaZ[u] << " +/- " << deltaZErr[u] << endl; myMin->GetParameter(u+MAX_ANTENNAS*2,deltaPhi[u],deltaPhiErr[u]); cout << " deltaPhi[" << u << "] = " << deltaPhi[u] << " +/- " << deltaPhiErr[u] << endl; myMin->GetParameter(u+MAX_ANTENNAS*3,deltaCableDelays[u],deltaCableDelaysErr[u]); cout << " deltaCableDelays[" << u << "] = " << deltaCableDelays[u] << " +/- " << deltaCableDelaysErr[u] << endl; newfile << u << " " << deltaR[u]<< " " << deltaZ[u]<< " " << deltaPhi[u]<< " " << deltaCableDelays[u] << endl; } cout << "Easy table" << endl; for(int u = 0; u <MAX_ANTENNAS; u++) cout << u << " & " << deltaR[u]<< " & " << deltaZ[u]<< " & " << deltaPhi[u]<< " & " << deltaCableDelays[u] << endl; }
void runTopRingOpt() { gSystem->AddIncludePath("-I${ANITA_UTIL_INSTALL_DIR}/include"); double startVal=0; double stepSize=0.1; double minVal=-0.5; double maxVal=0.5; Double_t p0 = 0; //Load libraries. Need to have ANITA_UTIL_INSTALL_DIR/lib and ROOTSYS/lib in the LD_LIBRARY_PATH gSystem->Load("libfftw3.so"); gSystem->Load("libMathMore.so"); gSystem->Load("libPhysics.so"); gSystem->Load("libGeom.so"); gSystem->Load("libMinuit.so"); gSystem->Load("libRootFftwWrapper.so"); gSystem->Load("libAnitaEvent.so"); gSystem->Load("libAnitaCorrelator.so"); AnitaGeomTool *fGeomTool = AnitaGeomTool::Instance(); gSystem->CompileMacro("topRingOpt.C","k"); Double_t relDeltaOut=0; TMinuit *myMin = new TMinuit(150); myMin->SetObjectFit(topRingOpt); myMin->SetFCN(iHateRoot); //setArray(); double startValDeltaT[16] ={0}; double startValR[16] ={0}; double startValPhi[16] ={0}; // startValDeltaT[0] = -0.0519515; startValR[0] = -0.0101463; startValPhi[0] = -0.00473836 ; // startValDeltaT[1] = -0.0597062; startValR[1] = -0.02577; startValPhi[1] = 0.00864501 ; // startValDeltaT[2] = -0.081435; startValR[2] = -0.000224044; startValPhi[2] = -0.000630649; // startValDeltaT[3] = 0.0118873; startValR[3] = 0.019945; startValPhi[3] = 0.014016; // startValDeltaT[4] = 0.017917; startValR[4] = -0.00297559; startValPhi[4] = 0.0224936 ; // startValDeltaT[5] = 0.0377119; startValR[5] = -0.014872; startValPhi[5] = 0.0163349; // startValDeltaT[6] = -0.0426158; startValR[6] = -0.0562555; startValPhi[6] = 0.0220065 ; // startValDeltaT[7] = -0.0221673; startValR[7] = -0.034104 ; startValPhi[7] = 0.0158545 ; // startValDeltaT[8] = 0.0263739; startValR[8] = 0.00248804; startValPhi[8] = 0.013246 ; // startValDeltaT[9] = -0.0938419; startValR[9] = -0.00344703; startValPhi[9] = -0.00718616; // startValDeltaT[10] = 0.145264; startValR[10] = -0.0121874 ; startValPhi[10] = 0.0156988 ; // startValDeltaT[11] = 0.118105; startValR[11] = -0.0337033 ; startValPhi[11] = -0.00324182 ; // startValDeltaT[12] = 0.321805; startValR[12] = 0.0134362 ; startValPhi[12] = -0.00190277 ; // startValDeltaT[13] = 0.0197693; startValR[13] = -0.000656063; startValPhi[13] = -0.0162318 ; // startValDeltaT[14] = -0.115263; startValR[14] = 0.0495637 ; startValPhi[14] = -0.0198119 ; // startValDeltaT[15] = -0.255707; startValR[15] = 0.00189892 ; startValPhi[15] = 0.0383932 ; for(int y = 0; y <16; y++){ ofstream newfile("newSimonNumbers.txt"); char name[30]; sprintf(name,"r%d",y); myMin->DefineParameter(y, name, startValR[y], stepSize, minVal, maxVal); sprintf(name,"z%d",y); myMin->DefineParameter(y+16, name, startValDeltaT[y], stepSize, minVal, maxVal); sprintf(name,"phi%d",y); myMin->DefineParameter(y+32, name, startValPhi[y], stepSize, minVal, maxVal); } Double_t deltaR[32],deltaRErr[32]; Double_t deltaZ[32],deltaZErr[32]; Double_t deltaPhi[32],deltaPhiErr[32]; //*********MINUIT METHOD******************* myMin->SetPrintLevel(-1); myMin->Migrad(); for(int u = 0; u <16; u++){ myMin->GetParameter(u,deltaR[u],deltaRErr[u]); //cout << "deltaR[" << u << "] = " << deltaR[u] ; myMin->GetParameter(u+16,deltaZ[u],deltaZErr[u]); //cout << " deltaZ[" << u << "] = " << deltaZ[u] ; myMin->GetParameter(u+32,deltaPhi[u],deltaPhiErr[u]); //cout << " deltaPhi[" << u << "] = " << deltaPhi[u] << ";" << endl; newfile << u << " " << deltaZ[u]<< " " << deltaR[u]<< " " << deltaPhi[u]<< " " << 0 << endl; } }
void runQuickOptAllAntStepsLDBHPOL() { gSystem->AddIncludePath("-I${ANITA_UTIL_INSTALL_DIR}/include"); double startVal=0; double stepSize=0.01; double minVal=-0.5; double maxVal=0.5; Double_t p0 = 0; //Load libraries. Need to have ANITA_UTIL_INSTALL_DIR/lib and ROOTSYS/lib in the LD_LIBRARY_PATH gSystem->Load("libfftw3.so"); gSystem->Load("libMathMore.so"); gSystem->Load("libPhysics.so"); gSystem->Load("libGeom.so"); gSystem->Load("libMinuit.so"); gSystem->Load("libRootFftwWrapper.so"); gSystem->Load("libAnitaEvent.so"); gSystem->Load("libAnitaCorrelator.so"); AnitaGeomTool *fGeomTool = AnitaGeomTool::Instance(); fGeomTool->useKurtAnita3Numbers(1); gSystem->CompileMacro("quickOptAllAntStepsLDBHPOL.C","k"); fillArrays(eventNumberIndex, thetaWaveIndex, phiWaveIndex, antIndex1, antIndex2, maxCorrTimeIndex, adjacent); Double_t relDeltaOut=0; TMinuit *myMin = new TMinuit(192); myMin->SetObjectFit(quickOptAllAntStepsLDBHPOL); myMin->SetFCN(iHateRoot); // myMin->SetMaxIterations(2); //myMin->SetErrorDef(1000); // int ierflg; // double eps[1] = {2.}; // myMin->mnexcm("SET EPS", eps, 1, ierflg); //setArray(); double minValCableDelays[MAX_ANTENNAS] ={0}; double maxValCableDelays[MAX_ANTENNAS] ={0}; Double_t deltaR[MAX_ANTENNAS] = {0}; Double_t deltaRErr[MAX_ANTENNAS] = {0}; Double_t deltaZ[MAX_ANTENNAS] = {0}; Double_t deltaZErr[MAX_ANTENNAS] = {0}; Double_t deltaPhi[MAX_ANTENNAS] = {0}; Double_t deltaPhiErr[MAX_ANTENNAS] = {0}; Double_t deltaCableDelays[MAX_ANTENNAS] = {0}; Double_t deltaCableDelaysErr[MAX_ANTENNAS] = {0}; // Double_t globalDeltaz = 0.242575; Double_t globalDeltaz = 0.03; //Min global deltaZ[] = -0.242575 +/- 0.00198264 for(int y = 0; y <MAX_ANTENNAS; y++){ deltaR[y] = 0;//-0.05; deltaCableDelays[y] = 0. - (y==47)*0.35; minValCableDelays[y] = deltaCableDelays[y] - 0.15; maxValCableDelays[y] = deltaCableDelays[y] + 0.15; deltaZ[y] = 0;//(y<16)*(-globalDeltaz) + (y>15)*globalDeltaz; char name[30]; sprintf(name,"r%d",y); myMin->DefineParameter(y, name, deltaR[y], stepSize, -0.3, 0.3); sprintf(name,"z%d",y); myMin->DefineParameter(y+MAX_ANTENNAS, name, deltaZ[y], stepSize, -0.3, 0.3); sprintf(name,"phi%d",y); myMin->DefineParameter(y+MAX_ANTENNAS*2, name, deltaPhi[y], stepSize, -0.3, 0.3); sprintf(name,"cable%d",y); myMin->DefineParameter(y+MAX_ANTENNAS*3, name, deltaCableDelays[y], stepSize, minValCableDelays[y], maxValCableDelays[y]); } for(int y = 0; y <MAX_ANTENNAS; y++){ myMin->FixParameter(y); // fixed R myMin->FixParameter(y+MAX_ANTENNAS); // fixed Z myMin->FixParameter(y+MAX_ANTENNAS*2); // fixed phi // myMin->FixParameter(y+MAX_ANTENNAS*3); // fixed t } myMin->FixParameter(MAX_ANTENNAS*3); // fixed t0 //*********MINUIT METHOD******************* // myMin->SetPrintLevel(-1); myMin->Migrad(); // int error_flag; // myMin->mnexcm("MINOS",0,0,error_flag); for(int u = 0; u <MAX_ANTENNAS; u++){ myMin->GetParameter(u+MAX_ANTENNAS*3,deltaCableDelays[u],deltaCableDelaysErr[u]); cout << " deltaCableDelays[" << u << "] = " << deltaCableDelays[u] << " +/- " << deltaCableDelaysErr[u] << endl; // myMin->GetParameter(u+MAX_ANTENNAS,deltaZ[u],deltaZErr[u]); // cout << " deltaZ[" << u << "] = " << deltaZ[u] << " +/- " << deltaZErr[u] << endl; } cout << " ################## first step done ##############" << endl; TMinuit *myMin2 = new TMinuit(192); myMin2->SetObjectFit(quickOptAllAntStepsLDBHPOL); myMin2->SetFCN(iHateRoot); for(int y = 0; y <MAX_ANTENNAS; y++){ char name[30]; sprintf(name,"r%d",y); myMin2->DefineParameter(y, name, deltaR[y], stepSize, -0.15, 0.15); sprintf(name,"z%d",y); myMin2->DefineParameter(y+MAX_ANTENNAS, name, deltaZ[y], stepSize, -0.3, 0.3); sprintf(name,"phi%d",y); myMin2->DefineParameter(y+MAX_ANTENNAS*2, name, deltaPhi[y], stepSize, -0.15, 0.15); sprintf(name,"cable%d",y); myMin2->DefineParameter(y+MAX_ANTENNAS*3, name, deltaCableDelays[y], stepSize, minValCableDelays[y], maxValCableDelays[y]); } for(int y = 0; y <MAX_ANTENNAS; y++){ myMin2->FixParameter(y); // fixed R myMin2->FixParameter(y+MAX_ANTENNAS); // fixed Z // myMin2->FixParameter(y+MAX_ANTENNAS*2); // fixed phi myMin2->FixParameter(y+MAX_ANTENNAS*3); // fixed t } myMin2->Migrad(); for(int u = 0; u <MAX_ANTENNAS; u++){ // myMin2->GetParameter(u,deltaR[u],deltaRErr[u]); // cout << "deltaR[" << u << "] = " << deltaR[u] << " +/- " << deltaRErr[u] << endl; myMin2->GetParameter(u+MAX_ANTENNAS*2,deltaPhi[u],deltaPhiErr[u]); cout << " deltaPhi[" << u << "] = " << deltaPhi[u] << " +/- " << deltaPhiErr[u] << endl; } cout << " ################## second step done ##############" << endl; TMinuit *myMin3 = new TMinuit(192); myMin3->SetObjectFit(quickOptAllAntStepsLDBHPOL); myMin3->SetFCN(iHateRoot); for(int y = 0; y <MAX_ANTENNAS; y++){ char name[30]; sprintf(name,"r%d",y); myMin3->DefineParameter(y, name, deltaR[y], stepSize, -0.15,0.15); sprintf(name,"z%d",y); myMin3->DefineParameter(y+MAX_ANTENNAS, name, deltaZ[y], stepSize, -0.3, 0.3); sprintf(name,"phi%d",y); myMin3->DefineParameter(y+MAX_ANTENNAS*2, name, deltaPhi[y], stepSize, -0.3, 0.3); sprintf(name,"cable%d",y); myMin3->DefineParameter(y+MAX_ANTENNAS*3, name, deltaCableDelays[y], stepSize, minValCableDelays[y], maxValCableDelays[y]); } for(int y = 0; y <MAX_ANTENNAS; y++){ // myMin3->FixParameter(y); // fixed R myMin3->FixParameter(y+MAX_ANTENNAS); // fixed Z myMin3->FixParameter(y+MAX_ANTENNAS*2); // fixed phi myMin3->FixParameter(y+MAX_ANTENNAS*3); // fixed t } myMin3->Migrad(); for(int u = 0; u <MAX_ANTENNAS; u++){ // myMin3->GetParameter(u+MAX_ANTENNAS*2,deltaPhi[u],deltaPhiErr[u]); // cout << " deltaPhi[" << u << "] = " << deltaPhi[u] << " +/- " << deltaPhiErr[u] << endl; myMin3->GetParameter(u,deltaR[u],deltaRErr[u]); cout << "deltaR[" << u << "] = " << deltaR[u] << " +/- " << deltaRErr[u] << endl; } cout << " ################## third step done ##############" << endl; TMinuit *myMin4 = new TMinuit(192); myMin4->SetObjectFit(quickOptAllAntStepsLDBHPOL); myMin4->SetFCN(iHateRoot); for(int y = 0; y <MAX_ANTENNAS; y++){ sprintf(name,"r%d",y); myMin4->DefineParameter(y, name, deltaR[y],stepSize, -0.3, 0.3); sprintf(name,"z%d",y); myMin4->DefineParameter(y+MAX_ANTENNAS, name, deltaZ[y], stepSize, -0.15, 0.15); sprintf(name,"phi%d",y); myMin4->DefineParameter(y+MAX_ANTENNAS*2, name, deltaPhi[y], stepSize, -0.3, 0.3); sprintf(name,"cable%d",y); myMin4->DefineParameter(y+MAX_ANTENNAS*3, name, deltaCableDelays[y], stepSize, minValCableDelays[y], maxValCableDelays[y]); } for(int y = 0; y <MAX_ANTENNAS; y++){ myMin4->FixParameter(y); // fixed R //myMin4->FixParameter(y+MAX_ANTENNAS); // fixed Z myMin4->FixParameter(y+MAX_ANTENNAS*2); // fixed phi myMin4->FixParameter(y+MAX_ANTENNAS*3); // fixed t } //*********MINUIT METHOD******************* // myMin->SetPrintLevel(-1); myMin4->Migrad(); // int error_flag; // myMin->mnexcm("MINOS",0,0,error_flag); std::time_t now = std::time(NULL); std::tm * ptm = std::localtime(&now); char buffer[32]; std::strftime(buffer, 32, "%Y_%m_%d_time_%H_%M_%S", ptm); ofstream newfile(Form("RETEST/newLindaNumbers_LDBHPOL_NEW12_fixedBug_%s.txt", buffer)); for(int u = 0; u <MAX_ANTENNAS; u++){ myMin4->GetParameter(u,deltaR[u],deltaRErr[u]); cout << "deltaR[" << u << "] = " << deltaR[u] << " +/- " << deltaRErr[u] << endl; myMin4->GetParameter(u+MAX_ANTENNAS,deltaZ[u],deltaZErr[u]); cout << " deltaZ[" << u << "] = " << deltaZ[u] << " +/- " << deltaZErr[u] << endl; myMin4->GetParameter(u+MAX_ANTENNAS*2,deltaPhi[u],deltaPhiErr[u]); cout << " deltaPhi[" << u << "] = " << deltaPhi[u] << " +/- " << deltaPhiErr[u] << endl; myMin4->GetParameter(u+MAX_ANTENNAS*3,deltaCableDelays[u],deltaCableDelaysErr[u]); cout << " deltaCableDelays[" << u << "] = " << deltaCableDelays[u] << " +/- " << deltaCableDelaysErr[u] << endl; newfile << u << " " << deltaR[u]<< " " << deltaZ[u]<< " " << deltaPhi[u]<< " " << deltaCableDelays[u] << endl; } cout << "Easy table" << endl; for(int u = 0; u <MAX_ANTENNAS; u++) cout << u << " & " << deltaR[u]<< " & " << deltaZ[u]<< " & " << deltaPhi[u]<< " & " << deltaCableDelays[u] << endl; }