]>
Commit | Line | Data |
---|---|---|
d88f97cc | 1 | #ifndef ALIVERTEX_H |
2 | #define ALIVERTEX_H | |
3da30618 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
f531a546 | 6 | // $Id$ |
3da30618 | 7 | |
d88f97cc | 8 | #include <math.h> |
9 | ||
10 | #include "TObject.h" | |
11 | #include "TObjArray.h" | |
a37bb40e | 12 | #include "TPolyLine3D.h" |
d88f97cc | 13 | |
14 | #include "AliJet.h" | |
15 | #include "AliPosition.h" | |
16 | ||
17 | class AliVertex : public AliJet,public AliPosition | |
18 | { | |
19 | public: | |
29beb80d | 20 | AliVertex(); // Default constructor |
21 | AliVertex(Int_t n); // Create a vertex to hold initially n tracks | |
c72198f1 | 22 | virtual ~AliVertex(); // Default destructor |
6516b62d | 23 | AliVertex(AliVertex& v); // Copy constructor |
4bb13277 | 24 | virtual TObject* Clone(const char* name=""); // Make a deep copy and provide its pointer |
c72198f1 | 25 | virtual void SetOwner(Bool_t own=kTRUE);// Set ownership of all added objects |
1c01b4f8 | 26 | virtual void Reset(); // Reset all values and stored vertex and jet lists |
7849a8ab | 27 | void ResetVertices(); // Reset stored vertex list |
f34f4acb | 28 | void AddJet(AliJet& j,Int_t tracks=1); // Add a jet (and its tracks) to the vertex |
f531a546 | 29 | void AddVertex(AliVertex& v,Int_t connect=1);// Add (and connect) a (sec.) vertex to the current vertex |
f34f4acb | 30 | void AddJet(AliJet* j,Int_t tracks=1) { AddJet(*j,tracks); } |
f935b777 | 31 | void AddVertex(AliVertex* v,Int_t connect=1) { AddVertex(*v,connect); } |
1c01b4f8 | 32 | virtual void Data(TString f="car"); // Print the vertex info within coordinate frame f |
33 | virtual void List(TString f="car"); // Print vertex prim. track information for coord. frame f | |
34 | virtual void ListAll(TString f="car"); // Print prim. + sec. vertex full track info for coord. frame f | |
29beb80d | 35 | Int_t GetNvertices(); // Return the number of (secondary) vertices |
36 | AliVertex* GetVertex(Int_t i); // Provide i-th (secondary) vertex | |
43bfa5be | 37 | AliVertex* GetIdVertex(Int_t id); // Provide the vertex with user identifier "id" |
29beb80d | 38 | void SetNvmax(Int_t n=2); // Set the initial max. number of (secondary) vertices |
f34f4acb | 39 | void SetVertexCopy(Int_t j); // (De)activate creation of private copies in fVertices |
40 | Int_t GetVertexCopy(); // Provide VertexCopy flag value | |
41 | Int_t GetNjets(); // Return the number of jets | |
42 | AliJet* GetJet(Int_t i); // Provide i-th jet | |
43bfa5be | 43 | AliJet* GetIdJet(Int_t id); // Provide the jet with user identifier "id" |
f34f4acb | 44 | void SetNjmax(Int_t n=2); // Set the initial max. number of jets |
45 | void SetJetCopy(Int_t j); // (De)activate creation of private copies in fJets | |
46 | Int_t GetJetCopy(); // Provide JetCopy flag value | |
6516b62d | 47 | Int_t IsConnectTrack(AliTrack* t); // Indicate if track is created by vertex connection |
48 | Int_t IsJetTrack(AliTrack* t); // Indicate if track is resulting from jet addition | |
da94fdbd | 49 | virtual void Draw(Option_t*) { Draw(1,1,0); } // Override TObject::Draw for default event display |
1c01b4f8 | 50 | virtual void Draw(Int_t secs,Int_t cons=1,Int_t jets=0); // Draw the vertex in an event display |
d88f97cc | 51 | |
52 | protected: | |
6516b62d | 53 | void Init(); // Initialisation of pointers etc... |
d88f97cc | 54 | Int_t fNvmax; // The maximum number of (secondary) vertices |
55 | Int_t fNvtx; // The number of (secondary) vertices | |
56 | TObjArray* fVertices; // Array to hold the pointers to the (secondary) vertices | |
29beb80d | 57 | TObjArray* fConnects; // Array to hold the pointers to the auto-generated connecting tracks |
f34f4acb | 58 | Int_t fVertexCopy; // Flag to denote creation of private copies in fVertices |
59 | Int_t fNjmax; // The maximum number of jets | |
60 | Int_t fNjets; // The number of jets | |
61 | TObjArray* fJets; // Array to hold the pointers to the jets | |
6516b62d | 62 | TObjArray* fJetTracks;// Array to hold the pointers to tracks introduced by jet addition |
f34f4acb | 63 | Int_t fJetCopy; // Flag to denote creation of private copies in fJets |
a37bb40e | 64 | TObjArray* fLines; //! Array to (temporarily) store the 3D lines for the event display |
d88f97cc | 65 | |
66 | private: | |
1c01b4f8 | 67 | void Dumps(AliVertex* v,Int_t n,TString f); // Recursively print all sec. vertices |
d88f97cc | 68 | |
4bb13277 | 69 | ClassDef(AliVertex,8) // Creation and investigation of an AliVertex. |
d88f97cc | 70 | }; |
71 | #endif |