b7fec056be1301151aa8d93b6899d85fc4b051dd
[u/mrichter/AliRoot.git] / RALICE / Ali4VectorObj.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /*
17 $Log$
18 */
19
20 ///////////////////////////////////////////////////////////////////////////
21 // Class Ali4VectorObj
22 // Handling of Lorentz 4-vectors in various reference frames.
23 //
24 // This class is meant to provide an Ali4Vector object which is derived
25 // from TObject such that it can be stored in e.g. TObjArray etc...
26 // and that it can be written out using the ROOT I/O machinery.
27 //
28 // Example :
29 // =========
30 //
31 // Float_t a[4]={5,1,2,3};
32 // Float_t ea[4]={0.05,0.01,0.02,0.03};
33 // Float_t b[4]={10,4,5,6};
34 // Float_t eb[4]={0.1,0.04,0.05,0.06};
35 //
36 // Ali4Vector v,w;
37 //
38 // v.SetVector(a,"car");
39 // v.SetErrors(ea,"car");
40 // w.SetVector(b,"car");
41 // w.SetErrors(eb,"car");
42 //
43 // Ali4Vector add=v+w;
44 //
45 // Ali4Vector sub=v-w;
46 //
47 // Ali4VectorObj vec1(add);
48 //
49 // Ali4VectorObj vec2;
50 // vec2.Load(sub);
51 //
52 // vec1.Info();
53 // vec2.Info();
54 //
55 //--- Author: Nick van Eijndhoven 18-oct-1999 UU-SAP Utrecht
56 ///////////////////////////////////////////////////////////////////////////
57
58 #include "Ali4VectorObj.h"
59  
60 ClassImp(Ali4VectorObj) // Class implementation to enable ROOT I/O
61  
62 Ali4VectorObj::Ali4VectorObj()
63 {
64 // Creation of an Ali4VectorObj object and initialisation of parameters.
65 // All attributes initialised to 0.
66 }
67 ///////////////////////////////////////////////////////////////////////////
68 Ali4VectorObj::Ali4VectorObj(Ali4Vector& q)
69 {
70 // Creation of an Ali3VectorObj object and initialisation of parameters.
71 // All attributes are initialised to the values of the input Ali3Vector.
72  Load(q);
73 }
74 ///////////////////////////////////////////////////////////////////////////
75 Ali4VectorObj::~Ali4VectorObj()
76 {
77 // Destructor to delete dynamically allocated memory.
78 }
79 ///////////////////////////////////////////////////////////////////////////
80 void Ali4VectorObj::Load(Ali4Vector& q)
81 {
82 // Load all attributes of the input Ali4Vector into this Ali4VectorObj object.
83  Int_t temp1=q.GetScalarFlag();
84  Double_t temp2=q.GetResultError();
85  Double_t a[4];
86  q.GetVector(a,"sph");
87  SetVector(a,"sph");
88  q.GetErrors(a,"car");
89  SetErrors(a,"car");
90  fScalar=temp1;
91  fDresult=temp2;
92 }
93 ///////////////////////////////////////////////////////////////////////////