1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
18 //_________________________________________________________________________
19 // Hits class for EMCAL
20 // A hit in EMCAL is the sum of all hits in a tower
21 // from a single entering particle
22 //*-- Author: Sahal Yacoob (LBL / UCT)
23 // Based on AliPHOSHit
25 // --- Standard library ---
26 #include <Riostream.h>
28 // --- ROOT system ---
30 // --- AliRoot header files ---
31 #include "AliEMCALHit.h"
35 //______________________________________________________________________
36 AliEMCALHit::AliEMCALHit()
51 //______________________________________________________________________
52 AliEMCALHit::AliEMCALHit(const AliEMCALHit & hit)
56 fPrimary(hit.fPrimary),
61 fIparent(hit.fIparent),
62 fIenergy(hit.fIenergy),
67 //_____________________________________________________________________
68 AliEMCALHit& AliEMCALHit::operator = (const AliEMCALHit &source)
69 { // assignment operator; use copy ctor
70 if (&source == this) return *this;
72 new (this) AliEMCALHit(source);
75 //______________________________________________________________________
76 AliEMCALHit::AliEMCALHit(Int_t shunt, Int_t primary, Int_t track,Int_t iparent, Float_t ienergy, Int_t id,
77 Float_t *hits,Float_t *p)
78 : AliHit(shunt, track),
91 // Create an EMCAL hit object
104 //______________________________________________________________________
105 Bool_t AliEMCALHit::operator==(AliEMCALHit const &rValue) const{
106 // Two hits are identical if they have the same Id and originat
107 // from the same enterring Particle
110 if ( (fId == rValue.GetId()) && ( fIparent == rValue.GetIparent()))
115 //______________________________________________________________________
116 AliEMCALHit AliEMCALHit::operator+(const AliEMCALHit &rValue){
117 // Add the energy of the hit
119 fELOS += rValue.GetEnergy() ;
121 if(rValue.GetTime() < fTime)
122 fTime = rValue.GetTime() ;
127 //______________________________________________________________________
128 ostream& operator << (ostream& out,AliEMCALHit& hit){
129 // Print out Id and energy
131 out << "AliEMCALHit:";
132 out << "id=" << hit.GetId();
133 out << ", Eloss=" << hit.GetEnergy();
134 out << ", Time=" << hit.GetTime();
135 out << "GeV , Track no.=" << hit.GetPrimary();
136 out << ", (xyz)=(" << hit.X()<< ","<< hit.Y()<< ","<<hit.Z()<<") cm";
137 out << ", fTrack=" << hit.GetTrack();
138 out << ", P=(" << hit.GetPx() << "," << hit.GetPy() << "," << hit.GetPz()
139 << "," <<hit.GetPe() << ") GeV" ;
140 out << ", Enterring particle ID" << hit.GetIparent();
141 out << ", Enterring particle initial energy = " << hit.GetIenergy() << " GeV" ;