ROOT logo
void MakeTPCRecoParam(AliRecoParam::EventSpecie_t default=AliRecoParam::kLowMult) {
//========================================================================
//
// Steering macro for TPC reconstruction parameters
//
// Author: M.Ivanov
// Contact: marian.ivanov@cern.ch
//
//========================================================================


  const char* macroname = "MakeTPCRecoParam.C";

  // Activate CDB storage and load geometry from CDB
  AliCDBManager* cdb = AliCDBManager::Instance();
  if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://OCDB");
  //
  //
  TObjArray *recoParamArray = new TObjArray();  
  {
    AliTPCRecoParam * tpcRecoParam = AliTPCRecoParam::GetLowFluxParam();
    Double_t sysError[5]={0.01,0.02, 0.01/150., 0.02/150.,0.01/(150*150.)};
    tpcRecoParam->SetSystematicError(sysError);
    tpcRecoParam->SetEventSpecie(AliRecoParam::kLowMult);
    tpcRecoParam->SetMinMaxCutAbs(2.5);
    tpcRecoParam->SetMinLeftRightCutAbs(5.);
    tpcRecoParam->SetMinUpDownCutAbs(5.);
    //
    tpcRecoParam->SetMinMaxCutSigma(2.5);
    tpcRecoParam->SetMinLeftRightCutSigma(5.);
    tpcRecoParam->SetMinUpDownCutSigma(5.);
    
    recoParamArray->AddLast(tpcRecoParam);
  }
  {
    AliTPCRecoParam * tpcRecoParam = AliTPCRecoParam::GetHighFluxParam();
    tpcRecoParam->SetEventSpecie(AliRecoParam::kHighMult);
    Double_t sysError[5]={0.01,0.02, 0.01/150., 0.02/150.,0.01/(150*150.)};
    tpcRecoParam->SetSystematicError(sysError);
    recoParamArray->AddLast(tpcRecoParam);
  }
  
  {
    AliTPCRecoParam * tpcRecoParam = AliTPCRecoParam::GetLaserTestParam(kFALSE);
    tpcRecoParam->SetEventSpecie(AliRecoParam::kCalib);
    recoParamArray->AddLast(tpcRecoParam);
  }

  {
    AliTPCRecoParam * tpcRecoParam = AliTPCRecoParam::GetCosmicTestParam(kFALSE);
    tpcRecoParam->SetEventSpecie(AliRecoParam::kCosmic);
    tpcRecoParam->SetTimeInterval(60,940);
    Double_t sysError[5]={0.3,1, 0.3/150., 1./150.,0.3/(150*150.)};
    tpcRecoParam->SetSystematicError(sysError);
    //
    tpcRecoParam->SetMinMaxCutAbs(2.5);
    tpcRecoParam->SetMinLeftRightCutAbs(5.);
    tpcRecoParam->SetMinUpDownCutAbs(5.);
    //
    tpcRecoParam->SetMinMaxCutSigma(2.5);
    tpcRecoParam->SetMinLeftRightCutSigma(5.);
    tpcRecoParam->SetMinUpDownCutSigma(5.);
    recoParamArray->AddLast(tpcRecoParam);
  }
  
  // Set the default
  Bool_t defaultIsSet = kFALSE;
  for(Int_t i =0; i < recoParamArray->GetEntriesFast(); i++) {
    AliDetectorRecoParam *param = (AliDetectorRecoParam *)recoParamArray->UncheckedAt(i);
    if (!param) continue;
    if (default & param->GetEventSpecie()) {
      param->SetAsDefault();
      defaultIsSet = kTRUE;
    }
  }
  
  if (!defaultIsSet) {
    Error(macroname,"The default reconstruction parameters are not set! Exiting...");
    return;
  }
  


  // save in CDB storage
  AliCDBMetaData *md= new AliCDBMetaData();
  md->SetResponsible("Marian Ivanov");
  md->SetComment("Reconstruction parameters TPC");
  md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
  md->SetBeamPeriod(0);
  AliCDBId id("TPC/Calib/RecoParam",0,AliCDBRunRange::Infinity());
  cdb->GetDefaultStorage()->Put(recoParamArray,id, md);
  return;
}

 MakeTPCRecoParam.C:1
 MakeTPCRecoParam.C:2
 MakeTPCRecoParam.C:3
 MakeTPCRecoParam.C:4
 MakeTPCRecoParam.C:5
 MakeTPCRecoParam.C:6
 MakeTPCRecoParam.C:7
 MakeTPCRecoParam.C:8
 MakeTPCRecoParam.C:9
 MakeTPCRecoParam.C:10
 MakeTPCRecoParam.C:11
 MakeTPCRecoParam.C:12
 MakeTPCRecoParam.C:13
 MakeTPCRecoParam.C:14
 MakeTPCRecoParam.C:15
 MakeTPCRecoParam.C:16
 MakeTPCRecoParam.C:17
 MakeTPCRecoParam.C:18
 MakeTPCRecoParam.C:19
 MakeTPCRecoParam.C:20
 MakeTPCRecoParam.C:21
 MakeTPCRecoParam.C:22
 MakeTPCRecoParam.C:23
 MakeTPCRecoParam.C:24
 MakeTPCRecoParam.C:25
 MakeTPCRecoParam.C:26
 MakeTPCRecoParam.C:27
 MakeTPCRecoParam.C:28
 MakeTPCRecoParam.C:29
 MakeTPCRecoParam.C:30
 MakeTPCRecoParam.C:31
 MakeTPCRecoParam.C:32
 MakeTPCRecoParam.C:33
 MakeTPCRecoParam.C:34
 MakeTPCRecoParam.C:35
 MakeTPCRecoParam.C:36
 MakeTPCRecoParam.C:37
 MakeTPCRecoParam.C:38
 MakeTPCRecoParam.C:39
 MakeTPCRecoParam.C:40
 MakeTPCRecoParam.C:41
 MakeTPCRecoParam.C:42
 MakeTPCRecoParam.C:43
 MakeTPCRecoParam.C:44
 MakeTPCRecoParam.C:45
 MakeTPCRecoParam.C:46
 MakeTPCRecoParam.C:47
 MakeTPCRecoParam.C:48
 MakeTPCRecoParam.C:49
 MakeTPCRecoParam.C:50
 MakeTPCRecoParam.C:51
 MakeTPCRecoParam.C:52
 MakeTPCRecoParam.C:53
 MakeTPCRecoParam.C:54
 MakeTPCRecoParam.C:55
 MakeTPCRecoParam.C:56
 MakeTPCRecoParam.C:57
 MakeTPCRecoParam.C:58
 MakeTPCRecoParam.C:59
 MakeTPCRecoParam.C:60
 MakeTPCRecoParam.C:61
 MakeTPCRecoParam.C:62
 MakeTPCRecoParam.C:63
 MakeTPCRecoParam.C:64
 MakeTPCRecoParam.C:65
 MakeTPCRecoParam.C:66
 MakeTPCRecoParam.C:67
 MakeTPCRecoParam.C:68
 MakeTPCRecoParam.C:69
 MakeTPCRecoParam.C:70
 MakeTPCRecoParam.C:71
 MakeTPCRecoParam.C:72
 MakeTPCRecoParam.C:73
 MakeTPCRecoParam.C:74
 MakeTPCRecoParam.C:75
 MakeTPCRecoParam.C:76
 MakeTPCRecoParam.C:77
 MakeTPCRecoParam.C:78
 MakeTPCRecoParam.C:79
 MakeTPCRecoParam.C:80
 MakeTPCRecoParam.C:81
 MakeTPCRecoParam.C:82
 MakeTPCRecoParam.C:83
 MakeTPCRecoParam.C:84
 MakeTPCRecoParam.C:85
 MakeTPCRecoParam.C:86
 MakeTPCRecoParam.C:87
 MakeTPCRecoParam.C:88
 MakeTPCRecoParam.C:89
 MakeTPCRecoParam.C:90
 MakeTPCRecoParam.C:91
 MakeTPCRecoParam.C:92
 MakeTPCRecoParam.C:93
 MakeTPCRecoParam.C:94
 MakeTPCRecoParam.C:95