void processAudio(AudioBuffer& buf){
    float minf = getParameterValue(PARAMETER_A)*0.1 + 0.001;
    float maxf = min(0.4, minf + getParameterValue(PARAMETER_B)*0.2);
    // range should be exponentially related to minf
    //    int tones = getParameterValue(PARAMETER_C)*(TONES-1) + 1;
    int tones = 12;
    float spread = getParameterValue(PARAMETER_C) + 1.0;
    float rate = 1.0 + (getParameterValue(PARAMETER_D) - 0.5)*0.00002;
    int size = buf.getSize();
    FloatArray out = buf.getSamples(LEFT_CHANNEL);
    float amp;
    for(int t=1; t<tones; ++t)
      inc[t] = inc[t-1]*spread;
    for(int i=0; i<size; ++i){
      for(int t=0; t<tones; ++t){
	amp = getAmplitude((inc[t]-minf)/(maxf-minf));
	out[i] += amp * getWave(acc[t]);
        acc[t] += inc[t];
	if(acc[t] > 1.0)
	  acc[t] -= 1.0;
	else if(acc[t] < 0.0)
	  acc[t] += 1.0;
        inc[t] *= rate;
      }
    }
    if(inc[0] > maxf)
      inc[0] = minf;
      // while(inc[0] > minf)
      // 	inc[0] *= 0.5;
    else if(inc[0] < minf)
      inc[0] = maxf;
      // while(inc[0] < maxf)
      // 	inc[0] *= 2.0;
  }
void levelQueueReader()	{

	Keyword current;
	KeywordQueue kQueue = getKWQueue(NULL);
	current = kQueue->start;
	while(current != NULL)	{
		switch(current->lCommand)	{
			case wave:
					//! only expands waves into create enemies commands if it is at the start of the queue
					if(kQueue->start == current && getWave(getGame(NULL)) == returnPropertyValue(current,waveID))	{
						increaseEnemyNumbersThisWave(returnPropertyValue(current,numberOfEnemies));
						waveCreatorCommand(current);
						current = removeLink(current);
					} else { 
						current = current->prev;
					}
					break;
			case makeEnemy:
					if(createEnemyCommand(current))	{
						current = removeLink(current);
						return;
					} else {
						return;
					}
					break;
			case delay:
					setCreateEnemyGroupDelay(returnPropertyValue(current,dTime));
					current = removeLink(current);
					return;
					break;
			default:
					break;
		}
	}
}
void CreateGameTest()	{

	GameProperties testGame;
	testGame = createGame();
	sput_fail_if((createGame()) == NULL,"Creating Game");
	sput_fail_unless(getAvailableMemory(testGame) == 0,"Initializing Memory");
	sput_fail_unless(getWave(testGame) == 0,"Initializing WaveNo");
	sput_fail_unless(getHealth(testGame) == 0,"Initializing Health");
	free(testGame);
}
int startNextWave()	{
    if(getTotalCurrentWaveEnemies() == getDeathCnt())	{
        if(getWave(getGame(NULL))  < getTotalWaveNo())	{
            resetEnemyCounts();
            setCurrWaveNum(getGame(NULL)->currWaveNo+1);
        } else {
            //printf("you have won the level\n");
        }
        return 1;
    }
    return 0;
}
Example #5
0
void WaveEventBase::read(Xml& xml)
{
    for (;;)
    {
        Xml::Token token = xml.parse();
        const QString& tag = xml.s1();
        switch (token)
        {
            case Xml::Error:
            case Xml::End:
            case Xml::Attribut:
                return;
            case Xml::TagStart:
                if (tag == "poslen")
                    PosLen::read(xml, "poslen");
                else if (tag == "frame")
                    _spos = xml.parseInt();
                else if(tag == "leftclip")
                    m_leftclip = xml.parseInt();
                else if(tag == "rightclip")
                    m_rightclip = xml.parseInt();
                else if (tag == "file")
                {
                    SndFile* wf = getWave(xml.parse1(), true);
                    if (wf)
                    {
                        f = SndFileR(wf);
                    }
                }
                else
                    xml.unknown("Event");
                break;
            case Xml::TagEnd:
                if (tag == "event")
                {
                    Pos::setType(FRAMES); // DEBUG
                    return;
                }
            default:
                break;
        }
    }
}
Example #6
0
PathHandle Direction::getPathHandle() {
    return getWave();
}
int createEnemyCommand(Keyword makeEnemy)	{
	//! only create enemy if all cooldowns are ready
	if(checkClock(singleEnemyCreated,ENEMYSPAWNCOOLDOWN) && checkClock(groupDelay,getEnemyGroupDelay()) && (getWave(getGame(NULL)) == returnPropertyValue(makeEnemy,waveID)))	{
		setCreateEnemyGroupDelay(0); //!setting delay back to zero
		createSpecificEnemy(returnPropertyValue(makeEnemy,enemyType),returnPropertyValue(makeEnemy,enemyLevel),returnPropertyValue(makeEnemy,entrance));
		return 1;
	} 
	return 0;
}
Example #8
0
TGraph *getWave(int diskNum, int fileNum) 
{
  char filename[180];
  sprintf(filename,"/home/rjn/saltStuff/salt_trip3_data/disk_%d/TEK%05d.CSV",diskNum,fileNum);
  return getWave(filename);
}
Example #9
0
void plotAbbyTimeThings()
{
  gSystem->Load("libMathMore.so");
  gSystem->Load("/sw/lib/libfftw3.so");
  gSystem->Load("libRootFftwWrapper.so");
  readAbbyTimeFile();
  char canName[180];
  char graphTitle[180];

  TF1 *fpl = new TF1("fpl",funcPowerLaw,10,1000,2);
  fpl->SetParameters(3.281e6,-0.5484);
  TGraph *grAtten[1000];

  int antIndex=2; 

  char outName[180];
  sprintf(outName,"%sErrorTimeSlide.txt",antName[antIndex]);
  ofstream AbbyNumbers(outName);
  sprintf(outName,"%sErrorTimeSlideArrays.C",antName[antIndex]);
  ofstream AbbyArrays(outName);

  TCanvas *canAtten = new TCanvas("canAtten","canAtten",1000,800);
  TCanvas *canPower12 = new TCanvas("canPower12","canPower12",1000,800);
  TCanvas *canPower13 = new TCanvas("canPower13","canPower13",1000,800);
  canAtten->Divide(canDivide[antIndex][0],canDivide[antIndex][1]);
  canPower12->cd();
  gPad->SetLogy();
  TH1F *frame12 = canPower12->DrawFrame(10,1e4,1200,1e11);
  canPower13->cd();
  gPad->SetLogy();
  TH1F *frame13 = canPower13->DrawFrame(10,100,1200,1e8);
  for(int i=0;i<numDepths[antIndex];i++) {
    canAtten->cd(i+1);
    sprintf(canName,"Depth %d",depths[antIndex][i]);
    gPad->SetLogy(1);
    gPad->SetLogx(1);
    TH1F *framey = gPad->DrawFrame(30,10,1000,1000,canName);

    Double_t meanPower12[100]={0};
    Double_t meanSqPower12[100]={0};
    Double_t meanPower13[100]={0};
    Double_t meanSqPower13[100]={0};
    Double_t freqVal[100]={0};
    Int_t numPowPoints=0;


    TGraph *grT12=getWave(disks[antIndex][i][0],files[antIndex][i][0]);
    TGraph *grT13=getWave(disks[antIndex][i][1],files[antIndex][i][1]);

    int count=0;

    for(Double_t dt=-3e-9;dt<3e-9;dt+=0.25e-9) {
      TGraph *grT12Crop = cropWave(grT12,(1e-9*peakTime[antIndex][i][0]+antDtLeft[antIndex])+dt,1e-9*peakTime[antIndex][i][0]+antDtRight[antIndex]+dt);
      TGraph *grT13Crop = cropWave(grT13,(1e-9*peakTime[antIndex][i][1]+antDtLeft[antIndex])+dt,1e-9*peakTime[antIndex][i][1]+antDtRight[antIndex]+dt);

      //      TGraph *grT12Crop = cropWave(grT12,1e-9*minTime[antIndex][i][0]+dt,1e-9*maxTime[antIndex][i][0]+dt);
      //      TGraph *grT13Crop = cropWave(grT13,1e-9*minTime[antIndex][i][1]+dt,1e-9*maxTime[antIndex][i][1]+dt);
      
      TGraph *grPower12 = FFTtools::makePowerSpectrumVoltsSeconds(grT12Crop);
      TGraph *grPower13 = FFTtools::makePowerSpectrumVoltsSeconds(grT13Crop);
      TGraph *grPower12dB = convertToDb(grPower12);
      TGraph *grPower13dB = convertToDb(grPower13);
      sprintf(graphTitle,"Hole 1 - Hole 2 -- Depth %d (Christian)",depths[antIndex][i]);
      grT12->SetTitle(graphTitle);
      grPower12->SetTitle(graphTitle);
      grPower12dB->SetTitle(graphTitle);
      
      sprintf(graphTitle,"Hole 1 - Hole 3 -- Depth %d (Christian)",depths[antIndex][i]);
      grT13->SetTitle(graphTitle);
      grPower13->SetTitle(graphTitle);
      grPower13dB->SetTitle(graphTitle);
      
      Double_t power12=FFTtools::integrateVoltageSquared(grT12Crop);
      Double_t power13=FFTtools::integrateVoltageSquared(grT13Crop);
      
      TGraphErrors *grPowInt12 = integratePowerSpectrum(grPower12,antFreqCentres[antIndex],antFreqWidth[antIndex],antFreqNumBins[antIndex]);
      TGraphErrors *grPowInt13 = integratePowerSpectrum(grPower13,antFreqCentres[antIndex],antFreqWidth[antIndex],antFreqNumBins[antIndex]);
      

      sprintf(graphTitle,"grAtten%d_%d",depths[antIndex][i],count);
      grAtten[count]=getAttenLengthGraph(grPowInt12,grPowInt13);
      grAtten[count]->SetName(graphTitle);
      //      grAtten[count]->SetLineColor(getNiceColour(count));
      //      grAtten[count]->SetMarkerColor(getNiceColour(count));
      grAtten[count]->SetLineColor(count);
      grAtten[count]->SetMarkerColor(count);
      grAtten[count]->Draw("lp");
      fpl->Draw("same");

      numPowPoints=grPowInt13->GetN();
      Double_t *pow12Vals=grPowInt12->GetY();
      Double_t *pow13Vals=grPowInt13->GetY();
      Double_t *freq13Vals=grPowInt13->GetX();
      for(int powi=0;powi<numPowPoints;powi++) {
	meanPower12[powi]+=pow12Vals[powi];
	meanSqPower12[powi]+=pow12Vals[powi]*pow12Vals[powi];
	meanPower13[powi]+=pow13Vals[powi];
	meanSqPower13[powi]+=pow13Vals[powi]*pow13Vals[powi];
	freqVal[powi]=freq13Vals[powi];
      }

      count++;
    }
    //Now just slide the 12 window
 for(Double_t dt=-3e-9;dt<3e-9;dt+=0.25e-9) {
      TGraph *grT12Crop = cropWave(grT12,(1e-9*peakTime[antIndex][i][0]+antDtLeft[antIndex])+dt,1e-9*peakTime[antIndex][i][0]+antDtRight[antIndex]+dt);
      TGraph *grT13Crop = cropWave(grT13,(1e-9*peakTime[antIndex][i][1]+antDtLeft[antIndex]),1e-9*peakTime[antIndex][i][1]+antDtRight[antIndex]);

      //      TGraph *grT12Crop = cropWave(grT12,1e-9*minTime[antIndex][i][0]+dt,1e-9*maxTime[antIndex][i][0]+dt);
      //      TGraph *grT13Crop = cropWave(grT13,1e-9*minTime[antIndex][i][1]+dt,1e-9*maxTime[antIndex][i][1]+dt);
      
      TGraph *grPower12 = FFTtools::makePowerSpectrumVoltsSeconds(grT12Crop);
      TGraph *grPower13 = FFTtools::makePowerSpectrumVoltsSeconds(grT13Crop);
      TGraph *grPower12dB = convertToDb(grPower12);
      TGraph *grPower13dB = convertToDb(grPower13);
      sprintf(graphTitle,"Hole 1 - Hole 2 -- Depth %d (Christian)",depths[antIndex][i]);
      grT12->SetTitle(graphTitle);
      grPower12->SetTitle(graphTitle);
      grPower12dB->SetTitle(graphTitle);
      
      sprintf(graphTitle,"Hole 1 - Hole 3 -- Depth %d (Christian)",depths[antIndex][i]);
      grT13->SetTitle(graphTitle);
      grPower13->SetTitle(graphTitle);
      grPower13dB->SetTitle(graphTitle);
      
      Double_t power12=FFTtools::integrateVoltageSquared(grT12Crop);
      Double_t power13=FFTtools::integrateVoltageSquared(grT13Crop);
      
      TGraphErrors *grPowInt12 = integratePowerSpectrum(grPower12,antFreqCentres[antIndex],antFreqWidth[antIndex],antFreqNumBins[antIndex]);
      TGraphErrors *grPowInt13 = integratePowerSpectrum(grPower13,antFreqCentres[antIndex],antFreqWidth[antIndex],antFreqNumBins[antIndex]);
      

      sprintf(graphTitle,"grAtten%d_%d",depths[antIndex][i],count);
      grAtten[count]=getAttenLengthGraph(grPowInt12,grPowInt13);
      grAtten[count]->SetName(graphTitle);
      //      grAtten[count]->SetLineColor(getNiceColour(count));
      //      grAtten[count]->SetMarkerColor(getNiceColour(count));
      grAtten[count]->SetLineColor(count);
      grAtten[count]->SetMarkerColor(count);
      grAtten[count]->Draw("lp");
      fpl->Draw("same");

      numPowPoints=grPowInt13->GetN();
      Double_t *pow12Vals=grPowInt12->GetY();
      Double_t *pow13Vals=grPowInt13->GetY();
      Double_t *freq13Vals=grPowInt13->GetX();
      for(int powi=0;powi<numPowPoints;powi++) {
	meanPower12[powi]+=pow12Vals[powi];
	meanSqPower12[powi]+=pow12Vals[powi]*pow12Vals[powi];
	meanPower13[powi]+=pow13Vals[powi];
	meanSqPower13[powi]+=pow13Vals[powi]*pow13Vals[powi];
	freqVal[powi]=freq13Vals[powi];
      }

      count++;
    }
 cout << count << endl;
 //Now just slide the 13 window
 for(Double_t dt=-3e-9;dt<3e-9;dt+=0.25e-9) {
      TGraph *grT12Crop = cropWave(grT12,(1e-9*peakTime[antIndex][i][0]+antDtLeft[antIndex]),1e-9*peakTime[antIndex][i][0]+antDtRight[antIndex]);
      TGraph *grT13Crop = cropWave(grT13,(1e-9*peakTime[antIndex][i][1]+antDtLeft[antIndex])+dt,1e-9*peakTime[antIndex][i][1]+antDtRight[antIndex]+dt);

      //      TGraph *grT12Crop = cropWave(grT12,1e-9*minTime[antIndex][i][0]+dt,1e-9*maxTime[antIndex][i][0]+dt);
      //      TGraph *grT13Crop = cropWave(grT13,1e-9*minTime[antIndex][i][1]+dt,1e-9*maxTime[antIndex][i][1]+dt);
      
      TGraph *grPower12 = FFTtools::makePowerSpectrumVoltsSeconds(grT12Crop);
      TGraph *grPower13 = FFTtools::makePowerSpectrumVoltsSeconds(grT13Crop);
      TGraph *grPower12dB = convertToDb(grPower12);
      TGraph *grPower13dB = convertToDb(grPower13);
      sprintf(graphTitle,"Hole 1 - Hole 2 -- Depth %d (Christian)",depths[antIndex][i]);
      grT12->SetTitle(graphTitle);
      grPower12->SetTitle(graphTitle);
      grPower12dB->SetTitle(graphTitle);
      
      sprintf(graphTitle,"Hole 1 - Hole 3 -- Depth %d (Christian)",depths[antIndex][i]);
      grT13->SetTitle(graphTitle);
      grPower13->SetTitle(graphTitle);
      grPower13dB->SetTitle(graphTitle);
      
      Double_t power12=FFTtools::integrateVoltageSquared(grT12Crop);
      Double_t power13=FFTtools::integrateVoltageSquared(grT13Crop);
      
      TGraphErrors *grPowInt12 = integratePowerSpectrum(grPower12,antFreqCentres[antIndex],antFreqWidth[antIndex],antFreqNumBins[antIndex]);
      TGraphErrors *grPowInt13 = integratePowerSpectrum(grPower13,antFreqCentres[antIndex],antFreqWidth[antIndex],antFreqNumBins[antIndex]);
      

      sprintf(graphTitle,"grAtten%d_%d",depths[antIndex][i],count);
      grAtten[count]=getAttenLengthGraph(grPowInt12,grPowInt13);
      grAtten[count]->SetName(graphTitle);
      //      grAtten[count]->SetLineColor(getNiceColour(count));
      //      grAtten[count]->SetMarkerColor(getNiceColour(count));
      grAtten[count]->SetLineColor(count);
      grAtten[count]->SetMarkerColor(count);
      grAtten[count]->Draw("lp");
      fpl->Draw("same");

      numPowPoints=grPowInt13->GetN();
      Double_t *pow12Vals=grPowInt12->GetY();
      Double_t *pow13Vals=grPowInt13->GetY();
      Double_t *freq13Vals=grPowInt13->GetX();
      for(int powi=0;powi<numPowPoints;powi++) {
	meanPower12[powi]+=pow12Vals[powi];
	meanSqPower12[powi]+=pow12Vals[powi]*pow12Vals[powi];
	meanPower13[powi]+=pow13Vals[powi];
	meanSqPower13[powi]+=pow13Vals[powi]*pow13Vals[powi];
	freqVal[powi]=freq13Vals[powi];
      }

      count++;
    }

    Double_t rms12Val[100];
    Double_t rms13Val[100];
    Double_t err12Val[100];
    Double_t err13Val[100];
    for(int powi=0;powi<numPowPoints;powi++) {
      meanPower12[powi]/=count;
      meanSqPower12[powi]/=count;
      meanPower13[powi]/=count;
      meanSqPower13[powi]/=count;
      rms12Val[powi]=TMath::Sqrt(meanSqPower12[powi]-meanPower12[powi]*meanPower12[powi]);
      rms13Val[powi]=TMath::Sqrt(meanSqPower13[powi]-meanPower13[powi]*meanPower13[powi]);
      err12Val[powi]=rms12Val[powi]/TMath::Sqrt(count);
      err13Val[powi]=rms13Val[powi]/TMath::Sqrt(count);

    }
    AbbyNumbers << antIndex << "\t" << depths[antIndex][i] << "\t" << 2 << "\t";
    AbbyArrays << "meanPowerArray_" << antIndex << "_" << depths[antIndex][i] << "_" << 2 << "[" << numPowPoints << "]={";
    for(int powi=0;powi<numPowPoints;powi++) {
      AbbyNumbers << meanPower12[powi] << "\t" << rms12Val[i] << "\t";
      AbbyArrays << meanPower12[powi];
      if(powi<numPowPoints-1) 
	AbbyArrays << ",";
      else 
	AbbyArrays << "};\n";
    }
    AbbyArrays << "rmsPowerArray_" << antIndex << "_" << depths[antIndex][i] << "_" << 2 << "[" << numPowPoints << "]={";
     for(int powi=0;powi<numPowPoints;powi++) {
      AbbyArrays << rms12Val[powi];
      if(powi<numPowPoints-1) 
	AbbyArrays << ",";
      else 
	AbbyArrays << "};\n";
    }
    AbbyArrays << "meanPowerArray_" << antIndex << "_" << depths[antIndex][i] << "_" << 3 << "[" << numPowPoints << "]={";
    for(int powi=0;powi<numPowPoints;powi++) {
      AbbyArrays << meanPower13[powi];
      if(powi<numPowPoints-1) 
	AbbyArrays << ",";
      else 
	AbbyArrays << "};\n";
    }
    AbbyArrays << "rmsPowerArray_" << antIndex << "_" << depths[antIndex][i] << "_" << 3 << "[" << numPowPoints << "]={";
     for(int powi=0;powi<numPowPoints;powi++) {
      AbbyArrays << rms13Val[powi];
      if(powi<numPowPoints-1) 
	AbbyArrays << ",";
      else 
	AbbyArrays << "};\n";
    }
        
    AbbyNumbers << "\n";
    AbbyNumbers << antIndex << "\t" << depths[antIndex][i] << "\t" << 3 << "\t";
    for(int powi=0;powi<numPowPoints;powi++) {
      AbbyNumbers << meanPower13[powi] << "\t" << rms13Val[i] << "\t";
    }
    AbbyNumbers << "\n";
    
    
    TGraphErrors *grPowErr12 = new TGraphErrors(numPowPoints,freqVal,meanPower12,0,rms12Val);
    TGraphErrors *grPowErr13 = new TGraphErrors(numPowPoints,freqVal,meanPower13,0,rms13Val);
    canPower12->cd();
    grPowErr12->SetLineColor(getNiceColour(i));
    grPowErr12->SetMarkerColor(getNiceColour(i));    
    grPowErr12->Draw("lp");
    canPower13->cd();
    grPowErr13->SetLineColor(getNiceColour(i));
    grPowErr13->SetMarkerColor(getNiceColour(i));
    grPowErr13->Draw("lp");
    
    
  }
			  

}
Example #10
0
void doTest()
{

  TGraph *gr1=getWave("/home/rjn/saltStuff/salt_trip3_data/disk_4/TEK00024.CSV");
  TGraph *gr2=getWave("/home/rjn/saltStuff/salt_trip3_data/disk_4/TEK00025.CSV");


  Int_t N1=gr1->GetN();
  Double_t *x1=gr1->GetX();  
  Double_t dt1=x1[1]-x1[0];
  Int_t peakBin1=FFTtools::getPeakBin(gr1);
  //  cout << dt1  << "\t" << N1*dt1 << "\n";
 
  Int_t N2=gr2->GetN();
  Double_t *x2=gr2->GetX();  
  Double_t *y2=gr2->GetY();  
  Double_t dt2=x2[1]-x2[0];
  Int_t peakBin2=FFTtools::getPeakBin(gr2);
  //  cout << dt2  << "\t" << N2*dt2 << "\n";
  
  Double_t firstPoint1=x1[0]-x1[peakBin1];
  Double_t lastPoint1=x1[N1-1]-x1[peakBin1];
  
  Int_t newFirstBin2=Int_t(peakBin2+(firstPoint1/dt2));
  Int_t newN2=Int_t(TMath::Ceil(peakBin2+lastPoint1/dt2))-newFirstBin2;
  TGraph *gr2Zoom = new TGraph(newN2,&(x2[newFirstBin2]),&(y2[newFirstBin2]));
  

  //  cout <<  << "\t" << TMath::Ceil(peakBin2+lastPoint1/dt2) << "\n";

  TCanvas *canWave = new TCanvas("canWave","canWave");
  canWave->Divide(1,2);
  canWave->cd(1);
  gr1->SetTitle("Example Pulse -- 251 Samples");
  gr1->Draw("al");  
  gr1->SetLineColor(getNiceColour(0));
  canWave->cd(2);
  gr2Zoom->SetTitle("Example Pulse -- 126 Samples");
  gr2Zoom->Draw("al");
  gr2Zoom->SetLineColor(getNiceColour(1));

  TGraph *grPower1=FFTtools::makePowerSpectrum(gr1);
  TGraph *grPower2=FFTtools::makePowerSpectrum(gr2Zoom);
  
  TCanvas *canPower = new TCanvas("canPower","canPower");
  canPower->Divide(1,2);
  canPower->cd(1);
  grPower1->SetTitle("Unnormalised -- 251 Samples");
  grPower1->Draw("al");  
  grPower1->SetLineColor(getNiceColour(0));
  canPower->cd(2);
  grPower2->SetTitle("Unnormalised -- 126 Samples");
  grPower2->Draw("al");		
  grPower2->SetLineColor(getNiceColour(1));
  
  cout << sumVoltageSquared(gr1) << "\t" << sumVoltageSquared(gr2Zoom) << "\n";
  cout << "Unnormalised\t" << integratePower(grPower1) << "\t" << integratePower(grPower2) << "\n";


  TGraph *grPeriod1=FFTtools::makePowerSpectrumPeriodogram(gr1);
  TGraph *grPeriod2=FFTtools::makePowerSpectrumPeriodogram(gr2Zoom);
  
  TCanvas *canPeriod = new TCanvas("canPeriod","canPeriod");
  canPeriod->Divide(1,2);
  canPeriod->cd(1);
  grPeriod1->Draw("al"); 
  grPeriod1->SetTitle("Peiodogram -- 251 Samples"); 
  grPeriod1->SetLineColor(getNiceColour(0));
  canPeriod->cd(2);
  grPeriod2->Draw("al");		
  grPeriod2->SetTitle("Peiodogram -- 126 Samples"); 
  grPeriod2->SetLineColor(getNiceColour(1));
  
  cout << grPeriod1->GetN() << "\t" << grPeriod2->GetN() << "\n";
  cout << sumVoltageSquared(gr1)/gr1->GetN() << "\t" << sumVoltageSquared(gr2Zoom)/gr2Zoom->GetN() << "\n";
  cout << integrateVoltageSquared(gr1) << "\t" << integrateVoltageSquared(gr2Zoom) << "\n";
  cout << "Periodogram\t" << integratePower(grPeriod1) << "\t" << integratePower(grPeriod2) << "\n";


  TGraph *grdB1=FFTtools::makePowerSpectrumVoltsSeconds(gr1);
  TGraph *grdB2=FFTtools::makePowerSpectrumVoltsSeconds(gr2Zoom);
  
  TCanvas *candB = new TCanvas("candB","candB");
  candB->Divide(1,2);
  candB->cd(1);
  grdB1->Draw("al");  
  grdB1->SetTitle("Normalised  -- 251 Samples"); 
  grdB1->SetLineColor(getNiceColour(0));
  candB->cd(2);
  grdB2->SetTitle("Normalised  -- 126 Samples"); 
  grdB2->Draw("al");		
  grdB2->SetLineColor(getNiceColour(1));
  //  cout << integratePower

  TGraph *grdBPadded1=FFTtools::makePowerSpectrumVoltsSecondsPadded(gr1);
  TGraph *grdBPadded2=FFTtools::makePowerSpectrumVoltsSecondsPadded(gr2Zoom);
  
  TCanvas *candBPadded = new TCanvas("candBPadded","candBPadded");
  candBPadded->Divide(1,2);
  candBPadded->cd(1);
  grdBPadded1->Draw("al"); 
  grdBPadded1->SetTitle("Normalised -- 251 Samples (x4 Zero Padding)");  
  grdBPadded1->SetLineColor(getNiceColour(0));
  candBPadded->cd(2);
  grdBPadded2->SetTitle("Normalised -- 126 Samples (x4 Zero Padding)"); 
  grdBPadded2->Draw("al");		
  grdBPadded2->SetLineColor(getNiceColour(1));

  cout << "Sum\n";
  cout << integratePower(grdB1) << "\t" << integratePower(grdB2) << "\n";
  cout << integratePower(grdBPadded1) << "\t"  << integratePower(grdBPadded2) << "\n";
  cout << "Integral\n";
  cout << integratePowerProper(grdB1) << "\t" << integratePowerProper(grdB2) << "\n";
  cout << integratePowerProper(grdBPadded1) << "\t"  << integratePowerProper(grdBPadded2) << "\n";

}