Classes moved to STEERBase.
[u/mrichter/AliRoot.git] / TRD / AliTRDpoints.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 /* $Id$ */
17
18 ///////////////////////////////////////////////////////////////////////////////
19 //                                                                           //
20 //  This class contains the TRD points for the ALICE event display.          //
21 //  Used to seperately display dEdx and TR photon hits.                      //
22 //                                                                           //
23 ///////////////////////////////////////////////////////////////////////////////
24
25 #include <TPad.h>
26 #include <TView.h>
27
28 #include "AliRun.h"
29 #include "AliDetector.h"
30
31 #include "AliTRDpoints.h"
32  
33 ClassImp(AliTRDpoints)
34
35 //_____________________________________________________________________________
36 AliTRDpoints::AliTRDpoints()
37   :AliPoints()
38   ,fNTRpoints(0)
39   ,fTRpolyMarker(0)
40 {
41   //
42   // Default constructor
43   //
44
45 }
46
47 //_____________________________________________________________________________
48 AliTRDpoints::AliTRDpoints(Int_t nhitsE, Int_t nhitsT)
49   :AliPoints(nhitsE)
50   ,fNTRpoints(nhitsT)
51   ,fTRpolyMarker(0)
52 {
53   //
54   // Standard constructor
55   //
56
57 }
58          
59 //_____________________________________________________________________________
60 AliTRDpoints::AliTRDpoints(const AliTRDpoints &p)
61   :AliPoints(p)
62   ,fNTRpoints(p.fNTRpoints)
63   ,fTRpolyMarker(0)
64 {
65   //
66   // Copy contructor
67   //
68
69   for (Int_t i = 0; i < 3*fNTRpoints; i++) {
70     ((AliTRDpoints &) p).fTRpoints[i] = fTRpoints[i];
71   }
72
73 }
74
75 //_____________________________________________________________________________
76 AliTRDpoints::~AliTRDpoints()
77 {
78   //
79   // Default destructor
80   //
81
82   if (fTRpolyMarker) {
83     delete fTRpolyMarker;
84     fTRpolyMarker = 0;
85   }
86
87 }
88
89 //_____________________________________________________________________________
90 AliTRDpoints &AliTRDpoints::operator=(const AliTRDpoints &p)
91 {
92   //
93   // Assignment operator 
94   //
95
96   if (this != &p) ((AliTRDpoints &) p).Copy(*this);
97   return *this;
98
99 }
100
101 //_____________________________________________________________________________
102 void AliTRDpoints::Copy(TObject &p) const
103 {
104   //
105   // Copy function
106   //
107
108   ((AliTRDpoints &) p).fNTRpoints = fNTRpoints; 
109   for (Int_t i = 0; i < 3*fNTRpoints; i++) {
110     ((AliTRDpoints &) p).fTRpoints[i] = fTRpoints[i];
111   }
112
113 }
114
115 //_____________________________________________________________________________
116 void AliTRDpoints::Draw(Option_t *option) 
117 {
118   //
119   // Draws a TRD point
120   //
121
122   AliPoints::Draw(option);
123
124   if (fNTRpoints) {
125     fTRpolyMarker = new TPolyMarker3D(fNTRpoints,fTRpoints,29);
126     fTRpolyMarker->SetMarkerColor(2); 
127     fTRpolyMarker->SetMarkerSize(0.8);
128     fTRpolyMarker->Draw(option);
129   }
130
131 }
132
133 //_____________________________________________________________________________
134 void AliTRDpoints::SetTRpoints(Int_t n, Float_t *coor) 
135 {
136   //
137   // Sets the number and the coordinates of the photon hits
138   //
139
140   if (kNTRpoints >= 3*n) {
141     fNTRpoints = n;
142     for (Int_t i = 0; i < 3*n; i++) {
143       fTRpoints[i] = coor[i];
144     } 
145   }
146   else {
147     AliError(Form("Boundary error: %d/%d\n",3*n,kNTRpoints));
148   }
149
150 }