]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSCpvRecPoint.cxx
Updating limits to cope both with p-A and A-p ZDC timing
[u/mrichter/AliRoot.git] / PHOS / AliPHOSCpvRecPoint.cxx
index 6a7f9277596c985edbe0f70f36b1d42433984398..b5623b623a1e6ca1dcba5ef5fa31012bd8b87899 100644 (file)
 /* 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 
 
 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()
@@ -74,7 +79,7 @@ Bool_t AliPHOSCpvRecPoint::AreNeighbours(AliPHOSDigit * digit1, AliPHOSDigit * d
   
   Bool_t aren = kFALSE ;
   
-  AliPHOSGeometry * phosgeom =  AliPHOSLoader::GetPHOSGeometry();
+  AliPHOSGeometry * phosgeom =  AliPHOSGeometry::GetInstance() ;
 
   Int_t relid1[4] ; 
   phosgeom->AbsToRelNumbering(digit1->GetId(), relid1) ; 
@@ -244,14 +249,22 @@ void AliPHOSCpvRecPoint::ExecuteEvent(Int_t, Int_t, Int_t ) /*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 
 
@@ -264,7 +277,7 @@ void AliPHOSCpvRecPoint::EvalLocalPosition(Float_t logWeight,TClonesArray * digi
   
   AliPHOSDigit * digit ;
 
-  AliPHOSGeometry * phosgeom =  AliPHOSLoader::GetPHOSGeometry();
+  AliPHOSGeometry * phosgeom =  AliPHOSGeometry::GetInstance();
   
   Int_t iDigit;
 
@@ -275,10 +288,14 @@ void AliPHOSCpvRecPoint::EvalLocalPosition(Float_t logWeight,TClonesArray * digi
     Float_t zi ;
     phosgeom->AbsToRelNumbering(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) {
@@ -293,7 +310,6 @@ void AliPHOSCpvRecPoint::EvalLocalPosition(Float_t logWeight,TClonesArray * digi
   fLocPos.SetX(x)  ;
   fLocPos.SetY(0.) ;
   fLocPos.SetZ(z)  ;
-  fLocPosM = 0 ;
 
 }
 
@@ -311,7 +327,7 @@ void AliPHOSCpvRecPoint::EvalClusterLengths(TClonesArray * digits)
 
   AliPHOSDigit * digit ;
 
-  AliPHOSGeometry * phosgeom =  AliPHOSLoader::GetPHOSGeometry();
+  AliPHOSGeometry * phosgeom =  AliPHOSGeometry::GetInstance();
 
   const Int_t kMaxLeng=20;
   Int_t idX[kMaxLeng], idZ[kMaxLeng];
@@ -343,8 +359,6 @@ void AliPHOSCpvRecPoint::EvalClusterLengths(TClonesArray * digits)
   }
 }
 
-
-
 //____________________________________________________________________________
 void AliPHOSCpvRecPoint::Print(const Option_t *) const
 {
@@ -353,7 +367,7 @@ void AliPHOSCpvRecPoint::Print(const Option_t *) const
   TString message ; 
   message  =  "AliPHOSCpvRecPoint: " ;
   message +=  "Digits #   " ;
-  AliInfo(Form(message.Data())) ; 
+  AliInfo(message.Data()) ; 
   
   Int_t iDigit;