{//Run the dark matter sensitivity calculation // Load the software... gROOT->ProcessLine(".L DarkMatterSpectrum.C+"); // Define the WIMP mass and cross section space... const Int_t nMassSteps = 10, nXSecSteps = 10; Double_t WIMPMass[nMassSteps], WIMPXSec[nXSecSteps]; // WIMP Masses... WIMPMass[0] = 10.; WIMPMass[5] = 100.; WIMPMass[1] = 20.; WIMPMass[6] = 200.; WIMPMass[2] = 40.; WIMPMass[7] = 400.; WIMPMass[3] = 60.; WIMPMass[8] = 800.; WIMPMass[4] = 80.; WIMPMass[9] = 1000.; // WIMP-Nucleon cross sections... WIMPXSec[0] = 3.e-42; WIMPXSec[5] = 1.e-44; WIMPXSec[1] = 1.e-42; WIMPXSec[6] = 3.e-45; WIMPXSec[2] = 3.e-43; WIMPXSec[7] = 1.e-45; WIMPXSec[3] = 1.e-43; WIMPXSec[8] = 3.e-46; WIMPXSec[4] = 3.e-44; WIMPXSec[9] = 1.e-46; // A TH2D to hold the results... TH2D *ProbabilityMap = new TH2D("ProbabilityMap", "WIMP Detection Probability Map", nMassSteps, WIMPMass[0], WIMPMass[nMassSteps-1], nXSecSteps, WIMPXSec[0], WIMPXSec[nMassSteps-1]); ProbabilityMap->GetXaxis()->SetTitle("WIMP Mass [GeV]"); ProbabilityMap->GetXaxis()->SetTitleOffset(1.2); ProbabilityMap->GetYaxis()->SetTitle("WIMP-Nucleon #sigma [cm^{2}]"); ProbabilityMap->GetYaxis()->SetTitleOffset(1.2); // A text file to hold the probability map... ofstream ProbabilityMapStream; ProbabilityMapStream.open("ProbabilityMap.txt"); // Avariable for the detection probability retuned by DarkMatterSpectrum... Double_t DetectionProbability = 0.; // Run the calculation... for(Int_t iMass = 0; iMass < nMassSteps; iMass++){ for(Int_t iXSec = 0; iXSec < nXSecSteps; iXSec++){ DetectionProbability = DarkMatterSpectrum(WIMPMass[iMass], WIMPXSec[iXSec], 60., 2., 0.005, 5., 0); ProbabilityMap->SetBinContent(ProbabilityMap->GetBin(WIMPMass[iMass], WIMPXSec[iXSec]),DetectionProbability); ProbabilityMapStream << DetectionProbability << "\t"; } ProbabilityMapStream << std::endl; } // A nice canvas and pad on which to plot things... TCanvas *ACanvas = new TCanvas("ACanvas","Look! It's a Canvas!",800,600); ACanvas->SetHighLightColor(kWhite); ACanvas->SetBorderSize(0); ACanvas->SetFrameFillColor(kWhite); ACanvas->SetFillColor(kWhite); TPad *APad = new TPad("APad", "It's a Pad", 0.,0.,1.,1., kWhite, 0,0); APad->SetTopMargin(0.09); APad->SetLeftMargin(0.11); APad->SetBottomMargin(0.06); APad->SetRightMargin(0.03); APad->SetGridx(0); APad->SetLogx(1); APad->SetGridy(0); APad->SetLogy(1); APad->cd(); // Some stylistic flourishes... gStyle->SetOptStat(0); gStyle->SetTitleFillColor(kWhite); gStyle->SetPalette(1); // Draw the probability map... ProbabilityMap->Draw("colz"); ACanvas->Update(); // Write it to the disk as a root file and as a png image... ACanvas->SaveAs("ProbabilityMap.png"); TFile *RootFile = new TFile("ProbabilityMap.root", "RECREATE"); ProbabilityMap->Write(); RootFile->Close(); ProbabilityMapStream.close(); // And now, we're done... exit(0); }