]>
Commit | Line | Data |
---|---|---|
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 <math.h> | |
9 | ||
10 | #include "TNamed.h" | |
11 | #include "TObjArray.h" | |
12 | ||
13 | #include "Ali4Vector.h" | |
14 | #include "AliTrack.h" | |
15 | ||
16 | class AliJet : public TNamed,public Ali4Vector | |
17 | { | |
18 | public: | |
19 | AliJet(); // Default constructor | |
20 | AliJet(Int_t n); // Create a Jet to hold initially n Tracks | |
21 | virtual ~AliJet(); // Default destructor | |
22 | AliJet(const AliJet& j); // Copy constructor | |
23 | virtual TObject* Clone(const char* name="") const; // Make a deep copy and provide its pointer | |
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 | |
27 | void AddTrack(AliTrack* t) { AddTrack(*t); } | |
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 | |
31 | Double_t GetEnergy(); // Provide the total jet energy | |
32 | Double_t GetMomentum(); // Provide the value of the total jet 3-momentum | |
33 | Ali3Vector Get3Momentum() const; // Provide the total jet 3-momentum | |
34 | Double_t GetInvmass(); // Provide the invariant mass | |
35 | Float_t GetCharge() const; // Provide the total charge of the jet | |
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 | |
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" | |
39 | TObjArray* GetTracks(Int_t idmode=0,Int_t chmode=2,Int_t pcode=0); // Provide references to selected tracks | |
40 | TObjArray* GetTracks(TString name); // Provide references to all tracks with a certain name | |
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 | |
43 | void ShowTracks(Int_t mode=1); // Provide on overview of the available tracks | |
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 | |
51 | Int_t GetTrackCopy() const; // Provide TrackCopy flag value | |
52 | void SetId(Int_t id); // Set the user defined identifier | |
53 | Int_t GetId() const; // Provide the user defined identifier | |
54 | void SetReferencePoint(AliPosition& p); // Set the jet reference-point | |
55 | AliPosition* GetReferencePoint(); // Provide the jet reference-point | |
56 | TObjArray* SortTracks(Int_t mode=-1,TObjArray* tracks=0); // Sort tracks by a certain observable | |
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); } | |
63 | ||
64 | protected: | |
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 | |
76 | AliPositionObj* fRef; // The reference-point of the jet | |
77 | TObjArray* fSelected; //! Temp. array to hold user selected or ordered objects | |
78 | ||
79 | ClassDef(AliJet,17) // Creation and investigation of a jet of particle tracks. | |
80 | }; | |
81 | #endif |