X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSCpvRecPoint.cxx;h=2c515e3368bb80b80195df154540bcac4804d200;hb=b6613f2bc0b5a60183f98d25a7c6c45f01dd7879;hp=f017e2815fb813d14fc957d2adfba84aafd7a82a;hpb=9688c1ddeb34093dbf8265987926402e715ba192;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSCpvRecPoint.cxx b/PHOS/AliPHOSCpvRecPoint.cxx index f017e2815fb..2c515e3368b 100644 --- a/PHOS/AliPHOSCpvRecPoint.cxx +++ b/PHOS/AliPHOSCpvRecPoint.cxx @@ -15,6 +15,26 @@ /* $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 + * + * Revision 1.24 2006/08/28 10:01:56 kharlov + * Effective C++ warnings fixed (Timur Pocheptsov) + * + * Revision 1.23 2005/12/20 14:28:47 hristov + * Additional protection + * + * Revision 1.22 2005/05/28 14:19:04 schutz + * Compilation warnings fixed by T.P. + * + */ + //_________________________________________________________________________ // RecPoint implementation for PHOS-CPV // An CpvRecPoint is a cluster of digits @@ -23,29 +43,37 @@ // 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), + fLengX(-1), + fLengZ(-1) +{ + // ctor } //____________________________________________________________________________ @@ -54,7 +82,6 @@ AliPHOSCpvRecPoint::~AliPHOSCpvRecPoint() // dtor } - //____________________________________________________________________________ Bool_t AliPHOSCpvRecPoint::AreNeighbours(AliPHOSDigit * digit1, AliPHOSDigit * digit2 ) const { @@ -62,8 +89,7 @@ Bool_t AliPHOSCpvRecPoint::AreNeighbours(AliPHOSDigit * digit1, AliPHOSDigit * d Bool_t aren = kFALSE ; - AliPHOSGetter * gime = AliPHOSGetter::GetInstance() ; - AliPHOSGeometry * phosgeom = (AliPHOSGeometry*)gime->PHOSGeometry(); + AliPHOSGeometry * phosgeom = AliPHOSLoader::GetPHOSGeometry(); Int_t relid1[4] ; phosgeom->AbsToRelNumbering(digit1->GetId(), relid1) ; @@ -125,7 +151,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 @@ -136,7 +162,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 ; @@ -233,14 +259,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(Float_t logWeight, TClonesArray * digits) { - // wraps other methods + // Evaluate local coordinate assuming the vertex in (000) and no inclination + TVector3 vtx(0,0,0), vInc(0,1,0); AliPHOSEmcRecPoint::EvalAll(logWeight,digits) ; + EvalLocalPosition(logWeight, vtx, digits,vInc) ; EvalClusterLengths(digits) ; } //____________________________________________________________________________ -void AliPHOSCpvRecPoint::EvalLocalPosition(Float_t logWeight,TClonesArray * digits) +void AliPHOSCpvRecPoint::EvalAll(Float_t logWeight, TVector3 &vtx, TClonesArray * digits) +{ + // wraps other methods + AliPHOSEmcRecPoint::EvalAll(logWeight,vtx,digits) ; +} +//____________________________________________________________________________ +void AliPHOSCpvRecPoint::EvalLocalPosition(Float_t logWeight, TVector3 & /*vtx */, TClonesArray * digits, TVector3 &/* vInc */) { // Calculates the center of gravity in the local PHOS-module coordinates @@ -253,8 +287,8 @@ void AliPHOSCpvRecPoint::EvalLocalPosition(Float_t logWeight,TClonesArray * digi AliPHOSDigit * digit ; - AliPHOSGeometry * phosgeom = (AliPHOSGeometry *) fGeom ; - + AliPHOSGeometry * phosgeom = AliPHOSLoader::GetPHOSGeometry(); + 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) { @@ -276,12 +314,13 @@ 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.) ; fLocPos.SetZ(z) ; + fLocPosM = 0 ; } @@ -299,7 +338,7 @@ void AliPHOSCpvRecPoint::EvalClusterLengths(TClonesArray * digits) AliPHOSDigit * digit ; - AliPHOSGeometry * phosgeom = (AliPHOSGeometry *) fGeom ; + AliPHOSGeometry * phosgeom = AliPHOSLoader::GetPHOSGeometry(); const Int_t kMaxLeng=20; Int_t idX[kMaxLeng], idZ[kMaxLeng]; @@ -331,29 +370,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(Form(message.Data())) ; + Int_t iDigit; - cout << "Digits # " ; for(iDigit=0; iDigit