// ------------------------------------------------------------------------- // ----- CbmMvdHitfinder source file ----- // ------------------------------------------------------------------------- // Includes from MVD #include "CbmMvdHitfinder.h" #include "CbmMvdPoint.h" #include "plugins/tasks/CbmMvdSensorFindHitTask.h" // Includes from FAIR #include "FairRootManager.h" // Includes from ROOT #include "TClonesArray.h" // ----- Default constructor ------------------------------------------ CbmMvdHitfinder::CbmMvdHitfinder(): FairTask("MVDHitfinder"){ } // ------------------------------------------------------------------------- // ----- Standard constructor ------------------------------------------ CbmMvdHitfinder::CbmMvdHitfinder(const char* name, Int_t iMode, Int_t iVerbose) : FairTask(name, iVerbose){ } // ------------------------------------------------------------------------- // ----- Destructor ---------------------------------------------------- CbmMvdHitfinder::~CbmMvdHitfinder() { if ( fHits) { fHits->Delete(); delete fHits; } } // ----------------------------------------------------------------------------- // ----- Exec -------------------------------------------------------------- void CbmMvdHitfinder::Exec(Option_t* opt){ fHits->Clear(); if(fInputDigis) { cout << endl << "Execute HitfinderPlugin Nr. "<< fHitfinderPluginNr << endl; fDetector->Exec(fHitfinderPluginNr); cout << endl << "End Chain" << endl; cout << "Start writing Hits" << endl; fHits->AbsorbObjects(fDetector->GetOutputHits()); } } // ----------------------------------------------------------------------------- // ----- Init -------------------------------------------------------------- InitStatus CbmMvdHitfinder::Init() { cout << "-I- " << GetName() << ": Initialisation..." << endl; cout << endl; cout << "---------------------------------------------" << endl; cout << "-I- Initialising " << GetName() << " ...." << endl; // ********** RootManager FairRootManager* ioman = FairRootManager::Instance(); if ( ! ioman ) { cout << "-E- " << GetName() << "::Init: No FairRootManager!" << endl; return kFATAL; } // ********** Get input arrays fInputDigis = (TClonesArray*) ioman->GetObject("MvdDigis"); // ********** Register output array fHits = new TClonesArray("CbmMvdHit", 10000); ioman->Register("MvdHits", "MvdHit", fHits, kTRUE); // Screen output cout << GetName() << " initialised with parameters: " << endl; //PrintParameters(); cout << "---------------------------------------------" << endl; fDetector = CbmMvdDetector::Instance(); CbmMvdSensorFindHitTask* HitfinderTask = new CbmMvdSensorFindHitTask(); fDetector->AddPlugin(HitfinderTask); fHitfinderPluginNr = (UInt_t) (fDetector->GetPluginArraySize()); fDetector->Init(); return kSUCCESS; } // ----- Virtual public method Reinit ---------------------------------- InitStatus CbmMvdHitfinder::ReInit() { return kSUCCESS; } // ------------------------------------------------------------------------- // ----- Virtual method Finish ----------------------------------------- void CbmMvdHitfinder::Finish() { PrintParameters(); } // ------------------------------------------------------------------------- // ----- Private method Reset ------------------------------------------ void CbmMvdHitfinder::Reset() { fHits->Delete(); } // ------------------------------------------------------------------------- // ----- Private method PrintParameters -------------------------------- void CbmMvdHitfinder::PrintParameters() { cout.setf(ios_base::fixed, ios_base::floatfield); cout << "============================================================" << endl; cout << "============== Parameters Digitizer ========================" << endl; cout << "============================================================" << endl; cout << "=============== End Task ===================================" << endl; } // ------------------------------------------------------------------------- ClassImp(CbmMvdHitfinder);