Skip to content

Commit

Permalink
Merge branch 'feature/spectwriter' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
nsoblath committed Aug 11, 2017
2 parents 0830a56 + 1b76343 commit cbe9a06
Show file tree
Hide file tree
Showing 7 changed files with 418 additions and 184 deletions.
2 changes: 2 additions & 0 deletions Source/IO/CMakeLists.txt
Expand Up @@ -55,6 +55,7 @@ if (ROOT_FOUND)
MultiSliceROOTWriter/KTMultiSliceROOTTypeWriterTime.hh
MultiSliceROOTWriter/KTMultiSliceROOTTypeWriterTransform.hh
MultiSliceROOTWriter/KTMultiSliceROOTWriter.hh
ROOTSpectrogramWriter/KTROOTSpectrogramTypeWriterEventAnalysis.hh
ROOTSpectrogramWriter/KTROOTSpectrogramTypeWriterTransform.hh
ROOTSpectrogramWriter/KTROOTSpectrogramWriter.hh
ROOTTreeWriter/KTROOTTreeTypeWriterSpectrumAnalysis.hh
Expand Down Expand Up @@ -85,6 +86,7 @@ if (ROOT_FOUND)
MultiSliceROOTWriter/KTMultiSliceROOTTypeWriterTime.cc
MultiSliceROOTWriter/KTMultiSliceROOTTypeWriterTransform.cc
MultiSliceROOTWriter/KTMultiSliceROOTWriter.cc
ROOTSpectrogramWriter/KTROOTSpectrogramTypeWriterEventAnalysis.cc
ROOTSpectrogramWriter/KTROOTSpectrogramTypeWriterTransform.cc
ROOTSpectrogramWriter/KTROOTSpectrogramWriter.cc
ROOTTreeWriter/KTROOTTreeTypeWriterSpectrumAnalysis.cc
Expand Down
@@ -0,0 +1,90 @@
/*
* KTROOTSpectrogramTypeWriterEventAnalysis.cc
*
* Created on: Aug 8, 2017
* Author: nsoblath
*/

#include "KTROOTSpectrogramTypeWriterEventAnalysis.hh"

#include "KTProcessedTrackData.hh"

#include "TLine.h"
#include "TOrdCollection.h"

#include "KTLogger.hh"

namespace Katydid
{
KTLOGGER(publog, "KTROOTSpectrogramTypeWriterEventAnalysis");

static Nymph::KTTIRegistrar< KTROOTSpectrogramTypeWriter, KTROOTSpectrogramTypeWriterEventAnalysis > sRSTWEARegistrar;

KTROOTSpectrogramTypeWriterEventAnalysis::KTROOTSpectrogramTypeWriterEventAnalysis() :
KTROOTSpectrogramTypeWriter(),
//KTTypeWriterEventAnalysis()
fLineCollection(NULL)
{
}

KTROOTSpectrogramTypeWriterEventAnalysis::~KTROOTSpectrogramTypeWriterEventAnalysis()
{
delete fLineCollection;
}

void KTROOTSpectrogramTypeWriterEventAnalysis::ClearLines()
{
delete fLineCollection;
fLineCollection = NULL;
}

void KTROOTSpectrogramTypeWriterEventAnalysis::OutputSpectrograms()
{
if (! fWriter->OpenAndVerifyFile()) return;

KTDEBUG("calling output lines")
OutputLines();

return;
}

void KTROOTSpectrogramTypeWriterEventAnalysis::OutputLines()
{
KTDEBUG(publog, "Outputing lines");
fWriter->GetFile()->WriteTObject(fLineCollection, "AllLines", "SingleKey");
fLineCollection = NULL;
return;
}

void KTROOTSpectrogramTypeWriterEventAnalysis::RegisterSlots()
{
fWriter->RegisterSlot("proc-track", this, &KTROOTSpectrogramTypeWriterEventAnalysis::AddProcessedTrackData);
return;
}


//*********************
// Processed Track Data
//*********************

void KTROOTSpectrogramTypeWriterEventAnalysis::AddProcessedTrackData(Nymph::KTDataPtr data)
{
KTProcessedTrackData thisLine = data->Of< KTProcessedTrackData >();

// if( thisLine.GetIsCut() )
// {
// KTINFO("The track is cut! Will not add it to the Line Collection");
// return;
// }

if (fLineCollection == NULL)
{
fLineCollection = new TOrdCollection();
}
TLine* rootLine = new TLine(thisLine.GetStartTimeInRunC(), thisLine.GetStartFrequency(), thisLine.GetEndTimeInRunC(), thisLine.GetEndFrequency());
fLineCollection->Add(rootLine);

return;
}

} /* namespace Katydid */
@@ -0,0 +1,41 @@
/*
* KTROOTSpectrogramTypeWriterEventAnalysis.hh
*
* Created on: Aug 8, 2017
* Author: nsoblath
*/

#ifndef KTROOTSPECTROGRAMTYPEWRITEREVENTANALYSIS_HH_
#define KTROOTSPECTROGRAMTYPEWRITEREVENTANALYSIS_HH_

#include "KTROOTSpectrogramWriter.hh"

class TOrdCollection;

namespace Katydid
{

class KTROOTSpectrogramTypeWriterEventAnalysis : public KTROOTSpectrogramTypeWriter//, public KTTypeWriterEventAnalysis
{
public:
KTROOTSpectrogramTypeWriterEventAnalysis();
virtual ~KTROOTSpectrogramTypeWriterEventAnalysis();

void RegisterSlots();

public:
void AddProcessedTrackData(Nymph::KTDataPtr data);

private:
TOrdCollection *fLineCollection;

public:
void OutputSpectrograms();
void OutputLines();
void ClearLines();

};


} /* namespace Katydid */
#endif /* KTROOTSPECTROGRAMTYPEWRITEREVENTANALYSIS_HH_ */
119 changes: 16 additions & 103 deletions Source/IO/ROOTSpectrogramWriter/KTROOTSpectrogramTypeWriterTransform.cc
Expand Up @@ -10,9 +10,6 @@
#include "KTFrequencySpectrumDataPolar.hh"
#include "KTFrequencySpectrumDataFFTW.hh"
#include "KTPowerSpectrumData.hh"
#include "KTProcessedTrackData.hh"

#include "TLine.h"

//#include "KTLogger.hh"

Expand All @@ -27,80 +24,36 @@ namespace Katydid
KTROOTSpectrogramTypeWriterTransform::KTROOTSpectrogramTypeWriterTransform() :
KTROOTSpectrogramTypeWriter(),
//KTTypeWriterTransform()
fFSPolarSpectrograms(),
fFSFFTWSpectrograms(),
fPowerSpectrograms(),
fPSDSpectrograms(),
fLineCollection()
fFSPolarBundle("FSPolarSpectrogram"),
fFSFFTWBundle("FSFFTWSpectrogram"),
fPowerBundle("PowerSpectrogram"),
fPSDBundle("PSDSpectrogram")
{
}

KTROOTSpectrogramTypeWriterTransform::~KTROOTSpectrogramTypeWriterTransform()
{
delete fLineCollection;
}

void KTROOTSpectrogramTypeWriterTransform::OutputASpectrogramSet(vector< SpectrogramData >& aSpectrogramSet)
{
// this function does not check the root file; it's assumed to be opened and verified already
while (! aSpectrogramSet.empty())
{
TH2D* spectrogram = aSpectrogramSet.back().fSpectrogram;
spectrogram->SetDirectory(fWriter->GetFile());
spectrogram->Write();
aSpectrogramSet.pop_back();
}
return;
}

void KTROOTSpectrogramTypeWriterTransform::ClearASpectrogramSet(vector< SpectrogramData >& aSpectrogramSet)
{
while (! aSpectrogramSet.empty())
{
delete aSpectrogramSet.back().fSpectrogram;
aSpectrogramSet.pop_back();
}
return;
}

void KTROOTSpectrogramTypeWriterTransform::ClearLines()
{
delete fLineCollection;
fLineCollection = NULL;
}

void KTROOTSpectrogramTypeWriterTransform::OutputSpectrograms()
{
if (! fWriter->OpenAndVerifyFile()) return;

KTDEBUG("calling output each spectrogram set")
OutputASpectrogramSet(fFSPolarSpectrograms);
OutputASpectrogramSet(fFSFFTWSpectrograms);
OutputASpectrogramSet(fPowerSpectrograms);
OutputASpectrogramSet(fPSDSpectrograms);

KTDEBUG("calling output lines")
OutputLines();
OutputASpectrogramSet(fFSPolarBundle, false);
OutputASpectrogramSet(fFSFFTWBundle, false);
OutputASpectrogramSet(fPowerBundle, false);
OutputASpectrogramSet(fPSDBundle, false);

return;
}

void KTROOTSpectrogramTypeWriterTransform::OutputLines()
{
KTDEBUG("grab file and cd")
fWriter->GetFile()->WriteTObject(fLineCollection, "AllLines", "SingleKey");
fLineCollection = NULL;
return;
}

void KTROOTSpectrogramTypeWriterTransform::ClearSpectrograms()
{
ClearASpectrogramSet(fFSPolarSpectrograms);
ClearASpectrogramSet(fFSFFTWSpectrograms);
ClearASpectrogramSet(fPowerSpectrograms);
ClearASpectrogramSet(fPSDSpectrograms);

ClearLines();
ClearASpectrogramSet(fFSPolarBundle);
ClearASpectrogramSet(fFSFFTWBundle);
ClearASpectrogramSet(fPowerBundle);
ClearASpectrogramSet(fPSDBundle);
return;
}

Expand All @@ -110,8 +63,6 @@ namespace Katydid
fWriter->RegisterSlot("fs-fftw", this, &KTROOTSpectrogramTypeWriterTransform::AddFrequencySpectrumDataFFTW);
fWriter->RegisterSlot("ps", this, &KTROOTSpectrogramTypeWriterTransform::AddPowerSpectrumData);
fWriter->RegisterSlot("psd", this, &KTROOTSpectrogramTypeWriterTransform::AddPSDData);
fWriter->RegisterSlot("proc-track", this, &KTROOTSpectrogramTypeWriterTransform::AddProcessedTrackData);
fWriter->RegisterSlot("all-lines", this, &KTROOTSpectrogramTypeWriterTransform::TakeLine);
return;
}

Expand All @@ -122,13 +73,13 @@ namespace Katydid

void KTROOTSpectrogramTypeWriterTransform::AddFrequencySpectrumDataPolar(Nymph::KTDataPtr data)
{
AddFrequencySpectrumDataHelper< KTFrequencySpectrumDataPolar >(data, fFSPolarSpectrograms, "FSPolarSpectrogram_");
AddFrequencySpectrumDataHelper< KTFrequencySpectrumDataPolar >(data, fFSPolarBundle);
return;
}

void KTROOTSpectrogramTypeWriterTransform::AddFrequencySpectrumDataFFTW(Nymph::KTDataPtr data)
{
AddFrequencySpectrumDataHelper< KTFrequencySpectrumDataFFTW >(data, fFSFFTWSpectrograms, "FSFFTWSpectrogram_");
AddFrequencySpectrumDataHelper< KTFrequencySpectrumDataFFTW >(data, fFSFFTWBundle);
return;
}

Expand All @@ -138,52 +89,14 @@ namespace Katydid

void KTROOTSpectrogramTypeWriterTransform::AddPowerSpectrumData(Nymph::KTDataPtr data)
{
AddPowerSpectrumDataCoreHelper< KTPowerSpectrumData >(data, fPowerSpectrograms, "PowerSpectrogram_");
AddPowerSpectrumDataCoreHelper< KTPowerSpectrumData >(data, fPowerBundle);
return;
}

void KTROOTSpectrogramTypeWriterTransform::AddPSDData(Nymph::KTDataPtr data)
{
AddPowerSpectralDensityDataCoreHelper< KTPowerSpectrumData >(data, fPSDSpectrograms, "PSDSpectrogram_");
return;
}

//*********************
// Processed Track Data
//*********************

void KTROOTSpectrogramTypeWriterTransform::AddProcessedTrackData(Nymph::KTDataPtr data)
{
KTProcessedTrackData thisTrack = data->Of< KTProcessedTrackData >();

if( !thisTrack.GetIsCut() )
{
fWriter->SetMinTime( thisTrack.GetStartTimeInRunC() - fWriter->GetBufferTime() );
fWriter->SetMaxTime( thisTrack.GetEndTimeInRunC() + fWriter->GetBufferTime() );
fWriter->SetMinFreq( thisTrack.GetStartFrequency() - fWriter->GetBufferFreq() );
fWriter->SetMaxFreq( thisTrack.GetEndFrequency() + fWriter->GetBufferFreq() );
}

AddPowerSpectralDensityDataCoreHelper< KTPowerSpectrumData >(data, fPSDBundle);
return;
}


void KTROOTSpectrogramTypeWriterTransform::TakeLine(Nymph::KTDataPtr data)
{
KTProcessedTrackData thisLine = data->Of< KTProcessedTrackData >();

// if( thisLine.GetIsCut() )
// {
// KTINFO("The track is cut! Will not add it to the Line Collection");
// return;
// }

if (fLineCollection == NULL)
{
fLineCollection = new TOrdCollection();
}
TLine* rootLine = new TLine(thisLine.GetStartTimeInRunC(), thisLine.GetStartFrequency(), thisLine.GetEndTimeInRunC(), thisLine.GetEndFrequency());
fLineCollection->Add(rootLine);
}

} /* namespace Katydid */
Expand Up @@ -10,8 +10,6 @@

#include "KTROOTSpectrogramWriter.hh"

#include "TOrdCollection.h"

namespace Katydid
{

Expand All @@ -36,28 +34,16 @@ namespace Katydid
void AddPSDData(Nymph::KTDataPtr data);
void OutputPSDData();

void AddProcessedTrackData(Nymph::KTDataPtr data);

void TakeLine(Nymph::KTDataPtr data);


private:
std::vector< SpectrogramData > fFSPolarSpectrograms;
std::vector< SpectrogramData > fFSFFTWSpectrograms;
std::vector< SpectrogramData > fPowerSpectrograms;
std::vector< SpectrogramData > fPSDSpectrograms;
TOrdCollection *fLineCollection;

DataTypeBundle fFSPolarBundle;
DataTypeBundle fFSFFTWBundle;
DataTypeBundle fPowerBundle;
DataTypeBundle fPSDBundle;

public:
void OutputSpectrograms();
void OutputLines();
void ClearSpectrograms();
void ClearLines();

private:
void OutputASpectrogramSet(std::vector< SpectrogramData >& aSpectSet);
void ClearASpectrogramSet(std::vector< SpectrogramData >& aSpectSet);
};


Expand Down

0 comments on commit cbe9a06

Please sign in to comment.