List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes | Private Member Functions | Private Attributes
SdFilterFADCSimulatorASCII::SdFilterFADCSimulator Class Reference

Simulates filter and FADC sampling for SD. More...

#include "Modules/SdFilterFADCSimulatorASCII/SdFilterFADCSimulator.h"

Inheritance diagram for SdFilterFADCSimulatorASCII::SdFilterFADCSimulator:
Inheritance graph
[legend]

Public Types

enum  ResultFlag { eSuccess, eFailure, eBreakLoop, eContinueLoop }
 Flag returned by module methods to the RunController. More...
 
enum  VersionInfoType {
  eFilename = 1, eRevisionNumber = 2, eDate = 3, eTime = 4,
  eLastEditor = 5
}
 Different types of version info that can be retrieved from GetVersionInfo. More...
 

Public Member Functions

fwk::VModule::ResultFlag Finish ()
 Finish: invoked at end of the run (NOT end of the event) More...
 
utl::StopwatchGetStopwatch ()
 
const utl::StopwatchGetStopwatch () const
 
std::string GetVersionInfo (const VersionInfoType v) const
 Retrieve different sorts of module version info. More...
 
fwk::VModule::ResultFlag Init ()
 Initialize: invoked at beginning of run (NOT beginning of event) More...
 
void InitTiming ()
 
fwk::VModule::ResultFlag Run (evt::Event &event)
 Run: invoked once per event. More...
 
ResultFlag RunWithTiming (evt::Event &event)
 
 SdFilterFADCSimulator ()
 
virtual ~SdFilterFADCSimulator ()
 

Static Public Member Functions

static std::string GetResultFlagByName (const ResultFlag flag)
 

Protected Types

enum  InfoLevel { eInfoNone = 0, eInfoFinal = 1, eInfoIntermediate = 2, eInfoDebug = 3 }
 

Protected Attributes

int fInfoLevel = 0
 

Private Member Functions

void FillConvolResult (utl::TimeDistributionD &convRes, const utl::TimeDistributionD &trace, bool IsASCII)
 
template<typename T >
void FillFADCTraces (utl::TimeDistribution< T > &trace, const unsigned int traceLength, const double binSize, const utl::TimeDistributionD &convRes, const double gain, const double tickTime, const double delay, const std::vector< double > &tau, const std::vector< double > &ampl)
 
void NormalizeFrequencyResponse (bool IsASCII)
 
bool ReadImpulseResponse ()
 
 REGISTER_MODULE ("SdFilterFADCSimulatorASCII", SdFilterFADCSimulator)
 
bool SetImpulseResponse_ASCII ()
 
void SimulateUndershoot (utl::TimeDistributionD &trace, const double timeconst, const double ampl=1, const int postfix=0)
 

Private Attributes

std::vector< double > fAmplAn
 
std::vector< double > fAmplDyn
 
double fAmplSaturation
 
double fAnodeMultiplier
 
double fCurrent2VoltageMultiplier
 
double fDynode2AnodeDelay
 
double fDynodeMultiplier
 
std::string filename
 
utl::TraceD fImpulseResponse
 
utl::TraceD fImpulseResponse_ASCII
 
utl::RandomEnginefRandomEngine
 
bool fStoreBaseSignals
 
bool fStoreFilterSignals
 
std::vector< double > fTauAn
 
std::vector< double > fTauDyn
 
double fVoltage2FADCMultiplier
 

Detailed Description

Simulates filter and FADC sampling for SD.

Author
Majid A Mohammed, Alexei Dorofeev, Jim Chye
Tom Paul
Date
April 2004

Definition at line 45 of file Deprecated/UpgradeASCIITests/SdFilterFADCSimulatorASCII/SdFilterFADCSimulator.h.

Member Enumeration Documentation

enum fwk::VModule::InfoLevel
protectedinherited
Enumerator
eInfoNone 
eInfoFinal 
eInfoIntermediate 
eInfoDebug 

Definition at line 125 of file VModule.h.

enum fwk::VModule::ResultFlag
inherited

Flag returned by module methods to the RunController.

Enumerator
eSuccess 

Report success to RunController.

eFailure 

Report failure to RunController, causing RunController to terminate execution.

eBreakLoop 

Break current loop. It works for nested loops too!

eContinueLoop 

Skip remaining modules in the current loop and continue with next iteration of the loop.

Definition at line 60 of file VModule.h.

Different types of version info that can be retrieved from GetVersionInfo.

Enumerator
eFilename 
eRevisionNumber 
eDate 
eTime 
eLastEditor 

Definition at line 110 of file VModule.h.

Constructor & Destructor Documentation

SdFilterFADCSimulator::SdFilterFADCSimulator ( )
virtual SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::~SdFilterFADCSimulator ( )
inlinevirtual

Member Function Documentation

void SdFilterFADCSimulator::FillConvolResult ( utl::TimeDistributionD convRes,
const utl::TimeDistributionD trace,
bool  IsASCII 
)
private
template<typename T >
void SdFilterFADCSimulator::FillFADCTraces ( utl::TimeDistribution< T > &  trace,
const unsigned int  traceLength,
const double  binSize,
const utl::TimeDistributionD convRes,
const double  gain,
const double  tickTime,
const double  delay,
const std::vector< double > &  tau,
const std::vector< double > &  ampl 
)
private
VModule::ResultFlag SdFilterFADCSimulator::Finish ( )
virtual

Finish: invoked at end of the run (NOT end of the event)

This method is for things that should be done at the end of the run (for example, closing files or writing out histograms) {You must override this method in your concrete module}

Implements fwk::VModule.

Definition at line 310 of file Deprecated/UpgradeASCIITests/SdFilterFADCSimulatorASCII/SdFilterFADCSimulator.cc.

References fwk::VModule::eSuccess.

std::string fwk::VModule::GetResultFlagByName ( const ResultFlag  flag)
staticinherited
utl::Stopwatch& fwk::VModule::GetStopwatch ( )
inlineinherited

Definition at line 106 of file VModule.h.

References fwk::VModule::fStopwatch.

const utl::Stopwatch& fwk::VModule::GetStopwatch ( ) const
inlineinherited

Definition at line 107 of file VModule.h.

References fwk::VModule::fStopwatch.

std::string fwk::VModule::GetVersionInfo ( const VersionInfoType  v) const
inherited
VModule::ResultFlag SdFilterFADCSimulator::Init ( )
virtual

Initialize: invoked at beginning of run (NOT beginning of event)

This method is for things that should be done once at the beginning of a run (for example, booking histograms, performing calculations that need to be done only once, initializing parameters) {You must override this method in your concrete module}

Implements fwk::VModule.

Definition at line 76 of file Deprecated/UpgradeASCIITests/SdFilterFADCSimulatorASCII/SdFilterFADCSimulator.cc.

References fwk::VModule::eFailure, ERROR, fwk::VModule::eSuccess, fAmplAn, fAmplDyn, fAmplSaturation, fAnodeMultiplier, fCurrent2VoltageMultiplier, fDynode2AnodeDelay, fDynodeMultiplier, filename, fRandomEngine, fStoreBaseSignals, fStoreFilterSignals, fTauAn, fTauDyn, fVoltage2FADCMultiplier, utl::Branch::GetChild(), utl::Branch::GetData(), utl::Branch::GetTopBranch(), INFO, utl::ms, NormalizeFrequencyResponse(), ReadImpulseResponse(), SetImpulseResponse_ASCII(), utl::StringEquivalent(), and galactic::volt.

void fwk::VModule::InitTiming ( )
inlineinherited

Definition at line 95 of file VModule.h.

References fwk::VModule::fStopwatch, and utl::Stopwatch::Reset().

void SdFilterFADCSimulator::NormalizeFrequencyResponse ( bool  IsASCII)
private
bool SdFilterFADCSimulator::ReadImpulseResponse ( )
private
SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::REGISTER_MODULE ( "SdFilterFADCSimulatorASCII"  ,
SdFilterFADCSimulator   
)
private
VModule::ResultFlag SdFilterFADCSimulator::Run ( evt::Event event)
virtual
ResultFlag fwk::VModule::RunWithTiming ( evt::Event event)
inlineinherited
bool SdFilterFADCSimulator::SetImpulseResponse_ASCII ( )
private
void SdFilterFADCSimulator::SimulateUndershoot ( utl::TimeDistributionD trace,
const double  timeconst,
const double  ampl = 1,
const int  postfix = 0 
)
private

The SimulateUndershoot function applies a high pass filter to the trace. A certain number of bins can be appended to the trace.

Definition at line 497 of file Deprecated/UpgradeASCIITests/SdFilterFADCSimulatorASCII/SdFilterFADCSimulator.cc.

References fAmplSaturation, fCurrent2VoltageMultiplier, utl::TimeDistribution< T >::GetBinning(), utl::TimeDistribution< T >::GetStart(), utl::TimeDistribution< T >::GetStop(), and galactic::volt.

Referenced by FillFADCTraces().

Member Data Documentation

std::vector<double> SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fAmplAn
private
std::vector<double> SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fAmplDyn
private
double SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fAmplSaturation
private
double SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fAnodeMultiplier
private
double SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fCurrent2VoltageMultiplier
private
double SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fDynode2AnodeDelay
private
double SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fDynodeMultiplier
private
std::string SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::filename
private
utl::TraceD SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fImpulseResponse
private
utl::TraceD SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fImpulseResponse_ASCII
private
int fwk::VModule::fInfoLevel = 0
protectedinherited
utl::RandomEngine* SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fRandomEngine
private
bool SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fStoreBaseSignals
private
bool SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fStoreFilterSignals
private
std::vector<double> SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fTauAn
private
std::vector<double> SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fTauDyn
private
double SdFilterFADCSimulatorASCII::SdFilterFADCSimulator::fVoltage2FADCMultiplier
private

The documentation for this class was generated from the following files:

, generated on Tue Sep 26 2023.