X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONTrackParam.h;h=bbf082efdf192b659c8c6bfc57bf3f4d058b5052;hb=38baba3c8edd09e10d29da7cd6800564ee21528c;hp=42106540ffc082a4b5ca77be660b7d213841114f;hpb=de2cd600300eb8ab97d08787495cd985aa804dd8;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTrackParam.h b/MUON/AliMUONTrackParam.h index 42106540ffc..bbf082efdf1 100644 --- a/MUON/AliMUONTrackParam.h +++ b/MUON/AliMUONTrackParam.h @@ -15,10 +15,10 @@ //////////////////////////////////////////////////// #include +#include #include "AliMUONHitForRec.h" class AliESDMuonTrack; -class AliMagF; class AliMUONTrackParam : public TObject { @@ -32,72 +32,80 @@ class AliMUONTrackParam : public TObject void GetParamFrom(const AliESDMuonTrack& esdMuonTrack); void SetParamFor(AliESDMuonTrack& esdMuonTrack); - // Get and Set methods for data + /// return inverse bending momentum (GeV/c ** -1) times the charge (assumed forward motion) Double_t GetInverseBendingMomentum(void) const {return fInverseBendingMomentum;} - void SetInverseBendingMomentum(Double_t InverseBendingMomentum) {fInverseBendingMomentum = InverseBendingMomentum;} + /// set inverse bending momentum (GeV/c ** -1) times the charge (assumed forward motion) + void SetInverseBendingMomentum(Double_t inverseBendingMomentum) {fInverseBendingMomentum = inverseBendingMomentum;} + /// return bending slope (cm ** -1) Double_t GetBendingSlope(void) const {return fBendingSlope;} - void SetBendingSlope(Double_t BendingSlope) {fBendingSlope = BendingSlope;} + /// set bending slope (cm ** -1) + void SetBendingSlope(Double_t bendingSlope) {fBendingSlope = bendingSlope;} + /// return non bending slope (cm ** -1) Double_t GetNonBendingSlope(void) const {return fNonBendingSlope;} - void SetNonBendingSlope(Double_t NonBendingSlope) {fNonBendingSlope = NonBendingSlope;} + /// set non bending slope (cm ** -1) + void SetNonBendingSlope(Double_t nonBendingSlope) {fNonBendingSlope = nonBendingSlope;} + /// return Z coordinate (cm) Double_t GetZ(void) const {return fZ;} - void SetZ(Double_t Z) {fZ = Z;} + /// set Z coordinate (cm) + void SetZ(Double_t z) {fZ = z;} + /// return bending coordinate (cm) Double_t GetBendingCoor(void) const {return fBendingCoor;} - void SetBendingCoor(Double_t BendingCoor) {fBendingCoor = BendingCoor;} + /// set bending coordinate (cm) + void SetBendingCoor(Double_t bendingCoor) {fBendingCoor = bendingCoor;} + /// return non bending coordinate (cm) Double_t GetNonBendingCoor(void) const {return fNonBendingCoor;} - void SetNonBendingCoor(Double_t NonBendingCoor) {fNonBendingCoor = NonBendingCoor;} - void SetTrackParam(AliMUONTrackParam& TrackParam); + /// set non bending coordinate (cm) + void SetNonBendingCoor(Double_t nonBendingCoor) {fNonBendingCoor = nonBendingCoor;} + + void SetTrackParam(AliMUONTrackParam& theMUONTrackParam); + AliMUONHitForRec* GetHitForRecPtr(void) const; - void SetHitForRecPtr(AliMUONHitForRec* HitForRec) {fHitForRecPtr = HitForRec;} + /// set pointeur to associated HitForRec + void SetHitForRecPtr(AliMUONHitForRec* hitForRec) {fHitForRecPtr = hitForRec;} Double_t Px() const; // return px Double_t Py() const; // return py Double_t Pz() const; // return pz Double_t P() const; // return total momentum - Bool_t IsSortable () const {return kTRUE;} // necessary for sorting TClonesArray of TrackHit's - Int_t Compare(const TObject* TrackParam) const; // "Compare" function for sorting - - void ExtrapToZ(Double_t Z); - void ExtrapToStation(Int_t Station, AliMUONTrackParam *TrackParam); - void ExtrapToVertex(Double_t xVtx, Double_t yVtx, Double_t zVtx); // extrapolation to vertex through the absorber (with true vertex) - void BransonCorrection(Double_t xVtx, Double_t yVtx, Double_t zVtx); // makes Branson correction with true vertex - // returns total momentum after energy loss correction in the absorber - Double_t TotalMomentumEnergyLoss(Double_t thetaLimit, Double_t pTotal, Double_t theta); - void FieldCorrection(Double_t Z); // makes simple magnetic field correction through the absorber + /// return kTRUE if the covariance matrix exist, kFALSE if not + Bool_t CovariancesExist(void) {return (fCovariances) ? kTRUE : kFALSE;} + TMatrixD* GetCovariances(void); + void SetCovariances(TMatrixD* covariances); + void SetCovariances(Double_t matrix[5][5]); + void SetVariances(Double_t matrix[5][5]); + void DeleteCovariances(void); + + void EvalCovariances(AliMUONHitForRec* hit2); - void ExtrapOneStepHelix(Double_t charge, Double_t step, - Double_t *vect, Double_t *vout) const; - void ExtrapOneStepHelix3(Double_t field, Double_t step, - Double_t *vect, Double_t *vout) const; + /// necessary for sorting TClonesArray of TrackHit's + Bool_t IsSortable () const {return kTRUE;} + Int_t Compare(const TObject* trackParam) const; - void ExtrapOneStepRungekutta(Double_t charge, Double_t step, - Double_t* vect, Double_t* vout) const; - virtual void Print(Option_t* opt="") const; - void SetField(const AliMagF* magField) {fkField = magField;} - - protected: private: - Double_t fInverseBendingMomentum; ///< Inverse bending momentum (GeV/c ** -1) times the charge (assumed forward motion) - Double_t fBendingSlope; ///< Bending slope (cm ** -1) + // Parameters + Double_t fNonBendingCoor; ///< Non bending coordinate (cm) Double_t fNonBendingSlope; ///< Non bending slope (cm ** -1) + Double_t fBendingCoor; ///< Bending coordinate (cm) + Double_t fBendingSlope; ///< Bending slope (cm ** -1) + Double_t fInverseBendingMomentum; ///< Inverse bending momentum (GeV/c ** -1) times the charge (assumed forward motion) Double_t fZ; ///< Z coordinate (cm) - Double_t fBendingCoor; ///< bending coordinate (cm) - Double_t fNonBendingCoor; ///< non bending coordinate (cm) - - const AliMagF* fkField; //!< field map - - void SetGeant3Parameters(Double_t *VGeant3, Double_t ForwardBackward); - void GetFromGeant3Parameters(Double_t *VGeant3, Double_t Charge); - - void GetField(Double_t *Position, Double_t *Field) const; + + /// Covariance matrix of track parameters, ordered as follow: + /// + /// + /// + /// + /// + TMatrixD *fCovariances; //! AliMUONHitForRec *fHitForRecPtr; //!< Pointer to associated HitForRec if any ClassDef(AliMUONTrackParam, 2) // Track parameters in ALICE dimuon spectrometer - }; +}; #endif