//////////////////////////////////// // KRATTA DST reader // for the Asy-Eos experiment // TKratSimKapReader DECLARATION // Feb 2013 // revison 02/2013 // E.d.F ver 1.0 // sebastian.kupny@uj.edu.pl // Description: // This class reads Monte Carlo simulations results done by Asyeosroot // In file are followed structures: // - R3BMCTrack (MCTrack) // - KrakowArrayPoint (KrakowPoint) // - FairMCPoint // - FairMultiLinkedData // - FairMCEventHeader (MCEventHeader) // - FairFileHeader // (GeoTracks) // Changes: //////////////////////////////////// #ifndef KRATTA_SIM_KAP_READER_H #define KRATTA_SIM_KAP_READER_H #include #include #include #include #include "TClonesArray.h" #include "TMath.h" #include "FairRootManager.h" #include "FairRunAna.h" #include "FairRuntimeDb.h" #include "FairTask.h" #include "R3BMCTrack.h" #include "R3BMCStack.h" #include "KrakowArrayPoint.h" #include "TKratProgressBar.h" #include "TKratSimKapReaderDataContainer.h" class TKratSimKapReader : public FairTask { public: /** Default constructor **/ //TKratSimKapReader(); /** Constructor **/ TKratSimKapReader (const char* name, TString runlist, Int_t iVerbose = 1); //TKratSimKapReader(Int_t verbose); /** Destructor **/ ~TKratSimKapReader(); /** Virtual method Init **/ virtual InitStatus Init(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); virtual void Finish(); virtual void Reset(); void SetVerboseLevel( Int_t verbose ) { fVerbose = verbose; } Int_t GetVerboseLevel( void ) { return fVerbose; } Bool_t IsProgressbarEnabled(Bool_t val){ return fProgressBarEnabled; } void SetProgressbar(Bool_t val){ fProgressBarEnabled = val;} void EnableProgressBar(){ SetProgressbar(kTRUE); } void DisableProgressBar(){ SetProgressbar(kFALSE); } virtual InitStatus ReInit(); Long64_t GetNumberOfEventsInInputFiles(); /** Does write output data container to the file **/ void SaveOutputIntoTree(Bool_t saveOutputToTree = kTRUE){ fSaveOutputToTree = saveOutputToTree; } Bool_t DoesSaveOutputIntoTree( void ){ return fSaveOutputToTree; } /** Input container #1 - **/ void SetMCPointContInName( TString MCPointName ){ fMCPointName = MCPointName; } TString GetMCPointContInName( void ) const { return fMCPointName; } /** Input container #2 - **/ void SetMCTrackContInName( TString MCTrackName ){; fMCTrackName = MCTrackName; } TString GetMCTrackContInName( void ) const { return fMCTrackName; } /** Output container #1 - **/ void SetMCPointContOutName( TString MCPointCopyName ){ fMCPointCopyName = MCPointCopyName; } TString GetMCPointContOutName( void ) const { return fMCPointCopyName; } /** Output container #2 - **/ void SetMCTrackContOutName( TString MCTrackCopyName ){ fMCTrackCopyName = MCTrackCopyName; } TString GetMCTrackContOutName( void ) const { return fMCTrackCopyName; } protected: Long64_t LoadFilesFromRunlist(); Long64_t fNumberOfEventsInAllFiles; Long64_t fNumberOfEventsInAnalysedFiles; /// For progress bar only. TString fRunlist; Int_t fNFiles; Int_t fCurrentFileNumberOnTheList; TString fInputSimKapFileName; std::vector fListOfInputFiles; TFile *fInputSimKapFile; TTree *fFileMainTree; TString fFileMainTreeName; Int_t fNEventsInTree; Int_t fEntryIndex; TClonesArray *fMCPoint; TString fMCPointName; TClonesArray *fMCPointCopy; TString fMCPointCopyName; TClonesArray *fMCTrack; TString fMCTrackName; TClonesArray *fMCTrackCopy; TString fMCTrackCopyName; TKratProgressBar *fProgressBar; Bool_t fProgressBarEnabled; TKratSimKapReaderDataContainer *fKapDataCont; TClonesArray *fKapDataContClones; /// Returns true if file exist, false otherwise bool CheckIfFileExist( const char * filename ); void GetNextDstFile(); Bool_t fSaveOutputToTree; private: TKratSimKapReader(const TKratSimKapReader&); TKratSimKapReader& operator=(const TKratSimKapReader&){ return *this; } virtual void SetParContainers(); ClassDef(TKratSimKapReader,1); }; #endif ///KRATTA_SIM_KAP_READER_H