]> git.uio.no Git - u/mrichter/AliRoot.git/blob - test/testdEdx/rec.C
ATO-17, ATO-34 use sim.SetSpecificStorage instead of the AliCDBManager::SetSpecificSt...
[u/mrichter/AliRoot.git] / test / testdEdx / rec.C
1 const char * recoStorage="local:///cvmfs/alice.gsi.de/alice/data/2010/OCDB";
2 Int_t run=0;
3
4
5 void ModifyRecoParam(TObjArray* recoArray, Bool_t useIonTail, Double_t crossTalkCorrection){
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);
14   }
15   TString localStorage = "local://"+gSystem->GetFromPipe("pwd")+"/OCDBrec";
16   AliCDBStorage*pocdbStorage = AliCDBManager::Instance()->GetStorage(localStorage.Data());  
17   AliCDBMetaData *metaData= new AliCDBMetaData();
18   AliCDBId*   id1=new AliCDBId("TPC/Calib/RecoParam/", man->GetRun(), man->GetRun());
19   pocdbStorage->Put(recoArray, (*id1), metaData);
20   AliCDBManager::Instance()->SetSpecificStorage("TPC/Calib/RecoParam/",localStorage.Data());
21 }
22
23
24 void rec(Bool_t useIonTail, Double_t crossTalkCorrection) {
25   //
26   // run reconstruction
27   // Parameters:
28   //   useIonTail - switch for using ion tail correction - OCDB entry will be overritten in  
29   //
30   // stard reco setting
31   //
32   AliCDBManager * man = AliCDBManager::Instance();
33   man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
34   man->SetSpecificStorage("TPC/Calib/RecoParam/",recoStorage);
35   man->SetRun(run);
36   AliReconstruction reco;
37   reco.SetWriteESDfriend();
38   reco.SetWriteAlignmentData();
39   reco.SetDefaultStorage("local://$ALICE_ROOT/OCDB");
40   reco.SetSpecificStorage("GRP/GRP/Data",
41                           Form("local://%s",gSystem->pwd()));
42   reco.SetRunPlaneEff(kTRUE);
43   reco.SetRunQA(":"); 
44   reco.SetRunGlobalQA(kFALSE);
45   reco.ResetCheckRecoCDBvsSimuCDB();
46
47   //
48   //Switch Iontail in RecoParam. Creation of a new OCDB entry
49   //
50   AliCDBEntry* e = man->Get("TPC/Calib/RecoParam/",run); // get default
51   // modify content
52   TObjArray* recoArray = (TObjArray*)e->GetObject();
53   ModifyRecoParam(recoArray, useIonTail, crossTalkCorrection);
54   //
55   //
56   // Run reconstruction
57   //
58   TStopwatch timer;
59   timer.Start();
60   reco.Run();
61   timer.Stop();
62   timer.Print();
63   //
64   // Print the OCDB setup which we used
65   //
66   AliCDBEntry* ocdbEntry = man->Get("TPC/Calib/RecoParam/",run);
67   TObjArray* recoArray = (TObjArray*)ocdbEntry->GetObject();
68   for (Int_t i=0; i<4; i++){
69     AliTPCRecoParam* recoParam = ( AliTPCRecoParam*)recoArray->At(i);
70     printf("ipar=%d\t%d\t%f\n",i,recoParam->GetUseIonTailCorrection(), recoParam->GetCrosstalkCorrection());
71   } 
72 }