/// \class AliMUONTrackK
/// \brief Kalman track in MUON arm of ALICE
///
-/// \author: Alexander Zinchenko, JINR Dubna
+/// \author Alexander Zinchenko, JINR Dubna
+
+class AliMUONEventRecoCombi;
+class AliMUONHitForRec;
+class AliMUONObjectPair;
+class AliMUONTrackReconstructorK;
+#include "AliMUONTrack.h"
class TArrayD;
class TClonesArray;
class TObjArray;
-#include <TMatrixDfwd.h>
-#include <TObject.h>
-class AliMUONEventRecoCombi;
-class AliMUONHitForRec;
-class AliMUONSegment;
-class AliMUONTrackReconstructor;
-#include "AliMUONTrack.h"
+#include <TMatrixD.h>
+#include <TObject.h>
class AliMUONTrackK : public AliMUONTrack {
AliMUONTrackK(); // Default constructor
virtual ~AliMUONTrackK(); // Destructor
- AliMUONTrackK(AliMUONTrackReconstructor *TrackReconstructor, TClonesArray *hitForRec); // Constructor
- AliMUONTrackK(AliMUONSegment *segment); // Constructor from a segment
+ AliMUONTrackK(AliMUONTrackReconstructorK *TrackReconstructor, TClonesArray *hitForRec); // Constructor
+ AliMUONTrackK(AliMUONObjectPair *segment); // Constructor from a segment
// Pointer to hits on track
TObjArray* GetTrackHits(void) const {return fTrackHits;} // ptr. to hits on track
void SetBPFlag(Bool_t BPFlag) {fBPFlag = BPFlag;} // set backpropagation flag
Int_t GetRecover(void) const {return fRecover;} // return recover flag
void SetRecover(Int_t iRecover) {fRecover = iRecover;} // set recover flag
- AliMUONSegment* GetStartSegment(void) const {return fStartSegment;} // return seed segment
+ AliMUONObjectPair* GetStartSegment(void) const {return fStartSegment;} // return seed segment
Bool_t KalmanFilter(Int_t ichamBeg, Int_t ichamEnd, Bool_t Back, Double_t zDipole1, Double_t zDipole2); // Kalman filter
void StartBack(void); // start backpropagator
void SetTrackQuality(Int_t iChi2); // compute track quality or Chi2
protected:
- AliMUONTrackK (const AliMUONTrackK& source); // copy constructor
AliMUONTrackK& operator=(const AliMUONTrackK& source); // assignment operator
private:
static Int_t fgDebug; ///< debug level
static Int_t fgNOfPoints; ///< number of points in event
//static AliMUON *fgMUON; ///< pointer to MUON module
- static AliMUONTrackReconstructor *fgTrackReconstructor; ///< pointer to event reconstructor
+ static AliMUONTrackReconstructorK *fgTrackReconstructor; ///< pointer to event reconstructor
static TClonesArray *fgHitForRec; ///< pointer to hits
static AliMUONEventRecoCombi *fgCombi; ///< pointer to combined cluster/track finder
- AliMUONSegment *fStartSegment; ///< seed segment
+ AliMUONObjectPair *fStartSegment; ///< seed segment
Double_t fPosition; ///< Z-coordinate of track
Double_t fPositionNew; //!< Z-coordinate of track
Double_t fChi2; ///< Chi2 of track
// Functions
+ AliMUONTrackK (const AliMUONTrackK& source); // copy constructor
void EvalCovariance(Double_t dZ);
void ParPropagation(Double_t zEnd);
void WeightPropagation(Double_t zEnd, Bool_t smooth);
void Outlier();
void SortHits(Int_t iflag, TObjArray *array);
void DropBranches(Int_t imax, TObjArray *hits);
- void DropBranches(AliMUONSegment *segment);
+ void DropBranches(AliMUONObjectPair *segment);
Bool_t ExistDouble(AliMUONHitForRec *hit);
Bool_t ExistDouble(void);
+ void CheckBranches(TArrayD &branchChi2, Int_t nBranch);
private:
// Some constants