X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=MUON%2FAliMUONEventReconstructor.h;h=9a3aeec5fb90830acaba2cc68b7c39ad5806c04e;hp=6af4408fa9fe5ed65b4f0f1ff58ab6afa4d19895;hb=a866ac60756cfa8bc56bfa641f69a548ca60182e;hpb=ba5b68dbad9306b74566578566c35c2b9b3c8dbb diff --git a/MUON/AliMUONEventReconstructor.h b/MUON/AliMUONEventReconstructor.h index 6af4408fa9f..9a3aeec5fb9 100644 --- a/MUON/AliMUONEventReconstructor.h +++ b/MUON/AliMUONEventReconstructor.h @@ -5,7 +5,11 @@ /*$Id$*/ -#include +//////////////////////////////////// +// MUON event reconstructor in ALICE +//////////////////////////////////// + +#include class AliMUONHit; class AliMUONHitForRec; @@ -13,6 +17,7 @@ class AliMUONSegment; class TClonesArray; class TFile; class TTree; +class AliMUONRecoEvent; // Constants which should be elsewhere ???? const Int_t kMaxMuonTrackingChambers = 10; @@ -28,60 +33,79 @@ class AliMUONEventReconstructor : public TObject { // Parameters for event reconstruction: public methods // Get and Set, Set to defaults - Double_t GetMinBendingMomentum(void) {return fMinBendingMomentum;} + Double_t GetMinBendingMomentum(void) const {return fMinBendingMomentum;} void SetMinBendingMomentum(Double_t MinBendingMomentum) {fMinBendingMomentum = MinBendingMomentum;} - Double_t GetMaxSigma2Distance(void) {return fMaxSigma2Distance;} + Double_t GetMaxBendingMomentum(void) const {return fMaxBendingMomentum;} + void SetMaxBendingMomentum(Double_t MaxBendingMomentum) {fMaxBendingMomentum = MaxBendingMomentum;} + Double_t GetMaxChi2(void) const {return fMaxChi2;} + void SetMaxChi2(Double_t MaxChi2) {fMaxChi2 = MaxChi2;} + Double_t GetMaxSigma2Distance(void) const {return fMaxSigma2Distance;} void SetMaxSigma2Distance(Double_t MaxSigma2Distance) {fMaxSigma2Distance = MaxSigma2Distance;} - Double_t GetBendingResolution(void) {return fBendingResolution;} + Double_t GetBendingResolution(void) const {return fBendingResolution;} void SetBendingResolution(Double_t BendingResolution) {fBendingResolution = BendingResolution;} - Double_t GetNonBendingResolution(void) {return fNonBendingResolution;} + Double_t GetNonBendingResolution(void) const {return fNonBendingResolution;} void SetNonBendingResolution(Double_t NonBendingResolution) {fNonBendingResolution = NonBendingResolution;} - Double_t GetChamberThicknessInX0(void) {return fChamberThicknessInX0;} + Double_t GetChamberThicknessInX0(void) const {return fChamberThicknessInX0;} void SetChamberThicknessInX0(Double_t ChamberThicknessInX0) {fChamberThicknessInX0 = ChamberThicknessInX0;} - Double_t GetSimpleBValue(void) {return fSimpleBValue;} + Double_t GetSimpleBValue(void) const {return fSimpleBValue;} void SetSimpleBValue(Double_t SimpleBValue) {fSimpleBValue = SimpleBValue;} - Double_t GetSimpleBLength(void) {return fSimpleBLength;} + Double_t GetSimpleBLength(void) const {return fSimpleBLength;} void SetSimpleBLength(Double_t SimpleBLength) {fSimpleBLength = SimpleBLength;} - Double_t GetSimpleBPosition(void) {return fSimpleBPosition;} + Double_t GetSimpleBPosition(void) const {return fSimpleBPosition;} void SetSimpleBPosition(Double_t SimpleBPosition) {fSimpleBPosition = SimpleBPosition;} - Int_t GetRecGeantHits(void) {return fRecGeantHits;} + Int_t GetRecGeantHits(void) const {return fRecGeantHits;} void SetRecGeantHits(Int_t RecGeantHits) {fRecGeantHits = RecGeantHits;} - Double_t GetEfficiency(void) {return fEfficiency;} + Double_t GetEfficiency(void) const {return fEfficiency;} void SetEfficiency(Double_t Efficiency) {fEfficiency = Efficiency;} - Int_t GetPrintLevel(void) {return fPrintLevel;} + Int_t GetPrintLevel(void) const {return fPrintLevel;} void SetPrintLevel(Int_t PrintLevel) {fPrintLevel = PrintLevel;} void SetReconstructionParametersToDefaults(void); // Parameters for GEANT background events - TFile* GetBkgGeantFile(void) {return fBkgGeantFile;} + TFile* GetBkgGeantFile(void) const {return fBkgGeantFile;} void SetBkgGeantFile(Text_t *BkgGeantFileName); // set background file for GEANT hits void NextBkgGeantEvent(void); // next event in background file for GEANT hits // Hits for reconstruction - Int_t GetNHitsForRec(void) {return fNHitsForRec;} // Number + Int_t GetNHitsForRec(void) const {return fNHitsForRec;} // Number // Reconstructed tracks - Int_t GetNRecTracks() {return fNRecTracks;} // Number + Int_t GetNRecTracks() const {return fNRecTracks;} // Number void SetNRecTracks(Int_t NRecTracks) {fNRecTracks = NRecTracks;} - TClonesArray* GetRecTracksPtr(void) {return fRecTracksPtr;} // Array + TClonesArray* GetRecTracksPtr(void) const {return fRecTracksPtr;} // Array + // Reconstructed trigger tracks + Int_t GetNRecTriggerTracks() const {return fNRecTriggerTracks;} // Number + void SetNRecTriggerTracks(Int_t NRecTriggerTracks) {fNRecTriggerTracks = NRecTriggerTracks;} + TClonesArray* GetRecTriggerTracksPtr(void) const {return fRecTriggerTracksPtr;} // Array + // Hits on reconstructed tracks - Int_t GetNRecTrackHits() {return fNRecTrackHits;} // Number + Int_t GetNRecTrackHits() const {return fNRecTrackHits;} // Number void SetNRecTrackHits(Int_t NRecTrackHits) {fNRecTrackHits = NRecTrackHits;} - TClonesArray* GetRecTrackHitsPtr(void) {return fRecTrackHitsPtr;} // Array + TClonesArray* GetRecTrackHitsPtr(void) const {return fRecTrackHitsPtr;} // Array // Functions - Double_t GetImpactParamFromBendingMomentum(Double_t BendingMomentum); - Double_t GetBendingMomentumFromImpactParam(Double_t ImpactParam); + Double_t GetImpactParamFromBendingMomentum(Double_t BendingMomentum) const; + Double_t GetBendingMomentumFromImpactParam(Double_t ImpactParam) const; void EventReconstruct(void); + void EventReconstructTrigger(void); void EventDump(void); // dump reconstructed event - + void EventDumpTrigger(void); // dump reconstructed trigger event + void FillEvent(); // fill and write tree of reconstructed events + void SetTrackMethod(Int_t TrackMethod) {fTrackMethod = TrackMethod;} //AZ + Int_t GetTrackMethod(void) const {return fTrackMethod;} //AZ + Int_t fMuons; // AZ - number of muons within acceptance - just for tests protected: private: + Int_t fTrackMethod; // AZ - tracking method + // Parameters for event reconstruction Double_t fMinBendingMomentum; // minimum value (GeV/c) of momentum in bending plane + // Parameters for event reconstruction + Double_t fMaxBendingMomentum; // maximum value (GeV/c) of momentum in bending plane + Double_t fMaxChi2; // maximum Chi2 per degree of Freedom Double_t fMaxSigma2Distance; // maximum square distance in units of the variance (maximum chi2) Double_t fRMin[kMaxMuonTrackingChambers]; // minimum radius (cm) Double_t fRMax[kMaxMuonTrackingChambers]; // maximum radius (cm) @@ -122,10 +146,19 @@ class AliMUONEventReconstructor : public TObject { TClonesArray *fRecTracksPtr; // pointer to array of reconstructed tracks Int_t fNRecTracks; // number of reconstructed tracks + // Reconstructed trigger tracks + TClonesArray *fRecTriggerTracksPtr; // pointer to array of reconstructed trigger tracks + Int_t fNRecTriggerTracks; // number of reconstructed trigger tracks + // Track hits on reconstructed tracks TClonesArray *fRecTrackHitsPtr; // pointer to array of hits on reconstructed tracks Int_t fNRecTrackHits; // number of hits on reconstructed tracks + // Objects needed for tree writing + AliMUONRecoEvent *fRecoEvent; // the reconstructed event + TTree *fEventTree; // tree of reconstructed events + TFile *fTreeFile; // file where the tree is outputed + // Functions void ResetHitsForRec(void); void MakeEventToBeReconstructed(void); @@ -139,14 +172,25 @@ class AliMUONEventReconstructor : public TObject { void ResetSegments(void); void MakeSegmentsPerStation(Int_t Station); void MakeTracks(void); + void MakeTriggerTracks(void); void ResetTrackHits(void); void ResetTracks(void); + void ResetTriggerTracks(void); Int_t MakeTrackCandidatesWithTwoSegments(AliMUONSegment *BegSegment); Int_t MakeTrackCandidatesWithOneSegmentAndOnePoint(AliMUONSegment *BegSegment); void MakeTrackCandidates(void); void FollowTracks(void); void RemoveDoubleTracks(void); + + + //AZ - for Kalman Filter + void MakeTrackCandidatesK(void); + void FollowTracksK(void); + void RemoveDoubleTracksK(void); + void GoToVertex(void); + Bool_t CheckCandidateK(Int_t icand, Int_t nSeeds); + ClassDef(AliMUONEventReconstructor, 0) // MUON event reconstructor in ALICE };