]> git.uio.no Git - u/mrichter/AliRoot.git/blame - FMD/scripts/TestRawIO.C
update from salvatore
[u/mrichter/AliRoot.git] / FMD / scripts / TestRawIO.C
CommitLineData
1e8f773e 1//____________________________________________________________________
2//
3// $Id$
4//
5// Test of AliFMDAltro{Reader,Writer}
6//
9b48326f 7/** @ingroup simple_script
8 */
4125e138 9UShort_t
10MakeADC(UShort_t d, UShort_t q, UShort_t s, UShort_t t)
11{
12 return t & 0x3FF;
13}
14void
15MakeData(TClonesArray& array, AliFMDUShortMap& map)
16{
17 size_t i = 0;
18 for (size_t d = 1; d <= 3; d++) {
19 size_t nRng = (d == 1 ? 1 : 2);
20 for (size_t q = 0; q < nRng; q++) {
21 Char_t r = (q == 0 ? 'I' : 'O');
22 size_t nSec = (q == 0 ? 20 : 40);
23 size_t nStr = (q == 0 ? 512 : 256);
24 for (size_t s = 0; s < nSec; s++) {
25 for (size_t t = 0; t < nStr; t++) {
26 UShort_t adc = MakeADC(d, q, s, t);
27 new (array[i++]) AliFMDDigit(d, r, s, t, adc, adc, adc, adc);
28 map(d,r,s,t) = adc;
29 }
30 }
31 }
32 }
33}
34void
35CompareData(TClonesArray& in, const AliFMDUShortMap& map)
36{
37 size_t i = 0;
38 for (size_t i = 0; i < in.GetEntries(); i++) {
39 AliFMDDigit* inD = static_cast<AliFMDDigit*>(in.At(i));
40 // AliFMDDigit* outD = static_cast<AliFMDDigit*>(out.At(i));
41
42 UShort_t out = map(inD->Detector(),
43 inD->Ring(),
44 inD->Sector(),
45 inD->Strip());
46 if (out != inD->Counts()) {
47 std::cout << "Entries " << i << " does not match up - expected "
48 << out << "\n ";
49 inD->Print();
50 }
51 }
52}
53
1e8f773e 54void
55TestRawIO()
56{
4125e138 57 AliCDBManager* cdb = AliCDBManager::Instance();
58 cdb->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
59 cdb->SetRun(0);
60
61 AliFMDParameters* param = AliFMDParameters::Instance();
62 param->Init();
63
64 TClonesArray out("AliFMDDigit");
65 AliFMDUShortMap map(0);
66 MakeData(out, map);
67
68 AliFMDRawWriter writer(0);
69 writer.WriteDigits(&out);
70
71 // gSystem->mkdir("raw0");
72 // gSystem->Rename("FMD_3072.ddl", "raw0/FMD_3072.ddl");
73 // gSystem->Rename("FMD_3073.ddl", "raw0/FMD_3073.ddl");
74 // gSystem->Rename("FMD_3074.ddl", "raw0/FMD_3074.ddl");
75
76 AliRawReader* raw = AliRawReader::Create("./");
77 AliFMDRawReader reader(raw, 0);
78 TClonesArray in("AliFMDDigit");
79 raw->NextEvent();
80 reader.ReadAdcs(&in);
81
82 std::cout << "Got " << in.GetEntries() << std::endl;
83
84 CompareData(in, map);
1e8f773e 85}
86//____________________________________________________________________
87//
88// EOF
89//