]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TPC/AliTPCHits2Digits.C
Corrected bug with the galice.root opening
[u/mrichter/AliRoot.git] / TPC / AliTPCHits2Digits.C
CommitLineData
73042f01 1Int_t AliTPCHits2Digits()
8c555625 2{
50d005ae 3
73042f01 4 // new version by J.Belikov
50d005ae 5
6 // Connect the Root Galice file containing Geometry, Kine and Hits
73042f01 7
106ea0fc 8 const char * inFile_old = "galice.root";
9 const char * inFile_new = "rfio:galice.root";
10 TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(inFile_old);
73042f01 11 if (file) {file->Close(); delete file;}
03b6834e 12 file = TFile::Open(inFile_new,"UPDATE");
73042f01 13 if (!file->IsOpen()) {
106ea0fc 14 cerr<<"Can't open "<<inFile_new<<" !\n";
73042f01 15 return 1;
16 }
50d005ae 17
73042f01 18 // Get AliRun object from file or create it if not on file
19 if (gAlice) delete gAlice;
50d005ae 20 gAlice = (AliRun*)file->Get("gAlice");
73042f01 21 if (!gAlice) {
22 cerr<<"AliTPCHits2Digits.C : AliRun object not found on file\n";
23 return 2;
24 }
50d005ae 25
26 gAlice->GetEvent(0);
27 AliTPC *TPC = (AliTPC*)gAlice->GetDetector("TPC");
73042f01 28
29//Set response functions
30
31 AliTPCParamSR *param=(AliTPCParamSR*)gDirectory->Get("75x40_100x60");
32 AliTPCPRF2D * prfinner = new AliTPCPRF2D;
33 AliTPCPRF2D * prfouter = new AliTPCPRF2D;
34 AliTPCRF1D * rf = new AliTPCRF1D(kTRUE);
35 rf->SetGauss(param->GetZSigma(),param->GetZWidth(),1.);
36 rf->SetOffset(3*param->GetZSigma());
37 rf->Update();
38
39 TDirectory *savedir=gDirectory;
40 TFile *f=TFile::Open("$ALICE_ROOT/TPC/AliTPCprf2d.root");
41 if (!f->IsOpen()) {
42 cerr<<"Can't open $ALICE_ROOT/TPC/AliTPCprf2d.root !\n"
43 return 3;
44 }
45 prfinner->Read("prf_07504_Gati_056068_d02");
46 prfouter->Read("prf_10006_Gati_047051_d03");
47 f->Close();
48 savedir->cd();
49
50 param->SetInnerPRF(prfinner);
51 param->SetOuterPRF(prfouter);
52 param->SetTimeRF(rf);
53 TPC->SetParam(param);
54
55 cerr<<"Digitizing TPC...\n";
56
50d005ae 57 //setup TPCDigitsArray
58 AliTPCDigitsArray *arr = new AliTPCDigitsArray;
59 arr->SetClass("AliSimDigits");
73042f01 60 arr->Setup(param);
61 TPC->SetParam(param);
50d005ae 62 arr->MakeTree();
63
64 TPC->SetDigitsArray(arr);
52fb0cee 65 TPC->Hits2Digits();
540dae5a 66 /* TPC->Hits2DigitsSector(1);
50d005ae 67 TPC->Hits2DigitsSector(2);
68 TPC->Hits2DigitsSector(3);
69 TPC->Hits2DigitsSector(1+18);
70 TPC->Hits2DigitsSector(2+18);
71 TPC->Hits2DigitsSector(3+18);
72
73 TPC->Hits2DigitsSector(36+1);
74 TPC->Hits2DigitsSector(36+2);
75 TPC->Hits2DigitsSector(36+3);
76 TPC->Hits2DigitsSector(36+1+18);
77 TPC->Hits2DigitsSector(36+2+18);
540dae5a 78 TPC->Hits2DigitsSector(36+3+18); */
73042f01 79
50d005ae 80 //write results
73042f01 81
50d005ae 82 char treeName[100];
73042f01 83 sprintf(treeName,"TreeD_%s",param->GetTitle());
50d005ae 84 TPC->GetDigitsArray()->GetTree()->Write(treeName);
73042f01 85
86 delete gAlice; gAlice=0;
87 file->Close(); delete file;
88 return 0;
8c555625 89};
90