-/**************************************************************************
+ /**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* *
* Author: The ALICE Off-line Project. *
//_________________________________________________________________________
// Hits class for EMCAL
-// A hit in EMCAL is the sum of all hits in a single crystal
-//
+// A hit in EMCAL is the sum of all hits in a tower
+// from a single entering particle
//*-- Author: Sahal Yacoob (LBL / UCT)
// Based on AliPHOSHit
// --- Standard library ---
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <strstream.h>
-#include <iostream.h>
+#include <Riostream.h>
// --- ROOT system ---
-#include <TLorentzVector.h>
// --- AliRoot header files ---
#include "AliEMCALHit.h"
-#include "AliRun.h"
-#include "AliConst.h"
-
ClassImp(AliEMCALHit)
//______________________________________________________________________
-AliEMCALHit::AliEMCALHit(){
+AliEMCALHit::AliEMCALHit()
+ : fId(0),
+ fELOS(0.),
+ fPrimary(0),
+ fPx(0.),
+ fPy(0.),
+ fPz(0.),
+ fPe(0.),
+ fIparent(0),
+ fIenergy(0.),
+ fTime(0.)
+{
// Default ctor
-
- fId = 0;
- fELOS = 0.0;
- fPrimary = 0;
- fTrack = 0;
- fX = 0.0;
- fY = 0.0;
- fZ = 0.0;
- fP = 0.0;
}
+
//______________________________________________________________________
-AliEMCALHit::AliEMCALHit(const AliEMCALHit & hit){
+AliEMCALHit::AliEMCALHit(const AliEMCALHit & hit)
+ : AliHit(hit),
+ fId(hit.fId),
+ fELOS(hit.fELOS),
+ fPrimary(hit.fPrimary),
+ fPx(hit.fPx),
+ fPy(hit.fPy),
+ fPz(hit.fPz),
+ fPe(hit.fPe),
+ fIparent(hit.fIparent),
+ fIenergy(hit.fIenergy),
+ 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;
- fP = hit.fP;
}
+
//______________________________________________________________________
-AliEMCALHit::AliEMCALHit(Int_t shunt, Int_t primary, Int_t track,Int_t id,
- Float_t *hits,TLorentzVector *p):AliHit(shunt, track){
+AliEMCALHit::AliEMCALHit(Int_t shunt, Int_t primary, Int_t track,Int_t iparent, Float_t ienergy, Int_t id,
+ Float_t *hits,Float_t *p)
+ : AliHit(shunt, track),
+ fId(id),
+ fELOS(0.),
+ fPrimary(primary),
+ fPx(0.),
+ fPy(0.),
+ fPz(0.),
+ fPe(0.),
+ fIparent(iparent),
+ fIenergy(ienergy),
+ fTime(0.)
+{
//
- // Create a CPV hit object
+ // Create an EMCAL hit object
//
-
fX = hits[0];
fY = hits[1];
fZ = hits[2];
- fId = id;
- fELOS = hits[3];
- fPrimary = primary;
- fP = *p;
+ fTime = hits[3] ;
+ fELOS = hits[4];
+ fPx = p[0];
+ fPy = p[1];
+ fPz = p[2];
+ fPe = p[3];
}
+
//______________________________________________________________________
Bool_t AliEMCALHit::operator==(AliEMCALHit const &rValue) const{
// Two hits are identical if they have the same Id and originat
- // from the same primary
+ // from the same enterring Particle
Bool_t rv = kFALSE;
- if ( (fId == rValue.GetId()) && ( fPrimary == rValue.GetPrimary()) )
+ if ( (fId == rValue.GetId()) && ( fIparent == rValue.GetIparent()))
rv = kTRUE;
return rv;
// Add the energy of the hit
fELOS += rValue.GetEnergy() ;
-
+
+ if(rValue.GetTime() < fTime)
+ fTime = rValue.GetTime() ;
+
return *this;
}
out << "AliEMCALHit:";
out << "id=" << hit.GetId();
out << ", Eloss=" << hit.GetEnergy();
+ out << ", Time=" << hit.GetTime();
out << "GeV , Track no.=" << hit.GetPrimary();
out << ", (xyz)=(" << hit.X()<< ","<< hit.Y()<< ","<<hit.Z()<<") cm";
out << ", fTrack=" << hit.GetTrack();
- out << ", P=(" << hit.GetP().Px() << "," << hit.GetP().Py() <<","
- << hit.GetP().Pz() << "," << hit.GetP().E();
+ out << ", P=(" << hit.GetPx() << "," << hit.GetPy() << "," << hit.GetPz()
+ << "," <<hit.GetPe() << ") GeV" ;
+ out << ", Enterring particle ID" << hit.GetIparent();
+ out << ", Enterring particle initial energy = " << hit.GetIenergy() << " GeV" ;
out << endl;
return out;