]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HMPID/AliHMPIDDigitizer.cxx
base class for conversion of formatted survey files into array of alignment objects
[u/mrichter/AliRoot.git] / HMPID / AliHMPIDDigitizer.cxx
index cd58e66d0fb804abae9479ea6b2bb93fd3487556..64318503bd77359ea385ad26f37706570abc9fe4 100644 (file)
@@ -28,6 +28,8 @@
 #include "AliHMPIDParam.h"
 #include <TRandom.h>
 
+extern TRandom *gRandom;
+
 ClassImp(AliHMPIDDigitizer)
 
 Bool_t AliHMPIDDigitizer::fgDoNoise=kFALSE;
@@ -40,7 +42,7 @@ void AliHMPIDDigitizer::Exec(Option_t*)
 //First we read all sdigits from all inputs  
   AliRunLoader *pInRunLoader=0;//in and out Run loaders
   AliLoader    *pInRichLoader=0;//in and out HMPID loaders  
-  TClonesArray sdigs("AliHMPIDDigit");//tmp storage for sdigits sum up from all input files
+  static TClonesArray sdigs("AliHMPIDDigit");//tmp storage for sdigits sum up from all input files
   Int_t total=0;
   for(Int_t inFileN=0;inFileN<fManager->GetNinputs();inFileN++){//files loop
     pInRunLoader  = AliRunLoader::GetRunLoader(fManager->GetInputFolderName(inFileN));          //get run loader from current input 
@@ -83,7 +85,6 @@ void AliHMPIDDigitizer::Sdi2Dig(TClonesArray *pSdiLst,TObjArray *pDigLst)
   
   TClonesArray *pLst[7]; Int_t iCnt[7];
 
-  TRandom *rnd = new TRandom();  
   for(Int_t i=0;i<7;i++){
     pLst[i]=(TClonesArray*)(*pDigLst)[i];
     iCnt[i]=0; if(pLst[i]->GetEntries()!=0) AliErrorClass("Some of digits lists is not empty");         //in principle those lists should be empty                                                                       
@@ -95,7 +96,7 @@ void AliHMPIDDigitizer::Sdi2Dig(TClonesArray *pSdiLst,TObjArray *pDigLst)
     for (Int_t iCh=AliHMPIDParam::kMinCh;iCh<=AliHMPIDParam::kMaxCh;iCh++)
       for (Int_t iPc=AliHMPIDParam::kMinPc;iPc<=AliHMPIDParam::kMaxPc;iPc++)
         for(Int_t iPx=AliHMPIDParam::kMinPx;iPx<=AliHMPIDParam::kMaxPx;iPx++)
-          for(Int_t iPy=AliHMPIDParam::kMinPy;iPy<=AliHMPIDParam::kMaxPy;iPy++) arrNoise[iCh][iPc][iPx][iPy] = rnd->Gaus(0,1);
+          for(Int_t iPy=AliHMPIDParam::kMinPy;iPy<=AliHMPIDParam::kMaxPy;iPy++) arrNoise[iCh][iPc][iPx][iPy] = gRandom->Gaus(0,1.1);
   }  
   
   pSdiLst->Sort();  
@@ -121,12 +122,12 @@ void AliHMPIDDigitizer::Sdi2Dig(TClonesArray *pSdiLst,TObjArray *pDigLst)
 // add noise pad above threshold with no signal merged...if any
   if(!fgDoNoise) return;
   aTids[0]=aTids[1]=aTids[2]=-1;
-  for (Int_t iCh=AliHMPIDParam::kMinCh;iCh<=AliHMPIDParam::kMaxCh;iCh++)
+  for (Int_t iChCurr=AliHMPIDParam::kMinCh;iChCurr<=AliHMPIDParam::kMaxCh;iChCurr++)
     for (Int_t iPc=AliHMPIDParam::kMinPc;iPc<=AliHMPIDParam::kMaxPc;iPc++)
       for(Int_t iPx=AliHMPIDParam::kMinPx;iPx<=AliHMPIDParam::kMaxPx;iPx++)
         for(Int_t iPy=AliHMPIDParam::kMinPy;iPy<=AliHMPIDParam::kMaxPy;iPy++) {
-          Float_t q = arrNoise[iCh][iPc][iPx][iPy];
-          if(AliHMPIDParam::IsOverTh(q)) new((*pLst[iCh])[iCnt[iCh]++]) AliHMPIDDigit(AliHMPIDParam::Abs(iCh,iPc,iPx,iPy),(Int_t)q,aTids);
+          Float_t qNoise = arrNoise[iChCurr][iPc][iPx][iPy];
+          if(AliHMPIDParam::IsOverTh(qNoise)) new((*pLst[iChCurr])[iCnt[iChCurr]++]) AliHMPIDDigit(AliHMPIDParam::Abs(iChCurr,iPc,iPx,iPy),(Int_t)qNoise,aTids);
         }
         
 }//Sdi2Dig()