33 if(fHitProdMap[detID] != NULL) {
34 GFException exc(
"GFRecoHitFactory: detID already in use",__LINE__,__FILE__);
36 std::vector<double> numbers;
37 numbers.push_back(detID);
42 fHitProdMap[detID] = hitProd;
47 std::map<int, GFAbsRecoHitProducer*>::iterator it=fHitProdMap.begin();
48 while(it!=fHitProdMap.end()){
56 if(fHitProdMap[detID] != NULL) {
62 GFException exc(
"GFRecoHitFactory: no hitProducer for this detID available",__LINE__,__FILE__);
64 std::vector<double> numbers;
65 numbers.push_back(detID);
72 std::vector<genf::GFAbsRecoHit*> hitVec;
74 for(
unsigned int i=0;i<nHits;i++) {
77 cand.
getHit(i,detID,index);
78 hitVec.push_back( createOne(detID,index) );
GFException & setNumbers(std::string, const std::vector< double > &)
set list of numbers with description
GFAbsRecoHit * createOne(int detID, int index)
Create a RecoHit.
virtual ~GFRecoHitFactory()
std::vector< GFAbsRecoHit * > createMany(const GFTrackCand &cand)
Creat a collection of RecoHits.
void addProducer(int detID, GFAbsRecoHitProducer *hitProd)
Register a producer module to the factory.
Abstract interface class for GFRecoHitProducer.
void getHit(unsigned int i, unsigned int &detId, unsigned int &hitId) const
Get detector ID and cluster index (hitId) for hit number i.
unsigned int getNHits() const
Exception class for error handling in GENFIT (provides storage for diagnostic information) ...
void clear()
Clear all hit producers.
GFException & setFatal(bool b=true)
set fatal flag. if this is true, the fit stops for this current track repr.