X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPC%2FAliTPCHits2Digits.C;h=da8f030cb706cc6e9c7eb334c8f74729fd72905c;hb=3a4edebe7ba1518c552cd31f2fc485e996f63139;hp=1358d975e578c89ab04e76c158370a86a0599035;hpb=8c555625e22abeb7895465bc7df749d09c617aee;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPC/AliTPCHits2Digits.C b/TPC/AliTPCHits2Digits.C index 1358d975e57..da8f030cb70 100644 --- a/TPC/AliTPCHits2Digits.C +++ b/TPC/AliTPCHits2Digits.C @@ -1,84 +1,72 @@ +/// \file AliTPCHits2Digits.C -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_"; - -// 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 - - 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.05); - param.SetPadWidth(0.35); - 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.Update(); - - //Set z (time) response function - rf.SetGauss(param.GetZSigma(),param.GetZWidth(),0.4); - rf.Update(); - //Set two dimensional pad response function - TFile f("TPC/AliTPCprf2d.root"); - // prf.Read("prf_205035_Gati_062074_d03"); - prf.Read("prf_205035_Gati_062074_d03"); - f.Close(); - - printf("**********Digit object dump start********************\n"); - paramd->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"); - - TPC->Hits2DigitsSector(1); - +#if !defined(__CINT__) || defined(__MAKECINT__) + #include + + #include "AliRun.h" + #include "AliRunLoader.h" + #include "AliLoader.h" + #include "AliTPC.h" + + #include "TStopwatch.h" +#endif + +extern AliRun *gAlice; + +Int_t AliTPCHits2Digits(Int_t nev=5) { + /// Connect the Root Galice file containing Geometry, Kine and Hits + + if (gAlice) { + delete AliRunLoader::Instance(); + delete gAlice;//if everything was OK here it is already NULL + gAlice = 0x0; + } + + AliRunLoader *rl = AliRunLoader::Open("galice.root","Event","update"); + if (!rl) { + cerr<<"Can't load RunLoader from "<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; +}