#ifndef BRAT_BrLocalTrackingModule #define BRAT_BrLocalTrackingModule // $Id: BrLocalTrackingModule.h,v 1.1.1.1 2001/06/21 14:55:11 hagel Exp $ // $Log: BrLocalTrackingModule.h,v $ // Revision 1.1.1.1 2001/06/21 14:55:11 hagel // Initial revision of brat2 // // Revision 1.2 1999/12/23 15:58:56 videbaek // Enhanched use of ClonesArrays for temporary data. i.e. tracks hits // so they become accessible to the outside. // // Revision 1.1 1999/03/07 22:37:38 videbaek // Added DetectorHit and BrLocalTrackingModule as a more general way to // deal with local tracks and hits. Initial insertion. Not fully debugged. // /////////////////////////////////////////////////////////////////////// // // // BrLocalTrackingModule // // // // Brat Modules for local tracking in detectors; // // Presently only implemented for TPC and DriftChambers. // // // // detector geometry // // // // Author : F.Videbaek videbaek@bnl.gov // // Created : 02/Mar/1999 // // Changed : December 99 // Add additional access to intermediate results // // // // /////////////////////////////////////////////////////////////////////// // BRAHMS classes #if !defined BRAT_BrModule # include "BrModule.h" #endif #if !defined BRAT_BrTrackDefines # include "BrTrackDefines.h" #endif #if !defined BRAT_BrClonesArray # include "BrClonesArray.h" #endif #if !defined BRAT_BrLocalTrack # include "BrLocalTrack.h" #endif class BrDataTable; class BrLocalTrackingModule : public BrModule { public: BrLocalTrackingModule(); BrLocalTrackingModule(Char_t *Name,Char_t *Title); virtual ~BrLocalTrackingModule(); virtual BrClonesArray* GetDetectorHits() const {return fDetectorHits;} virtual Int_t GetNoDetectorHits() const {return fNDetectorHits;} virtual BrClonesArray* GetLocalTracks() const {return fLocalTracks;} virtual Int_t GetNoLocalTracks() const {return fNLocalTracks;} virtual BrClonesArray* GetTrackGroups() const {return fTrackGroups;} virtual Int_t GetNoTrackGroups() const {return fNTrackGroups;} private: protected: void Clear(); void CreateClonesArrays(); void DeleteBadTrack(); void FillHitContainer(Int_t imod, TObjArray *SelectedHits); void FitLocalTrack(BrLocalTrack* localtrack, Float_t *sol, Float_t *covar, Float_t &chisq, Int_t &ifail); void FillTrackGroups(Int_t nrow); void FillDetectorTracks(BrEventNode* OutputNode); void FillLocalTracks(BrEventNode* OutputNode); void RemoveTrack(BrLocalTrack *loctra_p); BrClonesArray *fDetectorHits; // Detector Hit list Int_t fNDetectorHits; // No of hits in Clones array BrClonesArray *fLocalTracks; // Local tracks (internal usage) Int_t fNLocalTracks; // No of Local Tracks BrClonesArray *fTrackHitAsco; // Associated array between Detectortracks and detectorHits. BrClonesArray *fTrackGroups; Int_t fNTrackGroups; // Number of TrackGroups (i.e. tracks judged tobe identical) BrDataTable *fDetectorTracks; // Detector Track list ClassDef(BrLocalTrackingModule,1) // BRAHMS Local Tracking Module Interface }; #endif