TTemplateConvolveAnalysedPulse Class Reference

#include <TTemplateConvolveAnalysedPulse.h>

Inheritance diagram for TTemplateConvolveAnalysedPulse:
TAnalysedPulse TObject

List of all members.

Public Types

typedef std::vector< double > SamplesVector

Public Member Functions

 TTemplateConvolveAnalysedPulse ()
 Needed by ROOT but not expected to be used.
 TTemplateConvolveAnalysedPulse (const IDs::source &sourceID, const TPulseIslandID &parentID, const TPulseIsland *parentTPI)
 Construct a TTemplateConvolveAnalysedPulse.
virtual ~TTemplateConvolveAnalysedPulse ()
virtual void Copy (TObject &rhs) const
virtual void Draw (const TH1F *tpi_pulse) const
 @brief overload the TAnalysedPulse::Draw method
void Reset (Option_t *o="")
 Clear the TAP. This will probably not be used.
Getters



double GetIntegralRatio () const
int GetNPeaks () const
int GetPeakRank () const
const TTemplateGetTemplate () const
Setters



void SetNPeaks (int val)
void SetPeakRank (int val)
void SetTimeOffset (double val)
void SetAmplitudeScale (double val)
void SetIntegralRatio (double val)
void SetQuadraticFit (double a, double b, double c)
void SetEnergyConvolve (const SamplesVector &r)
void SetTimeConvolve (const SamplesVector &r)
void SetTemplate (TTemplate *val)
Getters



TPulseIslandID GetParentID () const
int GetTPILength () const
double GetAmplitude () const
double GetTime () const
double GetIntegral () const
double GetEnergy () const
double GetPedestal () const
double GetTriggerTime () const
const IDs::sourceGetSource () const
Setters

The TAP generators will set whatever TAP values it must through these methods. Not all need be set; the default values are obviously unphysical and several Sanity methods are provided to check if a value was set later in the analysis.



void SetParentID (const TPulseIslandID &val)
void SetTPILength (const int &val)
void SetAmplitude (const double &val)
void SetTime (const double &val)
void SetIntegral (const double &val)
void SetEnergy (const double &val)
void SetPedestal (const double &val)
void SetTriggerTime (const double &val)
void SetParentTPIProperties (const TPulseIslandID &id, const TPulseIsland *parent)
Sanity



bool IsParentIDSet () const
bool IsTPILengthSet () const
bool IsAmplitudeSet () const
bool IsTimeSet () const
bool IsIntegralSet () const
bool IsEnergySet () const
bool IsPedestalSet () const
bool IsTriggerTimeSet () const

Private Member Functions

 ClassDef (TTemplateConvolveAnalysedPulse, 2)

Private Attributes

int fNPeaks
int fPeakRank
double fIntegralRatio
double fQuad
double fLinear
double fConstant
double fTimeOffset
double fAmplitudeScale
TRef fTemplate
SamplesVector fEnergySamples
SamplesVector fTimeSamples

Detailed Description

Definition at line 13 of file TTemplateConvolveAnalysedPulse.h.


Member Typedef Documentation

typedef std::vector<double> TTemplateConvolveAnalysedPulse::SamplesVector

Definition at line 16 of file TTemplateConvolveAnalysedPulse.h.


Constructor & Destructor Documentation

TTemplateConvolveAnalysedPulse::TTemplateConvolveAnalysedPulse (  ) 

Needed by ROOT but not expected to be used.

Definition at line 10 of file TTemplateConvolveAnalysedPulse.cpp.

00010                                                               :TAnalysedPulse(),
00011       fNPeaks(0), fPeakRank(0), fIntegralRatio(0){}

TTemplateConvolveAnalysedPulse::TTemplateConvolveAnalysedPulse ( const IDs::source sourceID,
const TPulseIslandID parentID,
const TPulseIsland parentTPI 
)

Construct a TTemplateConvolveAnalysedPulse.

Same signature as for TAnalysedPulse so that MakeNewTAP can create these specialised TAPs

Definition at line 13 of file TTemplateConvolveAnalysedPulse.cpp.

00014                                                                                                 :
00015             TAnalysedPulse(sourceID,parentID,parentTPI),
00016       fNPeaks(0), fPeakRank(0), fIntegralRatio(0)
00017 {}

TTemplateConvolveAnalysedPulse::~TTemplateConvolveAnalysedPulse (  )  [virtual]

Definition at line 19 of file TTemplateConvolveAnalysedPulse.cpp.

00019                                                                {
00020 }


Member Function Documentation

TTemplateConvolveAnalysedPulse::ClassDef ( TTemplateConvolveAnalysedPulse  ,
 
) [private]
virtual void TTemplateConvolveAnalysedPulse::Copy ( TObject rhs  )  const [inline, virtual]

Reimplemented from TAnalysedPulse.

Definition at line 31 of file TTemplateConvolveAnalysedPulse.h.

References fAmplitudeScale, fConstant, fIntegralRatio, fLinear, fNPeaks, fPeakRank, fQuad, and fTimeOffset.

00031                                           {
00032          TAnalysedPulse::Copy(rhs);
00033          if(rhs.InheritsFrom(Class())){
00034            TTemplateConvolveAnalysedPulse* tap=static_cast<TTemplateConvolveAnalysedPulse*>(&rhs);
00035             tap->fNPeaks       =fNPeaks;
00036             tap->fPeakRank     =fPeakRank;
00037             tap->fIntegralRatio=fIntegralRatio;
00038             tap->fQuad=fQuad;
00039             tap->fLinear=fLinear;
00040             tap->fConstant=fConstant;
00041             tap->fTimeOffset=fTimeOffset;
00042             tap->fAmplitudeScale=fAmplitudeScale;
00043          }
00044       }

void TTemplateConvolveAnalysedPulse::Draw ( const TH1F *  tpi_pulse  )  const [virtual]

@brief overload the TAnalysedPulse::Draw method

make the energy (template convolution) waveform

make the time (second derivative of the energy) waveform

Reimplemented from TAnalysedPulse.

Definition at line 22 of file TTemplateConvolveAnalysedPulse.cpp.

References fAmplitudeScale, fConstant, fEnergySamples, fLinear, fQuad, fTimeOffset, fTimeSamples, TAnalysedPulse::GetAmplitude(), TAnalysedPulse::GetPedestal(), SetupRecord::GetPolarity(), EventNavigator::GetSetupRecord(), TAnalysedPulse::GetSource(), TAnalysedPulse::GetTime(), and functions::VectorToHist().

00022                                                                    {
00023 
00024    // make sure theres a TPI
00025    if(!tpi_pulse) return;
00026 
00027    std::string name(tpi_pulse->GetName());
00028 
00030    TH1F* energy_hist=functions::VectorToHist(fEnergySamples,name+"_energy","Convolution with template");
00031 
00033    TH1F* time_hist=functions::VectorToHist(fTimeSamples,name+"_time","First derivative of convolution with template");
00034     
00035    //TMarker* marker=new TMarker(GetTime(), GetAmplitude()+10, 23);
00036    int polarity=EventNavigator::GetSetupRecord().GetPolarity(GetSource().Channel());
00037    double bottom= GetPedestal() - (polarity>0?0:GetAmplitude());
00038    double top= GetPedestal() + (polarity>0?GetAmplitude():0);
00039    TLine* line=new TLine(GetTime(), bottom, GetTime(), top);
00040    line->SetLineColor(kRed);
00041    tpi_pulse->GetListOfFunctions()->Add(line->Clone());
00042 
00043    line->SetX1(fTimeOffset);
00044    line->SetX2(fTimeOffset);
00045    line->SetY1(0);
00046    line->SetY2(fAmplitudeScale);
00047 
00048    energy_hist->GetListOfFunctions()->Add(line);
00049    time_hist->GetListOfFunctions()->Add(line->Clone());
00050 
00051    TPaveText* text_b=new TPaveText(0.7,0.60,0.9,0.9,"NB NDC");
00052    text_b->AddText(Form("A = %g",GetAmplitude()));
00053    text_b->AddText(Form("t = %g",GetTime()));
00054    text_b->AddText(Form("a = %g",fQuad));
00055    text_b->AddText(Form("b = %g",fLinear));
00056    text_b->AddText(Form("c = %g",fConstant));
00057    text_b->SetFillColor(kWhite);
00058    text_b->SetBorderSize(1);
00059    energy_hist->GetListOfFunctions()->Add(text_b);
00060 
00061    TF1* fit=new TF1("Fit","[0]*(x-[3])**2+[1]*(x-[3])+[2]", 0 , energy_hist->GetNbinsX());
00062    fit->SetParameter(0,fQuad);
00063    fit->SetParameter(1,fLinear);
00064    fit->SetParameter(2,fConstant);
00065    fit->SetParameter(3,fTimeOffset );
00066    energy_hist->GetListOfFunctions()->Add(fit);
00067    energy_hist->Write();
00068    time_hist->Write();
00069 
00070    //tap_pulse->Write();
00071    
00072 }

double TAnalysedPulse::GetAmplitude (  )  const [inline, inherited]
double TAnalysedPulse::GetEnergy (  )  const [inline, inherited]

Definition at line 103 of file TAnalysedPulse.h.

References TAnalysedPulse::fEnergy.

Referenced by PulseViewer::GetParameterValue(), and TME_Al50_EvdE::ProcessEntry().

00103 {return fEnergy;};

double TAnalysedPulse::GetIntegral (  )  const [inline, inherited]

Definition at line 102 of file TAnalysedPulse.h.

References TAnalysedPulse::fIntegral.

Referenced by PulseViewer::GetParameterValue(), and PlotIntegralRatios::ProcessEntry().

00102 {return fIntegral;};

double TTemplateConvolveAnalysedPulse::GetIntegralRatio (  )  const [inline]

Definition at line 48 of file TTemplateConvolveAnalysedPulse.h.

References fIntegralRatio.

Referenced by PulseViewer::GetParameterValue().

00048 {return fIntegralRatio;}

int TTemplateConvolveAnalysedPulse::GetNPeaks (  )  const [inline]

Definition at line 49 of file TTemplateConvolveAnalysedPulse.h.

References fNPeaks.

Referenced by PulseViewer::GetParameterValue().

00049 {return fNPeaks;}

TPulseIslandID TAnalysedPulse::GetParentID (  )  const [inline, inherited]
int TTemplateConvolveAnalysedPulse::GetPeakRank (  )  const [inline]

Definition at line 50 of file TTemplateConvolveAnalysedPulse.h.

References fPeakRank.

Referenced by PulseViewer::GetParameterValue().

00050 {return fPeakRank;}

double TAnalysedPulse::GetPedestal (  )  const [inline, inherited]
const IDs::source& TAnalysedPulse::GetSource (  )  const [inline, inherited]
const TTemplate* TTemplateConvolveAnalysedPulse::GetTemplate (  )  const [inline]

Definition at line 51 of file TTemplateConvolveAnalysedPulse.h.

References fTemplate.

00051 {return (const TTemplate*) fTemplate.GetObject();}

double TAnalysedPulse::GetTime (  )  const [inline, inherited]
int TAnalysedPulse::GetTPILength (  )  const [inline, inherited]

Definition at line 99 of file TAnalysedPulse.h.

References TAnalysedPulse::fTPILength.

Referenced by TTemplateFitAnalysedPulse::GetHisto(), and PulseViewer::GetParameterValue().

00099 {return fTPILength;};

double TAnalysedPulse::GetTriggerTime (  )  const [inline, inherited]

Definition at line 105 of file TAnalysedPulse.h.

References TAnalysedPulse::fTriggerTime.

Referenced by PulseViewer::GetParameterValue().

00105 {return fTriggerTime;};

bool TAnalysedPulse::IsAmplitudeSet (  )  const [inline, inherited]

Definition at line 135 of file TAnalysedPulse.h.

References TAnalysedPulse::fAmplitude, and TAnalysedPulse::fDefaultValue.

00135 {return fAmplitude!=fDefaultValue;};

bool TAnalysedPulse::IsEnergySet (  )  const [inline, inherited]

Definition at line 138 of file TAnalysedPulse.h.

References TAnalysedPulse::fDefaultValue, and TAnalysedPulse::fEnergy.

00138 {return fEnergy!=fDefaultValue;};

bool TAnalysedPulse::IsIntegralSet (  )  const [inline, inherited]

Definition at line 137 of file TAnalysedPulse.h.

References TAnalysedPulse::fDefaultValue, and TAnalysedPulse::fIntegral.

00137 {return fIntegral!=fDefaultValue;};

bool TAnalysedPulse::IsParentIDSet (  )  const [inline, inherited]

Definition at line 133 of file TAnalysedPulse.h.

References TAnalysedPulse::fDefaultValue, and TAnalysedPulse::fParentID.

00133 {return fParentID!=fDefaultValue;};

bool TAnalysedPulse::IsPedestalSet (  )  const [inline, inherited]

Definition at line 139 of file TAnalysedPulse.h.

References TAnalysedPulse::fDefaultValue, and TAnalysedPulse::fPedestal.

00139 {return fPedestal!=fDefaultValue;};

bool TAnalysedPulse::IsTimeSet (  )  const [inline, inherited]

Definition at line 136 of file TAnalysedPulse.h.

References TAnalysedPulse::fDefaultValue, and TAnalysedPulse::fTime.

00136 {return fTime!=fDefaultValue;};

bool TAnalysedPulse::IsTPILengthSet (  )  const [inline, inherited]

Definition at line 134 of file TAnalysedPulse.h.

References TAnalysedPulse::fDefaultValue, and TAnalysedPulse::fTPILength.

00134 {return fTPILength!=fDefaultValue;};

bool TAnalysedPulse::IsTriggerTimeSet (  )  const [inline, inherited]

Definition at line 140 of file TAnalysedPulse.h.

References TAnalysedPulse::fDefaultValue, and TAnalysedPulse::fTriggerTime.

00140 {return fTriggerTime!=fDefaultValue;};

void TAnalysedPulse::Reset ( Option_t *  o = ""  )  [inherited]
void TAnalysedPulse::SetAmplitude ( const double &  val  )  [inline, inherited]
void TTemplateConvolveAnalysedPulse::SetAmplitudeScale ( double  val  )  [inline]

Definition at line 59 of file TTemplateConvolveAnalysedPulse.h.

References fAmplitudeScale.

Referenced by TemplateConvolveAPGenerator::ProcessPulses().

00059 { fAmplitudeScale=val; }

void TAnalysedPulse::SetEnergy ( const double &  val  )  [inline, inherited]

Definition at line 123 of file TAnalysedPulse.h.

References TAnalysedPulse::fEnergy.

00123 { fEnergy=val;};

void TTemplateConvolveAnalysedPulse::SetEnergyConvolve ( const SamplesVector r  )  [inline]

Definition at line 62 of file TTemplateConvolveAnalysedPulse.h.

References fEnergySamples.

Referenced by TemplateConvolveAPGenerator::ProcessPulses().

00062 {fEnergySamples=r;};

void TAnalysedPulse::SetIntegral ( const double &  val  )  [inline, inherited]
void TTemplateConvolveAnalysedPulse::SetIntegralRatio ( double  val  )  [inline]

Definition at line 60 of file TTemplateConvolveAnalysedPulse.h.

References fIntegralRatio.

Referenced by TemplateConvolveAPGenerator::ProcessPulses().

00060 {fIntegralRatio=val;}

void TTemplateConvolveAnalysedPulse::SetNPeaks ( int  val  )  [inline]

Definition at line 56 of file TTemplateConvolveAnalysedPulse.h.

References fNPeaks.

Referenced by TemplateConvolveAPGenerator::ProcessPulses().

00056 {fNPeaks=val;}

void TAnalysedPulse::SetParentID ( const TPulseIslandID val  )  [inline, inherited]

Definition at line 118 of file TAnalysedPulse.h.

References TAnalysedPulse::fParentID.

Referenced by TAnalysedPulse::SetParentTPIProperties().

00118 { fParentID=val;};

void TAnalysedPulse::SetParentTPIProperties ( const TPulseIslandID id,
const TPulseIsland parent 
) [inherited]

Definition at line 65 of file TAnalysedPulse.cpp.

References TPulseIsland::GetClockTickInNs(), TPulseIsland::GetPulseLength(), TPulseIsland::GetTimeStamp(), TAnalysedPulse::SetParentID(), TAnalysedPulse::SetTPILength(), and TAnalysedPulse::SetTriggerTime().

Referenced by TAnalysedPulse::TAnalysedPulse().

00066                                                                       {
00067   SetParentID(id);
00068   if(!pulse) {
00069     std::cerr<<"NULL pointer to TPulseIsland passed as parent for TAnalysedPulse."<<std::endl;
00070     return;
00071   }
00072   SetTPILength(pulse->GetPulseLength());
00073   SetTriggerTime(pulse->GetTimeStamp()*pulse->GetClockTickInNs());
00074 }

void TTemplateConvolveAnalysedPulse::SetPeakRank ( int  val  )  [inline]

Definition at line 57 of file TTemplateConvolveAnalysedPulse.h.

References fPeakRank.

Referenced by TemplateConvolveAPGenerator::ProcessPulses().

00057 { fPeakRank=val; }

void TAnalysedPulse::SetPedestal ( const double &  val  )  [inline, inherited]

Definition at line 124 of file TAnalysedPulse.h.

References TAnalysedPulse::fPedestal.

Referenced by TemplateConvolveAPGenerator::ProcessPulses().

00124 { fPedestal=val;};

void TTemplateConvolveAnalysedPulse::SetQuadraticFit ( double  a,
double  b,
double  c 
) [inline]

Definition at line 61 of file TTemplateConvolveAnalysedPulse.h.

References fConstant, fLinear, and fQuad.

Referenced by TemplateConvolveAPGenerator::ProcessPulses().

00061 {fQuad=a; fLinear=b; fConstant=c;};

void TTemplateConvolveAnalysedPulse::SetTemplate ( TTemplate val  )  [inline]

Definition at line 64 of file TTemplateConvolveAnalysedPulse.h.

References fTemplate.

Referenced by TemplateConvolveAPGenerator::ProcessPulses().

00064 {fTemplate=val;}

void TAnalysedPulse::SetTime ( const double &  val  )  [inline, inherited]
void TTemplateConvolveAnalysedPulse::SetTimeConvolve ( const SamplesVector r  )  [inline]

Definition at line 63 of file TTemplateConvolveAnalysedPulse.h.

References fTimeSamples.

Referenced by TemplateConvolveAPGenerator::ProcessPulses().

00063 {fTimeSamples=r;};

void TTemplateConvolveAnalysedPulse::SetTimeOffset ( double  val  )  [inline]

Definition at line 58 of file TTemplateConvolveAnalysedPulse.h.

References fTimeOffset.

Referenced by TemplateConvolveAPGenerator::ProcessPulses().

00058 { fTimeOffset=val; }

void TAnalysedPulse::SetTPILength ( const int &  val  )  [inline, inherited]

Definition at line 119 of file TAnalysedPulse.h.

References TAnalysedPulse::fTPILength.

Referenced by TAnalysedPulse::SetParentTPIProperties().

00119 { fTPILength=val;};

void TAnalysedPulse::SetTriggerTime ( const double &  val  )  [inline, inherited]

Definition at line 125 of file TAnalysedPulse.h.

References TAnalysedPulse::fTriggerTime.

Referenced by TAnalysedPulse::SetParentTPIProperties().

00125 { fTriggerTime=val;};


Member Data Documentation

Definition at line 75 of file TTemplateConvolveAnalysedPulse.h.

Referenced by Copy(), Draw(), and SetAmplitudeScale().

Definition at line 74 of file TTemplateConvolveAnalysedPulse.h.

Referenced by Copy(), Draw(), and SetQuadraticFit().

Definition at line 77 of file TTemplateConvolveAnalysedPulse.h.

Referenced by Draw(), and SetEnergyConvolve().

Definition at line 73 of file TTemplateConvolveAnalysedPulse.h.

Referenced by Copy(), GetIntegralRatio(), and SetIntegralRatio().

Definition at line 74 of file TTemplateConvolveAnalysedPulse.h.

Referenced by Copy(), Draw(), and SetQuadraticFit().

Definition at line 71 of file TTemplateConvolveAnalysedPulse.h.

Referenced by Copy(), GetNPeaks(), and SetNPeaks().

Definition at line 72 of file TTemplateConvolveAnalysedPulse.h.

Referenced by Copy(), GetPeakRank(), and SetPeakRank().

Definition at line 74 of file TTemplateConvolveAnalysedPulse.h.

Referenced by Copy(), Draw(), and SetQuadraticFit().

Definition at line 76 of file TTemplateConvolveAnalysedPulse.h.

Referenced by GetTemplate(), and SetTemplate().

Definition at line 75 of file TTemplateConvolveAnalysedPulse.h.

Referenced by Copy(), Draw(), and SetTimeOffset().

Definition at line 78 of file TTemplateConvolveAnalysedPulse.h.

Referenced by Draw(), and SetTimeConvolve().


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

Generated on 15 Jun 2016 for AlcapDAQ by  doxygen 1.6.1