e641968b9123d18dee70ab59ec061fb87bf6202d
[u/mrichter/AliRoot.git] / ZDC / ZDCsim / AliZDCHit.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 //              Hits classes for ZDC                  
21 //
22 // **************************************************************
23
24 #include "AliZDCHit.h"
25
26 ClassImp(AliZDCHit)
27   
28 //_____________________________________________________________________________
29 AliZDCHit::AliZDCHit() :
30 //  AliHit(shunt, track),
31   fPrimKinEn(0.),
32   fXImpact(0.),
33   fYImpact(0.),
34   fSFlag(0),
35   fLightPMQ(0.),
36   fLightPMC(0.),
37   fEnergy(0.), 
38   fPDGCode(0),
39   fMotherPDGCode(0),
40   fTrackTOF(0.),
41   fTrackEta(0.)
42 {
43   //
44   // Default constructor
45   //
46   for(Int_t i=0; i<2; i++) fVolume[i] = 0;
47 }
48
49 //_____________________________________________________________________________
50 AliZDCHit::AliZDCHit(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits) :
51   AliHit(shunt, track),
52   fPrimKinEn(hits[3]),
53   fXImpact(hits[4]),
54   fYImpact(hits[5]),
55   fSFlag(hits[6]),
56   fLightPMQ(hits[7]),
57   fLightPMC(hits[8]),
58   fEnergy(hits[9]), 
59   fPDGCode((Int_t) hits[10]),
60   fMotherPDGCode((Int_t) hits[11]),
61   fTrackTOF(hits[12]),
62   fTrackEta(hits[13])
63
64 {
65   //
66   // Standard constructor
67   //
68   Int_t i;
69   for(i=0; i<2; i++) fVolume[i] = vol[i];
70   fX            = hits[0];
71   fY            = hits[1];
72   fZ            = hits[2];
73 }
74   
75 //_____________________________________________________________________________
76 AliZDCHit::AliZDCHit(const AliZDCHit &oldhit) :
77   AliHit(0,oldhit.GetTrack()),
78   fPrimKinEn(oldhit.GetPrimKinEn()),
79   fXImpact(oldhit.GetXImpact()),  
80   fYImpact(oldhit.GetYImpact()),  
81   fSFlag(oldhit.GetSFlag()),
82   fLightPMQ(oldhit.GetLightPMQ()), 
83   fLightPMC(oldhit.GetLightPMC()),
84   fEnergy(oldhit.GetEnergy()),
85   fPDGCode(oldhit.GetPDGCode()),
86   fMotherPDGCode(oldhit.GetMotherPDGCode()),
87   fTrackTOF(oldhit.GetTrackTOF()),
88   fTrackEta(oldhit.GetTrackEta())
89 {
90   // Copy constructor
91   fX = oldhit.X();
92   fY = oldhit.Y();
93   fZ = oldhit.Z();
94   for(Int_t i=0; i<2; i++) fVolume[i] = oldhit.GetVolume(i);
95 }
96
97 //_____________________________________________________________________________
98 AliZDCHit &AliZDCHit::operator= (const AliZDCHit &hit) 
99 {
100   //assignemnt operator
101   if(&hit == this) return *this;
102   
103   fPrimKinEn = hit.GetPrimKinEn();
104   fXImpact = hit.GetXImpact();
105   fYImpact = hit.GetYImpact();  
106   fSFlag = hit.GetSFlag();
107   fLightPMQ = hit.GetLightPMQ(); 
108   fLightPMC = hit.GetLightPMC();
109   fEnergy = hit.GetEnergy();
110   fPDGCode = hit.GetPDGCode();
111   fMotherPDGCode = hit.GetMotherPDGCode();
112   fTrackTOF = hit.GetTrackTOF();
113   fTrackEta = hit.GetTrackEta();
114
115   fX = hit.X();
116   fY = hit.Y();
117   fZ = hit.Z();
118   for(Int_t i=0; i<2; i++) fVolume[i] = hit.GetVolume(i);
119   
120   return *this;
121 }
122   
123   
124 //_____________________________________________________________________________
125 void AliZDCHit::Print(Option_t *) const 
126 {
127    // Print method
128    printf("\t **** AliZDCHit: track %d eta %f PDGcode %d TOF %1.1f ns E_prim = %1.2f GeV \n" 
129           "\t DETECTOR (%d, %d)  (X, Y)_impact (%1.2f, %1.2f) cm  Secflag %1.0f\n"
130           "\t PMQLight %1.0f, PMCLight %1.0f,  E_dep %1.2f\n ", 
131           fTrack,fTrackEta,fPDGCode,fTrackTOF,fPrimKinEn,
132           fVolume[0],fVolume[1],fXImpact,fYImpact,fSFlag,
133           fLightPMQ,fLightPMC,fEnergy);
134 }