ROOT logo
#ifndef AliMuonForwardTrackPair_H
#define AliMuonForwardTrackPair_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

//====================================================================================================================================================
//
//      Description of an ALICE muon forward track pair, i.e. a pair of AliMuonForwardTrack objects
//
//      Contact author: antonio.uras@cern.ch
//
//====================================================================================================================================================

#include "AliLog.h"
#include "AliMUONTrackParam.h"
#include "TParticle.h"
#include "AliMuonForwardTrack.h"
#include "TClonesArray.h"
#include "TDatabasePDG.h"
#include "AliMUONTrackExtrap.h"
#include "TLorentzVector.h"

//====================================================================================================================================================

class AliMuonForwardTrackPair : public TObject {

public:

  AliMuonForwardTrackPair();
  AliMuonForwardTrackPair(AliMuonForwardTrack *track0, AliMuonForwardTrack *track1);

  AliMuonForwardTrackPair(const AliMuonForwardTrackPair&);
  AliMuonForwardTrackPair &operator=(const AliMuonForwardTrackPair&);
  virtual void  Clear(const Option_t* /*opt*/) { fMuonForwardTracks->Delete(); delete fMuonForwardTracks; fMuonForwardTracks = 0x0; }

  virtual ~AliMuonForwardTrackPair() { fMuonForwardTracks->Delete(); delete fMuonForwardTracks; }

  AliMuonForwardTrack* GetTrack(Int_t iTrack) { 
    if (iTrack==0 || iTrack==1) return (AliMuonForwardTrack*) fMuonForwardTracks->At(iTrack); 
    else return NULL; 
  }

  Int_t GetCharge() { return GetTrack(0)->GetCharge() + GetTrack(1)->GetCharge(); }

  void SetKinemMC();
  void SetKinem(Double_t z, Int_t nClusters=-1);
  Bool_t IsKinemSet() { return fIsKinemSet; }

  void SetPointOfClosestApproach();
  void GetPointOfClosestApproach(Double_t *xyz) { 
    xyz[0] = fXPointOfClosestApproach; 
    xyz[1] = fYPointOfClosestApproach; 
    xyz[2] = fZPointOfClosestApproach; 
  }

  Double_t GetWeightedOffset(Double_t x, Double_t y, Double_t z);
  Double_t GetWeightedOffsetAtPCA();
  Double_t GetPCAQuality();
  Double_t GetMassWithoutMFT(Double_t x, Double_t y, Double_t z, Int_t nClusters=-1);
  Double_t GetMassMC()     { return fKinemMC.M(); }
  Double_t GetRapidityMC() { return fKinemMC.Rapidity(); }
  Double_t GetPtMC()       { return fKinemMC.Pt(); }
  Double_t GetMass()     { return fKinem.M(); }
  Double_t GetRapidity() { return fKinem.Rapidity(); }
  Double_t GetPx()       { return fKinem.Px(); }
  Double_t GetPy()       { return fKinem.Py(); }
  Double_t GetPz()       { return fKinem.Pz(); }
  Double_t GetPt()       { return fKinem.Pt(); }

  Bool_t IsResonance();

protected:

  TClonesArray *fMuonForwardTracks;
  TLorentzVector fKinemMC, fKinem;
  Bool_t fIsKinemSet;

  Double_t fXPointOfClosestApproach, fYPointOfClosestApproach, fZPointOfClosestApproach;

  ClassDef(AliMuonForwardTrackPair,1)
    
};

//====================================================================================================================================================

#endif



 AliMuonForwardTrackPair.h:1
 AliMuonForwardTrackPair.h:2
 AliMuonForwardTrackPair.h:3
 AliMuonForwardTrackPair.h:4
 AliMuonForwardTrackPair.h:5
 AliMuonForwardTrackPair.h:6
 AliMuonForwardTrackPair.h:7
 AliMuonForwardTrackPair.h:8
 AliMuonForwardTrackPair.h:9
 AliMuonForwardTrackPair.h:10
 AliMuonForwardTrackPair.h:11
 AliMuonForwardTrackPair.h:12
 AliMuonForwardTrackPair.h:13
 AliMuonForwardTrackPair.h:14
 AliMuonForwardTrackPair.h:15
 AliMuonForwardTrackPair.h:16
 AliMuonForwardTrackPair.h:17
 AliMuonForwardTrackPair.h:18
 AliMuonForwardTrackPair.h:19
 AliMuonForwardTrackPair.h:20
 AliMuonForwardTrackPair.h:21
 AliMuonForwardTrackPair.h:22
 AliMuonForwardTrackPair.h:23
 AliMuonForwardTrackPair.h:24
 AliMuonForwardTrackPair.h:25
 AliMuonForwardTrackPair.h:26
 AliMuonForwardTrackPair.h:27
 AliMuonForwardTrackPair.h:28
 AliMuonForwardTrackPair.h:29
 AliMuonForwardTrackPair.h:30
 AliMuonForwardTrackPair.h:31
 AliMuonForwardTrackPair.h:32
 AliMuonForwardTrackPair.h:33
 AliMuonForwardTrackPair.h:34
 AliMuonForwardTrackPair.h:35
 AliMuonForwardTrackPair.h:36
 AliMuonForwardTrackPair.h:37
 AliMuonForwardTrackPair.h:38
 AliMuonForwardTrackPair.h:39
 AliMuonForwardTrackPair.h:40
 AliMuonForwardTrackPair.h:41
 AliMuonForwardTrackPair.h:42
 AliMuonForwardTrackPair.h:43
 AliMuonForwardTrackPair.h:44
 AliMuonForwardTrackPair.h:45
 AliMuonForwardTrackPair.h:46
 AliMuonForwardTrackPair.h:47
 AliMuonForwardTrackPair.h:48
 AliMuonForwardTrackPair.h:49
 AliMuonForwardTrackPair.h:50
 AliMuonForwardTrackPair.h:51
 AliMuonForwardTrackPair.h:52
 AliMuonForwardTrackPair.h:53
 AliMuonForwardTrackPair.h:54
 AliMuonForwardTrackPair.h:55
 AliMuonForwardTrackPair.h:56
 AliMuonForwardTrackPair.h:57
 AliMuonForwardTrackPair.h:58
 AliMuonForwardTrackPair.h:59
 AliMuonForwardTrackPair.h:60
 AliMuonForwardTrackPair.h:61
 AliMuonForwardTrackPair.h:62
 AliMuonForwardTrackPair.h:63
 AliMuonForwardTrackPair.h:64
 AliMuonForwardTrackPair.h:65
 AliMuonForwardTrackPair.h:66
 AliMuonForwardTrackPair.h:67
 AliMuonForwardTrackPair.h:68
 AliMuonForwardTrackPair.h:69
 AliMuonForwardTrackPair.h:70
 AliMuonForwardTrackPair.h:71
 AliMuonForwardTrackPair.h:72
 AliMuonForwardTrackPair.h:73
 AliMuonForwardTrackPair.h:74
 AliMuonForwardTrackPair.h:75
 AliMuonForwardTrackPair.h:76
 AliMuonForwardTrackPair.h:77
 AliMuonForwardTrackPair.h:78
 AliMuonForwardTrackPair.h:79
 AliMuonForwardTrackPair.h:80
 AliMuonForwardTrackPair.h:81
 AliMuonForwardTrackPair.h:82
 AliMuonForwardTrackPair.h:83
 AliMuonForwardTrackPair.h:84
 AliMuonForwardTrackPair.h:85
 AliMuonForwardTrackPair.h:86
 AliMuonForwardTrackPair.h:87
 AliMuonForwardTrackPair.h:88
 AliMuonForwardTrackPair.h:89
 AliMuonForwardTrackPair.h:90