//_________________________________________________________________________
// Hits class for PHOS
// A hit in PHOS is the sum of all hits in a single crystal
-//
-//*-- Author: Maxime Volkov (RRC KI) & Yves Schutz (SUBATECH)
+//*--
+//*-- Author: Maxime Volkov (RRC KI) & Yves Schutz (SUBATECH) & Dmitri Peressounko (RRC KI & SUBATECH)
// --- ROOT system ---
// --- Standard library ---
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <strstream.h>
// --- AliRoot header files ---
#include "AliPHOSHit.h"
-#include "AliRun.h"
-#include "AliConst.h"
-
ClassImp(AliPHOSHit)
-
-//____________________________________________________________________________
-AliPHOSHit::AliPHOSHit(const AliPHOSHit & hit)
+
+ //____________________________________________________________________________
+AliPHOSHit::AliPHOSHit(const AliPHOSHit & hit) :
+ AliHit(hit),fId(hit.fId),fELOS(hit.fELOS),fTime(hit.fTime)
{
- // copy ctor
-
- fId = hit.fId ;
- fELOS = hit.fELOS ;
- fPrimary = hit.fPrimary ;
- fTrack = hit.fTrack ;
- fX = hit.fX ;
- fY = hit.fY ;
- fZ = hit.fZ ;
-
+ // copy ctor
}
//____________________________________________________________________________
-AliPHOSHit::AliPHOSHit(Int_t primary, Int_t id, Float_t *hits)
+AliPHOSHit::AliPHOSHit(Int_t shunt, Int_t track, Int_t id, Float_t *hits) :
+ AliHit(shunt, track),fId(0),fELOS(0),fTime(0)
{
- // ctor
+ //
+ // Create a CPV hit object
+ //
- fId = id ;
- fX = hits[0] ;
- fY = hits[1] ;
- fZ = hits[2] ;
- fELOS = hits[3] ;
- fPrimary = primary ;
+ fX = hits[0] ;
+ fY = hits[1] ;
+ fZ = hits[2] ;
+ fTime = hits[3] ;
+ fId = id ;
+ fELOS = hits[4] ;
}
-AliPHOSHit::AliPHOSHit(Int_t Shunt, Int_t primary, Int_t Track, Int_t id, Float_t *hits) : AliHit(Shunt, Track)
-{
- // ctor
-
- fId = id ;
- fTrack = Track;
- fX = hits[0] ;
- fY = hits[1] ;
- fZ = hits[2] ;
- fELOS = hits[3] ;
- fPrimary = primary ;
-}
-
-
-
//____________________________________________________________________________
Bool_t AliPHOSHit::operator==(AliPHOSHit const &rValue) const
{
- // Two hits are identical if they have the same Id and originate from the same primary
+ // Two hits are identical if they have the same Id and originate from the same primary
Bool_t rv = kFALSE ;
- if ( fId == rValue.GetId() && fPrimary == rValue.GetPrimary() )
+ if ( (fId == rValue.GetId()) && ( fTrack == rValue.GetPrimary() ) )
rv = kTRUE;
return rv;
}
//____________________________________________________________________________
-AliPHOSHit AliPHOSHit::operator+(const AliPHOSHit &rValue) const
+AliPHOSHit AliPHOSHit::operator+(const AliPHOSHit &rValue)
{
// Add the energy of the hit
- AliPHOSHit added(*this);
-
- added.fX = rValue.fX ;
- added.fY = rValue.fY ;
- added.fZ = rValue.fZ ;
+ fELOS += rValue.GetEnergy() ;
- added.fELOS += rValue.GetEnergy() ;
+ if(rValue.GetTime() < fTime)
+ fTime = rValue.GetTime() ;
- return added;
+ return *this;
}
-//____________________________________________________________________________
-ostream& operator << (ostream& out, const AliPHOSHit& hit)
-{
- // Print out Id and energy
-
- out << "AliPHOSHit = " << hit.GetId() << " " << hit.GetEnergy() << endl ;
- return out ;
-}
-
-
-