1 Int_t AliTPCHits2Digits()
4 // new version by J.Belikov
6 // Connect the Root Galice file containing Geometry, Kine and Hits
8 const char * inFile = "galice.root";
9 TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(inFile);
10 if (file) {file->Close(); delete file;}
11 file = new TFile(inFile,"UPDATE");
12 if (!file->IsOpen()) {
13 cerr<<"Can't open "<<inFile<<" !\n";
17 // Get AliRun object from file or create it if not on file
18 if (gAlice) delete gAlice;
19 gAlice = (AliRun*)file->Get("gAlice");
21 cerr<<"AliTPCHits2Digits.C : AliRun object not found on file\n";
26 AliTPC *TPC = (AliTPC*)gAlice->GetDetector("TPC");
28 //Set response functions
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());
38 TDirectory *savedir=gDirectory;
39 TFile *f=TFile::Open("$ALICE_ROOT/TPC/AliTPCprf2d.root");
41 cerr<<"Can't open $ALICE_ROOT/TPC/AliTPCprf2d.root !\n"
44 prfinner->Read("prf_07504_Gati_056068_d02");
45 prfouter->Read("prf_10006_Gati_047051_d03");
49 param->SetInnerPRF(prfinner);
50 param->SetOuterPRF(prfouter);
54 cerr<<"Digitizing TPC...\n";
56 //setup TPCDigitsArray
57 AliTPCDigitsArray *arr = new AliTPCDigitsArray;
58 arr->SetClass("AliSimDigits");
63 TPC->SetDigitsArray(arr);
64 TPC->Hits2DigitsSector(1);
65 TPC->Hits2DigitsSector(2);
66 TPC->Hits2DigitsSector(3);
67 TPC->Hits2DigitsSector(1+18);
68 TPC->Hits2DigitsSector(2+18);
69 TPC->Hits2DigitsSector(3+18);
71 TPC->Hits2DigitsSector(36+1);
72 TPC->Hits2DigitsSector(36+2);
73 TPC->Hits2DigitsSector(36+3);
74 TPC->Hits2DigitsSector(36+1+18);
75 TPC->Hits2DigitsSector(36+2+18);
76 TPC->Hits2DigitsSector(36+3+18);
81 sprintf(treeName,"TreeD_%s",param->GetTitle());
82 TPC->GetDigitsArray()->GetTree()->Write(treeName);
84 delete gAlice; gAlice=0;
85 file->Close(); delete file;