]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCRecoParam.cxx
Cosmic tracker as an intergral part of the central ALICE reconstruction.
[u/mrichter/AliRoot.git] / TPC / AliTPCRecoParam.cxx
index a94209c35ba13f3e86d6857e94a581f9ce2fe6a9..561a9c01bd08536ba41828d5f7811d3fb4aaac6c 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(),
+  fUseHLTClusters(4),  // use HLTorRAW data
+  fBClusterSharing(kTRUE),
   fCtgRange(1.05),       
   fMaxSnpTracker(0.95),
   fMaxSnpTrack(0.999),
-  fBYMirror(kTRUE),
+  fUseOuterDetectors(kFALSE),
   fDumpSignal(kFALSE),
   fFirstBin(0),
   fLastBin(-1),
@@ -42,20 +74,56 @@ AliTPCRecoParam::AliTPCRecoParam():
   fBDoUnfold(kTRUE),
   fDumpAmplitudeMin(100),
   fMaxNoise(2.),
-  fMinMaxCutAbs(5.),
-  fMinLeftRightCutAbs(9.),
-  fMinUpDownCutAbs(10.),
+  //
+  fUseOnePadCluster(kTRUE),
+  fUseHLTOnePadCluster(kFALSE),
+  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
+  fUseMultiplicityCorrectionDedx(kTRUE), // use Dedx multiplicity correction
+  fUseAlignmentTime(kTRUE),              // use time dependent alignment correction
+  //
+  fUseTotCharge(kTRUE),          // switch use total or max charge
+  fMinFraction(0.01),           // truncated mean - lower threshold
+  fMaxFaction(0.7),            // truncated mean - upper threshold
+  fNeighborRowsDedx(2),           // neighbour rows for below threshold dEdx calculation
+  fUseTOFCorrection(kTRUE),
+  fUseSystematicCorrelation(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
 }
 
 //_____________________________________________________________________________
@@ -66,7 +134,17 @@ AliTPCRecoParam::~AliTPCRecoParam()
   //  
 }
 
-
+void AliTPCRecoParam::Print(const Option_t* /*option*/) const{
+  //
+  //
+  //
+  AliTPCRecoParam::Dump();
+  printf("Systematic errors:\n");
+  const char * cherrs[5]={"sy=","sz=","ssnp=","stheta=","s1pt="};
+  for (Int_t i=0; i<5; i++){
+    printf("%s%f\n",cherrs[i],fSystematicErrors[i]);
+  }
+}
 
 
 AliTPCRecoParam *AliTPCRecoParam::GetLowFluxParam(){
@@ -77,6 +155,8 @@ AliTPCRecoParam *AliTPCRecoParam::GetLowFluxParam(){
   param->fCtgRange = 10;
   param->fFirstBin = 0;
   param->fLastBin  = 1000;
+  param->SetName("Low Flux");
+  param->SetTitle("Low Flux");
   return param;
 }
 
@@ -87,7 +167,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;
 }
 
@@ -107,7 +207,12 @@ AliTPCRecoParam *AliTPCRecoParam::GetLaserTestParam(Bool_t bPedestal){
   param->fMaxSnpTracker = 0.98;
   param->fMaxC          = 0.02;
   param->fBSpecialSeeding = kTRUE;
-  param->fBYMirror      = kFALSE;
+  param->fUseTOFCorrection=kFALSE;
+  param->fUseHLTClusters=1; // always RAW data
+  //
+  //
+  param->SetName("Laser Flux");
+  param->SetTitle("Laser Flux");
   return param;
 }
 
@@ -125,9 +230,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;
+}