]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ZDC/ZDCHits2Digits.C
Macro to perform digitization for the ZDC
[u/mrichter/AliRoot.git] / ZDC / ZDCHits2Digits.C
CommitLineData
750bb5c0 1// ------------------------------------------------------------
2// Macro for ZDC digitization
3// Macro arguments: totnev = num. of events to be processed
4// mode = 0 -> Only digitization (without merging) is performed
5// mode = 1 -> Signal for spectators is added to the generated
6// background and then the complete event is digitized
7// ------------------------------------------------------------
8void ZDCHits2Digits(Int_t totnev, Int_t mode=1)
9{
10 delete gAlice;
11 gAlice=0;
12// Dynamically link some shared libs
13 if (gClassTable->GetID("AliRun") < 0) {
14 gROOT->LoadMacro("loadlibs.C");
15 loadlibs();
16 }
17
18// Connect the Root Galice file containing Geometry, Kine, Hits and Digits
19 TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
20 if (!file) {
21 printf("\n Creating galice.root \n");
22 file = new TFile("galice.root");
23 } else {
24 printf("\n galice.root found in file list");
25 }
26
27// Get AliRun object from file or create it if not on file
28 if (!gAlice) {
29 gAlice = (AliRun*)file->Get("gAlice");
30 if (gAlice) printf("AliRun object found on file\n");
31 if (!gAlice) {
32 printf("\n create new gAlice object");
33 gAlice = new AliRun("gAlice","Alice test program");
34 }
35 }
36
37 AliZDCMerger *merger=0;
38 AliZDC *ZDC = (AliZDC*) gAlice->GetModule("ZDC");
39 if (ZDC && mode) {
40 printf("\n Initializing AliZDCMerger\n");
41 merger = new AliZDCMerger();
42 merger->SetMode(mode);
43 merger->SetBackgroundFileName("galice.root");
44 ZDC->SetMerger(merger);
45 }
46//
47// Loop over events
48//
49 for(Int_t iev=0; iev<totnev; iev++) {
50 if(mode){
51 merger->SetBackgroundEventNum(iev);
52 }
53 gAlice->Hits2SDigits("ZDC");
54 gAlice->SDigits2Digits("ZDC");
55 } // event loop
56}