X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PMD%2FAliPMD.cxx;h=c1954da1da9d205b2942a92fe7c1b7ed6ef937d5;hb=b5144d1f66d437705c5c4486af4ae13faebc912f;hp=83c145316e1f383f38db8bb61a9c5acee2694dcf;hpb=895a906e86c96969737878423dd072d830eaf75b;p=u%2Fmrichter%2FAliRoot.git diff --git a/PMD/AliPMD.cxx b/PMD/AliPMD.cxx index 83c145316e1..c1954da1da9 100644 --- a/PMD/AliPMD.cxx +++ b/PMD/AliPMD.cxx @@ -40,21 +40,21 @@ #include #include -#include #include #include #include #include -#include "AliConst.h" +#include "AliLog.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" +#include "AliPMDRawToSDigits.h" ClassImp(AliPMD) @@ -66,8 +66,6 @@ AliPMD::AliPMD() // fIshunt = 0; - fRecPoints = 0; - } //_____________________________________________________________________________ @@ -83,9 +81,6 @@ AliPMD::AliPMD(const char *name, const char *title) fHits = new TClonesArray("AliPMDhit", 405); gAlice->GetMCApp()->AddHitList(fHits); - fRecPoints = new TClonesArray("AliPMDRecPoint",10000); - fNRecPoints = 0; - fIshunt = 0; @@ -115,11 +110,11 @@ AliLoader* AliPMD::MakeLoader(const char* topfoldername) if (fLoader) { - cout<<"Success"<Add(node); } -//_____________________________________________________________________________ -Int_t AliPMD::DistancetoPrimitive(Int_t , Int_t ) const -{ - // - // Distance from mouse to detector on the screen - // dummy routine - // - return 9999; -} - //_____________________________________________________________________________ void AliPMD::SetPAR(Float_t p1, Float_t p2, Float_t p3,Float_t p4) { @@ -251,76 +234,28 @@ void AliPMD::StepManager() // } -void AliPMD::AddRecPoint(const AliPMDRecPoint &p) -{ - // - // Add a PMD reconstructed hit to the list - // - TClonesArray &lrecpoints = *fRecPoints; - new(lrecpoints[fNRecPoints++]) AliPMDRecPoint(p); -} - void AliPMD::MakeBranch(Option_t* option) { // Create Tree branches for the PMD - const char *cR = strstr(option,"R"); const char *cH = strstr(option,"H"); if (cH && fLoader->TreeH() && (fHits == 0x0)) fHits = new TClonesArray("AliPMDhit", 405); AliDetector::MakeBranch(option); - - if (cR && fLoader->TreeR()) { - printf("Make Branch - TreeR address %p\n",fLoader->TreeR()); - - const Int_t kBufferSize = 4000; - char branchname[30]; - - sprintf(branchname,"%sRecPoints",GetName()); - if (fRecPoints == 0x0) { - fRecPoints = new TClonesArray("AliPMDRecPoint",10000); - } - MakeBranchInTree(fLoader->TreeR(), branchname, &fRecPoints, kBufferSize,0); - } } void AliPMD::SetTreeAddress() { - // Set branch address for the TreeR - char branchname[30]; - + // Set branch address + if (fLoader->TreeH() && fHits==0x0) fHits = new TClonesArray("AliPMDhit", 405); AliDetector::SetTreeAddress(); - - TBranch *branch; - TTree *treeR = fLoader->TreeR(); - - sprintf(branchname,"%s",GetName()); - if (treeR) { - branch = treeR->GetBranch(branchname); - if (branch) - { - if (fRecPoints == 0x0) { - fRecPoints = new TClonesArray("AliPMDRecPoint",10000); - } - branch->SetAddress(&fRecPoints); - } - } } -void AliPMD::ResetHits() -{ - // - // Reset number of hits and the hits array - // - AliDetector::ResetHits(); - fNRecPoints = 0; - if (fRecPoints) fRecPoints->Clear(); -} //____________________________________________________________________________ void AliPMD::Hits2SDigits() { @@ -330,7 +265,7 @@ void AliPMD::Hits2SDigits() AliPMDDigitizer* pmdDigitizer = new AliPMDDigitizer; pmdDigitizer->OpengAliceFile(fLoader->GetRunLoader()->GetFileName().Data(), "HS"); - pmdDigitizer->SetZPosition(365.0); + pmdDigitizer->SetZPosition(361.5); for (Int_t iEvent = 0; iEvent < runLoader->GetNumberOfEvents(); iEvent++) { pmdDigitizer->Hits2SDigits(iEvent); @@ -339,3 +274,62 @@ void AliPMD::Hits2SDigits() 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; + +} +// --------------------------------------------------------------------------- +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) { + AliError("No digits tree"); + return; + } + + AliPMDDDLRawData rawWriter; + rawWriter.WritePMDRawData(digits); + + fLoader->UnloadDigits(); +} + +Bool_t AliPMD::Raw2SDigits(AliRawReader *rawReader) +{ + // converts raw to sdigits + AliRunLoader* runLoader = fLoader->GetRunLoader(); + //runLoader->GetEvent(ievt); + + AliPMDRawToSDigits pmdr2sd; + pmdr2sd.Raw2SDigits(runLoader, rawReader); + fLoader->UnloadSDigits(); + return kTRUE; +} +