]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSClusterizerv1.cxx
Bug fix for attempt to use AliPHOSEmcRecPoint after its deletion
[u/mrichter/AliRoot.git] / PHOS / AliPHOSClusterizerv1.cxx
index 1bff0e02cbd0d608ab177de092b62a8f5958a311..db6a36033bee465ba5e7c4a4b03cf4383e8085ef 100644 (file)
 /* History of cvs commits:
  *
  * $Log$
+ * Revision 1.107  2007/05/25 14:12:26  policheh
+ * Local to tracking CS transformation added for CPV rec. points
+ *
+ * Revision 1.106  2007/05/24 13:01:22  policheh
+ * Local to tracking CS transformation invoked for each EMC rec.point
+ *
+ * Revision 1.105  2007/05/02 13:41:22  kharlov
+ * Mode protection against absence of calib.data from AliPHOSCalibData to AliPHOSClusterizerv1::GetCalibrationParameters()
+ *
+ * Revision 1.104  2007/04/27 16:55:53  kharlov
+ * Calibration stops if PHOS CDB objects do not exist
+ *
  * Revision 1.103  2007/04/11 11:55:45  policheh
  * SetDistancesToBadChannels() added.
  *
@@ -442,6 +454,11 @@ void AliPHOSClusterizerv1::GetCalibrationParameters()
   // AliCDBStorage* storage = AliCDBManager::Instance()->GetStorage("local://CalibDB");
 
   fCalibData = new AliPHOSCalibData(-1); //use AliCDBManager's run number
+  if (fCalibData->GetCalibDataEmc() == 0)
+    AliFatal("Calibration parameters for PHOS EMC not found. Stop reconstruction.\n");
+  if (fCalibData->GetCalibDataCpv() == 0)
+    AliFatal("Calibration parameters for PHOS CPV not found. Stop reconstruction.\n");
+
 }
 
 //____________________________________________________________________________
@@ -624,17 +641,20 @@ void AliPHOSClusterizerv1::WriteRecPoints()
   //Evaluate position, dispersion and other RecPoint properties..
   Int_t nEmc = emcRecPoints->GetEntriesFast();
   for(index = 0; index < nEmc; index++){
-    AliPHOSEmcRecPoint * rp = dynamic_cast<AliPHOSEmcRecPoint *>( emcRecPoints->At(index) );
+    AliPHOSEmcRecPoint * rp =
+      dynamic_cast<AliPHOSEmcRecPoint *>( emcRecPoints->At(index) );
     rp->Purify(fEmcMinE) ;
     if(rp->GetMultiplicity()==0){
       emcRecPoints->RemoveAt(index) ;
       delete rp ;
+      continue;
     }
 
-// No vertex is available now, calculate cirrections in PID
-      rp->EvalAll(fW0,digits) ;
-      TVector3 fakeVtx(0.,0.,0.) ;
-      rp->EvalAll(fW0,fakeVtx,digits) ;
+    // No vertex is available now, calculate corrections in PID
+    rp->EvalAll(fW0,digits) ;
+    TVector3 fakeVtx(0.,0.,0.) ;
+    rp->EvalAll(fW0,fakeVtx,digits) ;
+    rp->EvalLocal2TrackingCSTransform();
   }
   emcRecPoints->Compress() ;
 //  emcRecPoints->Sort() ; //Can not sort until position is calculated!
@@ -650,6 +670,7 @@ void AliPHOSClusterizerv1::WriteRecPoints()
   for(index = 0; index < cpvRecPoints->GetEntries(); index++){
     AliPHOSCpvRecPoint * rp = dynamic_cast<AliPHOSCpvRecPoint *>( cpvRecPoints->At(index) );
     rp->EvalAll(fW0CPV,digits) ;
+    rp->EvalLocal2TrackingCSTransform();
   }
 //  cpvRecPoints->Sort() ;