1 void MakeITSRecoParam(AliRecoParam::EventSpecie_t default=AliRecoParam::kLowMult, const char* cdbURI="local://") {
2 //========================================================================
4 // Steering macro for ITSU reconstruction parameters
6 // Contact: ruben.shahoyan@cern.ch
8 //========================================================================
9 const char* macroname = "MakeITSRecoParam.C";
11 enum {kBit0=0x1<<0,kBit1=0x1<<1,kBit2=0x1<<2,kBit3=0x1<<3,kBit4=0x1<<4,kBit5=0x1<<5,kBit6=0x1<<6,kBit7=0x7<<2,kBit8=0x1<<8};
14 gSystem->Load("libITSUpgradeBase.so");
15 gSystem->Load("libITSUpgradeSim.so");
16 gSystem->Load("libITSUpgradeRec.so");
18 // Activate CDB storage and load geometry from CDB
19 AliCDBManager* cdb = AliCDBManager::Instance();
20 cdb->SetDefaultStorage(cdbURI);
21 AliITSUTrackCond* trcond = 0;
24 TObjArray *recoParamArray = new TObjArray();
27 AliITSURecoParam * itsRecoParam = AliITSURecoParam::GetCosmicTestParam();
29 itsRecoParam->SetNLayers(nLr);
31 //******************************************************************
32 itsRecoParam->SetEventSpecie(AliRecoParam::kCosmic);
33 itsRecoParam->SetTitle("Cosmic");
34 recoParamArray->AddLast(itsRecoParam);
38 AliITSURecoParam * itsRecoParam = AliITSURecoParam::GetLowFluxParam();
39 int nBranch[7] = {3,3,3,3,3,3,3}; // max branching for the seed on layer
40 int nCands[7] = {250,200,150,100,60,40,20}; // max branching for the TPC seed
42 itsRecoParam->SetNLayers(nLr);
44 //******************************************************************
45 itsRecoParam->SetEventSpecie(AliRecoParam::kLowMult);
46 itsRecoParam->SetTitle("LowMult");
47 recoParamArray->AddLast(itsRecoParam);
48 //******************************************************************
49 // Add tracking conditions >>>
50 trCond = new AliITSUTrackCond();
51 trCond->SetNLayers(nLr);
52 // each seed propagated to given layer can produce max nBranch branches
53 for (int i=0;i<nLr;i++) trCond->SetMaxBranches(i,nBranch[i]);
54 // each tpc track may have at most nCands prolongations
55 for (int i=0;i<nLr;i++) trCond->SetMaxCandidates(i,nCands[i]);
57 trCond->AddNewCondition(5); // min hits
58 trCond->AddGroupPattern( kBit0|kBit1 );
59 trCond->AddGroupPattern( kBit3|kBit4 );
60 trCond->AddGroupPattern( kBit5|kBit6 );
62 trCond->AddNewCondition(5);
63 trCond->AddGroupPattern( kBit0|kBit2 );
64 trCond->AddGroupPattern( kBit3|kBit4 );
65 trCond->AddGroupPattern( kBit5|kBit6 );
67 trCond->AddNewCondition(5);
68 trCond->AddGroupPattern( kBit1|kBit2 );
69 trCond->AddGroupPattern( kBit3|kBit4 );
70 trCond->AddGroupPattern( kBit5|kBit6 );
72 itsRecoParam->AddTrackingCondition(trCond);
73 // Add tracking conditions >>>
76 AliITSURecoParam * itsRecoParam = AliITSURecoParam::GetHighFluxParam();
77 for (int i=0;i<nLr;i++) trCond->SetMaxBranches(i,nBranch[i]);
78 for (int i=0;i<nLr;i++) trCond->SetMaxCandidates(i,nCands[i]);
80 itsRecoParam->SetNLayers(nLr);
82 //******************************************************************
83 itsRecoParam->SetEventSpecie(AliRecoParam::kHighMult);
84 itsRecoParam->SetTitle("HighMult");
85 recoParamArray->AddLast(itsRecoParam);
86 //******************************************************************
87 // Add tracking conditions >>>
88 trCond = new AliITSUTrackCond();
89 trCond->SetNLayers(nLr);
90 for (int i=0;i<nLr;i++) trCond->SetMaxBranches(i,nBranch[i]);
91 for (int i=0;i<nLr;i++) trCond->SetMaxCandidates(i,nCands[i]);
92 trCond->AddNewCondition(5); // min hits
93 trCond->AddGroupPattern( kBit0|kBit1 );
94 trCond->AddGroupPattern( kBit3|kBit4 );
95 trCond->AddGroupPattern( kBit5|kBit6 );
97 trCond->AddNewCondition(5);
98 trCond->AddGroupPattern( kBit0|kBit2 );
99 trCond->AddGroupPattern( kBit3|kBit4 );
100 trCond->AddGroupPattern( kBit5|kBit6 );
102 trCond->AddNewCondition(5);
103 trCond->AddGroupPattern( kBit1|kBit2 );
104 trCond->AddGroupPattern( kBit3|kBit4 );
105 trCond->AddGroupPattern( kBit5|kBit6 );
107 itsRecoParam->AddTrackingCondition(trCond);
108 // Add tracking conditions >>>
113 Bool_t defaultIsSet = kFALSE;
114 for(Int_t i =0; i < recoParamArray->GetEntriesFast(); i++) {
115 AliDetectorRecoParam *param = (AliDetectorRecoParam *)recoParamArray->UncheckedAt(i);
116 if (!param) continue;
117 if (default & param->GetEventSpecie()) {
118 param->SetAsDefault();
119 defaultIsSet = kTRUE;
124 Error(macroname,"The default reconstruction parameters are not set! Exiting...");
128 // save in CDB storage
129 AliCDBMetaData *md= new AliCDBMetaData();
130 md->SetResponsible("Andrea Dainese");
131 md->SetComment("Reconstruction parameters ITS.");
132 md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
133 md->SetBeamPeriod(0);
134 AliCDBId id("ITS/Calib/RecoParam",0,AliCDBRunRange::Infinity());
135 cdb->GetDefaultStorage()->Put(recoParamArray,id, md);