]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/Macros/AliTRDpidCDB.C
Extacting the OCDB in a separate module. The detectors have write permission in the...
[u/mrichter/AliRoot.git] / TRD / Macros / AliTRDpidCDB.C
1 // Functions to create/store/inspect TRD PID DB.
2 // 
3 // Author:
4 // Alex Bercuci (A.Bercuci@gsi.de)
5 // 
6
7
8 //___________________________________________________________________
9 void makePIDRefs(const char *dir = ".", const char *file="Refs.root")
10 {
11 // Build the reference data for PID. The simulations have to fulfill
12 // the directory structure defined inside AliTRDCalPIDRefMaker.
13 // Parameters:
14 // 1. "dir" - the root directory of the production
15 // 2. "file" - output file containing reference data saved in directory
16 //             "dir" 
17
18         AliCDBManager *man = AliCDBManager::Instance();
19         man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
20         man->SetRun(0);
21
22         AliTRDCalPIDRefMaker maker;
23         maker.BuildLQReferences(file, dir);
24 }
25
26 //___________________________________________________________________
27 void generatePIDDB(const char *fileNN = "NN.root", const char *fileLQ = "LQ.root")
28 {
29 // Write TRD PID DB using the reference data from file "file"
30
31
32         AliCDBManager *man = AliCDBManager::Instance();
33         man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
34         man->SetRun(0);
35
36         AliCDBStorage *gStorLoc = man->GetStorage("local://$ALICE_ROOT/OCDB");
37         if (!gStorLoc) return;
38
39   
40         AliTRDCalPID *pidLQ = new AliTRDCalPIDLQ("pidLQ", "LQ TRD PID object");
41         pidLQ->LoadReferences(fileLQ);
42         AliCDBMetaData *md= new AliCDBMetaData();
43         md->SetObjectClassName("AliTRDCalPIDLQ");
44         md->SetResponsible("Alex Bercuci");
45         md->SetBeamPeriod(1);
46         md->SetAliRootVersion("v4-06-HEAD"); //root version
47         md->SetComment("2D PID for TRD");
48         gStorLoc->Put(pidLQ, AliCDBId("TRD/Calib/PIDLQ", 0, 999999999, 0, 1), md);
49         
50         AliTRDCalPID *pidNN = new AliTRDCalPIDNN("pidNN", "NN TRD PID object");
51         pidNN->LoadReferences(fileNN);
52         md->SetObjectClassName("AliTRDCalPIDNN");
53         md->SetResponsible("Alex Wilk");
54         md->SetBeamPeriod(1);
55         md->SetAliRootVersion("v4-06-HEAD"); //root version
56         md->SetComment("NN PID for TRD");
57         
58         gStorLoc->Put(pidNN, AliCDBId("TRD/Calib/PIDNN", 0, 999999999, 0, 1), md);
59 }
60
61 //___________________________________________________________________
62 AliTRDCalPID* getPIDObject(const char *method="NN")
63 {
64 // Returns PIDLQ object.
65 // In order to browse histos do:
66 //   > AliTRDCalPID *pid = getPIDObject();
67 //   > pid->GetHistogram(0, 3);
68
69         gStyle->SetOptStat(0);
70         
71   AliCDBManager *CDBManager = AliCDBManager::Instance();
72         CDBManager->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
73         CDBManager->SetRun(0);
74
75         AliCDBEntry *wrap = CDBManager->Get(Form("TRD/Calib/PID%s", method), 0);
76         AliTRDCalPID *pid = dynamic_cast<const AliTRDCalPID *>wrap->GetObject();
77         AliCDBMetaData *meta = wrap->GetMetaData();
78         if(!pid){
79                 printf("Error while retriving pid object from DB.\n");
80                 return 0x0;
81         }
82         meta->PrintMetaData();
83         return pid;
84 }
85