09-jul-2001 NvE Support for impact points and user identifier introduced in AliTrack.
[u/mrichter/AliRoot.git] / RALICE / AliJet.h
1 #ifndef ALIJET_H
2 #define ALIJET_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 // $Id$
7  
8 #include <iostream.h>
9 #include <math.h>
10  
11 #include "TObject.h"
12 #include "TObjArray.h"
13
14 #include "Ali4Vector.h"
15 #include "AliTrack.h"
16  
17 class AliJet : public TObject,public Ali4Vector
18 {
19  public:
20   AliJet();                          // Default constructor
21   AliJet(Int_t n);                   // Create a Jet to hold initially n Tracks
22   ~AliJet();                         // Default destructor
23   void Reset();                      // Reset all values
24   virtual void AddTrack(AliTrack& t);// Add a track to the jet
25   virtual void AddTrack(AliTrack* t) { AddTrack(*t); }
26   void Info(TString f);              // Print jet information in coordinate frame f 
27   void List(TString f="car");        // Print jet prim. track information for coord. frame f
28   void ListAll(TString f="car");     // Print jet prim. and decay track information for coord. frame f
29   Double_t GetEnergy();              // Provide the total jet energy
30   Double_t GetMomentum();            // Provide the value of the total jet 3-momentum
31   Ali3Vector Get3Momentum();         // Provide the total jet 3-momentum
32   Double_t GetInvmass();             // Provide the invariant mass  
33   Float_t GetCharge();               // Provide the total charge of the jet
34   Int_t GetNtracks();                // Return the number of tracks in the jet
35   AliTrack* GetTrack(Int_t i);       // Provide i-th track of the jet (1=first track)
36   AliTrack* GetIdTrack(Int_t id);    // Provide the track with user identifier "id"
37   Double_t GetPt();                  // Provide trans. momentum w.r.t. z-axis
38   Double_t GetPl();                  // Provide long. momentum w.r.t. z-axis
39   Double_t GetEt();                  // Provide trans. energy w.r.t. z-axis
40   Double_t GetEl();                  // Provide long. energy w.r.t. z-axis
41   Double_t GetMt();                  // Provide trans. mass w.r.t. z-axis
42   Double_t GetRapidity();            // Provide rapidity value w.r.t. z-axis
43   void SetTrackCopy(Int_t j);        // (De)activate creation of private copies in fTracks
44   Int_t GetTrackCopy();              // Provide TrackCopy flag value      
45   void SetId(Int_t id);              // Set the user defined identifier
46   Int_t GetId();                     // Provide the user defined identifier
47
48  protected:
49   void SetNtinit(Int_t n=2); // Set the initial max. number of tracks for this Jet
50   Int_t fNtinit;             // The initial max. number of tracks for this jet
51   Int_t fNtmax;              // The maximum number of tracks for this Jet
52   Float_t fQ;                // The total charge of the jet 
53   Int_t fNtrk;               // The number of tracks in the jet
54   TObjArray* fTracks;        // Array to hold the pointers to the tracks of the jet
55   Int_t fTrackCopy;          // Flag to denote creation of private copies in fTracks
56   Int_t fUserId;             // The user defined identifier
57  
58  ClassDef(AliJet,1) // Creation and investigation of a jet of particle tracks.
59 };
60 #endif