public void EstimateProbability()
        {
            StkAssistant.SetAnalysisIntervalFromTCA(this.Primary.EpochISOYMD);
            string primaryPath   = Primary.BaselineObjectPath;
            string primaryType   = Primary.BaselineObjectType;
            string primaryName   = primaryPath.Substring(primaryPath.LastIndexOf("/") + 1);
            string secondaryPath = Secondary.BaselineObjectPath;
            string secondaryName = secondaryPath.Substring(secondaryPath.LastIndexOf("/") + 1);

            string catName = "CAT_" + primaryName;

            int counter = 0;

            while (StkAssistant.Root.CurrentScenario.Children.Contains(AgESTKObjectType.eAdvCat, catName))
            {
                catName = "CAT_" + primaryName + "_" + (++counter).ToString();
            }

            IAgStkObject cat = StkAssistant.Root.CurrentScenario.Children.New(AgESTKObjectType.eAdvCat, catName);

            string cmdResult;

            StkAssistant.TryConnect("Save / " + primaryPath, out cmdResult);
            StkAssistant.TryConnect("Save / " + secondaryPath, out cmdResult);

            StkAssistant.TryConnect("ACAT */AdvCAT/" + catName + " TimePeriod \"" + StkAssistant.Scenario.StartTime + "\" \"" + StkAssistant.Scenario.StopTime + "\"", out cmdResult);


            StkAssistant.TryConnect("ACAT */AdvCAT/" + catName + " Primary Add \"" + primaryName + ".sa\" Cov", out cmdResult);
            StkAssistant.TryConnect("ACAT */AdvCAT/" + catName + " Secondary Add \"" + secondaryName + ".sa\" Cov", out cmdResult);

            StkAssistant.TryConnect("ACAT */AdvCAT/" + catName + " Compute ShowProgress On", out cmdResult);


            StkAssistant.TryConnect("VO */AdvCAT/" + catName + " AdvCATAttributes ShowSecondary On ShowAllSecondary On", out cmdResult);


            //StkAssistant.TryConnect("ReportCreate */AdvCAT/" + catName + " Type Display Style \"Close Approach By Min Range\"", out cmdResult);
            StkAssistant.TryConnect("ACATEvents_RM */AdvCAT/" + catName, out cmdResult);
            string catTCA;

            if (!cmdResult.Equals("No events found."))
            {
                catTCA = cmdResult.Split(',')[5];

                IAgStkObject       catObject = StkAssistant.Root.GetObjectFromPath("*/AdvCAT/" + catName);
                IAgDataPrvInterval catDP     = cat.DataProviders["Events by Min Range"] as IAgDataPrvInterval;
                IAgDrResult        catResult = catDP.Exec(StkAssistant.Scenario.StartTime, StkAssistant.Scenario.StopTime);

                double catMaxProb       = (double)catResult.DataSets.GetDataSetByName("Max Collision Probability").GetValues().GetValue(0);
                double catSigmaDilution = (double)catResult.DataSets.GetDataSetByName("Sigma Dilution Threshold").GetValues().GetValue(0);

                if (Probability == 0)
                {
                    Probability = catMaxProb;
                }
                if (SigmaDilution == 0)
                {
                    SigmaDilution = Math.Round(catSigmaDilution, 3);
                }
            }

            cat.Unload();
        }
 public void GenerateStkCdmObjects()
 {
     StkAssistant.SetAnalysisIntervalFromTCA(this.Primary.EpochISOYMD);
     this.Primary.CreateCdmSatellite(true);
     this.Secondary.CreateCdmSatellite();
 }