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