]>
Commit | Line | Data |
---|---|---|
533f5c16 | 1 | const char * recoStorage="local:///cvmfs/alice.gsi.de/alice/data/2010/OCDB"; |
2 | Int_t run=0; | |
3 | ||
4 | ||
27057c0d | 5 | void ModifyRecoParam(TObjArray* recoArray, Bool_t useIonTail, Double_t crossTalkCorrection, Int_t nrowsBellow=2){ |
2822c51d | 6 | // |
7 | // Modify reco param - and store it in the OCDB in local directory | |
8 | // | |
9 | AliCDBManager * man = AliCDBManager::Instance(); | |
10 | for (Int_t i=0; i<4; i++){ | |
11 | AliTPCRecoParam* p = ( AliTPCRecoParam*)recoArray->At(i); | |
12 | p->SetUseIonTailCorrection(useIonTail); | |
13 | p->SetCrosstalkCorrection(crossTalkCorrection); | |
27057c0d | 14 | p->SetNeighborRowsDedx(nrowsBellow); |
2822c51d | 15 | } |
533f5c16 | 16 | TString localStorage = "local://"+gSystem->GetFromPipe("pwd")+"/OCDBrec"; |
2822c51d | 17 | AliCDBStorage*pocdbStorage = AliCDBManager::Instance()->GetStorage(localStorage.Data()); |
18 | AliCDBMetaData *metaData= new AliCDBMetaData(); | |
19 | AliCDBId* id1=new AliCDBId("TPC/Calib/RecoParam/", man->GetRun(), man->GetRun()); | |
20 | pocdbStorage->Put(recoArray, (*id1), metaData); | |
21 | AliCDBManager::Instance()->SetSpecificStorage("TPC/Calib/RecoParam/",localStorage.Data()); | |
22 | } | |
fab83bb9 | 23 | |
24 | ||
27057c0d | 25 | void rec(Bool_t useIonTail, Double_t crossTalkCorrection, Int_t nrowsBelow=2) { |
2822c51d | 26 | // |
27 | // run reconstruction | |
28 | // Parameters: | |
29 | // useIonTail - switch for using ion tail correction - OCDB entry will be overritten in | |
2822c51d | 30 | // |
31 | // stard reco setting | |
32 | // | |
33 | AliCDBManager * man = AliCDBManager::Instance(); | |
34 | man->SetDefaultStorage("local://$ALICE_ROOT/OCDB"); | |
35 | man->SetSpecificStorage("TPC/Calib/RecoParam/",recoStorage); | |
36 | man->SetRun(run); | |
37 | AliReconstruction reco; | |
253e70f4 | 38 | reco.SetWriteESDfriend(); |
39 | reco.SetWriteAlignmentData(); | |
253e70f4 | 40 | reco.SetDefaultStorage("local://$ALICE_ROOT/OCDB"); |
41 | reco.SetSpecificStorage("GRP/GRP/Data", | |
42 | Form("local://%s",gSystem->pwd())); | |
43 | reco.SetRunPlaneEff(kTRUE); | |
9e75bcab | 44 | reco.SetRunQA(":"); |
45 | reco.SetRunGlobalQA(kFALSE); | |
2822c51d | 46 | reco.ResetCheckRecoCDBvsSimuCDB(); |
9e75bcab | 47 | |
2822c51d | 48 | // |
49 | //Switch Iontail in RecoParam. Creation of a new OCDB entry | |
50 | // | |
51 | AliCDBEntry* e = man->Get("TPC/Calib/RecoParam/",run); // get default | |
52 | // modify content | |
53 | TObjArray* recoArray = (TObjArray*)e->GetObject(); | |
27057c0d | 54 | ModifyRecoParam(recoArray, useIonTail, crossTalkCorrection, nrowsBelow); |
2822c51d | 55 | // |
56 | // | |
57 | // Run reconstruction | |
58 | // | |
3c8c25a3 | 59 | AliTPCReconstructor::SetStreamLevel(AliTPCtracker::kStreamCrosstalkMatrix | AliTPCtracker::kStreamXtalk | AliTPCtracker::kStreamIonTail); // enable steaming of information for ion tail cancelation and crosstalk |
253e70f4 | 60 | TStopwatch timer; |
61 | timer.Start(); | |
62 | reco.Run(); | |
63 | timer.Stop(); | |
64 | timer.Print(); | |
2822c51d | 65 | // |
66 | // Print the OCDB setup which we used | |
67 | // | |
68 | AliCDBEntry* ocdbEntry = man->Get("TPC/Calib/RecoParam/",run); | |
69 | TObjArray* recoArray = (TObjArray*)ocdbEntry->GetObject(); | |
70 | for (Int_t i=0; i<4; i++){ | |
71 | AliTPCRecoParam* recoParam = ( AliTPCRecoParam*)recoArray->At(i); | |
72 | printf("ipar=%d\t%d\t%f\n",i,recoParam->GetUseIonTailCorrection(), recoParam->GetCrosstalkCorrection()); | |
533f5c16 | 73 | } |
253e70f4 | 74 | } |