// Implementation of class TpcGoofyClusterizerTask // see TpcGoofyClusterizerTask.hh for details // // Environment: // Software developed for the PANDA Detector at FAIR. // // Author List: // Martin Berger (original author) // // //----------------------------------------------------------- // Panda Headers ---------------------- // This Class' Header ------------------ #include "TpcGoofyClusterizerTask.h" // C/C++ Headers ---------------------- // Collaborating Class Headers -------- #include "FairRootManager.h" #include "TClonesArray.h" #include "TpcPoint.h" #include "TpcGas.h" #include "TRandom2.h" #include "TpcPrimaryCluster.h" #include "LinearInterpolPolicy.h" #include "FairRunAna.h" #include "FairRuntimeDb.h" #include "TpcDigiPar.h" #include #include using std::cout; using std::endl; using std::fabs; using std::floor; // Class Member definitions ----------- TpcGoofyClusterizerTask::TpcGoofyClusterizerTask() :FairTask("Tpc Goofy Clusterizer"), fNumP(1), fpersistence(kFALSE) {;} TpcGoofyClusterizerTask::~TpcGoofyClusterizerTask() {;} void TpcGoofyClusterizerTask::SetParContainers() { std::cout<<"TpcClusterizerTask::SetParContainers"<GetRuntimeDb(); if ( ! db ) Fatal("SetParContainers", "No runtime database"); // Get Tpc digitisation parameter container fpar= (TpcDigiPar*) db->getContainer("TpcDigiPar"); if (! fpar ) Fatal("SetParContainers", "TpcDigiPar not found"); } InitStatus TpcGoofyClusterizerTask::Init() { //Get ROOT Manager FairRootManager* ioman= FairRootManager::Instance(); if(ioman==0) { Error("TpcClusterizerTask::Init","RootManager not instantiated!"); return kERROR; } // create and register output array fprimArray = new TClonesArray("TpcPrimaryCluster"); ioman->Register("TpcPrimaryCluster","Tpc",fprimArray,fpersistence); fgas=fpar->getGas(); rand=new TRandom2(); return kSUCCESS; } void TpcGoofyClusterizerTask::Exec(Option_t* opt) { for (int ip=1;ipUniform(-15,15); double y=rand->Uniform(-15,15); double z=rand->Uniform(-62,10); std::cout<GetEntriesFast(); new((*fprimArray)[size])TpcPrimaryCluster(time, nel, TVector3(x,y,z), 0, ip, 0); } }