]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PHOS/AliPHOSHit.cxx
parameters have been redistributed; Hits2SDigits etc ... introduce
[u/mrichter/AliRoot.git] / PHOS / AliPHOSHit.cxx
... / ...
CommitLineData
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// Hits class for PHOS
20// A hit in PHOS is the sum of all hits in a single crystal
21//
22//*-- Author: Maxime Volkov (RRC KI) & Yves Schutz (SUBATECH)
23
24// --- ROOT system ---
25
26// --- Standard library ---
27#include <stdio.h>
28#include <string.h>
29#include <stdlib.h>
30#include <strstream.h>
31
32// --- AliRoot header files ---
33#include "AliPHOSHit.h"
34#include "AliRun.h"
35#include "AliConst.h"
36
37
38ClassImp(AliPHOSHit)
39
40//____________________________________________________________________________
41AliPHOSHit::AliPHOSHit(const AliPHOSHit & hit)
42{
43 // copy ctor
44
45 fId = hit.fId ;
46 fELOS = hit.fELOS ;
47 fPrimary = hit.fPrimary ;
48 fTrack = hit.fTrack ;
49 fX = hit.fX ;
50 fY = hit.fY ;
51 fZ = hit.fZ ;
52 fPid = hit.fPid ;
53
54}
55
56//____________________________________________________________________________
57AliPHOSHit::AliPHOSHit(Int_t shunt, Int_t primary, Int_t track, Int_t id, Float_t *hits, Int_t pid, TLorentzVector p, Float_t *xy): AliHit(shunt, track)
58{
59 //
60 // Create a CPV hit object
61 //
62
63 fId = id ;
64 fELOS = hits[3] ;
65 fPrimary = primary ;
66 fPid = pid ;
67 fMomentum = p;
68 fX = xy[0]; //position of particle first entering cristall/pad
69 fY = xy[1];
70 fZ = 9999.; //Fake Z to avoid FPE
71}
72
73//____________________________________________________________________________
74Bool_t AliPHOSHit::operator==(AliPHOSHit const &rValue) const
75{
76 // Two hits are identical if they have the same Id and originate from the same primary
77
78 Bool_t rv = kFALSE ;
79
80 if ( (fId == rValue.GetId()) && ( fPrimary == rValue.GetPrimary() ) && (fPid*rValue.fPid ! = 0) )
81 rv = kTRUE;
82
83 return rv;
84}
85
86//____________________________________________________________________________
87AliPHOSHit AliPHOSHit::operator+(const AliPHOSHit &rValue) const
88{
89 // Add the energy of the hit
90
91 AliPHOSHit added(*this);
92
93 // the accumulated hit position is the position of the first hi
94 // added.fX = rValue.fX ;
95 // added.fY = rValue.fY ;
96 // added.fZ = rValue.fZ ;
97
98 added.fELOS += rValue.GetEnergy() ;
99
100 if(fPid == 0) fPid = rValue.fPid ;
101
102 return added;
103
104}
105
106//____________________________________________________________________________
107ostream& operator << (ostream& out, const AliPHOSHit& hit)
108{
109 // Print out Id and energy
110
111 out << "AliPHOSHit = " << hit.GetId() << " " << hit.GetEnergy() << endl ;
112 return out ;
113}
114
115
116