]> git.uio.no Git - u/mrichter/AliRoot.git/blame - RALICE/AliVertex.h
Latest SDD changes to speed up the SDD simulation code.
[u/mrichter/AliRoot.git] / RALICE / AliVertex.h
CommitLineData
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 <iostream.h>
9#include <math.h>
10
11#include "TObject.h"
12#include "TObjArray.h"
a37bb40e 13#include "TPolyLine3D.h"
d88f97cc 14
15#include "AliJet.h"
16#include "AliPosition.h"
17
18class AliVertex : public AliJet,public AliPosition
19{
20 public:
29beb80d 21 AliVertex(); // Default constructor
22 AliVertex(Int_t n); // Create a vertex to hold initially n tracks
23 ~AliVertex(); // Default destructor
6516b62d 24 AliVertex(AliVertex& v); // Copy constructor
7849a8ab 25 void Reset(); // Reset all values and stored vertex and jet lists
26 void ResetVertices(); // Reset stored vertex list
f34f4acb 27 void AddJet(AliJet& j,Int_t tracks=1); // Add a jet (and its tracks) to the vertex
f531a546 28 void AddVertex(AliVertex& v,Int_t connect=1);// Add (and connect) a (sec.) vertex to the current vertex
f34f4acb 29 void AddJet(AliJet* j,Int_t tracks=1) { AddJet(*j,tracks); }
f935b777 30 void AddVertex(AliVertex* v,Int_t connect=1) { AddVertex(*v,connect); }
29beb80d 31 void Info(TString f="car"); // Print the vertex info within coordinate frame f
32 void List(TString f="car"); // Print vertex prim. track information for coord. frame f
33 void ListAll(TString f="car"); // Print prim. + sec. vertex full track info for coord. frame f
34 Int_t GetNvertices(); // Return the number of (secondary) vertices
35 AliVertex* GetVertex(Int_t i); // Provide i-th (secondary) vertex
43bfa5be 36 AliVertex* GetIdVertex(Int_t id); // Provide the vertex with user identifier "id"
29beb80d 37 void SetNvmax(Int_t n=2); // Set the initial max. number of (secondary) vertices
f34f4acb 38 void SetVertexCopy(Int_t j); // (De)activate creation of private copies in fVertices
39 Int_t GetVertexCopy(); // Provide VertexCopy flag value
40 Int_t GetNjets(); // Return the number of jets
41 AliJet* GetJet(Int_t i); // Provide i-th jet
43bfa5be 42 AliJet* GetIdJet(Int_t id); // Provide the jet with user identifier "id"
f34f4acb 43 void SetNjmax(Int_t n=2); // Set the initial max. number of jets
44 void SetJetCopy(Int_t j); // (De)activate creation of private copies in fJets
45 Int_t GetJetCopy(); // Provide JetCopy flag value
6516b62d 46 Int_t IsConnectTrack(AliTrack* t); // Indicate if track is created by vertex connection
47 Int_t IsJetTrack(AliTrack* t); // Indicate if track is resulting from jet addition
a37bb40e 48 void Draw(Int_t secs=1,Int_t cons=1,Int_t jets=0); // Draw the vertex in an event display
d88f97cc 49
50 protected:
6516b62d 51 void Init(); // Initialisation of pointers etc...
d88f97cc 52 Int_t fNvmax; // The maximum number of (secondary) vertices
53 Int_t fNvtx; // The number of (secondary) vertices
54 TObjArray* fVertices; // Array to hold the pointers to the (secondary) vertices
29beb80d 55 TObjArray* fConnects; // Array to hold the pointers to the auto-generated connecting tracks
f34f4acb 56 Int_t fVertexCopy; // Flag to denote creation of private copies in fVertices
57 Int_t fNjmax; // The maximum number of jets
58 Int_t fNjets; // The number of jets
59 TObjArray* fJets; // Array to hold the pointers to the jets
6516b62d 60 TObjArray* fJetTracks;// Array to hold the pointers to tracks introduced by jet addition
f34f4acb 61 Int_t fJetCopy; // Flag to denote creation of private copies in fJets
a37bb40e 62 TObjArray* fLines; //! Array to (temporarily) store the 3D lines for the event display
d88f97cc 63
64 private:
65 void Dump(AliVertex* v,Int_t n,TString f); // Recursively print all sec. vertices
66
a37bb40e 67 ClassDef(AliVertex,2) // Creation and investigation of an AliVertex.
d88f97cc 68};
69#endif