//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // pad-wise correction of Digi amplitudes // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Felix Boehmer TUM (original author) // // //----------------------------------------------------------- // Panda Headers ---------------------- // This Class' Header ------------------ #include "PndTpcDigiAmpCorrectionTask.h" // C/C++ Headers ---------------------- #include #include // Collaborating Class Headers -------- #include "FairRootManager.h" #include "FairRun.h" #include "FairRuntimeDb.h" #include "TClonesArray.h" #include "PndTpcDigi.h" #include "PndTpcDigiPar.h" #include "TError.h" // Class Member definitions ----------- ClassImp(PndTpcDigiAmpCorrectionTask) PndTpcDigiAmpCorrectionTask::PndTpcDigiAmpCorrectionTask() : FairTask("Digi Amplitude Correction"), fPersistence(kFALSE), fInputSet(kFALSE), fAsciiInput("") { fDigiBranchName = "PndTpcDigi"; } InitStatus PndTpcDigiAmpCorrectionTask::Init() { //Get ROOT Manager FairRootManager* ioman= FairRootManager::Instance(); if(ioman==0) { Error("PndTpcDigiAmpCorrectionTask::Init","RootManager not instantiated!"); return kERROR; } // Get input collection fDigiArr=(TClonesArray*) ioman->GetObject(fDigiBranchName); if(fDigiArr==0) { Error("PndTpcDigiAmpCorrectionTask::Init","Cluster-array not found!"); return kERROR; } return kSUCCESS; } void PndTpcDigiAmpCorrectionTask::SetParContainers() { std::cout<<"PndTpcDigiAmpCorrectionTask::SetParContainers"<GetRuntimeDb(); if ( ! db ) Fatal("SetParContainers", "No runtime database"); // Get PndTpc digitisation parameter container fPar= (PndTpcDigiPar*) db->getContainer("PndTpcDigiPar"); if (! fPar ) Fatal("SetParContainers", "PndTpcDigiPar not found"); } void PndTpcDigiAmpCorrectionTask::Exec(Option_t* opt) { Int_t nd=fDigiArr->GetEntriesFast(); for(unsigned int id=0; idAt(id); double amp = digi->amp(); int padID = digi->padId(); if(padID<0) { std::cout<<"WARNING: PndTpcDigiAmpCorrectionTask::Exec()" <<" Invalid PadID - skipping digi"<amp(amp*corr); } return; } void PndTpcDigiAmpCorrectionTask::readFile() { ifstream instr; instr.open(fAsciiInput.Data()); int padID; double corr; while(1) { instr>>padID>>corr; if(instr.eof()) break; //std::cout<