]>
Commit | Line | Data |
---|---|---|
73042f01 | 1 | Int_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 |