10-may-2006 NvE Distance determination between tracks and/or jets introduced in
[u/mrichter/AliRoot.git] / RALICE / AliJet.h
d88f97cc 1#ifndef ALIJET_H
2#define ALIJET_H
3da30618 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
f531a546 6// $Id$
d88f97cc 7
d88f97cc 8#include <math.h>
387a745b 10#include "TNamed.h"
d88f97cc 11#include "TObjArray.h"
13#include "Ali4Vector.h"
14#include "AliTrack.h"
387a745b 16class AliJet : public TNamed,public Ali4Vector
d88f97cc 17{
18 public:
1c01b4f8 19 AliJet(); // Default constructor
20 AliJet(Int_t n); // Create a Jet to hold initially n Tracks
21 virtual ~AliJet(); // Default destructor
261c0caf 22 AliJet(const AliJet& j); // Copy constructor
23 virtual TObject* Clone(const char* name="") const; // Make a deep copy and provide its pointer
1c01b4f8 24 virtual void SetOwner(Bool_t own=kTRUE); // Set ownership of all added objects
25 virtual void Reset(); // Reset all values
26 void AddTrack(AliTrack& t); // Add a track to the jet
1fbffa23 27 void AddTrack(AliTrack* t) { AddTrack(*t); }
1f241680 28 virtual void Data(TString f="car",TString u="rad"); // Print jet information in frame f and ang units u
29 virtual void List(TString f="car",TString u="rad"); // Jet prim. track info for frame f and ang units u
30 virtual void ListAll(TString f="car",TString u="rad");// Jet prim. and decay track info for frame f and ang units u
1c01b4f8 31 Double_t GetEnergy(); // Provide the total jet energy
32 Double_t GetMomentum(); // Provide the value of the total jet 3-momentum
261c0caf 33 Ali3Vector Get3Momentum() const; // Provide the total jet 3-momentum
1c01b4f8 34 Double_t GetInvmass(); // Provide the invariant mass
261c0caf 35 Float_t GetCharge() const; // Provide the total charge of the jet
325b076c 36 Int_t GetNtracks(Int_t idmode=0,Int_t chmode=2,Int_t pcode=0); // Provide the number of selected tracks in the jet
261c0caf 37 AliTrack* GetTrack(Int_t i) const; // Provide i-th track of the jet (1=first track)
38 AliTrack* GetIdTrack(Int_t id) const; // Provide the track with user identifier "id"
ea0b5b7f 39 TObjArray* GetTracks(Int_t idmode=0,Int_t chmode=2,Int_t pcode=0); // Provide references to selected tracks
50e93041 40 TObjArray* GetTracks(TString name); // Provide references to all tracks with a certain name
30672a96 41 void RemoveTracks(Int_t idmode=0,Int_t chmode=2,Int_t pcode=0); // Remove selected tracks
42 void RemoveTracks(TString name); // Remove all tracks with a certain name
325b076c 43 void ShowTracks(Int_t mode=1); // Provide on overview of the available tracks
1c01b4f8 44 Double_t GetPt(); // Provide trans. momentum w.r.t. z-axis
45 Double_t GetPl(); // Provide long. momentum w.r.t. z-axis
46 Double_t GetEt(); // Provide trans. energy w.r.t. z-axis
47 Double_t GetEl(); // Provide long. energy w.r.t. z-axis
48 Double_t GetMt(); // Provide trans. mass w.r.t. z-axis
49 Double_t GetRapidity(); // Provide rapidity value w.r.t. z-axis
50 void SetTrackCopy(Int_t j); // (De)activate creation of private copies in fTracks
261c0caf 51 Int_t GetTrackCopy() const; // Provide TrackCopy flag value
1c01b4f8 52 void SetId(Int_t id); // Set the user defined identifier
261c0caf 53 Int_t GetId() const; // Provide the user defined identifier
413d0114 54 void SetReferencePoint(AliPosition& p); // Set the jet reference-point
55 AliPosition* GetReferencePoint(); // Provide the jet reference-point
e51b7d1a 56 TObjArray* SortTracks(Int_t mode=-1,TObjArray* tracks=0); // Sort tracks by a certain observable
9427ac75 57 Double_t GetDistance(AliPosition* p); // Provide distance to position p
58 Double_t GetDistance(AliPosition& p) { return GetDistance(&p); }
59 Double_t GetDistance(AliTrack* t); // Provide distance to track t
60 Double_t GetDistance(AliTrack& t) { return GetDistance(&t); }
61 Double_t GetDistance(AliJet* j); // Provide distance to jet j
62 Double_t GetDistance(AliJet& j) { return GetDistance(&j); }
d88f97cc 63
64 protected:
1fbffa23 65 void Init(); // Initialisation of pointers etc...
66 void SetNtinit(Int_t n=2); // Set the initial max. number of tracks for this Jet
67 void AddTrack(AliTrack& t,Int_t copy); // Internal memberfunction to add a track to the jet
68 void AddTrack(AliTrack* t,Int_t copy) { AddTrack(*t,copy); }
69 Int_t fNtinit; // The initial max. number of tracks for this jet
70 Int_t fNtmax; // The maximum number of tracks for this Jet
71 Float_t fQ; // The total charge of the jet
72 Int_t fNtrk; // The number of tracks in the jet
73 TObjArray* fTracks; // Array to hold the pointers to the tracks of the jet
74 Int_t fTrackCopy; // Flag to denote creation of private copies in fTracks
75 Int_t fUserId; // The user defined identifier
413d0114 76 AliPositionObj* fRef; // The reference-point of the jet
4962c850 77 TObjArray* fSelected; //! Temp. array to hold user selected or ordered objects
d88f97cc 78
9427ac75 79 ClassDef(AliJet,17) // Creation and investigation of a jet of particle tracks.
d88f97cc 80};