Adding an example of CDB location on alien.
[u/mrichter/AliRoot.git] / MUON / READMEcalib.txt
CommitLineData
518eb852 1// $Id$
2ce5e44e 2
518eb852 3/*!
4
91509ec6 5\page README_calib Calibration
518eb852 6
2ce5e44e 7The Offline Condition DataBase is described extensively on ALICE Offline pages.
8
9Here 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 14Please 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
19We've designed generic data containers to store calibration information,
20tailored to the way we usually access MUON tracker data, that is,
21indexed by the pair (detElemId,manuId).
22This container is called AliMUONV2DStore. You can attach a TObject to every and
23each pair (detElemId,manuId).
518eb852 24
2ce5e44e 25For the moment, that TObject is generally of AliMUONVCalibParam type,
26 which handles a given number of channels (64 typically) as a group.
27There's also an AliMUONV1DStore for data types which only requires indexing
28by 1 value (like trigger masks for instance).
518eb852 29
2ce5e44e 30As the class names suggest (V...), those classes are only interfaces.
31Concrete ones are AliMUON2DMap (used instead of a vector as detElemId are
32not contiguous) for the V2DStore, AliMUON1DArray (for things where indices are
33contiguous) and AliMUON1DMap for the V1DStore, and CalibParamNI (VCalibParam
34storing n integer per channel), and CalibParamNF
35(VCalibParam storing n floats per channel).
36
37One exception are the HV values from DCS, which are stored "as they come" from
38the shuttle-dcs interface, as a TMap, where the key is the aliasname (TString),
39and the value a TObjArray of AliDCSValue.
40
41For trigger, the same virtual container idea applies,
42except we're using 1D container (AliMUONV1DStore, for masks) or specific ones (for LUT
43and efficiency)
44
518eb852 45\section calib_s2 CDB location
2ce5e44e 46
47One 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 51For 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 53for running the MUON code), or <code> "local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestCDB </code>
54for Shuttle testing.
518eb852 55
39012d35 56When 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
61AliMUONCDB class is used to populate the CDB with fake calibration objects for testing purposes.
62Real calibration data will normally be handled by the Shuttle (see READMEshuttle).
63
64The various WriteXXX() methods may be used to populate MUON tracker and trigger
65information.
66A full set of calibration data types can be created from scratch using, from
67the Root prompt (from within the $ALICE_ROOT/MUON directory to get the correct
68list of libraries loaded by the loadlibs.C macro)
69
518eb852 70<pre>
2ce5e44e 71root[0] AliMUONCDB cdb;
72root[1] Int_t startRun = 0;
73root[2] Bool_t defaultValues = kTRUE;
74root[3] cdb.WriteTrigger(startRun);
75root[4] cdb.WriteTracker(defaultValues,startRun);
518eb852 76</pre>
77
2ce5e44e 78
518eb852 79\section calib_s4 Reading the CDB
2ce5e44e 80
81The actual reading is encapsulated into AliMUONCalibrationData class.
82e.g. to read pedestals for run 4567, one would do :
83
518eb852 84<pre>
2ce5e44e 85AliCDBManager::Instance()->SetDefaultStorage(cdbPath);
86AliMUONCalibrationData cd(4567);
87AliMUONV2DStore* ped = cd.Pedestals();
518eb852 88</pre>
2ce5e44e 89
90If 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 94AliMUONCDB cdb(cdbpath);
95cdb.Plot(*ped,"pedestal")
518eb852 96</pre>
2ce5e44e 97
98which will create 2 histograms : pedestal_0 (mean) and pedestal_1 (sigma).
99
100You might also be interested in the AliMUONStoreHelper::Diff() method
101which 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
106A 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 111This chapter is defined in the READMEcalib.txt file.
518eb852 112*/
2ce5e44e 113