X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSEmcRecPoint.cxx;h=188b9d3b36a0335e25569ab058387f788932b5f8;hb=1e55299159b8d71a70f464bf87bc3e74780a64fd;hp=e4979a9e33fcaa7b9e49d4c83585467bf03c40c5;hpb=7fb9892dcfb9bbfcf8f8b33384fd30c94c495ae9;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSEmcRecPoint.cxx b/PHOS/AliPHOSEmcRecPoint.cxx index e4979a9e33f..188b9d3b36a 100644 --- a/PHOS/AliPHOSEmcRecPoint.cxx +++ b/PHOS/AliPHOSEmcRecPoint.cxx @@ -56,6 +56,7 @@ #include "AliPHOSGeometry.h" #include "AliPHOSDigit.h" #include "AliPHOSEmcRecPoint.h" +#include "AliPHOSReconstructor.h" ClassImp(AliPHOSEmcRecPoint) @@ -71,6 +72,10 @@ AliPHOSEmcRecPoint::AliPHOSEmcRecPoint() : fMulDigit = 0 ; fAmp = 0. ; fLocPos.SetX(1000000.) ; //Local position should be evaluated + + fLambda[0] = 0.; + fLambda[1] = 0.; + } //____________________________________________________________________________ @@ -85,6 +90,9 @@ AliPHOSEmcRecPoint::AliPHOSEmcRecPoint(const char * opt) : fMulDigit = 0 ; fAmp = 0. ; fLocPos.SetX(1000000.) ; //Local position should be evaluated + + fLambda[0] = 0.; + fLambda[1] = 0.; } //____________________________________________________________________________ @@ -100,7 +108,11 @@ AliPHOSEmcRecPoint::AliPHOSEmcRecPoint(const AliPHOSEmcRecPoint & rp) : fAmp = rp.fAmp ; if (rp.fMulDigit>0) fEnergyList = new Float_t[rp.fMulDigit] ; for(Int_t index = 0 ; index < fMulDigit ; index++) - fEnergyList[index] = rp.fEnergyList[index] ; + fEnergyList[index] = rp.fEnergyList[index] ; + + for(Int_t i=0; i<2; i++) { + fLambda[i] = rp.fLambda[i]; + } } //____________________________________________________________________________ @@ -112,7 +124,7 @@ AliPHOSEmcRecPoint::~AliPHOSEmcRecPoint() } //____________________________________________________________________________ -void AliPHOSEmcRecPoint::AddDigit(AliPHOSDigit & digit, Float_t Energy) +void AliPHOSEmcRecPoint::AddDigit(AliPHOSDigit & digit, Float_t Energy, Float_t time) { // Adds a digit to the RecPoint // and accumulates the total amplitude and the multiplicity @@ -146,11 +158,24 @@ void AliPHOSEmcRecPoint::AddDigit(AliPHOSDigit & digit, Float_t Energy) delete [] tempoE ; } // if + //time + Bool_t isMax=kTRUE ; + for(Int_t index = 0 ; index < fMulDigit ; index++ ){ + if(fEnergyList[index]>Energy){ + isMax=kFALSE ; + break ; + } + } + if(isMax){ + fTime=time ; + } + //Alternative time calculation - still to be validated + // fTime = (fTime*fAmp + time*Energy)/(fAmp+Energy) ; + fDigitsList[fMulDigit] = digit.GetIndexInList() ; fEnergyList[fMulDigit] = Energy ; fMulDigit++ ; fAmp += Energy ; - EvalPHOSMod(&digit) ; } @@ -299,7 +324,7 @@ void AliPHOSEmcRecPoint::ExecuteEvent(Int_t event, Int_t, Int_t) /*const*/ // 2. gets the histogram title Text_t title[100] ; - sprintf(title,"Energy=%1.2f GeV ; Digits ; %d ", GetEnergy(), GetDigitsMultiplicity()) ; + snprintf(title,100,"Energy=%1.2f GeV ; Digits ; %d ", GetEnergy(), GetDigitsMultiplicity()) ; if (!histo) { delete histo ; @@ -420,7 +445,7 @@ void AliPHOSEmcRecPoint::EvalDispersion(Float_t logWeight,TClonesArray * digits } //______________________________________________________________________________ -void AliPHOSEmcRecPoint::EvalCoreEnergy(Float_t logWeight, TClonesArray * digits) +void AliPHOSEmcRecPoint::EvalCoreEnergy(Float_t logWeight, Float_t coreRadius, TClonesArray * digits) { // This function calculates energy in the core, // i.e. within a radius rad = 3cm around the center. Beyond this radius @@ -428,8 +453,6 @@ void AliPHOSEmcRecPoint::EvalCoreEnergy(Float_t logWeight, TClonesArray * digits // should be less than 2% //DP: non-perpendicular incidence?????????????? - Float_t coreRadius = 3 ; - Float_t x = 0 ; Float_t z = 0 ; @@ -720,7 +743,7 @@ void AliPHOSEmcRecPoint::EvalPrimaries(TClonesArray * digits) if(emax(digits->At( fDigitsList[imaxDigit] )) ; + digit = static_cast(digits->At( fDigitsList[imaxDigit] )) ; Int_t nprimaries = digit->GetNprimary() ; if ( nprimaries > fMaxTrack ) { fMulTrack = - 1 ; @@ -735,7 +758,7 @@ void AliPHOSEmcRecPoint::EvalPrimaries(TClonesArray * digits) for (Int_t index = 0 ; index < GetDigitsMultiplicity() ; index++ ) { // all digits if(index==imaxDigit) //already in continue ; - digit = dynamic_cast(digits->At( fDigitsList[index] )) ; + digit = static_cast(digits->At( fDigitsList[index] )) ; nprimaries = digit->GetNprimary() ; for(Int_t ipr=0; iprGetPrimary(ipr+1) ; @@ -769,9 +792,9 @@ void AliPHOSEmcRecPoint::EvalPrimaries(TClonesArray * digits) } //____________________________________________________________________________ -void AliPHOSEmcRecPoint::EvalAll(Float_t logWeight, TClonesArray * digits ) +void AliPHOSEmcRecPoint::EvalAll(TClonesArray * digits ) { - EvalCoreEnergy(logWeight, digits); +// EvalCoreEnergy(logWeight, digits); EvalTime(digits) ; EvalPrimaries(digits) ; AliPHOSRecPoint::EvalAll(digits) ; @@ -845,7 +868,6 @@ void AliPHOSEmcRecPoint::EvalLocalPosition(Float_t logWeight, TVector3 &vtx, TCl fLocPos.SetY(0.) ; fLocPos.SetZ(z - depthz) ; - fLocPosM = 0 ; } //____________________________________________________________________________ @@ -937,10 +959,12 @@ Int_t AliPHOSEmcRecPoint::GetNumberOfLocalMax( AliPHOSDigit ** maxAt, Float_t return iDigitN ; } //____________________________________________________________________________ -void AliPHOSEmcRecPoint::EvalTime(TClonesArray * digits) +void AliPHOSEmcRecPoint::EvalTime(TClonesArray * /*digits*/) { // Define a rec.point time as a time in the cell with the maximum energy + //Time already evaluated during AddDigit() +/* Float_t maxE = 0; Int_t maxAt = 0; for(Int_t idig=0; idig < fMulDigit; idig++){ @@ -950,7 +974,7 @@ void AliPHOSEmcRecPoint::EvalTime(TClonesArray * digits) } } fTime = ((AliPHOSDigit*) digits->At(fDigitsList[maxAt]))->GetTime() ; - +*/ } //____________________________________________________________________________ void AliPHOSEmcRecPoint::Purify(Float_t threshold){