X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSCpvRecPoint.cxx;h=b5623b623a1e6ca1dcba5ef5fa31012bd8b87899;hb=1523328b5c07390158ff8752e3292a6b7a55b1b6;hp=f93f91b4efbfbe74ea3dba5bbaeb0719761efe0c;hpb=73a68ccb741814fc465cacbfb03fe1bb54de629e;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSCpvRecPoint.cxx b/PHOS/AliPHOSCpvRecPoint.cxx index f93f91b4efb..b5623b623a1 100644 --- a/PHOS/AliPHOSCpvRecPoint.cxx +++ b/PHOS/AliPHOSCpvRecPoint.cxx @@ -15,47 +15,56 @@ /* $Id$ */ +/* History of cvs commits: + * + * $Log$ + * Revision 1.26 2007/06/18 07:02:44 kharlov + * Change the signature of EvalLocalPosition() to obey the method virtuality from the parent class + * + * Revision 1.25 2007/03/06 06:47:28 kharlov + * DP:Possibility to use actual vertex position added + */ + //_________________________________________________________________________ // RecPoint implementation for PHOS-CPV // An CpvRecPoint is a cluster of digits -//*-- Author: Yuri Kharlov +//-- Author: Yuri Kharlov // (after Dmitri Peressounko (RRC KI & SUBATECH)) // 30 October 2000 // --- ROOT system --- -#include "TPad.h" -#include "TH2.h" + #include "TMath.h" -#include "TCanvas.h" #include "TClonesArray.h" // --- Standard library --- -#include - // --- AliRoot header files --- - +#include "AliLog.h" +#include "AliPHOSGeometry.h" +#include "AliPHOSDigit.h" #include "AliPHOSCpvRecPoint.h" -#include "AliPHOSGetter.h" +#include "AliPHOSLoader.h" + ClassImp(AliPHOSCpvRecPoint) //____________________________________________________________________________ -AliPHOSCpvRecPoint::AliPHOSCpvRecPoint() : AliPHOSEmcRecPoint() +AliPHOSCpvRecPoint::AliPHOSCpvRecPoint() : + AliPHOSEmcRecPoint(), + fLengX(-1), + fLengZ(-1) { // ctor - - fLengX = -1; - fLengZ = -1; } //____________________________________________________________________________ -AliPHOSCpvRecPoint::AliPHOSCpvRecPoint(const char * opt) : AliPHOSEmcRecPoint(opt) +AliPHOSCpvRecPoint::AliPHOSCpvRecPoint(const char * opt) : + AliPHOSEmcRecPoint(opt), + fLengX(-1), + fLengZ(-1) { // ctor - - fLengX = -1; - fLengZ = -1; - } +} //____________________________________________________________________________ AliPHOSCpvRecPoint::~AliPHOSCpvRecPoint() @@ -70,8 +79,7 @@ Bool_t AliPHOSCpvRecPoint::AreNeighbours(AliPHOSDigit * digit1, AliPHOSDigit * d Bool_t aren = kFALSE ; - AliPHOSGetter * gime = AliPHOSGetter::GetInstance() ; - AliPHOSGeometry * phosgeom = (AliPHOSGeometry*)gime->PHOSGeometry(); + AliPHOSGeometry * phosgeom = AliPHOSGeometry::GetInstance() ; Int_t relid1[4] ; phosgeom->AbsToRelNumbering(digit1->GetId(), relid1) ; @@ -133,7 +141,7 @@ Int_t AliPHOSCpvRecPoint::Compare(const TObject * obj) const } //______________________________________________________________________________ -void AliPHOSCpvRecPoint::ExecuteEvent(Int_t event, Int_t px, Int_t py) const +void AliPHOSCpvRecPoint::ExecuteEvent(Int_t, Int_t, Int_t ) /*const*/ { // // Execute action corresponding to one event // // This member function is called when a AliPHOSRecPoint is clicked with the locator @@ -144,7 +152,7 @@ void AliPHOSCpvRecPoint::ExecuteEvent(Int_t event, Int_t px, Int_t py) const // // static Int_t pxold, pyold; -// AliPHOSGetter * gime = AliPHOSGetter::GetInstance() ; +// AliPHOSLoader * gime = AliPHOSLoader::GetInstance() ; // static TGraph * digitgraph = 0 ; @@ -241,14 +249,22 @@ void AliPHOSCpvRecPoint::ExecuteEvent(Int_t event, Int_t px, Int_t py) const } //____________________________________________________________________________ -void AliPHOSCpvRecPoint::EvalAll(Float_t logWeight,TClonesArray * digits) +void AliPHOSCpvRecPoint::EvalAll(TClonesArray * digits) +{ + // Evaluate local coordinate assuming the vertex in (000) and no inclination + AliPHOSEmcRecPoint::EvalAll(digits) ; +} +//____________________________________________________________________________ +void AliPHOSCpvRecPoint::EvalAll(Float_t logWeight, TVector3 &vtx, TClonesArray * digits) { // wraps other methods - AliPHOSEmcRecPoint::EvalAll(logWeight,digits) ; + TVector3 vInc(0,1,0); + AliPHOSEmcRecPoint::EvalAll(logWeight,vtx,digits) ; + EvalLocalPosition(logWeight, vtx, digits,vInc) ; EvalClusterLengths(digits) ; } //____________________________________________________________________________ -void AliPHOSCpvRecPoint::EvalLocalPosition(Float_t logWeight,TClonesArray * digits) +void AliPHOSCpvRecPoint::EvalLocalPosition(Float_t logWeight, TVector3 & /*vtx */, TClonesArray * digits, TVector3 &/* vInc */) { // Calculates the center of gravity in the local PHOS-module coordinates @@ -261,9 +277,8 @@ void AliPHOSCpvRecPoint::EvalLocalPosition(Float_t logWeight,TClonesArray * digi AliPHOSDigit * digit ; - AliPHOSGetter * gime = AliPHOSGetter::GetInstance() ; - AliPHOSGeometry * phosgeom = (AliPHOSGeometry*)gime->PHOSGeometry(); - + AliPHOSGeometry * phosgeom = AliPHOSGeometry::GetInstance(); + Int_t iDigit; for(iDigit=0; iDigitAbsToRelNumbering(digit->GetId(), relid) ; phosgeom->RelPosInModule(relid, xi, zi); - Float_t w = TMath::Max( 0., logWeight + TMath::Log( fEnergyList[iDigit] / fAmp ) ) ; - x += xi * w ; - z += zi * w ; - wtot += w ; + if (fAmp>0 && fEnergyList[iDigit]>0) { + Float_t w = TMath::Max( 0., logWeight + TMath::Log( fEnergyList[iDigit] / fAmp ) ) ; + x += xi * w ; + z += zi * w ; + wtot += w ; + } + else + AliError(Form("Wrong energy %f and/or amplitude %f\n", fEnergyList[iDigit], fAmp)); } if (wtot != 0) { @@ -285,8 +304,8 @@ void AliPHOSCpvRecPoint::EvalLocalPosition(Float_t logWeight,TClonesArray * digi } else { x = -1e6 ; z = -1e6 ; - if (fMulDigit != 0) cout << "AliPHOSCpvRecPoint: too low log weight factor " - << "to evaluate cluster's center\n"; + if (fMulDigit != 0) + AliWarning(Form("Too low log weight factor to evaluate cluster's center" )) ; } fLocPos.SetX(x) ; fLocPos.SetY(0.) ; @@ -308,8 +327,7 @@ void AliPHOSCpvRecPoint::EvalClusterLengths(TClonesArray * digits) AliPHOSDigit * digit ; - AliPHOSGetter * gime = AliPHOSGetter::GetInstance() ; - AliPHOSGeometry * phosgeom = (AliPHOSGeometry*)gime->PHOSGeometry(); + AliPHOSGeometry * phosgeom = AliPHOSGeometry::GetInstance(); const Int_t kMaxLeng=20; Int_t idX[kMaxLeng], idZ[kMaxLeng]; @@ -341,29 +359,29 @@ void AliPHOSCpvRecPoint::EvalClusterLengths(TClonesArray * digits) } } - - //____________________________________________________________________________ -void AliPHOSCpvRecPoint::Print(Option_t * option) +void AliPHOSCpvRecPoint::Print(const Option_t *) const { // Print the list of digits belonging to the cluster - cout << "AliPHOSCpvRecPoint: " << endl ; - + TString message ; + message = "AliPHOSCpvRecPoint: " ; + message += "Digits # " ; + AliInfo(message.Data()) ; + Int_t iDigit; - cout << "Digits # " ; for(iDigit=0; iDigit