New version of RALICE introduced
[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);             // Add a (secondary) vertex to the current vertex
26   void Add(AliJet* j)    { Add(*j); }
27   void Add(AliVertex* v) { Add(*v); }
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
40  private:
41   void Dump(AliVertex* v,Int_t n,TString f); // Recursively print all sec. vertices
42  
43  ClassDef(AliVertex,1) // Creation and investigation of an AliVertex.
44 };
45 #endif