--- /dev/null
+void MakeITSRecoParam_pp2009(AliRecoParam::EventSpecie_t default=AliRecoParam::kLowMult) {
+//========================================================================
+//
+// Steering macro for ITS reconstruction parameters
+//
+// Author: A.Dainese
+// Contact: andrea.dainese@lnl.infn.it
+//
+//========================================================================
+
+
+ const char* macroname = "MakeITSRecoParam_pp2009.C";
+
+ // Activate CDB storage and load geometry from CDB
+ AliCDBManager* cdb = AliCDBManager::Instance();
+ if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("raw://");
+
+ TObjArray *recoParamArray = new TObjArray();
+
+ {
+ AliITSRecoParam * itsRecoParam = AliITSRecoParam::GetCosmicTestParam();
+ itsRecoParam->SetFactorSAWindowSizes(20);
+ itsRecoParam->SetClusterErrorsParam(2);
+ itsRecoParam->SetFindV0s(kFALSE);
+ itsRecoParam->SetAddVirtualClustersInDeadZone(kFALSE);
+ itsRecoParam->SetUseAmplitudeInfo(kFALSE);
+ // In case we want to switch off a layer
+ // itsRecoParam->SetLayerToSkip(<N>);
+ // itsRecoParam->SetLayerToSkip(4);
+ // itsRecoParam->SetLayerToSkip(5);
+ // itsRecoParam->SetLayerToSkip(2);
+ // itsRecoParam->SetLayerToSkip(3);
+ //itsRecoParam->SetSAOnePointTracks();
+ itsRecoParam->SetClusterMisalError(0.1); // [cm]
+ itsRecoParam->SetSAUseAllClusters();
+ itsRecoParam->SetEventSpecie(AliRecoParam::kCosmic);
+ recoParamArray->AddLast(itsRecoParam);
+ }
+ {
+ AliITSRecoParam * itsRecoParam = AliITSRecoParam::GetLowFluxParam();
+ itsRecoParam->SetClusterErrorsParam(2);
+ //****** FIRST PHYSICS 2009 (same as COSMICS 2009) *********************
+
+ // find independently ITS SA tracks
+ param->SetSAUseAllClusters();
+ param->SetOuterStartLayerSA(AliITSgeomTGeo::GetNLayers()-2);
+
+ // to maximize efficiency
+ param->SetAllowProlongationWithEmptyRoad();
+
+ // larger seach windows for SA (in case of large misalignments)
+ param->SetNLoopsSA(33);
+ param->SetFactorSAWindowSizes(20);
+
+ // additional error due to misal (B off)
+ param->SetClusterMisalErrorY(1.0,1.0,1.0,1.0,1.0,1.0); // [cm]
+ param->SetClusterMisalErrorZ(1.0,1.0,1.0,1.0,1.0,1.0); // [cm]
+ // additional error due to misal (B on)
+ param->SetClusterMisalErrorYBOn(0.0,0.0,0.1,0.1,0.1,0.1); // [cm]
+ param->SetClusterMisalErrorZBOn(0.1,0.1,0.1,0.1,0.1,0.1); // [cm]
+
+ // SDD configuration
+ param->fUseSDDCorrectionMaps = kFALSE;
+ param->fUseSDDClusterSizeSelection=kTRUE;
+ param->fMinClusterChargeSDD=30.;
+
+ //******************************************************************
+
+ itsRecoParam->SetEventSpecie(AliRecoParam::kLowMult);
+ recoParamArray->AddLast(itsRecoParam);
+ }
+ {
+ AliITSRecoParam * itsRecoParam = AliITSRecoParam::GetHighFluxParam();
+ itsRecoParam->SetClusterErrorsParam(2);
+ itsRecoParam->SetEventSpecie(AliRecoParam::kHighMult);
+ recoParamArray->AddLast(itsRecoParam);
+ }
+
+ // 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("Andrea Dainese");
+ md->SetComment("Reconstruction parameters ITS. Use large misal errors for cosmics and lowflux, 18 Nov 2009");
+ md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
+ md->SetBeamPeriod(0);
+ AliCDBId id("ITS/Calib/RecoParam",0,AliCDBRunRange::Infinity());
+ cdb->GetDefaultStorage()->Put(recoParamArray,id, md);
+
+ return;
+}
+
+