3319bd4826860bb0c2b89a039c5e880f375b25cd
[u/mrichter/AliRoot.git] / PHOS / AliPHOSTrackSegment.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 /* $Id$ */
16 //_________________________________________________________________________
17 //  Track segment in PHOS
18 //  Can be : 1 EmcRecPoint
19 //           1 EmcRecPoint + 1 CPV
20 //           1 EmcRecPoint + 1 CPV + 1 charged track
21 //                  
22 //*-- Author:  Dmitri Peressounko (RRC KI & SUBATECH)
23
24 // --- ROOT system ---
25  
26
27 // --- Standard library ---
28
29 // --- AliRoot header files ---
30 #include "AliPHOSEmcRecPoint.h" 
31 #include "AliPHOSTrackSegment.h" 
32 #include "AliESDtrack.h" 
33
34 ClassImp(AliPHOSTrackSegment)
35
36 //____________________________________________________________________________
37 AliPHOSTrackSegment::AliPHOSTrackSegment( AliPHOSEmcRecPoint * emc , 
38                                           AliPHOSRecPoint * cpvrp1)
39 {
40   // ctor
41
42   if( emc )   
43     fEmcRecPoint =  emc->GetIndexInList() ;
44   else 
45     fEmcRecPoint = -1 ;
46
47   if( cpvrp1 )  
48     fCpvRecPoint = cpvrp1->GetIndexInList() ;
49  else 
50     fCpvRecPoint = -1 ;
51
52   fTrack = -1 ; 
53
54   fIndexInList = -1 ;
55 }
56
57 //____________________________________________________________________________
58 AliPHOSTrackSegment::AliPHOSTrackSegment( AliPHOSEmcRecPoint * emc , 
59                                           AliPHOSRecPoint * cpvrp1, 
60                                           Int_t track)
61 {
62   // ctor
63
64   if( emc )   
65     fEmcRecPoint =  emc->GetIndexInList() ;
66   else 
67     fEmcRecPoint = -1 ;
68
69   if( cpvrp1 )  
70     fCpvRecPoint = cpvrp1->GetIndexInList() ;
71  else 
72     fCpvRecPoint = -1 ;
73   
74   fTrack = track ; 
75
76   fIndexInList = -1 ;
77 }
78
79 //____________________________________________________________________________
80 AliPHOSTrackSegment::AliPHOSTrackSegment( const AliPHOSTrackSegment & ts) 
81   : TObject(ts)
82 {
83   // Copy ctor
84
85   ( (AliPHOSTrackSegment &)ts ).Copy(*this) ; 
86 }
87
88
89 //____________________________________________________________________________
90 void AliPHOSTrackSegment::Copy(TObject & obj) 
91 {
92   // Copy of a track segment into another track segment
93
94    TObject::Copy(obj) ;
95    ( (AliPHOSTrackSegment &)obj ).fEmcRecPoint     = fEmcRecPoint ; 
96    ( (AliPHOSTrackSegment &)obj ).fCpvRecPoint     = fCpvRecPoint ; 
97    ( (AliPHOSTrackSegment &)obj ).fIndexInList     = fIndexInList ; 
98    ( (AliPHOSTrackSegment &)obj ).fTrack           = fTrack ;
99
100
101
102 //____________________________________________________________________________
103 void AliPHOSTrackSegment::Print() const
104 {
105   // Print all information on this track Segment
106   
107
108   Info("Print", "");
109   printf("Stored at position %d\n", fIndexInList) ;
110   printf(" Emc RecPoint #     %d\n", fEmcRecPoint) ;
111   if(fCpvRecPoint >= 0)
112     printf(" CPV RecPoint #     %d\n", fCpvRecPoint) ;
113   else
114     printf(" No CPV RecPoint\n");
115   if (fTrack >= 0) 
116     printf(" Charged track #     %d\n", fTrack) ;
117   else
118     printf(" No Charged track\n");
119 }
120
121 //____________________________________________________________________________
122 void AliPHOSTrackSegment::SetCpvRecPoint(AliPHOSRecPoint * cpvRecPoint) 
123 {
124   // gives an id from its position in the list
125   if( cpvRecPoint )  
126     fCpvRecPoint = cpvRecPoint->GetIndexInList() ;
127  else 
128     fCpvRecPoint = -1 ;
129 }
130