X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TRD%2FAliTRDtrackerV1.h;h=882b805b35113d58aa6cc6200392c97b6045194d;hb=f0e207ce93137373cd6f114aafecc4891e7f6636;hp=6a32e742f0c7a753b091845c63f987cd89a2049f;hpb=e7542a7e5285de3621a787b1350243a2ca8c7e94;p=u%2Fmrichter%2FAliRoot.git diff --git a/TRD/AliTRDtrackerV1.h b/TRD/AliTRDtrackerV1.h index 6a32e742f0c..882b805b351 100644 --- a/TRD/AliTRDtrackerV1.h +++ b/TRD/AliTRDtrackerV1.h @@ -58,7 +58,7 @@ public: kOwner = BIT(14) // owner of clusters ,kRemoveContainers = BIT(15) // delete containers after usage }; - enum{ + enum ETRDtrackerV1const { kMaxLayersPerSector = 1000 , kMaxTimeBinIndex = 216 , kTrackingSectors = 18 @@ -68,13 +68,20 @@ public: , kMaxTracksStack = 100 , kNConfigs = 15 }; - AliTRDtrackerV1(AliTRDReconstructor *rec = NULL); + enum ETRDtrackerV1BetheBloch { + kGeant = 0 + ,kSolid + ,kGas + }; + AliTRDtrackerV1(const AliTRDReconstructor *rec = NULL); virtual ~AliTRDtrackerV1(); //temporary AliTRDtrackingSector* GetTrackingSector(Int_t sec) {return &fTrSec[sec];} Int_t Clusters2Tracks(AliESDEvent *esd); + static ETRDtrackerV1BetheBloch + GetBetheBloch() { return fgBB;} AliCluster* GetCluster(Int_t index) const; AliTRDseedV1* GetTracklet(Int_t index) const; AliKalmanTrack* GetTrack(Int_t index) const; @@ -84,6 +91,7 @@ public: static Int_t GetNTimeBins() { return fgNTimeBins;} static void GetExtrapolationConfig(Int_t iconfig, Int_t planes[2]); static void GetSeedingConfig(Int_t iconfig, Int_t planes[4]); + static TLinearFitter* GetTiltedRiemanFitter(); static TLinearFitter* GetTiltedRiemanFitterConstraint(); static AliRieman* GetRiemanFitter(); @@ -99,6 +107,8 @@ public: Bool_t IsClustersOwner() const { return TestBit(kOwner);} Bool_t HasRemoveContainers() const { return TestBit(kRemoveContainers);} + + static void SetBetheBloch(ETRDtrackerV1BetheBloch bb) {fgBB = bb;} void SetClustersOwner(Bool_t own=kTRUE) {SetBit(kOwner, own); if(!own) fClusters = NULL;} void SetRemoveContainers(Bool_t rm=kTRUE) {SetBit(kRemoveContainers, rm);} @@ -156,7 +166,7 @@ public: private: AliTRDtrackFitterRieman(const AliTRDtrackFitterRieman &); AliTRDtrackFitterRieman &operator=(const AliTRDtrackFitterRieman &); - void UpdateFitters(AliTRDseedV1 * const tracklet); + void UpdateFitters(const AliTRDseedV1 * const tracklet); Bool_t CheckAcceptable(Double_t offset, Double_t slope); Double_t CalculateReferenceX(); @@ -176,10 +186,10 @@ protected: static Bool_t AdjustSector(AliTRDtrackV1 *const track); Double_t BuildSeedingConfigs(AliTRDtrackingChamber **stack, Int_t *configs); Int_t BuildTrackingContainers(); - static Float_t CalculateChi2Z(AliTRDseedV1 *tracklets, Double_t offset, Double_t slope, Double_t xref); + static Float_t CalculateChi2Z(const AliTRDseedV1 *tracklets, Double_t offset, Double_t slope, Double_t xref); Int_t Clusters2TracksSM(Int_t sector, AliESDEvent *esd); Int_t Clusters2TracksStack(AliTRDtrackingChamber **stack, TClonesArray * const esdTrackList); - AliTRDseedV1* GetTracklet(AliTRDtrackV1 *const trk, Int_t plane, Int_t &idx); + AliTRDseedV1* GetTracklet(const AliTRDtrackV1 *const trk, Int_t plane, Int_t &idx); Bool_t GetTrackPoint(Int_t index, AliTrackPoint &p) const; Float_t GetR4Layer(Int_t ly) const { return fR[ly];} Int_t MakeSeeds(AliTRDtrackingChamber **stack, AliTRDseedV1 * const sseed, const Int_t * const ipar); @@ -200,7 +210,6 @@ private: Float_t GetChi2Z(const AliTRDseedV1 *const tracklets) const; Float_t GetChi2Phi(const AliTRDseedV1 *const tracklets) const; -private: const AliTRDReconstructor *fkReconstructor; // reconstructor manager const AliTRDrecoParam *fkRecoParam; // reco param for the current event AliTRDgeometry *fGeom; // Pointer to TRD geometry @@ -211,27 +220,22 @@ private: TClonesArray *fTracksESD; // List of ESD tracks in current SM Float_t fR[kNPlanes]; //! rough radial position of each TRD layer - // should go to the recoParam - static const Double_t fgkMaxChi2; // Max increment in track chi2 - static const Float_t fgkMinClustersInTrack; // Min number of clusters in track - static const Float_t fgkLabelFraction; // Min fraction of same label - static const Double_t fgkMaxSnp; // Maximal snp for tracking - static const Double_t fgkMaxStep; // Maximal step for tracking - // stand alone tracking static Double_t fgTopologicQA[kNConfigs]; // Topologic quality Double_t fTrackQuality[kMaxTracksStack]; // Track quality Int_t fSeedLayer[kMaxTracksStack]; // Seed layer AliTRDchamberTimeBin *fSeedTB[kNSeedPlanes]; // seeding time bin planes Int_t fSieveSeeding; //! Seeding iterator - + Int_t fEventInFile; //! event in file being tracked (debug purposes) + + static ETRDtrackerV1BetheBloch fgBB; // Bethe Bloch method static const Double_t fgkX0[kNPlanes]; // default values for the position of anode wire static Int_t fgNTimeBins; // Timebins per plane in track prolongation static TLinearFitter *fgTiltedRieman; // Fitter for the tilted Rieman fit without vertex constriant static TLinearFitter *fgTiltedRiemanConstrained; // Fitter for the tilted Rieman fit with vertex constraint static AliRieman *fgRieman; // Fitter for the untilted Rieman fit - ClassDef(AliTRDtrackerV1, 5) // TRD tracker - tracklet based tracking + ClassDef(AliTRDtrackerV1, 7) // TRD tracker - tracklet based tracking }; #endif