Digits::E measured in ADC counts now
authorprsnko <prsnko@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 26 Jan 2009 17:03:19 +0000 (17:03 +0000)
committerprsnko <prsnko@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 26 Jan 2009 17:03:19 +0000 (17:03 +0000)
PHOS/AliPHOS.cxx
PHOS/AliPHOS.h
PHOS/AliPHOSClusterizerv1.h
PHOS/AliPHOSRecoParam.h
PHOS/AliPHOSSimParam.cxx

index 69ebedf..dde85f4 100644 (file)
@@ -94,6 +94,7 @@ class TFile;
 #include "AliPHOSPulseGenerator.h"
 #include "AliDAQ.h"
 #include "AliPHOSRawDecoder.h"
+#include "AliPHOSCalibData.h"
 #include "AliPHOSRawDigiProducer.h"
 #include "AliPHOSQAChecker.h"
 #include "AliPHOSRecoParam.h"
@@ -102,7 +103,7 @@ class TFile;
 ClassImp(AliPHOS)
 
 //____________________________________________________________________________
-  AliPHOS:: AliPHOS() : AliDetector()
+  AliPHOS:: AliPHOS() : AliDetector(),fgCalibData(0)
 {
   // Default ctor
   fName   = "PHOS" ;
@@ -110,7 +111,8 @@ ClassImp(AliPHOS)
 }
 
 //____________________________________________________________________________
-AliPHOS::AliPHOS(const char* name, const char* title): AliDetector(name, title)
+AliPHOS::AliPHOS(const char* name, const char* title): AliDetector(name, title),
+fgCalibData(0)
 {
   //   ctor : title is used to identify the layout
 }
@@ -118,6 +120,7 @@ AliPHOS::AliPHOS(const char* name, const char* title): AliDetector(name, title)
 //____________________________________________________________________________
 AliPHOS::~AliPHOS() 
 {  
+  if(fgCalibData) delete fgCalibData ;
 }
 
 //____________________________________________________________________________
@@ -445,11 +448,14 @@ void AliPHOS::Digits2Raw()
   if(!maps) AliFatal("Cannot retrieve ALTRO mappings!!");
 
   // some digitization constants
-  const Float_t    kThreshold = 0.001; // skip digits below 1 MeV
+  const Float_t    kThreshold = 1.; // skip digits below 1 ADC channel
   const Int_t      kAdcThreshold = 1;  // Lower ADC threshold to write to raw data
 
   Int_t prevDDL = -1;
 
+  if(fgCalibData==0)
+    fgCalibData= new AliPHOSCalibData(-1) ;
+
   // Create a shaper pulse object
   AliPHOSPulseGenerator *pulse = new AliPHOSPulseGenerator();
   
@@ -479,9 +485,6 @@ void AliPHOS::Digits2Raw()
     // 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);
@@ -556,6 +559,8 @@ void AliPHOS::Digits2Raw()
       }
       pulse->SetAmplitude(energy);
       pulse->SetTZero(digit->GetTimeR());
+      Double_t r =fgCalibData->GetHighLowRatioEmc(relId[0],relId[3],relId[2]) ;
+      pulse->SetHG2LGRatio(r) ;
       pulse->MakeSamples();
       pulse->GetSamples(adcValuesHigh, adcValuesLow) ; 
       buffer[iDDL]->WriteChannel(relId[3]-1, relId[2]-1, 0, 
index 8279b54..079ed45 100644 (file)
@@ -67,6 +67,7 @@ class TRandom ;
 #include "AliLog.h"
 #include "AliPHOSGeometry.h" 
 #include "AliPHOSTrigger.h"
+class AliPHOSCalibData ;
 
 class AliPHOS : public AliDetector {
 
@@ -104,6 +105,9 @@ public:
   AliPHOS(AliPHOS & phos);
   AliPHOS & operator = (const AliPHOS & /*rvalue*/);
 
+ protected:
+  AliPHOSCalibData * fgCalibData ; //!  Pointer to Calibration DB
+
   ClassDef(AliPHOS,6) // Photon Spectrometer Detector (base class)
 } ;
 
index 1f9748a..ede6668 100644 (file)
@@ -124,7 +124,8 @@ protected:
   virtual Bool_t IsInCpv (AliPHOSDigit * digit)const ;     // Tells if id digit is in CPV
   void           CleanDigits(TClonesArray * digits) ;
   void           SetDistancesToBadChannels();
-
+  virtual Float_t Calibrate(Float_t amp, Int_t absId) ;  // Tranforms ADC counts to energy   
+   
 private:
   AliPHOSClusterizerv1(const AliPHOSClusterizerv1 & clu) ;
   AliPHOSClusterizerv1 & operator = (const AliPHOSClusterizerv1 & obj);
index e3bb1ef..7e71cdc 100644 (file)
@@ -66,7 +66,7 @@ protected:
 
   Float_t fEMCClusteringThreshold; // EMC: Min.digit energy to start a new cluster, in GeV
   Float_t fEMCLocMaxCut;           // EMC: Min.energy difference between two local maxima, in GeV
-  Float_t fEMCMinE;                // EMC: Min.E in the digits list associated with rec.point, in GeV
+  Float_t fEMCMinE;                // EMC: Min.E in the digits list associated with rec.point, in ADC counts
   Float_t fEMCW0;                  // EMC: Log.weight to evaluate a local coordinate of rec.point
   Float_t fEMCSampleQualityCut;    // EMC: Cut on pulse shape fit quality
   Float_t fEMCEcoreRadius;         // EMC: Radius within which the core energy is calculated, in cm
index fc20fa1..3e76327 100644 (file)
@@ -31,7 +31,6 @@ AliPHOSSimParam::AliPHOSSimParam() :
   fLightFactor(0.),fAPDFactor(0.),         
   fAPDNoise(0.),fEMCDigitThreshold(0.),
   fEMCADCchannel(0.),fTOFa(0.),fTOFb(0.),
-  fFastDecalibration(0.),
   fADCpedestalCpv(0.),fADCchanelCpv(0.),
   fCPVNoise(0.),fCPVDigitThreshold(0.),fNADCcpv(0),
   fDigitizeE(0)
@@ -47,9 +46,9 @@ AliPHOSSimParam::AliPHOSSimParam(Int_t) :
   fLightFactor(0.),fAPDFactor(0.),         
   fAPDNoise(0.),fEMCDigitThreshold(0.),
   fEMCADCchannel(0.),fTOFa(0.),fTOFb(0.),
-  fFastDecalibration(0.),
   fADCpedestalCpv(0.),fADCchanelCpv(0.),
-  fCPVNoise(0.),fCPVDigitThreshold(0.),fNADCcpv(0),
+  fCPVNoise(0.),fCPVDigitThreshold(0.),
+  fNADCcpv(0),
   fDigitizeE(0)
 {
   //Real (private) constructor 
@@ -79,13 +78,11 @@ AliPHOSSimParam::AliPHOSSimParam(Int_t) :
   //Parameters defining electronic noise calculation and Digits noise thresholds
   //used in AliPHOSDigitizer
   fAPDNoise           = 0.004 ;  // [GeV]
-  fEMCDigitThreshold  = 0.012 ;  // [GeV]
+  fEMCDigitThreshold  = 2.5   ;  // [ADC counts]
   fEMCADCchannel      = 0.005 ;  // [GeV]
   fTOFa               = 0.5e-9 ; // [sec] constant term
   fTOFb               = 1.e-9 ;  // [sec/sqrt(GeV)]] stohastic term
 
-  fFastDecalibration = 0. ; //Relative decalibration. By default there is no decalibration
-
   fADCpedestalCpv     = 0.012 ;  // [aux units]
   fADCchanelCpv       = 0.0012;  // [aux units]    
   fCPVNoise           = 0.01;    // [aux units]
@@ -106,7 +103,6 @@ AliPHOSSimParam::AliPHOSSimParam(const AliPHOSSimParam& ):
   fLightFactor(0.),fAPDFactor(0.),         
   fAPDNoise(0.),fEMCDigitThreshold(0.),
   fEMCADCchannel(0.),fTOFa(0.),fTOFb(0.),
-  fFastDecalibration(0.),
   fADCpedestalCpv(0.),fADCchanelCpv(0.),
   fCPVNoise(0.),fCPVDigitThreshold(0.),fNADCcpv(0),
   fDigitizeE(0)