]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSSDigits2Digits.C
Bug in geometry corrected
[u/mrichter/AliRoot.git] / ITS / AliITSSDigits2Digits.C
1 void writeAR(TFile * fin, TFile *fou);
2 void AliITSSD2D(TString inFile, TString outFile);
3
4 void AliITSSDigits2Digits(TString inFile= "galice.root", TString outFile = ""){
5     // This macro takes SDigits and produces Digits. No merging is done
6     // and only one galice.root file is used. 
7     // Dynamically link some shared libs 
8     TStopwatch timer;
9
10     if(gAlice){
11         delete gAlice;
12         gAlice = 0;
13     } // end if gAlice
14     cout << "Creating digits from summable digits for the ITS..." << endl;
15     AliITSSD2D(inFile,outFile);
16     timer.Stop(); 
17     timer.Print();
18 }
19
20 void AliITSSD2D(TString inFile, TString outFile){
21   AliRunDigitizer * manager = new AliRunDigitizer(1,1);
22   char ftmp[50];
23   sprintf(ftmp,"%s",inFile.Data());
24   manager->SetInputStream(0,ftmp);
25   if(outFile != "")manager->SetOutputFile(outFile);
26   AliITSDigitizer *dITS  = new AliITSDigitizer(manager);
27   manager->Exec("");
28   if(outFile != ""){ 
29     TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(inFile);
30     TFile * file2 = new TFile(outFile,"UPDATE");
31     writeAR(file,file2);
32     file2->Close();
33   }
34   delete manager;
35   delete gAlice; gAlice=0;
36 }
37
38 void writeAR(TFile * fin, TFile *fou) {
39   TDirectory *current = gDirectory;
40   TTree *Te;
41   TTree *TeNew;
42   AliHeader *alhe = new AliHeader();
43   Te = (TTree*)fin->Get("TE");
44   Te->SetBranchAddress("Header",&alhe);
45   Te->SetBranchStatus("*",1);
46   fou->cd();
47   TeNew = Te->CloneTree();
48   TeNew->Write(0,TObject::kOverwrite);
49   gAlice->Write(0,TObject::kOverwrite);
50   current->cd();
51   delete alhe;
52   cout<<"AliRun object written to file\n";
53 }
54
55
56
57
58
59