added a method to tell if the digit is in pre shower
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALHit.cxx
index f0f522c..027fd11 100644 (file)
@@ -17,8 +17,8 @@
 
 //_________________________________________________________________________
 //  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 single segment
+//  from a single enterring particle             
 //*-- Author: Sahal Yacoob (LBL / UCT)
 // Based on AliPHOSHit
 
@@ -26,8 +26,8 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
-#include <strstream.h>
-#include <iostream.h>
+#include <Rstrstream.h>
+#include <Riostream.h>
 
 // --- ROOT system ---
 #include <TLorentzVector.h>
@@ -36,7 +36,8 @@
 #include "AliEMCALHit.h"
 #include "AliRun.h"
 #include "AliConst.h"
-
+#include "AliEMCALGeometry.h"
+#include "AliEMCALGetter.h"
 
 ClassImp(AliEMCALHit)
 
@@ -46,6 +47,7 @@ AliEMCALHit::AliEMCALHit(){
    
     fId      = 0;
     fELOS    = 0.0;
+    fTime    = 0.0;
     fPrimary = 0;
     fTrack   = 0;
     fX       = 0.0;
@@ -75,18 +77,20 @@ AliEMCALHit::AliEMCALHit(const AliEMCALHit & hit){
     fPe       = hit.fPe;
     fIparent = hit.fIparent;
     fIenergy = hit.fIenergy;
+    fTime    = hit.fTime  ;
 }
 //______________________________________________________________________
 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){
     //
-    // Create a CPV hit object
+    // Create an EMCAL  hit object
     //
     fX          = hits[0];
     fY          = hits[1];
     fZ          = hits[2];
+    fTime       = hits[3] ;
     fId         = id;
-    fELOS       = hits[3];
+    fELOS       = hits[4];
     fPrimary    = primary;
     fPx          = p[0];
     fPy          = p[1];
@@ -95,13 +99,14 @@ AliEMCALHit::AliEMCALHit(Int_t shunt, Int_t primary, Int_t track,Int_t iparent,
     fIparent    = iparent;
     fIenergy    = ienergy;
 }
+
 //______________________________________________________________________
 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.GetIparent()) )
+    if ( (fId == rValue.GetId()) && ( fIparent == rValue.GetIparent()) )
        rv = kTRUE;
 
     return rv;
@@ -111,7 +116,10 @@ AliEMCALHit AliEMCALHit::operator+(const AliEMCALHit &rValue){
     // Add the energy of the hit
 
     fELOS += rValue.GetEnergy() ;
-
+    if(rValue.GetTime() < fTime)
+      fTime = rValue.GetTime() ;
     return *this;
 
 }
@@ -122,6 +130,7 @@ ostream& operator << (ostream& out,AliEMCALHit& hit){
     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();