]>
Commit | Line | Data |
---|---|---|
518eb852 | 1 | // $Id$ |
2ce5e44e | 2 | |
518eb852 | 3 | /*! |
4 | ||
91509ec6 | 5 | \page README_calib Calibration |
518eb852 | 6 | |
2ce5e44e | 7 | The Offline Condition DataBase is described extensively on ALICE Offline pages. |
8 | ||
9 | Here you'll find only information relevant to the AliMUONCDB class | |
10 | (formerly MUONCDB.C macro), which defines a set of functions to read/write | |
11 | MUON information to this CDB. Those functions are not meant to be used | |
12 | as black boxes. | |
518eb852 | 13 | |
2ce5e44e | 14 | Please have a closer look before using (especially the ones writing to the CDB...) |
15 | ||
518eb852 | 16 | |
17 | \section calib_s1 Calibration data objects | |
2ce5e44e | 18 | |
19 | We've designed generic data containers to store calibration information, | |
20 | tailored to the way we usually access MUON tracker data, that is, | |
21 | indexed by the pair (detElemId,manuId). | |
22 | This container is called AliMUONV2DStore. You can attach a TObject to every and | |
23 | each pair (detElemId,manuId). | |
518eb852 | 24 | |
2ce5e44e | 25 | For the moment, that TObject is generally of AliMUONVCalibParam type, |
26 | which handles a given number of channels (64 typically) as a group. | |
27 | There's also an AliMUONV1DStore for data types which only requires indexing | |
28 | by 1 value (like trigger masks for instance). | |
518eb852 | 29 | |
2ce5e44e | 30 | As the class names suggest (V...), those classes are only interfaces. |
31 | Concrete ones are AliMUON2DMap (used instead of a vector as detElemId are | |
32 | not contiguous) for the V2DStore, AliMUON1DArray (for things where indices are | |
33 | contiguous) and AliMUON1DMap for the V1DStore, and CalibParamNI (VCalibParam | |
34 | storing n integer per channel), and CalibParamNF | |
35 | (VCalibParam storing n floats per channel). | |
36 | ||
37 | One exception are the HV values from DCS, which are stored "as they come" from | |
38 | the shuttle-dcs interface, as a TMap, where the key is the aliasname (TString), | |
39 | and the value a TObjArray of AliDCSValue. | |
40 | ||
41 | For trigger, the same virtual container idea applies, | |
42 | except we're using 1D container (AliMUONV1DStore, for masks) or specific ones (for LUT | |
43 | and efficiency) | |
44 | ||
518eb852 | 45 | \section calib_s2 CDB location |
2ce5e44e | 46 | |
47 | One very important notion is that of the DefaultStorage (which you might set with | |
48 | AliCDBManager::Instance()->SetDefaultStorage(path)), which tells the CDB library where | |
49 | the CDB is sitting (either locally on disk, or on the grid). | |
50 | ||
39012d35 | 51 | For local tests, path will be most likely = <code> "local://$ALICE_ROOT"</code> |
2ce5e44e | 52 | (i.e. there is, in CVS a slim version of the calibration objects needed |
39012d35 | 53 | for running the MUON code), or <code> "local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestCDB </code> |
54 | for Shuttle testing. | |
518eb852 | 55 | |
39012d35 | 56 | When using alien, the path definition can be eg. |
57 | <code> "alien://folder=/alice/data/2007/LHC07w/OCDB" </code>. | |
58 | ||
518eb852 | 59 | \section calib_s3 Writing to CDB |
2ce5e44e | 60 | |
61 | AliMUONCDB class is used to populate the CDB with fake calibration objects for testing purposes. | |
62 | Real calibration data will normally be handled by the Shuttle (see READMEshuttle). | |
63 | ||
64 | The various WriteXXX() methods may be used to populate MUON tracker and trigger | |
65 | information. | |
66 | A full set of calibration data types can be created from scratch using, from | |
67 | the Root prompt (from within the $ALICE_ROOT/MUON directory to get the correct | |
68 | list of libraries loaded by the loadlibs.C macro) | |
69 | ||
518eb852 | 70 | <pre> |
2ce5e44e | 71 | root[0] AliMUONCDB cdb; |
72 | root[1] Int_t startRun = 0; | |
73 | root[2] Bool_t defaultValues = kTRUE; | |
74 | root[3] cdb.WriteTrigger(startRun); | |
75 | root[4] cdb.WriteTracker(defaultValues,startRun); | |
518eb852 | 76 | </pre> |
77 | ||
2ce5e44e | 78 | |
518eb852 | 79 | \section calib_s4 Reading the CDB |
2ce5e44e | 80 | |
81 | The actual reading is encapsulated into AliMUONCalibrationData class. | |
82 | e.g. to read pedestals for run 4567, one would do : | |
83 | ||
518eb852 | 84 | <pre> |
2ce5e44e | 85 | AliCDBManager::Instance()->SetDefaultStorage(cdbPath); |
86 | AliMUONCalibrationData cd(4567); | |
87 | AliMUONV2DStore* ped = cd.Pedestals(); | |
518eb852 | 88 | </pre> |
2ce5e44e | 89 | |
90 | If you want to plot calibration data (not terribly usefull as it's a really global view), | |
91 | use the Plot() function of AliMUONCDB, e.g. | |
92 | ||
518eb852 | 93 | <pre> |
2ce5e44e | 94 | AliMUONCDB cdb(cdbpath); |
95 | cdb.Plot(*ped,"pedestal") | |
518eb852 | 96 | </pre> |
2ce5e44e | 97 | |
98 | which will create 2 histograms : pedestal_0 (mean) and pedestal_1 (sigma). | |
99 | ||
100 | You might also be interested in the AliMUONStoreHelper::Diff() method | |
101 | which generates an AliMUONV2DStore containing the difference | |
102 | (either absolute or relative) of two AliMUONV2DStore. | |
103 | ||
095ae052 | 104 | \section calib_s5 A note on status and status map |
105 | ||
106 | A special kind of object is the status map. It would deserve a full documentation | |
107 | (and that will need to be done some day), but for the moment, please have a look | |
108 | at the MUONStatusMap.C macro which can let you play with it. For more information, | |
109 | have a look at the AliMUONPadStatusMaker and AliMUONPadStatusMapMaker. | |
110 | ||
91509ec6 | 111 | This chapter is defined in the READMEcalib.txt file. |
518eb852 | 112 | */ |
2ce5e44e | 113 |