]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/scripts/MakeFakeDigits.C
Build reco and log dir if needed
[u/mrichter/AliRoot.git] / FMD / scripts / MakeFakeDigits.C
1 #include <iomanip>
2
3 void
4 MakeFakeDigits()
5 {
6   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
7   AliCDBManager::Instance()->SetRun(0);
8   AliFMDParameters* param = AliFMDParameters::Instance();
9   param->Init(kFALSE,(AliFMDParameters::kPulseGain|
10                       AliFMDParameters::kPedestal|
11                       AliFMDParameters::kDeadMap|
12                       AliFMDParameters::kSampleRate|
13                       AliFMDParameters::kAltroMap|
14                       AliFMDParameters::kStripRange));
15   // param->SetPedestal(100);
16   
17   TFile*      file = TFile::Open("FMD.Digits.root", "RECREATE");
18   TDirectory* dir  = file->mkdir("Event0");
19   
20   TTree*        tree   = new TTree("TreeD", "Digits container");
21   TClonesArray* digits = new TClonesArray("AliFMDDigit");
22   tree->Branch("FMD", &digits);
23   
24   Int_t i = 0;
25   
26   for (UShort_t d = 1; d <= 3; d++) { 
27     UShort_t nrng = (d == 1 ? 1 : 2);
28     for (UShort_t ir = 0; ir < nrng; ir++) { 
29       Char_t   r    = (ir == 0 ? 'I' : 'O');
30       UShort_t nsec = (ir == 0 ?  20 :  40);
31       UShort_t nstr = (ir == 0 ? 512 : 256);
32       for (UShort_t s = 0; s < nsec; s++) { 
33         for (UShort_t t = 0; t < nstr; t++) { 
34           std::cout << "FMD" << d << r << "[" << std::setfill('0') 
35                     << std::setw(2) << s << "," << std::setw(3) << t 
36                     << "] " <<  std::setfill(' ') << " " 
37                     << std::setw(5) << i << "/51200 " 
38                     << std::setw(3) << int(i*100./51200) << "%\r"
39                     << std::flush;
40
41           UShort_t nsam = param->GetSampleRate(d,r,s,t);
42           AliFMDDigit* digit = new((*(digits))[i]) AliFMDDigit(d,r,s,t);
43           i++;
44           UShort_t c = param->GetPedestal(d,r,s,t);
45           for (UShort_t z = 0; z < nsam; z++) { 
46             digit->SetCount(z, c);
47             if (nsam > 1 && z < 1) continue;
48             if ((t > 32 && t < 64) || (t > 96 && t < 98)) 
49               digit->SetCount(z, c + 100);
50           }
51         }
52       }
53     }
54   }
55   std::cout << "Done making fake digits" << std::endl;
56   dir->cd();
57   tree->Fill();
58   tree->Write();
59   file->Close();
60 }
61
62