]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOS.cxx
Introduction of decalibration in the simulations with anchor runs and raw:// OCDB.
[u/mrichter/AliRoot.git] / PHOS / AliPHOS.cxx
index 81c258cd9518afd6237707b7c99787dca0868cc3..d0d882a62d5dce981e3ed87366641f24e32d166f 100644 (file)
@@ -81,6 +81,7 @@ class TFile;
 #include "AliPHOS.h"
 #include "AliPHOSLoader.h"
 #include "AliRun.h"
+#include "AliRawReader.h"
 #include "AliPHOSDigitizer.h"
 #include "AliPHOSSDigitizer.h"
 #include "AliPHOSDigit.h"
@@ -379,42 +380,6 @@ void AliPHOS::CreateMaterials()
 //_____________________________________________________________________________
 void AliPHOS::Init()
 {
-  //
-  // Initialises cuts for PHOS
-  //
-  // --- Set decent energy thresholds for gamma and electron tracking
-  Int_t * idtmed = fIdtmed->GetArray() - 699 ; 
-
-  // Tracking threshold for photons and electrons in the scintillator crystal 
-  gMC->Gstpar(idtmed[699], "CUTGAM",0.5E-4) ; 
-  gMC->Gstpar(idtmed[699], "CUTELE",1.0E-4) ;
-  // --- Generate explicitly delta rays in the titan cover ---
-  gMC->Gstpar(idtmed[704], "LOSS",3.) ;
-  gMC->Gstpar(idtmed[704], "DRAY",1.) ;
-  // --- and in aluminium parts ---
-  gMC->Gstpar(idtmed[701], "LOSS",3.) ;
-  gMC->Gstpar(idtmed[701], "DRAY",1.) ;
-  // --- and in PIN diode
-  gMC->Gstpar(idtmed[705], "LOSS",3) ;
-  gMC->Gstpar(idtmed[705], "DRAY",1) ;
-  // --- and in the passive convertor
-  gMC->Gstpar(idtmed[712], "LOSS",3) ;
-  gMC->Gstpar(idtmed[712], "DRAY",1) ;
-  // Tracking threshold for photons and electrons in the gas ArC02 
-  gMC->Gstpar(idtmed[715], "CUTGAM",1.E-5) ; 
-  gMC->Gstpar(idtmed[715], "CUTELE",1.E-5) ;
-  gMC->Gstpar(idtmed[715], "CUTNEU",1.E-5) ;
-  gMC->Gstpar(idtmed[715], "CUTHAD",1.E-5) ;
-  gMC->Gstpar(idtmed[715], "CUTMUO",1.E-5) ;
-  gMC->Gstpar(idtmed[715], "BCUTE",1.E-5) ;
-  gMC->Gstpar(idtmed[715], "BCUTM",1.E-5) ;
-  gMC->Gstpar(idtmed[715], "DCUTE",1.E-5) ;
-  gMC->Gstpar(idtmed[715], "DCUTM",1.E-5) ;
-  gMC->Gstpar(idtmed[715], "PPCUTM",1.E-5) ;
-  gMC->Gstpar(idtmed[715], "LOSS",2.) ;
-  gMC->Gstpar(idtmed[715], "DRAY",0.) ;
-  gMC->Gstpar(idtmed[715], "STRA",2.) ;
 }
 
 //____________________________________________________________________________
@@ -426,7 +391,7 @@ void AliPHOS::Digits2Raw()
     AliError("Energy digitization should be OFF if use Digits2Raw") ;
   }
 
-  AliPHOSLoader * loader = dynamic_cast<AliPHOSLoader*>(fLoader) ; 
+  AliPHOSLoader * loader = static_cast<AliPHOSLoader*>(fLoader) ; 
 
   // get the digits
   loader->LoadDigits();
@@ -484,7 +449,7 @@ 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)) ;
+    AliPHOSDigit* digit = static_cast<AliPHOSDigit *>(digits->At(iDigit)) ;
 
     // Skip small energy below treshold
     if (digit->GetEnergy() < kThreshold) 
@@ -568,7 +533,9 @@ void AliPHOS::Digits2Raw()
                           pulse->GetRawFormatTimeBins(), adcValuesHigh, kAdcThreshold);
     }
   }
-  
+  delete [] adcValuesLow;
+  delete [] adcValuesHigh;
+
   // write real header and close last file
   for (Int_t iDDL=0; iDDL<maxDDL; iDDL++) {
     if (buffer[iDDL]) {
@@ -613,7 +580,7 @@ void AliPHOS::SetTreeAddress()
   // Links Hits in the Tree to Hits array
   TBranch *branch;
   char branchname[20];
-  sprintf(branchname,"%s",GetName());
+  snprintf(branchname,20,"%s",GetName());
   // Branch address for hit tree
     TTree *treeH = fLoader->TreeH();
   if (treeH) {
@@ -631,7 +598,7 @@ void AliPHOS::SetTreeAddress()
 Bool_t AliPHOS::Raw2SDigits(AliRawReader* rawReader)    
 {       
                 
-  AliPHOSLoader * loader = dynamic_cast<AliPHOSLoader*>(fLoader) ;      
+  AliPHOSLoader * loader = static_cast<AliPHOSLoader*>(fLoader) ;       
                 
   TTree * tree = 0 ;    
   tree = loader->TreeS() ;      
@@ -647,11 +614,13 @@ Bool_t AliPHOS::Raw2SDigits(AliRawReader* rawReader)
   }     
   sdigits->Clear();     
                 
+  rawReader->Reset() ;
+
   const TObjArray* maps = AliPHOSRecoParam::GetMappings();
   if(!maps) AliFatal("Cannot retrieve ALTRO mappings!!");
 
-  AliAltroMapping *mapping[4];
-  for(Int_t i = 0; i < 4; i++) {
+  AliAltroMapping *mapping[20];
+  for(Int_t i = 0; i < 20; i++) {
     mapping[i] = (AliAltroMapping*)maps->At(i);
   }