]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOS.cxx
Warnings fixed.
[u/mrichter/AliRoot.git] / PHOS / AliPHOS.cxx
index ec12ad26aae3f478103975975a3102689be5f07e..9059aa75abc8fbac40b8cd3d07d13e9d0ca9bee6 100644 (file)
 /* History of cvs commits:
  *
  * $Log$
+ * Revision 1.116  2007/10/10 09:05:10  schutz
+ * Changing name QualAss to QA
+ *
+ * Revision 1.115  2007/08/22 09:20:50  hristov
+ * Updated QA classes (Yves)
+ *
  * Revision 1.114  2007/08/07 14:12:03  kharlov
  * Quality assurance added (Yves Schutz)
  *
@@ -72,7 +78,7 @@ class TFile;
 // --- AliRoot header files ---
 #include "AliMagF.h"
 #include "AliPHOS.h"
-#include "AliPHOSGetter.h"
+#include "AliPHOSLoader.h"
 #include "AliRun.h"
 #include "AliPHOSDigitizer.h"
 #include "AliPHOSSDigitizer.h"
@@ -89,7 +95,9 @@ class TFile;
 #include "AliDAQ.h"
 #include "AliPHOSRawDecoder.h"
 #include "AliPHOSRawDigiProducer.h"
-#include "AliPHOSQualAssChecker.h"
+#include "AliPHOSQAChecker.h"
+#include "AliPHOSRecoParam.h"
+#include "AliPHOSSimParam.h"
 
 ClassImp(AliPHOS)
 
@@ -410,6 +418,10 @@ void AliPHOS::Digits2Raw()
 {
 // convert digits of the current event to raw data
   
+  if(AliPHOSSimParam::GetInstance()->IsEDigitizationOn()){
+    AliError("Energy digitization should be OFF if use Digits2Raw") ;
+  }
+
   AliPHOSLoader * loader = dynamic_cast<AliPHOSLoader*>(fLoader) ; 
 
   // get the digits
@@ -428,6 +440,10 @@ void AliPHOS::Digits2Raw()
     return;
   }
 
+  // get mapping from OCDB
+  const TObjArray* maps = AliPHOSRecoParam::GetMappings();
+  if(!maps) AliFatal("Cannot retrieve ALTRO mappings!!");
+
   // some digitization constants
   const Float_t    kThreshold = 0.001; // skip digits below 1 MeV
   const Int_t      kAdcThreshold = 1;  // Lower ADC threshold to write to raw data
@@ -459,8 +475,14 @@ void AliPHOS::Digits2Raw()
   // loop over digits (assume ordered digits)
   for (Int_t iDigit = 0; iDigit < digits->GetEntries(); iDigit++) {
     AliPHOSDigit* digit = dynamic_cast<AliPHOSDigit *>(digits->At(iDigit)) ;
+
+    // Skip small energy below treshold
     if (digit->GetEnergy() < kThreshold) 
       continue;
+    // Skip CPV digits
+    if (digit->GetId() > geom->GetNModules() * geom->GetNCristalsInModule()) 
+      continue;
+
     Int_t relId[4];
     geom->AbsToRelNumbering(digit->GetId(), relId);
     Int_t module = relId[0];
@@ -503,7 +525,7 @@ void AliPHOS::Digits2Raw()
        path += iRCU;
        path += ".data";
 
-       mapping[iDDL] = new AliCaloAltroMapping(path.Data());
+       mapping[iDDL] = (AliAltroMapping*)maps->At(iRCU);
        buffer[iDDL]  = new AliAltroBuffer(fileName.Data(),mapping[iDDL]);
        buffer[iDDL]->WriteDataHeader(kTRUE, kFALSE);  //Dummy;
       }
@@ -515,7 +537,7 @@ void AliPHOS::Digits2Raw()
                    relId[0]-1,relId[3]-1,relId[2]-1));
     // if a signal is out of time range, write only trailer
     if (digit->GetTimeR() > pulse->GetRawFormatTimeMax()*0.5 ) {
-      AliInfo("Signal is out of time range.\n");
+      AliDebug(2,"Signal is out of time range.\n");
       buffer[iDDL]->FillBuffer(0);
       buffer[iDDL]->FillBuffer(pulse->GetRawFormatTimeBins() );  // time bin
       buffer[iDDL]->FillBuffer(3);                               // bunch length
@@ -549,7 +571,7 @@ void AliPHOS::Digits2Raw()
       buffer[iDDL]->Flush();
       buffer[iDDL]->WriteDataHeader(kFALSE, kFALSE);
       delete buffer[iDDL];
-      if (mapping[iDDL]) delete mapping[iDDL];
+      //if (mapping[iDDL]) delete mapping[iDDL];
     }
   }