]>
Commit | Line | Data |
---|---|---|
811188e6 | 1 | //////////////////////////////////////////////////////////////////////// |
2 | // | |
3 | // name: AliPHOSHits2SDigits | |
4 | // date: 4.4.2002 | |
5 | // last update: 4.4.2002 | |
6 | // author: Jiri Chudoba | |
7 | // version: 1.0 | |
8 | // | |
9 | // description: | |
10 | // creates sdigits for digits for PHOS. | |
11 | // stores sdigits in separate file (or in the source file | |
12 | // with hits). Stores gAlice object and copies TE to the | |
13 | // file with sdigits. | |
14 | // | |
15 | // input: | |
16 | // TString fileNameHits ... input file with hits | |
17 | // TString fileNameSDigits ... output file with sdigits | |
18 | // | |
19 | // History: | |
20 | // | |
21 | // 04.04.02 - first version | |
22 | // | |
23 | //////////////////////////////////////////////////////////////////////// | |
24 | ||
25 | ||
26 | Int_t AliPHOSHits2SDigits(TString | |
27 | fileNameSDigits="PHOS.sdigits.root",TString fileNameHits="rfio:galice.root") | |
28 | ||
29 | { | |
30 | TFile *fileSDigits; | |
31 | fileSDigits = Init(fileNameSDigits, fileNameHits); | |
32 | if (!fileSDigits) return 1; | |
33 | ||
34 | AliPHOSSDigitizer *sdPHOS = new AliPHOSSDigitizer(fileNameHits.Data(),"PHOS"); | |
35 | ||
36 | TStopwatch timer; | |
37 | timer.Start(); | |
38 | ||
39 | gAlice->MakeTree("S",fileSDigits); | |
40 | sdPHOS->ExecuteTask("deb all"); | |
41 | ||
42 | timer.Stop(); | |
43 | timer.Print(); | |
44 | ||
45 | fileSDigits->Close(); | |
46 | delete fileSDigits; | |
47 | ||
48 | } | |
49 | ||
50 | ||
51 | //////////////////////////////////////////////////////////////////////// | |
52 | TFile* Init(TString fileNameSDigits, TString fileNameHits) { | |
53 | // open input file, read in gAlice, prepare output file | |
54 | if (gAlice) delete gAlice; | |
55 | gAlice = 0; | |
56 | ||
57 | Bool_t sameFiles = kFALSE; | |
58 | if (fileNameSDigits == fileNameHits || fileNameSDigits == "") sameFiles = kTRUE; | |
59 | ||
60 | TString fileMode = "read"; | |
61 | if (sameFiles) fileMode = "update"; | |
62 | ||
63 | TFile *fileHits = OpenFile(fileNameHits.Data(),fileMode.Data()); | |
64 | if (!fileHits) return 0; | |
65 | if (!ImportgAlice(fileHits)) return 0; | |
66 | if (!sameFiles) return gAlice->InitTreeFile("S",fileNameSDigits.Data()); | |
67 | return fileHits; | |
68 | ||
69 | } | |
70 | ||
71 | //////////////////////////////////////////////////////////////////////// | |
72 | TFile* OpenFile(TString fileName, TString fileMode) { | |
73 | // open file fileName | |
74 | TFile *file = TFile::Open(fileName.Data(),fileMode.Data()); | |
75 | if (!file->IsOpen()) { | |
76 | cerr<<"Can't open "<<fileName.Data()<<" !\n"; | |
77 | return 0; | |
78 | } | |
79 | return file; | |
80 | } | |
81 | ||
82 | //////////////////////////////////////////////////////////////////////// | |
83 | Bool_t ImportgAlice(TFile *file) { | |
84 | // read in gAlice object from the file | |
85 | gAlice = (AliRun*)file->Get("gAlice"); | |
86 | if (!gAlice) return kFALSE; | |
87 | return kTRUE; | |
88 | } | |
89 | //////////////////////////////////////////////////////////////////////// |