X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=TPC%2FAliTPCHits2Digits.C;h=a68fa7738a6318fc9c2b1b5ecb6d122e21924c15;hp=c47f93a8939fbe617f281f1af02d006aba93ebac;hb=63973229bc5436287f2628f9d99389cd962526dc;hpb=3c0f92663eab04d153e9124955e51abbd61a8ed5 diff --git a/TPC/AliTPCHits2Digits.C b/TPC/AliTPCHits2Digits.C index c47f93a8939..a68fa7738a6 100644 --- a/TPC/AliTPCHits2Digits.C +++ b/TPC/AliTPCHits2Digits.C @@ -1,110 +1,69 @@ +#if !defined(__CINT__) || defined(__MAKECINT__) + #include -void AliTPCHits2Digits(const char * name= "pokusD_") -{ - - // Dynamically link some shared libs - if (gClassTable->GetID("AliRun") < 0) { - gROOT->LoadMacro("loadlibs.C"); - loadlibs(); - } - - //names of trees - const char * inFile = "galice.root"; - // const * char ident= "TreeD1par_"; + #include "AliRun.h" + #include "AliRunLoader.h" + #include "AliLoader.h" + #include "AliTPC.h" + + #include "TStopwatch.h" +#endif -// Connect the Root Galice file containing Geometry, Kine and Hits - TFile *file = (TFile*)gROOT->GetListOfFiles()->FindObject(inFile); - if (file) file->Close(); - file = new TFile(inFile,"UPDATE"); -// Get AliRun object from file or create it if not on file +extern AliRun *gAlice; - if(gAlice){ - delete gAlice; - gAlice=0; - } - if (!gAlice) { - gAlice = (AliRun*)file->Get("gAlice"); - if (gAlice) printf("AliRun object found on file\n"); - if (!gAlice) gAlice = new AliRun("gAlice","Alice test program"); - } - gAlice->GetEvent(0); - AliTPC *TPC = (AliTPC*)gAlice->GetModule("TPC"); - TPC->Dump(); - //adjust parameters - - AliTPCD *paramd = TPC->GetDigParam(); - paramd->Dump(); - paramd->SetName("Param1"); - paramd->MakeTree(); - //set pointers to parameters - paramd->Dump(); - AliTPCParam ¶m = paramd->GetParam(); - AliTPCPRF2D &prf = paramd->GetPRF2D(); - AliTPCRF1D & rf = paramd->GetRF(); - - param.SetPadLength(2.0); - param.SetPadWidth(0.3); - param.SetPadPitchLength(2.05); - param.SetPadPitchWidth(0.35); - param.SetNWires(5); - param.SetZeroSup(5); - param.SetDiffT(0.022); - param.SetDiffL(0.022); - param.SetNoise(500); - param.SetGasGain(1.e4); - param.SetChipGain(24); - param.SetSectorAngles(20.,0.,20.,0.); - param.SetInnerRadiusLow(83.9); - param.SetInnerRadiusUp(141.3); - param.SetOuterRadiusLow(146.9); - param.SetOuterRadiusUp(249.4); - param.SetTSample(1.9e-7); - param.SetTSigma(1.5e-7/2.35); - param.SetInSecLowEdge(81.6); - param.SetInSecUpEdge(143.6); - param.SetOuSecLowEdge(144.2); - param.SetOuSecUpEdge(252.1); - param.SetEdge(1.5); - param.SetDeadZone(1.15); - param.Update(); +Int_t AliTPCHits2Digits(Int_t nev=5) { + // Connect the Root Galice file containing Geometry, Kine and Hits + if (gAlice) { + delete gAlice->GetRunLoader(); + delete gAlice;//if everything was OK here it is already NULL + gAlice = 0x0; + } - //Set z (time) response function + AliRunLoader *rl = AliRunLoader::Open("galice.root","Event","update"); + if (!rl) { + cerr<<"Can't load RunLoader from "<Dump(); - printf("**********AliTPCParam**************************\n"); - param.Dump(); - printf("**********Time response function***************\n"); - rf.Dump(); - printf("**********Pad response function params*********\n"); - prf.Dump(); - printf("**********Digit object dump end********************\n"); + // Get AliRun object from file or create it if not on file - TPC->Hits2DigitsSector(1); - TPC->Hits2DigitsSector(2); - TPC->Hits2DigitsSector(3); - TPC->Hits2DigitsSector(1+18); - TPC->Hits2DigitsSector(2+18); - TPC->Hits2DigitsSector(3+18); - TPC->Hits2DigitsSector(1+36); - TPC->Hits2DigitsSector(2+36); - TPC->Hits2DigitsSector(3+36); - TPC->Hits2DigitsSector(1+36+18); - TPC->Hits2DigitsSector(2+36+18); - TPC->Hits2DigitsSector(3+36+18); - + rl->LoadgAlice(); - file->cd(); - TPC->GetDigParam()->Write(); -}; + gAlice = rl->GetAliRun(); + if (!gAlice) { + cerr<<"AliTPCHits2Digits.C : AliRun object not found on file\n"; + return 2; + } + + AliTPC *TPC = (AliTPC*)gAlice->GetDetector("TPC"); + AliLoader * tpcl = rl->GetLoader("TPCLoader"); + if ((TPC == 0x0) || (tpcl == 0x0)) { + cerr<<"AliTPCHits2Digits.C : Can not find TPC or TPCLoader\n"; + delete rl; + return 3; + } + tpcl->LoadHits("READ"); + tpcl->LoadDigits("recreate"); + + TStopwatch timer; + timer.Start(); + + // uncomment below lines to set sectors active + // Int_t sec[10]={0,1,2,3,4,5,6,7,8,9}; + // TPC->SetActiveSectors(sec,10); + + for (Int_t i=0; iGetEvent(i)) break; + TPC->SetActiveSectors(); // all sectors set active + TPC->Hits2Digits(i); + } + + delete rl; + + timer.Stop(); + timer.Print(); + return 0; +}