]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSPrintDigits.C
New class to make V2 clusters starting from digits or hits (fast simulation). Origin...
[u/mrichter/AliRoot.git] / ITS / AliITSPrintDigits.C
1 #include "iostream.h"
2 #include "TFile.h"
3 #include "TString.h"
4 #include "TClonesArray.h"
5 /*
6 #include "$(ALICE_ROOT)/STEER/AliRun.h"
7 #include "$(ALICE_ROOT)/ITS/AliITS.h"
8 #include "$(ALICE_ROOT)/ITS/AliITSgeom.h"
9 #include "$(ALICE_ROOT)/ITS/AliITSdigit.h"
10 */
11 void AliITSPrintDigits(TString rfn="galice.root",Int_t mod=-1,
12                           Int_t evnt=-1){
13     // Macro to print out the recpoints for all or a specific module
14
15     // Dynamically link some shared libs
16     if (gClassTable->GetID("AliRun") < 0) {
17         gROOT->LoadMacro("loadlibs.C");
18         loadlibs();
19     } // end if
20     gROOT->LoadMacro("$(ALICE_ROOT)/ITS/AliITSstandard.C");
21
22     TFile *rf=0;
23     rf = AccessFile(rfn,"R"); // Set up to read in Data
24     AliITS *ITS = (AliITS*)gAlice->GetDetector("ITS");
25     if(!ITS){
26         cout << "Error: no ITS found. Aborting"<<endl;
27         return;
28     } // end if !ITS
29
30     Int_t evNumber1 = 0;
31     Int_t evNumber2 = gAlice->GetEventsPerRun();
32     if(evnt>=0){
33         evNumber1 = evnt;
34         evNumber2 = evnt+1;
35     } // end if evnt>=0
36     Int_t mod1 = 0;
37     Int_t mod2 = ITS->GetITSgeom()->GetIndexMax();
38     if(mod>=0){
39         mod1 = mod;
40         mod2 = mode+1;
41     } // end if mod>=0
42     TClonesArray   *pda = 0;
43     AliITSdigitSPD *dp0 = 0;
44     AliITSdigitSDD *dp1 = 0;
45     AliITSdigitSSD *dp2 = 0;
46
47     Int_t event,m,i,i2,id;
48     for(event = evNumber1; event < evNumber2; event++){
49         gAlice->GetEvent(event);
50         for(m=mod1;m<mod2;m++){
51             id = ITS->GetITSgeom()->GetModuleType(m);
52             dpa = ITS->DigitsAddress(id);
53             ITS->ResetDigits();
54             gAlice->TreeD()->GetEvent(m);
55             i2 = dpa->GetEntriesFast();
56             switch (id) {
57             case 0:
58                 cout <<  "Event=" << event << " module=" << m <<
59                     " Number of SPD Digits=" << i2 <<endl;
60                 for(i=0;i<i2;i++){
61                     dp0 = (AliITSdigitSPD*)(dpa->At(i));
62                     cout << i << " ";
63                     dp0->Print((ostream*)cout);
64                     cout << endl;
65                 } // end for i
66                 break;
67             case 1:
68                 cout <<  "Event=" << event << " module=" << m <<
69                     " Number of SDD Digits=" << i2 <<endl;
70                 for(i=0;i<i2;i++){
71                     dp1 = (AliITSdigitSDD*)(dpa->At(i));
72                     cout << i << " ";
73                     dp1->Print((ostream*)cout);
74                     cout << endl;
75                 } // end for i
76                 break;
77             case 2:
78                 cout <<  "Event=" << event << " module=" << m <<
79                     " Number of SSD Digits=" << i2 <<endl;
80                 for(i=0;i<i2;i++){
81                     dp2 = (AliITSdigitSSD*)(dpa->At(i));
82                     cout << i << " ";
83                     dp2->Print((ostream*)cout);
84                     cout << endl;
85                 } // end for i
86                 break;
87             default:
88                 break;
89             } // end switch
90         } // end for m
91     } // end for event
92 }