BrDigitizeTPC
class description - source file - inheritance tree
public:
BrDigitizeTPC BrDigitizeTPC()
BrDigitizeTPC BrDigitizeTPC(const Char_t* Name, const Char_t* Title)
BrDigitizeTPC BrDigitizeTPC(BrDigitizeTPC&)
virtual void ~BrDigitizeTPC()
static TClass* Class()
virtual void DefineHistograms()
void DrawGeantHits()
virtual void Event(BrEventNode* InputTable, BrEventNode* OutputTable)
Float_t GetAbsorp() const
Float_t GetAdcCut() const
Float_t GetDedxToNeff() const
BrDetectorParamsTPC* GetDetectorParamsTPC()
BrDetectorVolume* GetDetectorVolume() const
Int_t GetMinNbins() const
Float_t GetN0_pad_to_tot() const
Float_t GetNoise() const
Float_t GetTauScale() const
Float_t GetTshift() const
Bool_t GetUseGongTimeResp() const
Bool_t GetUseHyperbolic() const
virtual void Init()
virtual TClass* IsA() const
void ListDetectorParameters()
virtual void ListEventStatistics()
void SetAbsorp(Float_t value)
void SetAdcCut(Float_t value)
void SetDedxToNeff(Float_t value)
void SetMinNbins(Int_t value)
void SetN0_pad_to_tot(Float_t value)
void SetNoise(Float_t value)
void SetTauScale(Float_t value)
void SetTshift(Float_t value)
void SetUseGongTimeResp(Bool_t value)
void SetUseHyperbolic(Bool_t value)
virtual void ShowMembers(TMemberInspector& insp, char* parent)
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
private:
TH1F* hNGeantHits number of Geant hits per event
TH1F* hNSequences number of TPC sequences per event
TH1F* hNTimebins number of timebins per sequence
TH1F* hAdcDist ADC distribution
TH1F* hAdcSumDist ADC sum distribution, per sequence
TH1F* hN0Dist number of electrons per cluster
TH1F* hSigmaTDist distribution of transverse cluster widths
TH1F* hSigmaLDist distribution of longitudinal cluster widths
TH1F* hSigmaLTotDist distribution of longitudinal cluster widths
TH1F* hSigmaTRes distribution of transverse "residual"
TH1F* hSigmaLRes distribution of longitudinal "residual"
TH1F* hPadCentroid distribution of pad centroids
TH1F* hSequenceCentroid distribution of sequence centroids
TH1F* hSequenceCentroidDecimal distribution of sequence centroids
TH1F* hYmiss difference in time between cluster and sequence
TH1F* hXDistToHit difference in X between hit and pad centroid
TH1F* hYDistToHit difference in Y between hit and time centroid
TProfile* hPadShape profile of cluster, in pad direction
TProfile* hShapeResp shaper response
TH2F* hTimeCluster2D time shape of original cluster
TH2F* hTimeShape2D time shape of folded cluster
TH2F* hPadShape2D time shape of pad
TProfile* hSequenceShape profile of sequence, in timebins
TH2F* hSequenceShapeY2D profile of sequence vs driftlength
TH2F* hSequenceShapeYsl2D profile of sequence vs driftlength
TProfile* hSigmaTVsY transverse cluster width vs drift length
TProfile* hSigmaTVsXsl transverse cluster width vs X slope
TProfile* hSigmaLVsY longitudinal cluster width vs drift length
TProfile* hSigmaLTotVsY shaped longitudinal cluster width vs driftlength
TH2F* hSigmaLTotVsY2D 2D hist of longitudinal cluster width vs driftlength
TProfile* hSigmaLTotVsYsl shaped longitudinal cluster width vs Y slope
TH2F* hSigmaLTotVsYsl2D 2D hist of longitudinal cluster width vs Y slope
TProfile* hSigmaTResVsY transverse "residual" vs Y
TProfile* hSigmaLResVsY longitudinal "residual" vs Y
TProfile* hSigmaTResVsXsl transverse "residual" vs Xslope
TProfile* hSigmaLResVsYsl longitudinal "residual" vs Yslope
TProfile* hSigmaTResVsN0 trans res vs cluster charge
TProfile* hSigmaLResVsN0 long res vs cluster charge
BrDetectorParamsTPC* fParams_p
BrDetectorVolume* fVolumeParams_p DetectorVolume
BrDataTable* fGeantHits ! geanthits used for Display purposes
Int_t fNumDigHits
BrDetectorTPC* fDetectorNode
Float_t fAdcCut cut value in accepting a time bin adc-value
Float_t fNoise noise added following digitization
Int_t fNpads Number of pads. Set in Init() from BrDetectorParamsTPC
Int_t fNbuckets Number of Time buckets. Set in Init() from BrDetectorParamsTPC
Float_t fDedxTon0 Conversion of dedx to effective number of electron clusters
Bool_t fUseGongTimeResp use realistic time response
Bool_t fUseHyperbolic use hyperbolic pad response
Float_t fTauScale use if fUseGongTimeResp set to kTRUE
Float_t fTshift use if fUseGongTimeResp set to kTRUE
Float_t fN0_pad_to_tot ratio of tot.no.e- / e- per pad
Float_t fAbsorp absorption in the gas
Int_t fMinNbins Minimum number of bins in sequence
Float_t** fAdcVal ! internal storage of 2D array.
Float_t* fDiffused_array
Float_t* fShaped_array
Float_t* fFinal_array
Float_t* fShaper_lookup_array
The BRDigitize TPC is the digitization module for the
pad TPC's. The module performs a slow digitization using the
geant hit information. The output is in tables of the BrTPCsequence
i.e. a structure that very closely resembles the output from the
TPC front ends.
The Detector geometry comes from two sources
BrDetectorVolume which is set using the BrGeometryDbManager
and from the BrDetectorParamsTPC
The method has the standard Module entry points implemented
Init()
Event()
DefineHistograms() (called from Book()
Note Init() must be called explicitely (Nov 2000). It has been removed from the
constructor.
December 1999
The conversion between intrincis (Geant coordinates) and Pad Time
etc are now done through a set of BrDetectorParamsTPC methods. This
hides all explicit references to geometry in this code, and makes it much
more aminable to introduction of dabatbase calls.
January 2000
Modifications made to deal with dynamic allocation of adc value rather than fixed
size. A compile flag DYNAMIC is used to enable this feature.
All direct references to intrinsic to pad,bucket now removed. All is
converted through calls to BrDetectorParamsTPC methods.
Note that the drift now goes towards positive Y values (up), and that
the pads are counted from the postive X towards lower values.
August 2000
The non dynamic code is scheduled to be removed soon
BrDigitizeTPC()
Default Constructor. Should only be used by ROOT internal. Use
BrDigitize(Title,name) instead.
BrDigitizeTPC(const Char_t *Name, const Char_t *Title)
: BrModule(Name, Title)
Constructor to call from user code.
void ListDetectorParameters()
List the current value of the digitization parameters on
standard out.
ListEventStatistics()
~BrDigitizeTPC()
void Init()
The init member function/method is used. Intended to be used for setting
up internals that cannot be done at the time of module construction or
after parameters has been modified.
Job-level initialisation
void DefineHistograms()
Book histograms (called from BrModule::Book)
void Event(BrEventNode* InputTable, BrEventNode* OutputTable)
Event method to be called once per event.
This performes the actual slow simulation of the hits on the TPC.
The code has been changed (Feb 99) to be able to create sequences of
TPC data. The algorithm does not complete mimic the one presently
implemented in the
readout board. The conditions to create an adc cluster is
- #consequtive bins with AdcValue above fAdcCut must be two
- once a single bins goes below the cut the sequence is generated.
This later condition is strciter than the readoutboard which requires
2 (3?) bins below the cut.
void DrawGeantHits()
Inline Functions
BrDetectorParamsTPC* GetDetectorParamsTPC()
BrDetectorVolume* GetDetectorVolume() const
void SetNoise(Float_t value)
Float_t GetNoise() const
void SetAdcCut(Float_t value)
Float_t GetAdcCut() const
void SetDedxToNeff(Float_t value)
Float_t GetDedxToNeff() const
void SetUseGongTimeResp(Bool_t value)
Bool_t GetUseGongTimeResp() const
void SetUseHyperbolic(Bool_t value)
Bool_t GetUseHyperbolic() const
void SetTauScale(Float_t value)
Float_t GetTauScale() const
void SetTshift(Float_t value)
Float_t GetTshift() const
void SetN0_pad_to_tot(Float_t value)
Float_t GetN0_pad_to_tot() const
void SetAbsorp(Float_t value)
Float_t GetAbsorp() const
void SetMinNbins(Int_t value)
Int_t GetMinNbins() const
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
BrDigitizeTPC BrDigitizeTPC(BrDigitizeTPC&)
|