ROOT logo
/* ModifyRecoParamHLTUsage
 *  Changes the Input for Reconstruction ( TPC RAW data or HLT TPC clusters ) 
 *    1 -> only TPC raw/sim data
 *    2 -> if present TPC raw/sim data, otherwise HLT clusters
 *    3 -> only HLT clusters
 *    4 -> if present HLT clusters, otherwise TPC raw/sim data
 *
 * Usage : aliroot -b -q ModifyRecoParamHLTUsage.C'("/lustre/alice/alien/alice/data/2011/OCDB/TPC/Calib/RecoParam/Run136844_999999999_v2_s0.root",3,"local:///tmp/ocdb/")'
 *
 */

void ModifyRecoParamHLTUsage( const Char_t* lastOCDBEntry, 
			      Int_t iHLTusage,
			      const Char_t* newStoragePath = "local:///tmp/ocdb", 
			      const Char_t* author = "Jochen Thaeder", 
			      const Char_t* alirootVersion = "05-01-Release" ) {
  
  // -- Get RecoParam
  // -------------------------------------------------------------------
  TFile inFile(lastOCDBEntry);
  if (!inFile) {
    printf("File %s could not be found!\n", lastOCDBEntry);
    return -1;
  }

  AliCDBEntry * entry = ( AliCDBEntry *) inFile.Get("AliCDBEntry");
  if (!entry) {
    printf("File %s does not contain AliCDBEntry object!\n", lastOCDBEntry);
    return -2;
  }

  TObjArray * arr = entry->GetObject();

  AliTPCRecoParam * parHighFlux = NULL;
  AliTPCRecoParam * parLowFlux  = NULL;
  AliTPCRecoParam * parLaserFlux  = NULL;
  AliTPCRecoParam * parCosmicFlux  = NULL;

  for (Int_t idx = 0 ; idx < arr->GetEntries() ; ++idx) {
    AliTPCRecoParam *param = (AliTPCRecoParam*) arr->At(idx);

    TString name(param->GetName());

    if ( name.Contains("Low") )
      parLowFlux = param;
    else if ( name.Contains("High") )
      parHighFlux = param;
    else if ( name.Contains("Laser") )
      parLaserFlux = param;
    else if ( name.Contains("Cosmic") )
      parCosmicFlux = param;
  }

  // -- Set TPC RecoParam : UseHLTClusters
  // -------------------------------------------------------------------
  parLaserFlux->SetUseHLTClusters(1); // LASER use always raw data

  parHighFlux->SetUseHLTClusters(iHLTusage);
  parLowFlux->SetUseHLTClusters(iHLTusage);
  parCosmicFlux->SetUseHLTClusters(iHLTusage);

  // -- Write out
  // -------------------------------------------------------------------
  const Char_t *comment = "Modified RecoParam with HLT clusters usage";
  // -------------------------------------------------------------------
  
  AliCDBMetaData *metaData= new AliCDBMetaData();
  metaData->SetObjectClassName("TObjArray");
  metaData->SetResponsible(author);
  metaData->SetBeamPeriod(1);
  metaData->SetAliRootVersion(alirootVersion); 
  metaData->SetComment(comment);

  AliCDBId id("TPC/Calib/RecoParam", 0, AliCDBRunRange::Infinity());

  AliCDBStorage * gStorage = AliCDBManager::Instance()->GetStorage(newStoragePath);
  gStorage->Put(arr, id, metaData);    

  return;
}

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