/** * @file * @author Christian Simon * @since 2017-07-28 */ #ifndef CBMTOFCLUSTERMC_H #define CBMTOFCLUSTERMC_H 1 #include "CbmTofPointCluster.h" #include "FairTask.h" #include #include #include class CbmMCDataArray; class TClonesArray; class CbmTofDigiTbPar; class CbmTofDigiExp; /** * @brief ... * @author Christian Simon * @since 2017-07-28 * @version 1.0 * @details ... */ class CbmTofClusterMC : public FairTask { public: CbmTofClusterMC(); virtual ~CbmTofClusterMC(); virtual void Exec(Option_t *option); // virtual void FinishEvent(); void SetHitCompatibilityMode(Bool_t bCompatibility = kTRUE) {fbHitCompatibilityMode = bCompatibility;} void SetTimeSortHits(Bool_t bSort = kTRUE) {fbTimeSortHits = bSort;} void BuildHitsFromPointClusters(Bool_t bPointClusters = kTRUE) {fbBuildHitsFromPointClusters = bPointClusters;} void SetAlternativeBranchNames(Bool_t bAlternative = kTRUE) {fbAlternativeBranchNames = bAlternative;} void SetFileIndex(Int_t iIndex) {fiFileIndex = iIndex;} void SetDuplicateCounterSide(Int_t iModuleType, Int_t iModuleIndex, Int_t iCounterIndex, Int_t iCounterSide); void BuildHitsFromRefTracks(Bool_t bRefTracks = kTRUE) {fbBuildHitsFromRefTracks = bRefTracks;} protected: virtual InitStatus Init(); virtual void SetParContainers(); // virtual void Finish(); private: CbmTofClusterMC(const CbmTofClusterMC&); CbmTofClusterMC& operator=(const CbmTofClusterMC&); TClonesArray* fEvents; CbmMCDataArray* fTofPoints; CbmMCDataArray* fMCTracks; TClonesArray* fTofPointsTB; TClonesArray* fTofDigis; TClonesArray* fTofCalDigis; TClonesArray* fTofHits; TClonesArray* fTofHitMatches; std::map, std::vector>> fMCDigiMap; Bool_t fbTimeSortHits; CbmTofDigiTbPar* fDigiTbParSet; Bool_t fbPointsInTS; std::map, CbmTofPointCluster>> fPointClusterMap; std::map, Int_t> fReferencePointMap; Bool_t fbBuildHitsFromPointClusters; Bool_t fbHitCompatibilityMode; Bool_t fbAlternativeBranchNames; Int_t fiFileIndex; std::set> fDuplicatedCounterSides; Bool_t fbBuildHitsFromRefTracks; ClassDef(CbmTofClusterMC, 0) }; #endif