Add possibility to rotate event
[u/mrichter/AliRoot.git] / RALICE / AliVertex.h
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 */
f531a546 6// $Id$
3da30618 7
d88f97cc 8#include <math.h>
10#include "TObject.h"
11#include "TObjArray.h"
a37bb40e 12#include "TPolyLine3D.h"
d88f97cc 13
14#include "AliJet.h"
15#include "AliPosition.h"
17class AliVertex : public AliJet,public AliPosition
19 public:
261c0caf 20 AliVertex(); // Default constructor
21 AliVertex(Int_t n); // Create a vertex to hold initially n tracks
22 virtual ~AliVertex(); // Default destructor
23 AliVertex(const AliVertex& v); // Copy constructor
24 virtual TObject* Clone(const char* name="") const; // Make a deep copy and provide its pointer
25 virtual void SetOwner(Bool_t own=kTRUE); // Set ownership of all added objects
26 virtual void Reset(); // Reset all values and stored vertex and jet lists
27 void ResetVertices(); // Reset stored vertex list
28 void AddJet(AliJet& j,Int_t tracks=1); // Add a jet (and its tracks) to the vertex
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); }
64b63904 32 using AliPosition::Data;
1f241680 33 virtual void Data(TString f="car",TString u="rad"); // Print the vertex info within frame f and ang units u
34 virtual void List(TString f="car",TString u="rad"); // Vertex prim. track info for frame f and ang units u
35 virtual void ListAll(TString f="car",TString u="rad");// Prim.+sec. vtx full track info for frame f and ang units u
261c0caf 36 Int_t GetNvertices() const; // Return the number of (secondary) vertices
37 AliVertex* GetVertex(Int_t i) const; // Provide i-th (secondary) vertex
38 AliVertex* GetIdVertex(Int_t id) const; // Provide the vertex with user identifier "id"
39 void SetNvmax(Int_t n=2); // Set the initial max. number of (secondary) vertices
40 void SetVertexCopy(Int_t j); // (De)activate creation of private copies in fVertices
41 Int_t GetVertexCopy() const; // Provide VertexCopy flag value
42 Int_t GetNjets() const; // Return the number of jets
43 AliJet* GetJet(Int_t i) const; // Provide i-th jet
44 AliJet* GetIdJet(Int_t id) const; // Provide the jet with user identifier "id"
45 void SetNjmax(Int_t n=2); // Set the initial max. number of jets
46 void SetJetCopy(Int_t j); // (De)activate creation of private copies in fJets
47 Int_t GetJetCopy() const; // Provide JetCopy flag value
48 Int_t IsConnectTrack(AliTrack* t) const; // Indicate if track is created by vertex connection
49 Int_t IsJetTrack(AliTrack* t) const; // Indicate if track is resulting from jet addition
da94fdbd 50 virtual void Draw(Option_t*) { Draw(1,1,0); } // Override TObject::Draw for default event display
1c01b4f8 51 virtual void Draw(Int_t secs,Int_t cons=1,Int_t jets=0); // Draw the vertex in an event display
e51b7d1a 52 TObjArray* SortJets(Int_t mode=-1,TObjArray* jets=0); // Sort jets by a certain observable
d88f97cc 53
54 protected:
6516b62d 55 void Init(); // Initialisation of pointers etc...
d88f97cc 56 Int_t fNvmax; // The maximum number of (secondary) vertices
57 Int_t fNvtx; // The number of (secondary) vertices
58 TObjArray* fVertices; // Array to hold the pointers to the (secondary) vertices
29beb80d 59 TObjArray* fConnects; // Array to hold the pointers to the auto-generated connecting tracks
f34f4acb 60 Int_t fVertexCopy; // Flag to denote creation of private copies in fVertices
61 Int_t fNjmax; // The maximum number of jets
62 Int_t fNjets; // The number of jets
63 TObjArray* fJets; // Array to hold the pointers to the jets
6516b62d 64 TObjArray* fJetTracks;// Array to hold the pointers to tracks introduced by jet addition
f34f4acb 65 Int_t fJetCopy; // Flag to denote creation of private copies in fJets
a37bb40e 66 TObjArray* fLines; //! Array to (temporarily) store the 3D lines for the event display
d88f97cc 67
68 private:
1f241680 69 void Dumps(AliVertex* v,Int_t n,TString f,TString u); // Recursively print all sec. vertices
d88f97cc 70
64b63904 71 ClassDef(AliVertex,12) // Creation and investigation of an AliVertex.
d88f97cc 72};