#ifndef VertexFinder_h #define VertexFinder_h /** \class VertexFinder * * Cluster vertices from tracks * * \author M. Selvaggi - UCL, Louvain-la-Neuve * */ #include "classes/DelphesModule.h" #include "classes/DelphesClasses.h" #include #include #include #include #include #include using namespace std; class TObjArray; class Candidate; class TVector3; class VertexFinder: public DelphesModule { public: VertexFinder(); ~VertexFinder(); void Init(); void Process(); void Finish(); static bool secondDescending (pair, pair); static bool secondAscending (pair, pair); private: void createSeeds (); void growCluster (const unsigned); double weight (const unsigned); void addTrackToCluster (const unsigned, const unsigned); void removeTrackFromCluster (const unsigned, const unsigned); Double_t fSigma; Double_t fMinPT; Double_t fMaxEta; Double_t fSeedMinPT; Int_t fMinNDF; Int_t fGrowSeeds; TObjArray *fInputArray; TIterator *fItInputArray; TObjArray *fOutputArray; TObjArray *fVertexOutputArray; map > trackIDToDouble; map > trackIDToInt; map > trackIDToBool; map > clusterIDToDouble; map > clusterIDToInt; map > clusterIDToBool; vector > trackPT; vector > clusterSumPT2; ClassDef(VertexFinder, 1) }; #endif