Change digitization threshold to >=3 ACD units, now cut on ADC value of digit after...
authorgconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 10 Feb 2010 10:55:42 +0000 (10:55 +0000)
committergconesab <gconesab@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 10 Feb 2010 10:55:42 +0000 (10:55 +0000)
EMCAL/AliEMCALDigitizer.cxx
EMCAL/AliEMCALDigitizer.h
EMCAL/AliEMCALSimParam.cxx
EMCAL/AliEMCALSimParam.h

index e3ab535..7ebb516 100644 (file)
@@ -427,11 +427,17 @@ void AliEMCALDigitizer::Digitize(Int_t event)
   delete sdigArray ; //We should not delete its contents
 
   //remove digits below thresholds
+  // until 10-02-2010 remove digits with energy smaller than fDigitThreshold 3*fPinNoise
+  // now, remove digits with Digitized ADC smaller than fDigitThreshold = 3
+  Float_t energy=0;
   for(i = 0 ; i < nEMC ; i++){
     digit = dynamic_cast<AliEMCALDigit*>( digits->At(i) ) ;
-    Float_t threshold = fDigitThreshold ; //this is in GeV
-    //need to calibrate digit amplitude to energy in GeV for comparison
-    if(sDigitizer->Calibrate( digit->GetAmp() ) < threshold)
+    //First get the energy in GeV units.
+    energy = sDigitizer->Calibrate(digit->GetAmp()) ;
+    //Then digitize using the calibration constants of the ocdb
+    Int_t ampADC = DigitizeEnergy(energy, digit->GetId())  ;     
+    //if(ampADC>2)printf("Digit energy %f, amp %d, amp cal %d, threshold %d\n",energy,digit->GetAmp(),ampADC,fDigitThreshold);
+    if(ampADC < fDigitThreshold)
       digits->RemoveAt(i) ;
     else 
       digit->SetTime(gRandom->Gaus(digit->GetTime(),fTimeResolution) ) ;
@@ -440,12 +446,11 @@ void AliEMCALDigitizer::Digitize(Int_t event)
   digits->Compress() ;  
   
   Int_t ndigits = digits->GetEntriesFast() ; 
-
+  
   //JLK 26-June-2008
   //After we have done the summing and digitizing to create the
   //digits, now we want to calibrate the resulting amplitude to match
   //the dynamic range of our real data.  
-  Float_t energy=0;
   for (i = 0 ; i < ndigits ; i++) { 
     digit = dynamic_cast<AliEMCALDigit *>( digits->At(i) ) ; 
     digit->SetIndexInList(i) ; 
@@ -748,7 +753,7 @@ void AliEMCALDigitizer::Print(Option_t*)const
     printf("\nWith following parameters:\n") ;
     
     printf("    Electronics noise in EMC (fPinNoise) = %f\n", fPinNoise) ;
-    printf("    Threshold  in EMC  (fDigitThreshold) = %f\n", fDigitThreshold)  ;
+    printf("    Threshold  in Tower  (fDigitThreshold) = %d\n", fDigitThreshold)  ;
     printf("---------------------------------------------------\n")  ;
   }
   else
index 4c17670..1320d87 100644 (file)
@@ -49,7 +49,7 @@ public:
   void    Digitize(Int_t event);          // Make Digits from SDigits stored in fSDigits
   void    Exec(Option_t *option);               // Supervising method
 
-  Float_t GetDigitThreshold() const { return fDigitThreshold;}
+  Int_t   GetDigitThreshold() const { return fDigitThreshold;}
   //Float_t GetPedestal()       const { return fPedestal; }
   Float_t GetPinNoise()       const { return fPinNoise;}
   //Float_t GetSlope()          const { return fSlope; }
@@ -57,7 +57,7 @@ public:
   Float_t GetECAchannel()     const { return fADCchannelEC ; }
   Float_t GetECApedestal()    const { return fADCpedestalEC ; }
   void    SetEventRange(Int_t first=0, Int_t last=-1) {fFirstEvent=first; fLastEvent=last; }
-  void    SetDigitThreshold(Float_t EMCThreshold)  {fDigitThreshold = EMCThreshold;}
+  void    SetDigitThreshold(Int_t EMCThreshold)  {fDigitThreshold = EMCThreshold;}
   void    SetPinNoise(Float_t PinNoise )         {fPinNoise = PinNoise;}
 
   //General
@@ -99,7 +99,7 @@ private:
   TString * fInputFileNames ;     //[fInput] List of file names to merge 
   TString * fEventNames ;         //[fInput] List of event names to merge
 
-  Float_t fDigitThreshold  ;      // Threshold for storing digits in EMC
+  Int_t   fDigitThreshold  ;      // Threshold for storing digits in EMC, ACD units
   Int_t   fMeanPhotonElectron ;   // number of photon electrons per GeV deposited energy 
   //Float_t fPedestal ;           // Calibration parameters //Not used, remove?
   //Float_t fSlope ;              // read from SDigitizer   //Not used, remove?
index d0e6de8..10c3dc6 100644 (file)
@@ -49,7 +49,7 @@ fECPrimThreshold(0.) //SDigitizer
        //Parameters in Digitizer
        fMeanPhotonElectron = 4400;  // electrons per GeV 
        fPinNoise           = 0.012; // pin noise in GeV from analysis test beam data 
-       fDigitThreshold     = fPinNoise * 3; // 3 * sigma
+       fDigitThreshold     = 3; // 3 ADC counts not anymore cut in energy: //fPinNoise * 3; // 3 * sigma
        fTimeResolution     = 0.6e-9 ; // 600 psc
        //fTimeSignalLength   = 1.0e-9 ;
        fNADCEC             = (Int_t) TMath::Power(2,16) ; // number of channels in Tower ADC - 65536
@@ -115,9 +115,9 @@ void AliEMCALSimParam::Print(Option_t *) const
        
        printf("=== Parameters in Digitizer === \n");
        printf("\t Electronics noise in EMC (fPinNoise)       = %f\n", fPinNoise) ;
-    printf("\t Threshold  in EMC  (fDigitThreshold)       = %f\n", fDigitThreshold)  ;
+       printf("\t Threshold  in EMC  (fDigitThreshold)       = %d\n", fDigitThreshold)  ;
        printf("\t Time Resolution (fTimeResolution)          = %g\n", fTimeResolution) ;
-    printf("\t Mean Photon-Electron (fMeanPhotonElectron) = %d\n", fMeanPhotonElectron)  ;
+       printf("\t Mean Photon-Electron (fMeanPhotonElectron) = %d\n", fMeanPhotonElectron)  ;
        printf("\t N channels in EC section ADC (fNADCEC)     = %d\n", fNADCEC) ;
 
        printf("\n");
index cd4889e..b1da18e 100644 (file)
@@ -26,12 +26,12 @@ public:
   virtual void Print(Option_t * option="") const ;
 
        //Parameters used in Digitizer
-       Float_t GetDigitThreshold()     const { return fDigitThreshold;}
+       Int_t   GetDigitThreshold()     const { return fDigitThreshold;}
        Float_t GetPinNoise()           const { return fPinNoise;}
        Float_t GetTimeResolution()     const { return fTimeResolution ; }
        Int_t   GetNADCEC()             const { return fNADCEC ; }
        Int_t   GetMeanPhotonElectron() const { return fMeanPhotonElectron ; }
-       void    SetDigitThreshold(Float_t val)  { fDigitThreshold     = val ; }
+       void    SetDigitThreshold(Int_t val)    { fDigitThreshold     = val ; }
        void    SetPinNoise(Float_t val)        { fPinNoise           = val ; }
        void    SetTimeResolution(Float_t val)  { fTimeResolution     = val ; }
        void    SetNADCED(Int_t val)            { fNADCEC             = val ; }
@@ -55,7 +55,7 @@ private:
   static AliEMCALSimParam * fgSimParam ; // pointer to the unique instance of the class
 
        // Digitizer
-       Float_t fDigitThreshold  ;      // Threshold for storing digits in EMC
+       Int_t   fDigitThreshold  ;      // Threshold for storing digits in EMC
        Int_t   fMeanPhotonElectron ;   // number of photon electrons per GeV deposited energy 
        Float_t fPinNoise ;             // Electronics noise in EMC
        Float_t fTimeResolution ;       // Time resolution of FEE electronics