]> git.uio.no Git - u/mrichter/AliRoot.git/blame - test/testdEdx/rec.C
ATO-17 - possibility to switch ON/OFF cluster below threshold
[u/mrichter/AliRoot.git] / test / testdEdx / rec.C
CommitLineData
533f5c16 1const char * recoStorage="local:///cvmfs/alice.gsi.de/alice/data/2010/OCDB";
2Int_t run=0;
3
4
27057c0d 5void 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 25void 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}