The Init method of AliITSreconstruction has to be called by the user. This was done...
[u/mrichter/AliRoot.git] / RICH / RICHdigit.C
1 // 0 = all
2 // 1 = not pion
3 // 2 = not kaon
4 // 3 = not proton
5 // 4 = not muon
6 // 5 = not electron
7 // 6 = not neutron
8
9
10 Int_t particle_type=0;
11
12 #include "iostream.h"
13
14 void RICHdigit (Int_t evNumber1=0,Int_t evNumber2=0, Int_t merging=0) 
15 {
16 /////////////////////////////////////////////////////////////////////////
17 //   This macro is a small example of a ROOT macro
18 //   illustrating how to read the output of GALICE
19 //   and do some analysis.
20 //   
21 /////////////////////////////////////////////////////////////////////////
22
23 // Dynamically link some shared libs
24
25    
26   if (gClassTable->GetID("AliRun") < 0) {
27       gROOT->LoadMacro("loadlibs.C");
28       loadlibs();
29   }else {
30     delete gAlice;
31     gAlice = 0;
32   }
33   
34 // Connect the Root Galice file containing Geometry, Kine and Hits
35
36    TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
37    if (file) file->Close(); 
38    file = new TFile("galice.root","UPDATE");
39 //   file->ls();
40 // Get AliRun object from file or create it if not on file
41
42    
43
44    if (gClassTable->GetID("AliRun") < 0) {
45         gROOT->LoadMacro("loadlibs.C");
46         loadlibs();
47     }
48
49
50    if (!gAlice) {
51        gAlice = (AliRun*)file->Get("gAlice");
52        if (gAlice) printf("AliRun object found on file\n");
53        if (!gAlice) gAlice = new AliRun("gAlice","Alice test program");
54    } else {
55       delete gAlice;
56       gAlice = (AliRun*)file->Get("gAlice");
57         if (gAlice) printf("AliRun object found on file\n");
58         if (!gAlice) gAlice = new AliRun("gAlice","Alice test program");
59     }
60       
61    AliRICH *RICH  = (AliRICH*) gAlice->GetDetector("RICH");
62
63    if (merging)
64      printf("Merging is ON\n");
65    else
66      printf("Merging is OFF\n");
67
68 // Creation of merger object
69    AliRICHMerger* merger = new AliRICHMerger();
70    
71 // Configuration
72    merger->SetMode(merging);
73    merger->SetSignalEventNumber(0);
74    merger->SetBackgroundEventNumber(0);
75    merger->SetBackgroundFileName("bg.root");
76        
77 // Pass
78    RICH->SetMerger(merger);
79
80
81 //
82 // Event Loop
83 //
84    for (int nev=0; nev<= evNumber2; nev++) {
85        Int_t nparticles = gAlice->GetEvent(nev);
86        cout <<endl<< "Processing event:" <<nev<<endl;
87        cout << "Particles       :" <<nparticles<<endl;
88        if (nev < evNumber1) continue;
89        if (nparticles <= 0) return;
90        if (RICH) 
91          {
92            //gAlice->MakeTree("D");
93            //RICH->MakeBranch("D");
94            //RICH->Digitise(nev, particle_type);
95            //gAlice->SDigits2Digits("RICH");
96            //gAlice->Tree2Tree("D");
97            RICH->MakeBranch("D");
98            RICH->SDigits2Digits(nev, particle_type);
99          }
100    } // event loop 
101    file->Close();
102
103    //delete gAlice;
104    printf("\nEnd of Macro  *************************************\n");
105 }
106
107
108