ROOT logo
void MakeITSRecoParam_pp2009(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_pp2009.C";

  // Activate CDB storage and load geometry from CDB
  AliCDBManager* cdb = AliCDBManager::Instance();
  cdb->SetDefaultStorage(cdbURI);
  
  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->SetMinNPointsSA(2);
    itsRecoParam->SetEventSpecie(AliRecoParam::kCosmic);
    recoParamArray->AddLast(itsRecoParam);
  }
  {
    AliITSRecoParam * itsRecoParam = AliITSRecoParam::GetLowFluxParam();
    itsRecoParam->SetClusterErrorsParam(2);
    //****** FIRST PHYSICS 2009 *********************

    /* //  First Collisions 23.11.2009 (same as COSMICS 2009) 
    // find independently ITS SA tracks 
    itsRecoParam->SetSAUseAllClusters();
    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]
    */

    //----  Collisions since 03.12.2009 
    // find independently ITS SA tracks 
    itsRecoParam->SetSAUseAllClusters();
    itsRecoParam->SetOuterStartLayerSA(2);

    // to maximize efficiency (change to kTRUE on 15.12.2009)
    //itsRecoParam->SetAllowProlongationWithEmptyRoad(kFALSE);
    itsRecoParam->SetAllowProlongationWithEmptyRoad(kTRUE);
    
    // larger seach windows for SA (in case of large misalignments)
    itsRecoParam->SetFactorSAWindowSizes(2);
    
    // additional error due to misal (B off)
    itsRecoParam->SetClusterMisalErrorY(0.01,0.01,0.1,0.1,0.1,0.1); // [cm]
    itsRecoParam->SetClusterMisalErrorZ(0.01,0.01,0.1,0.1,0.1,0.1); // [cm]
    // additional error due to misal (B on)
    itsRecoParam->SetClusterMisalErrorYBOn(0.01,0.01,0.1,0.1,0.1,0.1); // [cm]
    itsRecoParam->SetClusterMisalErrorZBOn(0.01,0.01,0.1,0.1,0.1,0.1); // [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. 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;
}


 MakeITSRecoParam_pp2009.C:1
 MakeITSRecoParam_pp2009.C:2
 MakeITSRecoParam_pp2009.C:3
 MakeITSRecoParam_pp2009.C:4
 MakeITSRecoParam_pp2009.C:5
 MakeITSRecoParam_pp2009.C:6
 MakeITSRecoParam_pp2009.C:7
 MakeITSRecoParam_pp2009.C:8
 MakeITSRecoParam_pp2009.C:9
 MakeITSRecoParam_pp2009.C:10
 MakeITSRecoParam_pp2009.C:11
 MakeITSRecoParam_pp2009.C:12
 MakeITSRecoParam_pp2009.C:13
 MakeITSRecoParam_pp2009.C:14
 MakeITSRecoParam_pp2009.C:15
 MakeITSRecoParam_pp2009.C:16
 MakeITSRecoParam_pp2009.C:17
 MakeITSRecoParam_pp2009.C:18
 MakeITSRecoParam_pp2009.C:19
 MakeITSRecoParam_pp2009.C:20
 MakeITSRecoParam_pp2009.C:21
 MakeITSRecoParam_pp2009.C:22
 MakeITSRecoParam_pp2009.C:23
 MakeITSRecoParam_pp2009.C:24
 MakeITSRecoParam_pp2009.C:25
 MakeITSRecoParam_pp2009.C:26
 MakeITSRecoParam_pp2009.C:27
 MakeITSRecoParam_pp2009.C:28
 MakeITSRecoParam_pp2009.C:29
 MakeITSRecoParam_pp2009.C:30
 MakeITSRecoParam_pp2009.C:31
 MakeITSRecoParam_pp2009.C:32
 MakeITSRecoParam_pp2009.C:33
 MakeITSRecoParam_pp2009.C:34
 MakeITSRecoParam_pp2009.C:35
 MakeITSRecoParam_pp2009.C:36
 MakeITSRecoParam_pp2009.C:37
 MakeITSRecoParam_pp2009.C:38
 MakeITSRecoParam_pp2009.C:39
 MakeITSRecoParam_pp2009.C:40
 MakeITSRecoParam_pp2009.C:41
 MakeITSRecoParam_pp2009.C:42
 MakeITSRecoParam_pp2009.C:43
 MakeITSRecoParam_pp2009.C:44
 MakeITSRecoParam_pp2009.C:45
 MakeITSRecoParam_pp2009.C:46
 MakeITSRecoParam_pp2009.C:47
 MakeITSRecoParam_pp2009.C:48
 MakeITSRecoParam_pp2009.C:49
 MakeITSRecoParam_pp2009.C:50
 MakeITSRecoParam_pp2009.C:51
 MakeITSRecoParam_pp2009.C:52
 MakeITSRecoParam_pp2009.C:53
 MakeITSRecoParam_pp2009.C:54
 MakeITSRecoParam_pp2009.C:55
 MakeITSRecoParam_pp2009.C:56
 MakeITSRecoParam_pp2009.C:57
 MakeITSRecoParam_pp2009.C:58
 MakeITSRecoParam_pp2009.C:59
 MakeITSRecoParam_pp2009.C:60
 MakeITSRecoParam_pp2009.C:61
 MakeITSRecoParam_pp2009.C:62
 MakeITSRecoParam_pp2009.C:63
 MakeITSRecoParam_pp2009.C:64
 MakeITSRecoParam_pp2009.C:65
 MakeITSRecoParam_pp2009.C:66
 MakeITSRecoParam_pp2009.C:67
 MakeITSRecoParam_pp2009.C:68
 MakeITSRecoParam_pp2009.C:69
 MakeITSRecoParam_pp2009.C:70
 MakeITSRecoParam_pp2009.C:71
 MakeITSRecoParam_pp2009.C:72
 MakeITSRecoParam_pp2009.C:73
 MakeITSRecoParam_pp2009.C:74
 MakeITSRecoParam_pp2009.C:75
 MakeITSRecoParam_pp2009.C:76
 MakeITSRecoParam_pp2009.C:77
 MakeITSRecoParam_pp2009.C:78
 MakeITSRecoParam_pp2009.C:79
 MakeITSRecoParam_pp2009.C:80
 MakeITSRecoParam_pp2009.C:81
 MakeITSRecoParam_pp2009.C:82
 MakeITSRecoParam_pp2009.C:83
 MakeITSRecoParam_pp2009.C:84
 MakeITSRecoParam_pp2009.C:85
 MakeITSRecoParam_pp2009.C:86
 MakeITSRecoParam_pp2009.C:87
 MakeITSRecoParam_pp2009.C:88
 MakeITSRecoParam_pp2009.C:89
 MakeITSRecoParam_pp2009.C:90
 MakeITSRecoParam_pp2009.C:91
 MakeITSRecoParam_pp2009.C:92
 MakeITSRecoParam_pp2009.C:93
 MakeITSRecoParam_pp2009.C:94
 MakeITSRecoParam_pp2009.C:95
 MakeITSRecoParam_pp2009.C:96
 MakeITSRecoParam_pp2009.C:97
 MakeITSRecoParam_pp2009.C:98
 MakeITSRecoParam_pp2009.C:99
 MakeITSRecoParam_pp2009.C:100
 MakeITSRecoParam_pp2009.C:101
 MakeITSRecoParam_pp2009.C:102
 MakeITSRecoParam_pp2009.C:103
 MakeITSRecoParam_pp2009.C:104
 MakeITSRecoParam_pp2009.C:105
 MakeITSRecoParam_pp2009.C:106
 MakeITSRecoParam_pp2009.C:107
 MakeITSRecoParam_pp2009.C:108
 MakeITSRecoParam_pp2009.C:109
 MakeITSRecoParam_pp2009.C:110
 MakeITSRecoParam_pp2009.C:111
 MakeITSRecoParam_pp2009.C:112
 MakeITSRecoParam_pp2009.C:113
 MakeITSRecoParam_pp2009.C:114
 MakeITSRecoParam_pp2009.C:115
 MakeITSRecoParam_pp2009.C:116
 MakeITSRecoParam_pp2009.C:117
 MakeITSRecoParam_pp2009.C:118
 MakeITSRecoParam_pp2009.C:119
 MakeITSRecoParam_pp2009.C:120
 MakeITSRecoParam_pp2009.C:121
 MakeITSRecoParam_pp2009.C:122
 MakeITSRecoParam_pp2009.C:123
 MakeITSRecoParam_pp2009.C:124
 MakeITSRecoParam_pp2009.C:125
 MakeITSRecoParam_pp2009.C:126
 MakeITSRecoParam_pp2009.C:127
 MakeITSRecoParam_pp2009.C:128
 MakeITSRecoParam_pp2009.C:129
 MakeITSRecoParam_pp2009.C:130
 MakeITSRecoParam_pp2009.C:131
 MakeITSRecoParam_pp2009.C:132
 MakeITSRecoParam_pp2009.C:133
 MakeITSRecoParam_pp2009.C:134
 MakeITSRecoParam_pp2009.C:135
 MakeITSRecoParam_pp2009.C:136
 MakeITSRecoParam_pp2009.C:137
 MakeITSRecoParam_pp2009.C:138
 MakeITSRecoParam_pp2009.C:139
 MakeITSRecoParam_pp2009.C:140
 MakeITSRecoParam_pp2009.C:141
 MakeITSRecoParam_pp2009.C:142
 MakeITSRecoParam_pp2009.C:143
 MakeITSRecoParam_pp2009.C:144
 MakeITSRecoParam_pp2009.C:145