// ------------------------------------------------------------------------ // ----- KRATUnpack source file ----- // ----- Created 23/06/12 by S. Kupny ----- // ------------------------------------------------------------------------ #include "KRATUnpack.h" using std::cout; using std::endl; KRATUnpack::KRATUnpack() :FairTask() { //init calibration } // ------------------------------------------------------------------------- KRATUnpack::KRATUnpack(const char* name, Int_t iVerbose) : FairTask(name, iVerbose), fKrattaMapping(0), fKratRaw_evt(0), fKratRaw_evtCopy(0), fDebugModeLvl( iVerbose ) ///by default: for 0 - no debug outputs { fKratContInName = "EVTBUFFERCLONE"; fKratContOutName = "KRATTARAWEVENTCLONE"; fSaveOutputToTree = kFALSE; } // ------------------------------------------------------------------------- KRATUnpack::~KRATUnpack() { } // ------------------------------------------------------------------------- InitStatus KRATUnpack::Init() { fLogger->Info(MESSAGE_ORIGIN," KrattaUnpack::Init()------------------Start "); FairRootManager* ioman = FairRootManager::Instance(); if ( ! ioman ) Fatal("Init", "No FairRootManager"); ///Initialization and configuration string dir=gSystem->Getenv("VMCWORKDIR"); fKratRaw_evt = new TKRATRawEvent(); fKrattaMapping = new TKRATMapping(); fKrattaMapping -> Init( dir + "/calfiles/KRATTA/Asyeos_Kratta_Mapping.conf"); fKrattaMapping -> PrintMapping(); fKratRaw_evt->SetDebugMode( fDebugModeLvl ); ///Get access to fairroot data source ffBufferClone =(TClonesArray*) ioman->GetObject( fKratContInName ); ffBuffer = (TEvtBuffer*)ffBufferClone; if (ffBufferClone==NULL){ cout << "[KRATUnpack::Init:] Error: Couldn't find necessary input "; cout << "data container with name: " << fKratContInName << " (of class TEvtBuffer)."; cout << " It will breaks the analysis." << endl; getchar(); } ///Register new data container in fairroot fKratRaw_evtCopy = new TClonesArray("TKRATRawEvent"); fKratRaw_evtCopy =(TClonesArray*)fKratRaw_evt; //ioman->Register("KRATTARAWEVENT", "KRATTA RAW EVENT TREE", fKratRaw_evt, kFALSE); /// Commented 2014-03-20 by SK TODO: check if it is necessary ioman->Register( fKratContOutName , "KRATTA raw event", fKratRaw_evtCopy, fSaveOutputToTree); fLogger->Info(MESSAGE_ORIGIN," KrattaUnpack::Init()------------------End "); } // ------------------------------------------------------------------------- void KRATUnpack::SetParTask() { } // ------------------------------------------------------------------------- void KRATUnpack::Finish() { if ( fDebugModeLvl > 0 ){ cout << "[KRATUnpack::Finish():] Calculated " << fEventIndex << endl; } } // ------------------------------------------------------------------------- void KRATUnpack::Reset() { if ( fDebugModeLvl > 0 ){ cout << "[KRATUnpack::Reset():] Calculated " << fEventIndex << endl; } } // ------------------------------------------------------------------------- void KRATUnpack::Exec(Option_t* opt) { //eKrattaRawEvent->SetId( i ); if( fDebugModeLvl > 2 ) cout << "[KRATUnpack:Debug.2] Kratta subevent found (KRATTAnrw=" << ffBuffer->KRATTA_nrlw << ", Buffer addr=" << ffBuffer->KRATTABuffer << ")" << endl; fKratRaw_evt->ProcessCurrentEventMBS ( ffBuffer->KRATTABuffer, ffBuffer->KRATTA_nrlw, *fKrattaMapping); // fKratRaw_evt->SetId( fEventIndex ); fEventIndex++; ///Print some logs: //cout << "General info about Kratta event:" << endl; //cout << fKratRaw_evt->ToString() << endl; //cout << "Detail info about Kratta event" << endl; //cout << fKratRaw_evt->ToStringPhotodiode() << endl; /* Instruction: How to get access to table with pulse shape for each detector's Photodiode [0 - 105] for (Int_t iPhotodiode = 0; iPhotodiode < gKRATTANumberOfPhotodiodes; iPhotodiode++ ) { if( fKratRaw_evt->ContainSignalFromPh(iPhotodiode) ) { cout << "Photodiode " << iPhotodiode << ": ["; for (Int_t ii = 0; ii < fKratRaw_evt->GetSignalArraySize( iPhotodiode );ii++ ) { cout << (fKratRaw_evt->GetSignalArray( iPhotodiode ))[ii]<<","; } cout << "] " << endl; } }*/ } void KRATUnpack::SetVerboseLevel(Int_t iNewDebugLvl) { fDebugModeLvl = iNewDebugLvl; } // ------------------------------------------------------------------------- ClassImp(KRATUnpack)