New macro to create RecoParam object for 2010 data (A. Dainese)
authorprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 26 Mar 2010 15:05:58 +0000 (15:05 +0000)
committerprino <prino@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 26 Mar 2010 15:05:58 +0000 (15:05 +0000)
ITS/MakeITSRecoParam_2010.C [new file with mode: 0644]

diff --git a/ITS/MakeITSRecoParam_2010.C b/ITS/MakeITSRecoParam_2010.C
new file mode 100644 (file)
index 0000000..770be29
--- /dev/null
@@ -0,0 +1,129 @@
+void MakeITSRecoParam_2010(AliRecoParam::EventSpecie_t default=AliRecoParam::kLowMult, const char* cdbURI) {
+//========================================================================
+//
+// Steering macro for ITS reconstruction parameters
+//
+// Author: A.Dainese
+// Contact: andrea.dainese@lnl.infn.it
+//
+//========================================================================
+
+
+  const char* macroname = "MakeITSRecoParam_2010.C";
+
+  // Activate CDB storage and load geometry from CDB
+  AliCDBManager* cdb = AliCDBManager::Instance();
+  cdb->SetDefaultStorage(cdbURI);
+  
+  TObjArray *recoParamArray = new TObjArray();
+
+  {
+    AliITSRecoParam * itsRecoParam = AliITSRecoParam::GetCosmicTestParam();
+    // find independently ITS SA tracks 
+    itsRecoParam->SetSAUseAllClusters();
+    itsRecoParam->SetMinNPointsSA(2);
+    itsRecoParam->SetOuterStartLayerSA(AliITSgeomTGeo::GetNLayers()-2);
+
+    // to maximize efficiency
+    itsRecoParam->SetAllowProlongationWithEmptyRoad();
+    
+    // larger seach windows for SA (in case of large misalignments)
+    itsRecoParam->SetNLoopsSA(33);
+    itsRecoParam->SetFactorSAWindowSizes(20);
+    
+    // additional error due to misal (B off)
+    itsRecoParam->SetClusterMisalErrorY(1.0,1.0,1.0,1.0,1.0,1.0); // [cm]
+    itsRecoParam->SetClusterMisalErrorZ(1.0,1.0,1.0,1.0,1.0,1.0); // [cm]
+    // additional error due to misal (B on)
+    itsRecoParam->SetClusterMisalErrorYBOn(0.0,0.0,0.1,0.1,0.1,0.1); // [cm]
+    itsRecoParam->SetClusterMisalErrorZBOn(0.1,0.1,0.1,0.1,0.1,0.1); // [cm]
+
+    itsRecoParam->SetClusterErrorsParam(2);
+    itsRecoParam->SetFindV0s(kFALSE);
+    itsRecoParam->SetAddVirtualClustersInDeadZone(kFALSE);
+    itsRecoParam->SetUseAmplitudeInfo(kFALSE);
+    itsRecoParam->SetEventSpecie(AliRecoParam::kCosmic);
+    recoParamArray->AddLast(itsRecoParam);
+  }
+  {
+    AliITSRecoParam * itsRecoParam = AliITSRecoParam::GetLowFluxParam();
+    itsRecoParam->SetClusterErrorsParam(2);
+
+    // find independently ITS SA tracks 
+    itsRecoParam->SetSAUseAllClusters();
+    itsRecoParam->SetOuterStartLayerSA(2);
+
+    itsRecoParam->SetAllowProlongationWithEmptyRoad(kTRUE);
+    
+    // larger seach windows for SA (in case of large misalignments)
+    itsRecoParam->SetFactorSAWindowSizes(2);
+    
+    // Misalignment syst errors decided at ITS meeting 25.03.2010
+    // additional error due to misal (B off)
+    itsRecoParam->SetClusterMisalErrorY(0.0010,0.0010,0.0300,0.0300,0.0020,0.0020); // [cm]
+    itsRecoParam->SetClusterMisalErrorZ(0.0100,0.0100,0.0100,0.0100,0.0500,0.0500); // [cm]
+    // additional error due to misal (B on)
+    itsRecoParam->SetClusterMisalErrorYBOn(0.0010,0.0010,0.0300,0.0300,0.0020,0.0020); // [cm]
+    itsRecoParam->SetClusterMisalErrorZBOn(0.0100,0.0100,0.0100,0.0100,0.0500,0.0500); // [cm]
+    //----
+
+    // SDD configuration 
+    itsRecoParam->SetUseSDDCorrectionMaps(kFALSE);
+    itsRecoParam->SetUseSDDClusterSizeSelection(kTRUE);
+    itsRecoParam->SetMinClusterChargeSDD(30.);
+
+    // Plane Efficiency evaluation with tracklets Method
+    itsRecoParam->SetIPlanePlaneEff(-1);
+    itsRecoParam->SetComputePlaneEff(kTRUE,kFALSE);
+    itsRecoParam->SetUseTrackletsPlaneEff(kTRUE);
+    itsRecoParam->SetTrackleterPhiWindowL2(0.07);
+    itsRecoParam->SetTrackleterZetaWindowL2(0.4);
+    itsRecoParam->SetTrackleterPhiWindowL1(0.10);
+    itsRecoParam->SetTrackleterZetaWindowL1(0.6);
+    itsRecoParam->SetUpdateOncePerEventPlaneEff(kTRUE);
+    itsRecoParam->SetMinContVtxPlaneEff(3);
+    // itsRecoParam->SetOptTrackletsPlaneEff(kTRUE); // activate it for MC (very important) !
+    // Removal of tracklets reconstructed in the SPD overlaps 
+    itsRecoParam->SetTrackleterRemoveClustersFromOverlaps(kTRUE);
+  
+    //******************************************************************
+
+    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.");
+  md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
+  md->SetBeamPeriod(0);
+  AliCDBId id("ITS/Calib/RecoParam",0,AliCDBRunRange::Infinity());
+  cdb->GetDefaultStorage()->Put(recoParamArray,id, md);
+
+  return;
+}
+
+