]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/READMEshuttle
Adding CVS Id
[u/mrichter/AliRoot.git] / MUON / READMEshuttle
1 $Id$
2
3 How to test the Shuttle preprocessor(s) for MUON.
4
5 We will get two "logical" MUON preprocessors : one for the tracker and one for the trigger.
6 Both will manage several subtasks (e.g. the tracker one will handle pedestals,
7  gains and deadchannels, while the trigger one will handle masks and trigger lut)
8 "Physically", only one class will manage both the tracker and the trigger : AliMUONPreprocessor.
9 Depending on the subsystem and on the task to be performed (based on the run type), this class
10  will instanciate the correct set of AliMUONVSubProcessor(s) which does the actual job.
11 Output of most processors will end up in OCDB (Offine Condition DataBase). A set of helper functions
12  to peek at this OCDB are gathered in MUONCDB.C macro.
13  
14 -------
15 TestMUONPreprocessor.C
16 -------
17
18 This is the master macro used to check the MUON part of the Shuttle.
19 Depending on what you want to test, you'll have to modify the input files 
20 (using shuttle->AddInputFile) and/or the run type (using shuttle->AddInputRunParameter())
21
22 -------
23 AliMUONPreprocessor(const TString& detName)
24 -------
25
26 Depending on how this one is constructed, and depending on the runtype, it will
27  perform differents tasks. Note that for the moment the runtypes are "fake", i.e.
28  put by hand in the TestMUONPreprocessor.C macro, and might not correspond to
29  the final values to be used by the DAQ.
30  
31 detName   runType                     task to be done           worker class (AliMUONVSubprocessor child)
32 --------------------------------------------------------------------------------------------------------
33 MCH       PEDESTAL_RUN                read ASCII ped files      AliMUONPedestalSubprocessor
34                                       and put them into OCDB
35                         
36 MCH       GMS                         read GMS alignment files  AliMUONGMSSubprocessor
37                                       and put them into OCDB
38
39 MCH       PHYSICS                     read DCS HV values and    AliMUONHVSubprocessor
40                                       put them into OCDB
41                                       
42 MCH       ELECTRONICS_CALIBRATION_RUN read ASCII gain files     to be done
43                                       and put them into OCDB
44                                       
45 MTR       to be defined               to be defined             to be done
46
47 ----------
48 Pedestals
49 ----------
50
51 Two options here. You can either use a pre-done set of ASCII pedestals files (generated as
52  explained below for the 2nd option), located at /afs/cern.ch/user/l/laphecet/public/LDC*.ped, 
53  or build you own set.
54  
55 We've written an AliMUONPedestalEventGenerator which creates fake pedestal events. The pedestal values
56 are taken from the Offline Condition DataBase (OCDB) (which is itself fakely filled
57 using the writePedestals() function located in the MUONCDB.C macro.
58
59 So first generate a valid pedestal CDB entry but using the MUONCDB.C macro.
60
61 root[] .L MUONCDB.C++
62 root[] const char* cdbpath="local://$ALICE_ROOT/SHUTTLE/TestShuttle/TestCDB"; // where to put the CDB
63 root[] Bool_t defaultValues = kFALSE; // to generate random values instead of plain zeros...
64 root[] Int_t startRun = 80;
65 root[] Int_t endRun = 80;
66 root[] writePedestals(cdbpath, defaultValues, startRun, endRun);
67
68 Expected output is (don't worry about the warnings, they are harmless) :
69
70 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
71 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
72 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
73 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
74 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
75 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
76 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
77 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
78 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
79 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
80 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
81 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
82 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
83 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
84 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
85 W-AliMpExMap::AddKey: AliMpExMap::AddKey: resized Key array 
86 16828 Manus and 1064008 channels.
87 Ngenerated = 1064008
88
89 Then use the AliMUONPedestalEventGenerator to produce simulated pedestal events.
90
91 Usage :
92 root[] AliCDBManager::Instance()->SetDefaultStorage(cdbpath); // so you will read 
93 // back pedestals values generated in the previous step
94 root[] const char* dateFileName = "raw.date"; // base filename for the output
95 root[] Int_t runNumber = 80; // run number used to fetch the pedestals from the OCDB 
96 root[] Int_t nevents = 100; // # of events to generate. 100 should be enough
97 root[] AliMUONPedestalEventGenerator ped(runNumber,nevents,dateFileName);
98 root[] ped.Exec("");
99
100 It *will* take a lot of time (mainly due to the fact that we're writting a 
101 bunch of ASCII files = DDL files), so please be patient.
102
103 The output should be the normal simulated sequence of MUON.Hits.root, MUON.SDigits.root,
104  MUON.Digits.root, raw/*.ddl files and raw.date.LDCi where i=0-3 (i.e. one DATE file
105 per LDC, as will be used in real life), the latter ones being roughly 100 MB each.
106
107 The raw.date.LDC* files are then processed using the makeped online program 
108 (currently found, pending an agreement on where to put online programs under cvs,
109  under /afs/cern.ch/user/a/abaldiss/public/v15; Please contact Alberto to check 
110  it's the latest version) which outputs manus-*.ped ASCII files (one per LDC) :
111  
112  makeped -f raw.date.LCDi (i=0,1,2,3)
113  mv manus-1.ped LDCi.ped
114  
115  (repeat for each LDC)
116
117 The LDCi.ped files are the input for the pedestal subprocessor,
118 which is tested using the TestMUONPreprocessor.C macro. 
119 The output of the pedestal subprocessor (upon success only) is written into the OCDB. 
120 Difference between the input and the output can be inferred using the diff() function
121 of MUONCDB.C macro.
122
123
124 -------
125 HV
126 -------
127
128 HV DCS values are created in CreateDCSAliasMap() of TestMUONPreprocessor.C
129 You might want to modify this function to create a given set of error conditions
130  in order to test whether the HVSubprocessor is reacting properly to those errors.
131  
132