New gain variation diagnostics.
[u/mrichter/AliRoot.git] / RICH / RICHdigit.C
CommitLineData
237c933d 1// 0 = all
e659e1d4 2// 1 = not pion
3// 2 = not kaon
4// 3 = not proton
5// 4 = not muon
6// 5 = not electron
7// 6 = not neutron
237c933d 8
9
8a82cc0b 10Int_t particle_type=0;
237c933d 11
ddae0931 12#include "iostream.h"
13
14void RICHdigit (Int_t evNumber1=0,Int_t evNumber2=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
e480e62b 25
26 if (gClassTable->GetID("AliRun") < 0) {
ddae0931 27 gROOT->LoadMacro("loadlibs.C");
28 loadlibs();
ff34e3ab 29 }else {
30 delete gAlice;
31 gAlice = 0;
32 }
33
34 galice=0;
ddae0931 35
36// Connect the Root Galice file containing Geometry, Kine and Hits
37
38 TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
39 if (file) file->Close();
40 file = new TFile("galice.root","UPDATE");
e480e62b 41// file->ls();
42// Get AliRun object from file or create it if not on file
ddae0931 43
e480e62b 44
45
46 if (gClassTable->GetID("AliRun") < 0) {
47 gROOT->LoadMacro("loadlibs.C");
48 loadlibs();
49 }
ddae0931 50
ddae0931 51
52 if (!gAlice) {
53 gAlice = (AliRun*)file->Get("gAlice");
54 if (gAlice) printf("AliRun object found on file\n");
55 if (!gAlice) gAlice = new AliRun("gAlice","Alice test program");
e480e62b 56 } else {
57 delete gAlice;
58 gAlice = (AliRun*)file->Get("gAlice");
59 if (gAlice) printf("AliRun object found on file\n");
60 if (!gAlice) gAlice = new AliRun("gAlice","Alice test program");
61 }
62
ddae0931 63 AliRICH *RICH = (AliRICH*) gAlice->GetDetector("RICH");
c95f0940 64
65 AliRICHChamber* iChamber;
66
67 printf("Generating tresholds...\n");
68
69 for(Int_t i=0;i<7;i++)
70 {
71 iChamber = &(RICH->Chamber(i));
72 iChamber->GenerateTresholds();
73 }
74
ddae0931 75//
76// Event Loop
77//
78 for (int nev=0; nev<= evNumber2; nev++) {
79 Int_t nparticles = gAlice->GetEvent(nev);
e480e62b 80 cout <<endl<< "Processing event:" <<nev<<endl;
81 cout << "Particles :" <<nparticles<<endl;
ddae0931 82 if (nev < evNumber1) continue;
83 if (nparticles <= 0) return;
ff34e3ab 84 if (RICH)
85 {
86 gAlice->MakeTree("D");
87 RICH->MakeBranch("D");
88 RICH->Digitise(nev, particle_type);
89 }
90 //if (RICH) gAlice->SDigits2Digits("RICH");
c95f0940 91 //char hname[30];
92 //sprintf(hname,"TreeD%d",nev);
93 //gAlice->TreeD()->Write(hname);
94 //gAlice->TreeD()->Reset();
ddae0931 95 } // event loop
96 file->Close();
e480e62b 97
98 //delete gAlice;
99 printf("\nEnd of Macro *************************************\n");
ddae0931 100}
101
102
103
104
105
106
107
108
109
110
111
112
113
114