3d5d46366a1532ca5c3f78b7db49d07f833dba79
[u/mrichter/AliRoot.git] / RALICE / AliVertex.h
1 #ifndef ALIVERTEX_H
2 #define ALIVERTEX_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 "AliJet.h"
15 #include "AliPosition.h"
16  
17 class AliVertex : public AliJet,public AliPosition
18 {
19  public:
20   AliVertex();                            // Default constructor
21   AliVertex(Int_t n);                     // Create a vertex to hold initially n tracks
22   ~AliVertex();                           // Default destructor
23   void Reset();                           // Reset all values
24   void Add(AliJet& j);                    // Add a jet of tracks to the vertex
25   void Add(AliVertex& v,Int_t connect=1); // Add (and connect) a (sec.) vertex to the current vertex
26   void Add(AliJet* j)    { Add(*j); }
27   void Add(AliVertex* v,Int_t connect=1) { Add(*v,connect); }
28   void Info(TString f="car");             // Print the vertex info within coordinate frame f
29   void List(TString f="car");             // Print vertex prim. track information for coord. frame f
30   void ListAll(TString f="car");          // Print prim. + sec. vertex full track info for coord. frame f
31   Int_t GetNvertices();                   // Return the number of (secondary) vertices
32   AliVertex* GetVertex(Int_t i);          // Provide i-th (secondary) vertex
33   void SetNvmax(Int_t n=2);               // Set the initial max. number of (secondary) vertices
34
35  protected:
36   Int_t fNvmax;         // The maximum number of (secondary) vertices
37   Int_t fNvtx;          // The number of (secondary) vertices
38   TObjArray* fVertices; // Array to hold the pointers to the (secondary) vertices
39   TObjArray* fConnects; // Array to hold the pointers to the auto-generated connecting tracks
40
41  private:
42   void Dump(AliVertex* v,Int_t n,TString f); // Recursively print all sec. vertices
43  
44  ClassDef(AliVertex,1) // Creation and investigation of an AliVertex.
45 };
46 #endif