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&)
       |