Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions AraSim.cc
Original file line number Diff line number Diff line change
Expand Up @@ -287,11 +287,6 @@ int main(int argc, char **argv) { // read setup.txt file

*/

double x_V[settings1->NFOUR/2];
double y_V[settings1->NFOUR/2];



double xbin[settings1->DATA_BIN_SIZE];
for (int i=0; i<settings1->DATA_BIN_SIZE; i++) {
xbin[i] = i;
Expand Down
76 changes: 23 additions & 53 deletions Detector.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3355,23 +3355,6 @@ inline void Detector::ReadFilter(string filename, Settings *settings1) { // w
FilterGain_databin.push_back( ygain_databin[i] );
}


// for NFOUR/2 t domain array
double xfreq_NFOUR[settings1->NFOUR/4+1]; // array for FFT freq bin
double ygain_NFOUR[settings1->NFOUR/4+1]; // array for gain in FFT bin

df_fft = 1./ ( (double)(settings1->NFOUR/2) * settings1->TIMESTEP );

for (int i=0;i<settings1->NFOUR/4+1;i++) { // this one is for DATA_BIN_SIZE
xfreq_NFOUR[i] = (double)i * df_fft / (1.E6); // from Hz to MHz
}

Tools::SimpleLinearInterpolation( N, xfreq, ygain, settings1->NFOUR/4+1, xfreq_NFOUR, ygain_NFOUR );

for (int i=0;i<settings1->NFOUR/4+1;i++) {
FilterGain_NFOUR.push_back( ygain_NFOUR[i] );
}

}


Expand Down Expand Up @@ -3460,24 +3443,6 @@ inline void Detector::ReadPreamp(string filename, Settings *settings1) { // w
PreampGain_databin.push_back( ygain_databin[i] );
}


// for NFOUR/2 t domain array
double xfreq_NFOUR[settings1->NFOUR/4+1]; // array for FFT freq bin
double ygain_NFOUR[settings1->NFOUR/4+1]; // array for gain in FFT bin

df_fft = 1./ ( (double)(settings1->NFOUR/2) * settings1->TIMESTEP );

for (int i=0;i<settings1->NFOUR/4+1;i++) { // this one is for DATA_BIN_SIZE
xfreq_NFOUR[i] = (double)i * df_fft / (1.E6); // from Hz to MHz
}

Tools::SimpleLinearInterpolation( N, xfreq, ygain, settings1->NFOUR/4+1, xfreq_NFOUR, ygain_NFOUR );

for (int i=0;i<settings1->NFOUR/4+1;i++) {
PreampGain_NFOUR.push_back( ygain_NFOUR[i] );
}


}


Expand Down Expand Up @@ -3568,22 +3533,6 @@ inline void Detector::ReadFOAM(string filename, Settings *settings1) { // wil
FOAMGain_databin.push_back( ygain_databin[i] );
}


// for NFOUR/2 t domain array
double xfreq_NFOUR[settings1->NFOUR/4+1]; // array for FFT freq bin
double ygain_NFOUR[settings1->NFOUR/4+1]; // array for gain in FFT bin

df_fft = 1./ ( (double)(settings1->NFOUR/2) * settings1->TIMESTEP );

for (int i=0;i<settings1->NFOUR/4+1;i++) { // this one is for DATA_BIN_SIZE
xfreq_NFOUR[i] = (double)i * df_fft / (1.E6); // from Hz to MHz
}

Tools::SimpleLinearInterpolation( N, xfreq, ygain, settings1->NFOUR/4+1, xfreq_NFOUR, ygain_NFOUR );

for (int i=0;i<settings1->NFOUR/4+1;i++) {
FOAMGain_NFOUR.push_back( ygain_NFOUR[i] );
}
}

void Detector::ReadNoiseFigure(string filename, Settings *settings1)
Expand Down Expand Up @@ -5011,7 +4960,6 @@ void Detector::getDiodeModel(Settings *settings1) {
// now get f domain response with realft

double diode_real_fft[settings1->DATA_BIN_SIZE*2]; // double sized array for myconvlv
//double diode_real_fft[settings1->DATA_BIN_SIZE + 512]; // DATA_BIN_SIZE + 512 bin (zero padding) for myconvlv
double diode_real_fft_half[NFOUR]; // double sized array for NFOUR/2
double diode_real_fft_double[NFOUR*2]; // test with NFOUR*2 array

Expand Down Expand Up @@ -5117,14 +5065,36 @@ void Detector::get_NewDiodeModel(Settings *settings1) {
fdiode_real_databin.clear();

// save f domain diode response in fdiode_real
//for (int i=0; i<settings1->DATA_BIN_SIZE+512; i++) {
for (int i=0; i<settings1->DATA_BIN_SIZE*2; i++) {
fdiode_real_databin.push_back( diode_real_fft[i] );
}

}

//! repadding diode value based on input pad length. MK added -2023-05-23-
void Detector::get_NewDynamicDiodeModel(int pad_len) {

double diode_real_fft[pad_len * 2]; ///< double sized array for myconvlv

for (int i = 0; i < pad_len * 2; i++) { ///< add diode value in zero pad
if ( i < (int)(maxt_diode / TIMESTEP) ) {
diode_real_fft[i] = diode_real[i];
} else {
diode_real_fft[i] = 0.;
}
}

//! forward FFT
Tools::realft(diode_real_fft, 1, pad_len * 2);

//! clear previous data as we need new diode response array for new pad_len
fdiode_real_dynamic_databin.clear();

//! save f domain diode response in fdiode_real_dynamic_databin
for (int i = 0; i < pad_len * 2; i++) {
fdiode_real_dynamic_databin.push_back( diode_real_fft[i] );
}
}

void Detector::PrepareVectorsInstalled(){
ARA_station temp_station;
Expand Down
9 changes: 3 additions & 6 deletions Detector.h
Original file line number Diff line number Diff line change
Expand Up @@ -236,18 +236,15 @@ class Detector {
void ReadFilter(string filename, Settings *settings1);
double FilterGain[freq_step_max]; // Filter gain (dB) for Detector freq bin array
vector <double> FilterGain_databin; // Filter gain (dB) for DATA_BIN_SIZE bin array
vector <double> FilterGain_NFOUR; // Filter gain (dB) for NFOUR bin array

void ReadPreamp(string filename, Settings *settings1);
double PreampGain[freq_step_max]; // Filter gain (dB) for Detector freq bin array
vector <double> PreampGain_databin; // Filter gain (dB) for DATA_BIN_SIZE bin array
vector <double> PreampGain_NFOUR; // Filter gain (dB) for NFOUR bin array


void ReadFOAM(string filename, Settings *settings1);
double FOAMGain[freq_step_max]; // Filter gain (dB) for Detector freq bin array
vector <double> FOAMGain_databin; // Filter gain (dB) for DATA_BIN_SIZE bin array
vector <double> FOAMGain_NFOUR; // Filter gain (dB) for NFOUR bin array



Expand Down Expand Up @@ -358,18 +355,15 @@ class Detector {

double GetFilterGain(int bin) { return FilterGain[bin]; } // same bin with Vgain, Hgain
double GetFilterGain_databin(int bin) { return FilterGain_databin[bin]; } // bin for FFT
double GetFilterGain_NFOUR(int bin) { return FilterGain_NFOUR[bin]; } // bin for FFT

double GetFilterGain_1D_OutZero(double freq); // interpolated output, with outside band returns zero

double GetPreampGain(int bin) { return PreampGain[bin]; } // same bin with Vgain, Hgain
double GetPreampGain_databin(int bin) { return PreampGain_databin[bin]; } // bin for FFT
double GetPreampGain_NFOUR(int bin) { return PreampGain_NFOUR[bin]; } // bin for FFT
double GetPreampGain_1D_OutZero(double freq);

double GetFOAMGain(int bin) { return FOAMGain[bin]; } // same bin with Vgain, Hgain
double GetFOAMGain_databin(int bin) { return FOAMGain_databin[bin]; } // bin for FFT
double GetFOAMGain_NFOUR(int bin) { return FOAMGain_NFOUR[bin]; } // bin for FFT
double GetFOAMGain_1D_OutZero(double freq);


Expand Down Expand Up @@ -411,6 +405,7 @@ class Detector {
double GetFreq(int bin) {return Freq[bin]*1.e6;} //from MHz to Hz

vector <double> diode_real; // NFOUR/2 array of t domain tunnel diode response. same with icemc -> anita -> diode_real but only full bandwidth array 4
vector <double> fdiode_real_dynamic_databin; ///< dynamic length array of f domain tunnel diode response (FFT of diode_real). MK added -2023-05-22-
vector <double> fdiode_real_databin; // NFOUR array of f domain tunnel diode response (FFT of diode_real). also same with icemc -> anita -> fdiode_real but only full bandwidth array 4
vector <double> fdiode_real; // NFOUR/2 array of f domain tunnel diode response (FFT of diode_real). also same with icemc -> anita -> fdiode_real but only full bandwidth array 4
vector <double> fdiode_real_double; // NFOUR array of f domain tunnel diode response (FFT of diode_real). also same with icemc -> anita -> fdiode_real but only full bandwidth array 4
Expand All @@ -435,6 +430,8 @@ class Detector {
// this is a test version for getting new noise waveforms for each event
// for a best performance, we can just set a new reasonable DATA_BIN_SIZE and make new values for those
void get_NewDiodeModel(Settings *settings1);

void get_NewDynamicDiodeModel(int pad_len); ///< repadding diode value based on input pad length. MK added -2023-05-22-

void ReadFilter_New(Settings *settings1); // get filter vector array with new DATA_BIN_SIZE

Expand Down
Loading