#ifndef PNDMDTHITPRODUCER_H #define PNDMDTHITPRODUCER_H 1 #include "FairTask.h" #include "PndMdtHit.h" #include "TVector3.h" #include "FairTSBufferFunctional.h" class TClonesArray; class PndMdtDigi; using std::map; using std::vector; class PndMdtHitProducer : public FairTask { public: /** Default constructor **/ PndMdtHitProducer(); /** Destructor **/ ~PndMdtHitProducer(); /** Virtual method Init **/ virtual InitStatus Init(); virtual void RunTimeBased() { fTimeOrderedDigi = kTRUE; } virtual void FinishTask(); /** Virtual method Exec **/ virtual void Exec(Option_t* opt); PndMdtHit* AddHit(Int_t detID, Int_t stripID, TVector3& pos, TVector3& dpos, Int_t bIndex, Int_t sIndex); // Bool_t MdtMapping(); // Creates maps of MDT hits //void Reset(); // reset maps private: virtual void Exec_old(Option_t* opt); /** Input array of PndMdtDigi **/ TClonesArray* fBoxArray; TClonesArray* fStripArray; TClonesArray* fDigiArray; TClonesArray* fBoxClusterArray; TClonesArray* fStripClusterArray; /** Output array of PndMdtHit **/ TClonesArray* fHitArray; Int_t fNumofBoxDigis; Int_t fNumofStripDigis; Int_t fNumofHits; Int_t fNumofGroupedBoxDigis; Int_t fNumofGroupedStripDigis; /* map >mapBoxBarrel; */ /* map >mapBoxEndcap; */ /* map >mapBoxForward; */ /* map >mapStripBarrel; */ /* map >mapStripEndcap; */ /* map >mapStripForward; */ std::map fMatchMap; //statistics record std::map fBoxHitMapofLayer; std::map fStripHitMapofLayer; typedef std::vector > ClustersCollection; typedef ClustersCollection::iterator ClustersColIter; typedef std::vector SingleCluster; typedef SingleCluster::iterator SingleDigiIter; typedef std::vector > TrackletCollection; typedef TrackletCollection::iterator TrackletColIter; typedef std::vector Tracklet; typedef Tracklet::iterator TrackletDigiIter; typedef std::vector VecDigi; typedef VecDigi::iterator VecDigiIter; Bool_t fTimeOrderedDigi; BinaryFunctor* fFunctor; Int_t fEventCounter; Double_t fTimeWindow; struct PndMdtDigiLess { bool operator() (const PndMdtDigi* lv, const PndMdtDigi* rv) const; }; ClassDef(PndMdtHitProducer,1); }; #endif