Hits2SDigits method implemented (summable digits)
authorkowal2 <kowal2@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Jun 2001 07:17:18 +0000 (07:17 +0000)
committerkowal2 <kowal2@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 12 Jun 2001 07:17:18 +0000 (07:17 +0000)
TPC/AliTPC.cxx
TPC/AliTPC.h

index 541166a4209f7f18ebde4c19cfa499406610d0cb..8148aacaf8ec9e02569bc7ea1f128dfe9ca904e4 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.36  2001/05/16 14:57:25  alibrary
+New files for folders and Stack
+
 Revision 1.35  2001/05/08 16:02:22  kowal2
 Updated material specifications
 
@@ -1213,11 +1216,35 @@ void AliTPC::Hits2Digits()
     printf("AliTPCParam MUST be created firstly\n");
     return;
   } 
+  
+  fDigitsSwitch=0;
 
  for(Int_t isec=0;isec<fTPCParam->GetNSector();isec++) Hits2DigitsSector(isec);
 
 }
 
+//__________________________________________________________________
+void AliTPC::Hits2SDigits()  
+{ 
+
+  //-----------------------------------------------------------
+  //   summable digits - 16 bit "ADC", no noise, no saturation
+  //-----------------------------------------------------------
+
+ //----------------------------------------------------
+ // Loop over all sectors
+ //----------------------------------------------------
+
+  if(fTPCParam == 0){
+    printf("AliTPCParam MUST be created firstly\n");
+    return;
+  } 
+  
+  fDigitsSwitch=1;
+
+ for(Int_t isec=0;isec<fTPCParam->GetNSector();isec++) Hits2DigitsSector(isec);
+
+}
 
 //_____________________________________________________________________________
 void AliTPC::Hits2DigitsSector(Int_t isec)
@@ -1363,12 +1390,21 @@ void AliTPC::DigitizeRow(Int_t irow,Int_t isec,TObjArray **rows)
 
       Int_t gi =it*nofPads+ip; // global index
 
-      q = gRandom->Gaus(q,fTPCParam->GetNoise()*fTPCParam->GetNoiseNormFac()); 
+      if(fDigitsSwitch == 0){
+
+        q = gRandom->Gaus(q,fTPCParam->GetNoise()*fTPCParam->GetNoiseNormFac()); 
+
+        q = (Int_t)q;
 
-      q = (Int_t)q;
+        if(q <=zerosup) continue; // do not fill zeros
+        if(q > fTPCParam->GetADCSat()) q = fTPCParam->GetADCSat();  // saturation
 
-      if(q <=zerosup) continue; // do not fill zeros
-      if(q > fTPCParam->GetADCSat()) q = fTPCParam->GetADCSat();  // saturation
+      }
+
+      else {
+       q *= 16.;
+       q = (Int_t)q;
+      }
 
       //
       //  "real" signal or electronic noise (list = -1)?
index 0cba85567b39f336f884330855d8d341c9172740..6ee3bd7f8de2bfda6d609018d9accd96b1cc5842 100644 (file)
@@ -37,6 +37,7 @@ protected:
   AliTPCTrackHits *fTrackHits;      //!hits for given track M.I.
   Int_t  fHitType; // if fNewHit = 1 old data structure if 2 new hits
   //  3 both types  
+  Int_t fDigitsSwitch; // digits type, 0->normal, 1->summable
 
   //MK changes
 
@@ -57,7 +58,7 @@ public:
   virtual void  Hits2Clusters(TFile *of);
   virtual void  Hits2ExactClustersSector(Int_t isec); // MI change calculate "exact" cluster position
   virtual void  SDigits2Digits();
-
+  virtual void  Hits2SDigits();
   virtual void  Hits2Digits();   //MI change
   virtual void  Hits2DigitsSector(Int_t isec);  //MI change
   virtual void  Init();
@@ -110,6 +111,7 @@ public:
    //fill clones array with intersection of current point with the
    //middle of the row
    void SetHitType(Int_t type){fHitType =type;} //set type of hit container
+   void SetDigitsSwitch(Int_t sw){fDigitsSwitch = sw;}
 
 
 private:
@@ -126,7 +128,7 @@ private:
                          // index[2] pad row number  
                          // index[3] pad row number for which signal is calculated
   
-  ClassDef(AliTPC,2)  // Time Projection Chamber class
+  ClassDef(AliTPC,3)  // Time Projection Chamber class
 };