Correction for SDD charge dependence on drift distance (E. Biolcati)
authorprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 16 Jun 2009 17:27:18 +0000 (17:27 +0000)
committerprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 16 Jun 2009 17:27:18 +0000 (17:27 +0000)
ITS/AliITSClusterFinderV2SDD.cxx
ITS/AliITSresponseSDD.cxx
ITS/AliITSresponseSDD.h

index 29eeb00..d8f971b 100644 (file)
@@ -250,7 +250,8 @@ FindClustersSDD(AliBin* bins[2], Int_t nMaxBin, Int_t nzBins,
        y=trk[1];
        z=trk[2]; 
 
-       q/=rsdd->GetADC2keV();  //to have MPV 1 MIP = 86.4 KeV
+       q/=rsdd->GetADC2keV();
+       q+=(driftTime*rsdd->GetChargevsTime()); // correction for zero supp.
        if(cal-> IsAMAt20MHz()) q*=2.; // account for 1/2 sampling freq.
        if(q<repa->GetMinClusterChargeSDD()) continue; // remove noise clusters
 
index 118dd5d..1ab76ba 100644 (file)
@@ -30,7 +30,8 @@
 #include <AliITSgeomTGeo.h>
 
 const Float_t AliITSresponseSDD::fgkTimeOffsetDefault = 54.30;
-const Float_t AliITSresponseSDD::fgkADC2keVDefault = 3.25;
+const Float_t AliITSresponseSDD::fgkADC2keVDefault = 3.34;
+const Float_t AliITSresponseSDD::fgkChargevsTimeDefault = 0.00355;
 const Float_t AliITSresponseSDD::fgkCarlosRXClockPeriod = 25.;
 ClassImp(AliITSresponseSDD)
 
@@ -38,7 +39,8 @@ ClassImp(AliITSresponseSDD)
 AliITSresponseSDD::AliITSresponseSDD():
 TObject(),
 fTimeOffset(fgkTimeOffsetDefault),
-fADC2keV(fgkADC2keVDefault){
+fADC2keV(fgkADC2keVDefault),
+fChargevsTime(fgkChargevsTimeDefault){
   // default constructor
   for(Int_t i=0; i<kNSDDmods;i++){
     fTimeZero[i]=fgkTimeOffsetDefault;
index b9d2f4e..0aba552 100644 (file)
@@ -73,8 +73,12 @@ class AliITSresponseSDD : public TObject {
   static Float_t DefaultTimeOffset() {return fgkTimeOffsetDefault;}
 
   virtual void SetADC2keV(Float_t conv){fADC2keV=conv;}
+  virtual void SetChargevsTime(Float_t slope){fChargevsTime=slope;}
   virtual Float_t GetADC2keV()const {return fADC2keV;}
-  static Float_t DefaulttADC2keV() {return fgkADC2keVDefault;}
+  virtual Float_t GetChargevsTime()const {return fChargevsTime;}
+
+  static Float_t DefaultADC2keV() {return fgkADC2keVDefault;}
+  static Float_t DefaultChargevsTime() {return fgkChargevsTimeDefault;}
 
   static Float_t GetCarlosRXClockPeriod() {return fgkCarlosRXClockPeriod;}
  
@@ -89,6 +93,7 @@ class AliITSresponseSDD : public TObject {
 
   static const Float_t fgkTimeOffsetDefault;   // default for fTimeOffset
   static const Float_t fgkADC2keVDefault;      // default for fADC2keV
+  static const Float_t fgkChargevsTimeDefault; // default for fChargevsTime
   static const Float_t fgkCarlosRXClockPeriod; // clock period for CarlosRX
 
   Float_t  fTimeOffset;             // Time offset due to electronic delays 
@@ -96,13 +101,14 @@ class AliITSresponseSDD : public TObject {
   Float_t  fTimeZero[kNSDDmods];    // Time Zero for each module
   Float_t  fDeltaVDrift[kNSDDmods]; // Vdrift correction (um/ns) for each module
   Float_t  fADC2keV;                // Conversion factor from ADC to keV
-
+  Float_t  fChargevsTime;           // Correction for zero suppression effect
+  
  private:
 
   AliITSresponseSDD(const AliITSresponseSDD &ob); // copy constructor
   AliITSresponseSDD& operator=(const AliITSresponseSDD & /* source */); // ass. op.
 
-  ClassDef(AliITSresponseSDD,17) 
+  ClassDef(AliITSresponseSDD,18) 
      
     };
 #endif