static DemodulationConfig()
{
// here we stock the class' static library of configs up with some standard configs
// a wide gate - integrate everything
DemodulationConfigBuilder wide = delegate(Block b)
{
DemodulationConfig dc;
GatedDetectorExtractSpec dg0, dg1, dg2, dg3, dg4, dg5, dg6, dg7;
dc = new DemodulationConfig();
dc.AnalysisTag = "wide";
dg0 = GatedDetectorExtractSpec.MakeWideGate(0);
dg0.Name = "top";
dg1 = GatedDetectorExtractSpec.MakeWideGate(1);
dg1.Name = "norm";
dg2 = GatedDetectorExtractSpec.MakeWideGate(2);
dg2.Name = "magnetometer";
dg2.Integrate = false;
dg3 = GatedDetectorExtractSpec.MakeWideGate(3);
dg3.Name = "gnd";
dg3.Integrate = false;
dg4 = GatedDetectorExtractSpec.MakeWideGate(4);
dg4.Name = "battery";
dg5 = GatedDetectorExtractSpec.MakeWideGate(5);
dg5.Name = "rfCurrent";
dg5.Integrate = false;
dg6 = GatedDetectorExtractSpec.MakeWideGate(6);
dg6.Name = "reflectedrf1Amplitude";
dg7 = GatedDetectorExtractSpec.MakeWideGate(7);
dg7.Name = "reflectedrf2Amplitude";
dc.GatedDetectorExtractSpecs.Add(dg0.Name, dg0);
dc.GatedDetectorExtractSpecs.Add(dg1.Name, dg1);
dc.GatedDetectorExtractSpecs.Add(dg2.Name, dg2);
dc.GatedDetectorExtractSpecs.Add(dg3.Name, dg3);
dc.GatedDetectorExtractSpecs.Add(dg4.Name, dg4);
dc.GatedDetectorExtractSpecs.Add(dg5.Name, dg5);
dc.GatedDetectorExtractSpecs.Add(dg6.Name, dg6);
dc.GatedDetectorExtractSpecs.Add(dg7.Name, dg7);
dc.PointDetectorChannels.Add("MiniFlux1");
dc.PointDetectorChannels.Add("MiniFlux2");
dc.PointDetectorChannels.Add("MiniFlux3");
dc.PointDetectorChannels.Add("NorthCurrent");
dc.PointDetectorChannels.Add("SouthCurrent");
dc.PointDetectorChannels.Add("PumpPD");
dc.PointDetectorChannels.Add("ProbePD");
return dc;
};
standardConfigs.Add("wide", wide);
//// fwhm of the tof pulse for top and norm, wide gates for everything else.
//AddSliceConfig("fwhm", 0, 1);
//// narrower than fwhm, takes only the center hwhm
//AddSliceConfig("hwhm", 0, 0.5);
//// only the fast half of the fwhm (NOT TRUE - 01Jul08JH)
//AddSliceConfig("fast", -0.5, 0.5);
//// the slow half of the fwhm (NOT TRUE - 01Jul08 JH)
//AddSliceConfig("slow", 0.5, 0.5);
//// the fastest and slowest molecules, used for estimating any tof related systematic.
//// these gates don't overlap with the usual centred analysis gates (fwhm and cgate11).
//AddSliceConfig("vfast", -0.85, 0.5);
//AddSliceConfig("vslow", 0.85, 0.5);
// for testing out different centred-gate widths
for (int i = 1; i < 10; i++)
AddFixedSliceConfig("wgate" + i, 2190, i * 20);
for (int i = 1; i < 14; i++)
AddFixedSliceConfig("shiftgate" + i, 1850 + i*50, 65);
for (int i = 1; i < 7; i++)
AddFixedSliceConfig("slicegate" + i, 2050 + i * 50, 25);
for (int i = 1; i < 30; i++)
AddFixedSliceConfig("pgate" + i, 2090 + i*10, 10);
//// testing different gate centres. "slide0" is centred at -0.7 fwhm, "slide14"
//// is centred and +0.7 fwhm.
//for (int i = 0; i < 15; i++)
// AddSliceConfig("slide" + i, (((double)i) / 10.0) - 0.7, 1);
//// now some finer slices
//double d = -1.4;
//for (int i = 0; i < 15; i++)
//{
// AddSliceConfig("slice" + i, d, 0.2);
// d += 0.2;
//}
//// optimised gates for spring 2009 run
//AddSliceConfig("optimum1", 0.3, 1.1);
//AddSliceConfig("optimum2", 0.2, 1.1);
// "background" gate
DemodulationConfigBuilder background = delegate(Block b)
{
DemodulationConfig dc;
GatedDetectorExtractSpec dg0, dg1;
dc = new DemodulationConfig();
dc.AnalysisTag = "background";
dg0 = GatedDetectorExtractSpec.MakeWideGate(0);
dg0.GateLow = 2550;
dg0.GateHigh = 2600;
dg0.Name = "top";
dg1 = GatedDetectorExtractSpec.MakeWideGate(1);
dg1.Name = "norm";
dg1.GateLow = 750;
dg1.GateHigh = 800;
dc.GatedDetectorExtractSpecs.Add(dg0.Name, dg0);
dc.GatedDetectorExtractSpecs.Add(dg1.Name, dg1);
return dc;
};
standardConfigs.Add("background", background);
// add some fixed gate slices - the first three are the 1.1 sigma centre portion and two
// non-overlapping portions either side.
AddFixedSliceConfig("cgate11Fixed", 2156, 90); // This is normally ("cgate11Fixed", 2156, 90)
AddFixedSliceConfig("vfastFixed", 2025, 41);
AddFixedSliceConfig("vslowFixed", 2286, 41);
// these "nudge" gates are chosen to, hopefully, tweak the 09_10 dataset so that the
// RF1F channel, DB-normed in the non-linear way, is reduced to near zero
AddFixedSliceConfig("nudgeGate1", 2161, 90);
AddFixedSliceConfig("nudgeGate2", 2169, 90);
AddFixedSliceConfig("nudgeGate3", 2176, 90);
AddFixedSliceConfig("nudgeGate4", 2174, 90);
AddFixedSliceConfig("nudgeGate5", 2188, 90);
AddFixedSliceConfig("nudgeGate6", 2198, 90);
AddFixedSliceConfig("nudgeGate7", 2208, 90);
AddFixedSliceConfig("nudgeGate8", 2228, 90);
AddFixedSliceConfig("wideNudgeGate1", 2198, 100);
AddFixedSliceConfig("narrowNudgeGate1", 2198, 75);
AddFixedSliceConfig("narrowNudgeGate2", 2198, 65);
AddFixedSliceConfig("narrowNudgeGate3", 2198, 55);
AddFixedSliceConfig("narrowNudgeGate4", 2198, 45);
// these two are the fast and slow halves of the 1.1 sigma central gate.
AddFixedSliceConfig("fastFixed", 2110, 45);
AddFixedSliceConfig("slowFixed", 2201, 45);
// two fairly wide gates that take in most of the slow and fast molecules.
// They've been chosed to try and capture the wiggliness of our fast-slow
// wiggles.
AddFixedSliceConfig("widefastFixed", 1950, 150);
AddFixedSliceConfig("wideslowFixed", 2330, 150);
// A narrow centre gate for correlation analysis
AddFixedSliceConfig("cgateNarrowFixed", 2175, 25);
// A gate containing no molecules to look for edms caused by rf pickup
AddFixedSliceConfig("preMolecularBackground", 1850, 50);
// A demodulation config for Kr
AddFixedSliceConfig("centreFixedKr", 2950, 90);
}