]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCRecoParam.cxx
15 minutes interval for calculation of drift correction
[u/mrichter/AliRoot.git] / TPC / AliTPCRecoParam.cxx
index 58ba591b4379832abe23bc965685f37a6839d70a..a2ff5c37b7227f29b55ef59fd7ba476a5cf7c249 100644 (file)
 //                                                                           //
 // Class with TPC reconstruction parameters                                  //
 //                                                                           //  
-//                                                                           //
+//
+/*
+  The reconstruction parameters are used in the AliTPCclustererMI and AliTPCtrackerMI
+  
+  They are retrieved:
+  0. User speciefied it in reconstruction macro
+  1. if (not 0) from OCDB  - AliTPCcalibDB::GetRecoParam(eventtype)
+  2. if (not 0 or 1) default parameter - High flux enevironment used  
+
+  FIXME:
+  In the future  reconstruction parameters should be changed on event basis
+  But for the moment, event types are still not defined 
+
+
+  // Setting for systematic errors addition
+  [0] - systematic RMSY
+  [1] - systematic RMSZ
+  [2] - systematic RMSSNP
+  [3] - systematic RMSTheta
+  [4] - systematic RMSCuravture -  systematic error in 1/cm not in 1/pt
+  //
+  //  How to add it example - 3 mm systematic error y, 3 cm systematic error z (drift)
+  Double_t sysError[5]={0.3,3, 0.3/150., 3./150.,0.3/(150*150.)}
+  param->SetSystematicError(sysError);
+
+*/
+                                                                           //
 ///////////////////////////////////////////////////////////////////////////////
 
 
 ClassImp(AliTPCRecoParam)
 
 
-
+Bool_t AliTPCRecoParam::fgUseTimeCalibration=kTRUE; // flag usage the time dependent calibration
+                                      // to be switched off for pass 0 reconstruction
+                                      // Use static function, other option will be to use 
+                                      // additional specific storage ?
 
 //_____________________________________________________________________________
 AliTPCRecoParam::AliTPCRecoParam():
+  AliDetectorRecoParam(),
+  fBClusterSharing(kTRUE),
   fCtgRange(1.05),       
   fMaxSnpTracker(0.95),
   fMaxSnpTrack(0.999),
-  fBYMirror(kTRUE),
+  fUseOuterDetectors(kFALSE),
+  fDumpSignal(kFALSE),
   fFirstBin(0),
   fLastBin(-1),
   fBCalcPedestal(kFALSE),
   fBDoUnfold(kTRUE),
   fDumpAmplitudeMin(100),
   fMaxNoise(2.),
-  fMinMaxCutAbs(5.),
-  fMinLeftRightCutAbs(9.),
-  fMinUpDownCutAbs(10.),
+  //
+  fUseOnePadCluster(kTRUE),
+  fMinMaxCutAbs(4.),
+  fMinLeftRightCutAbs(6.),
+  fMinUpDownCutAbs(6.),
+  //
   fMinMaxCutSigma(4.),
   fMinLeftRightCutSigma(7.),
   fMinUpDownCutSigma(8.),
   fMaxC(0.3),
   fBSpecialSeeding(kFALSE),
   fBKinkFinder(kTRUE),
-  fLastSeedRowSec(120)
+  fLastSeedRowSec(120),
+  fSeedGapPrim(6),
+  fSeedGapSec(6),
+  fUseFieldCorrection(2),      // use field correction
+  fUseComposedCorrection(kFALSE),      // use field correction
+  fUseRPHICorrection(0),      // use rphi correction
+  fUseRadialCorrection(0),    // use radial correction
+  fUseQuadrantAlignment(0),   // use quadrant alignment
+  fUseSectorAlignment(0),     // use sector alignment
+  fUseDriftCorrectionTime(1), // use drift correction time
+  fUseDriftCorrectionGY(1),   // use drif correction global y
+  fUseGainCorrectionTime(0),  // use gain correction time
+  fUseExBCorrection(1),  // use ExB correction
+  //
+  fUseTotCharge(kTRUE),          // switch use total or max charge
+  fMinFraction(0.01),           // truncated mean - lower threshold
+  fMaxFaction(0.7),            // truncated mean - upper threshold
+  fUseTOFCorrection(kTRUE)
 {
   //
   // constructor
   //
+  SetName("TPC");
+  SetTitle("TPC");
+  for (Int_t i=0;i<5;i++) fSystematicErrors[i]=0;
+  fCutSharedClusters[0]=0.5; // maximal allowed fraction of shared clusters - shorter track
+  fCutSharedClusters[1]=0.25; // maximal allowed fraction of shared clusters - longer  track
+  fClusterMaxRange[0]=1;     // y - pad      range
+  fClusterMaxRange[1]=1;     // z - time bin range
+  fKinkAngleCutChi2[0]=9;    // angular cut for kink finder - to create a kink
+                             // ~ about 5 % rate  for high pt kink finder
+  fKinkAngleCutChi2[1]=12;    // angular cut for kink finder - to use the partial track                             // form kink 
+                             // ~ about 2 % rate  for high pt kink finder
 }
 
 //_____________________________________________________________________________
@@ -76,6 +139,8 @@ AliTPCRecoParam *AliTPCRecoParam::GetLowFluxParam(){
   param->fCtgRange = 10;
   param->fFirstBin = 0;
   param->fLastBin  = 1000;
+  param->SetName("Low Flux");
+  param->SetTitle("Low Flux");
   return param;
 }
 
@@ -86,7 +151,27 @@ AliTPCRecoParam *AliTPCRecoParam::GetHighFluxParam(){
   AliTPCRecoParam *param = new AliTPCRecoParam;
   param->fCtgRange = 1.05;
   param->fFirstBin = 0;
-  param->fLastBin  = 1000;
+  param->fLastBin  = 1000;  
+  param->fUseTotCharge=kFALSE;
+  param->SetName("High Flux");
+  param->SetTitle("High Flux");
+  return param;
+}
+
+AliTPCRecoParam *AliTPCRecoParam::GetHLTParam(){
+  //
+  // make reco parameters for high flux env.
+  //
+  AliTPCRecoParam *param = new AliTPCRecoParam;
+  param->fCtgRange = 1.05;
+  param->fFirstBin = 80;
+  param->fLastBin  = 1000;  
+  param->fMaxSnpTracker = 0.9; 
+  param->fMaxC          = 0.06; 
+  //
+  param->SetName("Hlt Param");
+  param->SetTitle("Hlt Param"); 
+  param->fBKinkFinder   = kFALSE;
   return param;
 }
 
@@ -95,6 +180,7 @@ AliTPCRecoParam *AliTPCRecoParam::GetLaserTestParam(Bool_t bPedestal){
   // special setting for laser
   //
   AliTPCRecoParam *param = new AliTPCRecoParam;
+  param->fDumpSignal=kTRUE;
   param->fCtgRange = 10.05;
   param->fFirstBin = 0;
   param->fLastBin  = 1000;
@@ -105,7 +191,11 @@ AliTPCRecoParam *AliTPCRecoParam::GetLaserTestParam(Bool_t bPedestal){
   param->fMaxSnpTracker = 0.98;
   param->fMaxC          = 0.02;
   param->fBSpecialSeeding = kTRUE;
-  param->fBYMirror      = kFALSE;
+  param->fUseTOFCorrection=kFALSE;
+  //
+  //
+  param->SetName("Laser Flux");
+  param->SetTitle("Laser Flux");
   return param;
 }
 
@@ -114,6 +204,7 @@ AliTPCRecoParam *AliTPCRecoParam::GetCosmicTestParam(Bool_t bPedestal){
   // special setting for cosmic 
   // 
   AliTPCRecoParam *param = new AliTPCRecoParam;
+  param->fDumpSignal=kTRUE;
   param->fCtgRange = 10.05;    // full TPC
   param->fFirstBin = 60;
   param->fLastBin  = 1000;
@@ -122,9 +213,24 @@ AliTPCRecoParam *AliTPCRecoParam::GetCosmicTestParam(Bool_t bPedestal){
   param->fBSpecialSeeding = kTRUE;
   param->fMaxC          = 0.07;
   param->fBKinkFinder   = kFALSE;
-  param->fBYMirror      = kFALSE;
+  param->fUseTOFCorrection =kFALSE;
+  param->SetName("Cosmic Flux");
+  param->SetTitle("Cosmic Flux");
+
   return param;
 }
 
 
+Bool_t  AliTPCRecoParam::GetUseTimeCalibration(){ 
+  //
+  // get
+  //
+  return fgUseTimeCalibration;
+}
+void    AliTPCRecoParam::SetUseTimeCalibration(Bool_t useTimeCalibration) {
+  //
+  // set 
+  //
+  fgUseTimeCalibration = useTimeCalibration;
+}