For Pythia with tune don't switch off MI in ConfigHeavyFlavor
[u/mrichter/AliRoot.git] / ITS / MakeITSRecoParam_pp2009.C
1 void MakeITSRecoParam_pp2009(AliRecoParam::EventSpecie_t default=AliRecoParam::kLowMult, const char* cdbURI) {
2 //========================================================================
3 //
4 // Steering macro for ITS reconstruction parameters
5 //
6 // Author: A.Dainese
7 // Contact: andrea.dainese@lnl.infn.it
8 //
9 //========================================================================
10
11
12   const char* macroname = "MakeITSRecoParam_pp2009.C";
13
14   // Activate CDB storage and load geometry from CDB
15   AliCDBManager* cdb = AliCDBManager::Instance();
16   cdb->SetDefaultStorage(cdbURI);
17   
18   TObjArray *recoParamArray = new TObjArray();
19
20   {
21     AliITSRecoParam * itsRecoParam = AliITSRecoParam::GetCosmicTestParam();
22     itsRecoParam->SetFactorSAWindowSizes(20);
23     itsRecoParam->SetClusterErrorsParam(2);
24     itsRecoParam->SetFindV0s(kFALSE);
25     itsRecoParam->SetAddVirtualClustersInDeadZone(kFALSE);
26     itsRecoParam->SetUseAmplitudeInfo(kFALSE);
27     // In case we want to switch off a layer
28     //  itsRecoParam->SetLayerToSkip(<N>);
29     //  itsRecoParam->SetLayerToSkip(4);
30     //  itsRecoParam->SetLayerToSkip(5);
31     //    itsRecoParam->SetLayerToSkip(2);
32     //    itsRecoParam->SetLayerToSkip(3);
33     //itsRecoParam->SetSAOnePointTracks();
34     itsRecoParam->SetClusterMisalError(0.1); // [cm]
35     itsRecoParam->SetSAUseAllClusters();
36     itsRecoParam->SetMinNPointsSA(2);
37     itsRecoParam->SetEventSpecie(AliRecoParam::kCosmic);
38     recoParamArray->AddLast(itsRecoParam);
39   }
40   {
41     AliITSRecoParam * itsRecoParam = AliITSRecoParam::GetLowFluxParam();
42     itsRecoParam->SetClusterErrorsParam(2);
43     //****** FIRST PHYSICS 2009 *********************
44
45     /* //  First Collisions 23.11.2009 (same as COSMICS 2009) 
46     // find independently ITS SA tracks 
47     itsRecoParam->SetSAUseAllClusters();
48     itsRecoParam->SetOuterStartLayerSA(AliITSgeomTGeo::GetNLayers()-2);
49
50     // to maximize efficiency
51     itsRecoParam->SetAllowProlongationWithEmptyRoad();
52     
53     // larger seach windows for SA (in case of large misalignments)
54     itsRecoParam->SetNLoopsSA(33);
55     itsRecoParam->SetFactorSAWindowSizes(20);
56     
57     // additional error due to misal (B off)
58     itsRecoParam->SetClusterMisalErrorY(1.0,1.0,1.0,1.0,1.0,1.0); // [cm]
59     itsRecoParam->SetClusterMisalErrorZ(1.0,1.0,1.0,1.0,1.0,1.0); // [cm]
60     // additional error due to misal (B on)
61     itsRecoParam->SetClusterMisalErrorYBOn(0.0,0.0,0.1,0.1,0.1,0.1); // [cm]
62     itsRecoParam->SetClusterMisalErrorZBOn(0.1,0.1,0.1,0.1,0.1,0.1); // [cm]
63     */
64
65     //----  Collisions since 03.12.2009 
66     // find independently ITS SA tracks 
67     itsRecoParam->SetSAUseAllClusters();
68     itsRecoParam->SetOuterStartLayerSA(2);
69
70     // to maximize efficiency (change to kTRUE on 15.12.2009)
71     //itsRecoParam->SetAllowProlongationWithEmptyRoad(kFALSE);
72     itsRecoParam->SetAllowProlongationWithEmptyRoad(kTRUE);
73     
74     // larger seach windows for SA (in case of large misalignments)
75     itsRecoParam->SetFactorSAWindowSizes(2);
76     
77     // additional error due to misal (B off)
78     itsRecoParam->SetClusterMisalErrorY(0.01,0.01,0.1,0.1,0.1,0.1); // [cm]
79     itsRecoParam->SetClusterMisalErrorZ(0.01,0.01,0.1,0.1,0.1,0.1); // [cm]
80     // additional error due to misal (B on)
81     itsRecoParam->SetClusterMisalErrorYBOn(0.01,0.01,0.1,0.1,0.1,0.1); // [cm]
82     itsRecoParam->SetClusterMisalErrorZBOn(0.01,0.01,0.1,0.1,0.1,0.1); // [cm]
83     //----
84
85     // SDD configuration 
86     itsRecoParam->SetUseSDDCorrectionMaps(kFALSE);
87     itsRecoParam->SetUseSDDClusterSizeSelection(kTRUE);
88     itsRecoParam->SetMinClusterChargeSDD(30.);
89
90     // Plane Efficiency evaluation with tracklets Method
91     itsRecoParam->SetIPlanePlaneEff(-1);
92     itsRecoParam->SetComputePlaneEff(kTRUE,kFALSE);
93     itsRecoParam->SetUseTrackletsPlaneEff(kTRUE);
94     itsRecoParam->SetTrackleterPhiWindowL2(0.07);
95     itsRecoParam->SetTrackleterZetaWindowL2(0.4);
96     itsRecoParam->SetTrackleterPhiWindowL1(0.10);
97     itsRecoParam->SetTrackleterZetaWindowL1(0.6);
98     itsRecoParam->SetUpdateOncePerEventPlaneEff(kTRUE);
99     itsRecoParam->SetMinContVtxPlaneEff(3);
100     // itsRecoParam->SetOptTrackletsPlaneEff(kTRUE); // activate it for MC (very important) !
101     // Removal of tracklets reconstructed in the SPD overlaps 
102     itsRecoParam->SetTrackleterRemoveClustersFromOverlaps(kTRUE);
103   
104     //******************************************************************
105
106     itsRecoParam->SetEventSpecie(AliRecoParam::kLowMult);
107     recoParamArray->AddLast(itsRecoParam);
108   }
109   {
110     AliITSRecoParam * itsRecoParam = AliITSRecoParam::GetHighFluxParam();
111     itsRecoParam->SetClusterErrorsParam(2);
112     itsRecoParam->SetEventSpecie(AliRecoParam::kHighMult);
113     recoParamArray->AddLast(itsRecoParam);
114   }
115
116   // Set the default
117   Bool_t defaultIsSet = kFALSE;
118   for(Int_t i =0; i < recoParamArray->GetEntriesFast(); i++) {
119     AliDetectorRecoParam *param = (AliDetectorRecoParam *)recoParamArray->UncheckedAt(i);
120     if (!param) continue;
121     if (default & param->GetEventSpecie()) {
122       param->SetAsDefault();
123       defaultIsSet = kTRUE;
124     }
125   }
126
127   if (!defaultIsSet) {
128     Error(macroname,"The default reconstruction parameters are not set! Exiting...");
129     return;
130   }
131
132   // save in CDB storage
133   AliCDBMetaData *md= new AliCDBMetaData();
134   md->SetResponsible("Andrea Dainese");
135   md->SetComment("Reconstruction parameters ITS. Use large misal errors for cosmics and lowflux, 18 Nov 2009");
136   md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
137   md->SetBeamPeriod(0);
138   AliCDBId id("ITS/Calib/RecoParam",0,AliCDBRunRange::Infinity());
139   cdb->GetDefaultStorage()->Put(recoParamArray,id, md);
140
141   return;
142 }
143
144