Code from MUON-dev joined
[u/mrichter/AliRoot.git] / MUON / MUONrawclusters.C
1 #include "iostream.h"
2
3 void MUONrawclusters (Int_t evNumber1=0,Int_t evNumber2=0) 
4 {
5   //////////////////////////////////////
6   //                                  //
7   // ROOT macro for ALICE Dimuon Arm: //
8   // Clusterization of digits         //
9   //                                  //
10   //////////////////////////////////////
11   //
12   // Adds the tree TR for raw clusters
13   // to the ROOT file "galice.root"
14   // containing the digits (tree TD).
15   //
16   // Arguments:
17   //   evNumber1 = first event number to act on in file "galice.root"
18   //   evNumber2 = last event number to act on in file "galice.root"
19   //
20   // Input/output file:
21   //   "galice.root"
22   //
23   //__________________________________________________________________________
24
25 // Dynamically link some shared libs
26
27     if (gClassTable->GetID("AliRun") < 0) {
28         gROOT->LoadMacro("loadlibs.C");
29         loadlibs();
30     }
31
32 // Connect the Root Galice file containing Geometry, Kine and Hits
33
34     TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject("galice.root");
35     if (!file) file = new TFile("galice.root","UPDATE");
36
37 // Get AliRun object from file or create it if not on file
38
39     if (!gAlice) {
40         gAlice = (AliRun*)file->Get("gAlice");
41         if (gAlice) printf("AliRun object found on file\n");
42         if (!gAlice) gAlice = new AliRun("gAlice","Alice test program");
43     }
44
45 // Set reconstruction models
46 //
47 // Get pointers to Alice detectors and Digits containers
48     AliMUON *MUON  = (AliMUON*) gAlice->GetModule("MUON");
49     for (Int_t i=0; i<10; i++) {
50         AliMUONChamber* iChamber= &(MUON->Chamber(i));
51         AliMUONResponse* response =  iChamber->ResponseModel();
52         AliMUONSegmentation*  seg1 = iChamber->SegmentationModel(1);
53         AliMUONSegmentation*  seg2 = iChamber->SegmentationModel(2);
54 //
55         RecModel = new AliMUONClusterFinderVS();
56         RecModel->SetNperMax(90);
57         RecModel->SetClusterSize(100);
58         RecModel->SetDeclusterFlag(0);
59         RecModel->SetSegmentation(seg1,seg2);
60         RecModel->SetResponse(response); 
61 //      RecModel->SetTracks(16,17);    
62 //      RecModel->SetTracks(266,267);    
63         MUON->SetReconstructionModel(i,RecModel);
64     }
65 //
66 //   Loop over events              
67 //
68     Int_t Nh=0;
69     Int_t Nh1=0;
70     for (int nev=evNumber1; nev<= evNumber2; nev++) {
71         Int_t nparticles = gAlice->GetEvent(nev);
72         cout << "nev         " << nev <<endl;
73         cout << "nparticles  " << nparticles <<endl;
74         if (nev < evNumber1) continue;
75         if (nparticles <= 0) return;
76         Int_t nbytes = 0;
77         TClonesArray *Particles = gAlice->Particles();
78         TTree *TD = gAlice->TreeD();
79         Int_t nent=TD->GetEntries();
80         if (MUON) {
81             MUON->FindClusters(nev,nent-2);
82         }   // end if MUON
83     }   // event loop 
84
85     file->Close();
86 }
87