X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=FMD%2FAliFMDDigitizer.cxx;h=f5b9d5fc54651bdb54e4588dfde55a8c765e3d80;hb=88cb7938ca21d4a80991d4e7aa564008c29340f7;hp=673c0fa8eb6514b37f40cbd1e5c5550b314207cd;hpb=7dac99f120274a79fe58e2f0732b77fa8669f0c8;p=u%2Fmrichter%2FAliRoot.git diff --git a/FMD/AliFMDDigitizer.cxx b/FMD/AliFMDDigitizer.cxx index 673c0fa8eb6..f5b9d5fc546 100644 --- a/FMD/AliFMDDigitizer.cxx +++ b/FMD/AliFMDDigitizer.cxx @@ -24,13 +24,14 @@ #include "AliFMDDigitizer.h" #include "AliFMD.h" -#include "AliFMDSDigitizer.h" #include "AliFMDhit.h" #include "AliFMDdigit.h" #include "AliRunDigitizer.h" #include "AliRun.h" #include "AliPDG.h" +#include "AliLoader.h" +#include "AliRunLoader.h" #include #include @@ -49,7 +50,7 @@ ClassImp(AliFMDDigitizer) AliFMDDigitizer::AliFMDDigitizer(AliRunDigitizer* manager) :AliDigitizer(manager) { - cout<<"AliFMDDigitizer::AliFMDDigitizer"<2) @@ -64,18 +65,19 @@ AliFMDDigitizer::~AliFMDDigitizer() } //------------------------------------------------------------------------ -/* -Bool_t AliFMDDigitizer::Init() +Bool_t AliFMDDigitizer::Init() { +// Initialization cout<<"AliFMDDigitizer::Init"<> "<GetOutputFolderName()); + outgime = outRL->GetLoader("FMDLoader"); + cout<<"AliFMDDigitizer::Exec >> "<SDigits2Digits start...\n"; #endif - // cout<<" FMD "<GetDetector("FMD") ; - + inRL = AliRunLoader::GetRunLoader(fManager->GetInputFolderName(0)); + if (inRL == 0x0) + { + Error("Exec","Can not find Run Loader for input stream 0"); + return; + } + Info("Exec","inRL->GetAliRun() %#x",inRL->GetAliRun()); + + inRL->LoadgAlice(); + + AliFMD * fFMD = (AliFMD *) inRL->GetAliRun()->GetDetector("FMD"); + Info("Exec","inRL->GetAliRun(): %#x, FMD: %#x, InRL %#x.",inRL->GetAliRun(),fFMD,inRL); + if (fFMD == 0x0) + { + Error("Exec","Can not get FMD from gAlice"); + return; + } // Loop over files to digitize Int_t nFiles=GetManager()->GetNinputs(); - for (Int_t inputFile=0; inputFileGetOutputEventNr()<Hits (); - tH = fManager->GetInputTreeH(inputFile); - brHits = tH->GetBranch("FMD"); + { + + inRL = AliRunLoader::GetRunLoader(fManager->GetInputFolderName(inputFile)); + ingime = inRL->GetLoader("FMDLoader"); + ingime->LoadHits("READ");//probably it is necessary to load them before + + + TH = ingime->TreeH(); + if (TH == 0x0) + { + ingime->LoadHits("read"); + TH = ingime->TreeH(); + } + brHits = TH->GetBranch("FMD"); if (brHits) { - fFMD->SetHitsAddressBranch(brHits); + // brHits->SetAddress(&fHits); + fFMD->SetHitsAddressBranch(brHits); }else{ - cerr<<"EXEC Branch FMD hit not found"<GetEntries(); - - for (Int_t track = 0; track < ntracks; track++) - { - brHits->GetEntry(track); - Int_t nhits = FMDhits->GetEntries (); - - for (hit = 0; hit < nhits; hit++) - { - fmdHit = (AliFMDhit *) FMDhits->UncheckedAt (hit); - - volume = fmdHit->Volume (); - sector = fmdHit->NumberOfSector (); - ring = fmdHit->NumberOfRing (); - e = fmdHit->Edep (); - de[volume][sector][ring] += e; - - } //hit loop - } //track loop - } //if FMD + TClonesArray *FMDhits = fFMD->Hits (); + Int_t ntracks = (Int_t) TH->GetEntries(); + cout<<"Number of tracks TreeH"<GetEntry(track); + Int_t nhits = FMDhits->GetEntries (); + // if(nhits>0) cout<<"nhits "<UncheckedAt(hit); + + volume = fmdHit->Volume (); + sector = fmdHit->NumberOfSector (); + ring = fmdHit->NumberOfRing (); + e = fmdHit->Edep (); + de[volume][sector][ring] += e; + // if (fManager->GetOutputEventNr()>1) + // cout<<" "<Gaus(500,250)); + // digit[3]=PutNoise(charge); + digit[3]=charge + pedestal; + if(digit[3]<= 500) digit[3]=500; //dynamic range from MIP(0.155MeV) to 30MIP(4.65MeV) //1024 ADC channels - Float_t channelWidth=(22400*50)/1024; - digit[4]=Int_t(digit[3]/channelWidth); - if (digit[4]>1024) digit[4]=1024; - fFMD->AddDigit(digit); - } //ivol - } //iSector - } //iRing - - TTree* treeD = fManager->GetTreeD(); - treeD->Clear(); - treeD->Reset(); - fFMD->MakeBranchInTreeD(treeD); - treeD->Fill(); - - fManager->GetTreeD()->Write(0,TObject::kOverwrite); + Float_t channelWidth=(22400*50)/1024; + digit[4]=Int_t(digit[3]/channelWidth); + if (digit[4]>1024) digit[4]=1024; + fFMD->AddDigit(digit); + } //ivol + } //iSector + } //iRing + + TTree* treeD = outgime->TreeD(); + cout<<" treeD "<MakeTree("D"); + treeD = outgime->TreeD(); + cout<<" After MakeTree "<Clear(); + treeD->Reset(); + fFMD->MakeBranchInTreeD(treeD); + brD = treeD->GetBranch("FMD"); + cout<<" Make branch "<Fill(); //this operator does not work for events >1 + treeD->Print(); + outgime->WriteDigits("OVERWRITE"); - gAlice->ResetDigits(); - } + gAlice->ResetDigits(); + } } + + + +