X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PMD%2FAliPMD.cxx;h=75d57f6d6e4ec4fc29b31b70fa0d2cd7f6dc8bd3;hb=00aa96f16388beedaa2f2786358120dd014454ac;hp=d3d6c263ed879ecdaf29bf88969e267b745d1fbe;hpb=1661e6128b956c632e114c8b443d66044744dedb;p=u%2Fmrichter%2FAliRoot.git diff --git a/PMD/AliPMD.cxx b/PMD/AliPMD.cxx index d3d6c263ed8..75d57f6d6e4 100644 --- a/PMD/AliPMD.cxx +++ b/PMD/AliPMD.cxx @@ -48,9 +48,14 @@ #include "AliConst.h" #include "AliLoader.h" +#include "AliPMDLoader.h" #include "AliPMD.h" #include "AliPMDRecPoint.h" #include "AliRun.h" +#include "AliMC.h" +#include "AliPMDDigitizer.h" +#include "AliPMDhit.h" +#include "AliPMDDDLRawData.h" ClassImp(AliPMD) @@ -77,7 +82,7 @@ AliPMD::AliPMD(const char *name, const char *title) // // Allocate the array of hits fHits = new TClonesArray("AliPMDhit", 405); - gAlice->AddHitList(fHits); + gAlice->GetMCApp()->AddHitList(fHits); fRecPoints = new TClonesArray("AliPMDRecPoint",10000); fNRecPoints = 0; @@ -105,20 +110,20 @@ AliPMD::AliPMD(const char *name, const char *title) AliLoader* AliPMD::MakeLoader(const char* topfoldername) { - cout<<"AliPMD::MakeLoader "; + // Makes PMD Loader - fLoader = new AliPMDLoader(GetName(),topfoldername); + fLoader = new AliPMDLoader(GetName(),topfoldername); - if (fLoader) - { - cout<<"Success"<GetPrimary(track-1),vol[0],vol[1],vol[2],vol[3]); + // printf("PMD++ Adding energy %f, prim %d, vol %d %d %d %d %d %d %d %d\n", + // hits[3],gAlice->GetPrimary(track-1),vol[0],vol[1],vol[2],vol[3], + // vol[4],vol[5],vol[6],vol[7]); + newcell = new AliPMDhit(fIshunt, track, vol, hits); Int_t i; for (i=0; iGetGeometry()->GetNode("alice"); + top=gAlice->GetGeometry()->GetNode("alice"); // PMD new TBRIK("S_PMD","PMD box","void",300,300,5); - Top->cd(); - Node = new TNode("PMD","PMD","S_PMD",0,0,-600,""); - Node->SetLineColor(kColorPMD); - fNodes->Add(Node); + top->cd(); + node = new TNode("PMD","PMD","S_PMD",0,0,-600,""); + node->SetLineColor(kColorPMD); + fNodes->Add(node); } //_____________________________________________________________________________ -Int_t AliPMD::DistancetoPrimitive(Int_t , Int_t ) +Int_t AliPMD::DistancetoPrimitive(Int_t , Int_t ) const { // // Distance from mouse to detector on the screen @@ -266,7 +273,7 @@ void AliPMD::MakeBranch(Option_t* option) AliDetector::MakeBranch(option); if (cR && fLoader->TreeR()) { - printf("Make Branch - TreeR address %p\n",fLoader->TreeR()); + printf("Make Branch - TreeR address %p\n",(void*)fLoader->TreeR()); const Int_t kBufferSize = 4000; char branchname[30]; @@ -315,35 +322,70 @@ void AliPMD::ResetHits() fNRecPoints = 0; if (fRecPoints) fRecPoints->Clear(); } +//____________________________________________________________________________ +void AliPMD::Hits2SDigits() +{ +// create summable digits -/////////////////////////////////////////////////////////////////////////////// -// // -// Photon Multiplicity Detector Version 1 // -// // -//Begin_Html -/* - -*/ -//End_Html -// // -/////////////////////////////////////////////////////////////////////////////// + AliRunLoader* runLoader = fLoader->GetRunLoader(); + AliPMDDigitizer* pmdDigitizer = new AliPMDDigitizer; + pmdDigitizer->OpengAliceFile(fLoader->GetRunLoader()->GetFileName().Data(), + "HS"); + pmdDigitizer->SetZPosition(361.5); + for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) { + pmdDigitizer->Hits2SDigits(iEvent); + } + fLoader->UnloadHits(); + fLoader->UnloadSDigits(); + delete pmdDigitizer; +} +//____________________________________________________________________________ +void AliPMD::SDigits2Digits() +{ + // creates sdigits to digits +} +//____________________________________________________________________________ +void AliPMD::Hits2Digits() +{ +// create digits + AliRunLoader* runLoader = fLoader->GetRunLoader(); + AliPMDDigitizer* pmdDigitizer = new AliPMDDigitizer; + pmdDigitizer->OpengAliceFile(fLoader->GetRunLoader()->GetFileName().Data(), + "HD"); + pmdDigitizer->SetZPosition(361.5); + + for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) { + pmdDigitizer->Hits2Digits(iEvent); + } + fLoader->UnloadHits(); + fLoader->UnloadDigits(); + delete pmdDigitizer; -ClassImp(AliPMDhit) - -//_____________________________________________________________________________ -AliPMDhit::AliPMDhit(Int_t shunt,Int_t track, Int_t *vol, Float_t *hits): - AliHit(shunt, track) -{ - // - // Add a PMD hit - // - Int_t i; - for (i=0;i<5;i++) fVolume[i] = vol[i]; - fX=hits[0]; - fY=hits[1]; - fZ=hits[2]; - fEnergy=hits[3]; } - +// --------------------------------------------------------------------------- +AliDigitizer* AliPMD::CreateDigitizer(AliRunDigitizer* manager) const +{ + return new AliPMDDigitizer(manager); +} +// --------------------------------------------------------------------------- +void AliPMD::Digits2Raw() +{ +// convert digits of the current event to raw data + + fLoader->LoadDigits(); + TTree* digits = fLoader->TreeD(); + if (!digits) { + Error("Digits2Raw", "no digits tree"); + return; + } + + AliPMDDDLRawData rawWriter; + rawWriter.WritePMDRawData(digits); + + fLoader->UnloadDigits(); +} + + +