3 #ifndef ALITKKTJETFINDER_H
4 #define ALITKKTJETFINDER_H
27 bool operator==(const Tdlist &p1) const {return (d==p1.d);}
28 bool operator<(const Tdlist &p1) const {return (d > p1.d);}
40 class AliTkKtJetFinder : public TObject {
42 AliTkKtJetFinder() : TObject() {status = 0;}
43 ~AliTkKtJetFinder() {}
45 // run functions - these ones should be called by the user...
47 void makeTParticles(TClonesArray *particles);
51 // main components of the jet finder - normally called by make()
52 // public to allow easier testing/timing analysis in macro
54 void preclusterTParticles(TClonesArray *particles);
58 void setPhiMin(Float_t fPhiMin) {phiMin = fPhiMin;}
59 void setPhiMax(Float_t fPhiMax) {phiMax = fPhiMax;}
60 void setNPhiBins(Int_t nPhiBins) {phiBins = nPhiBins;}
61 void setPhiBins(Int_t nPhiBins, Float_t fPhiMin, Float_t fPhiMax);
63 void setThetaMin(Float_t fThetaMin) {thetaMin = fThetaMin;}
64 void setThetaMax(Float_t fThetaMax) {thetaMax = fThetaMax;}
65 void setNThetaBins(Int_t nThetaBins) {thetaBins = nThetaBins;}
66 void setThetaBins(Int_t nThetaBins, Float_t fThetaMin, Float_t fThetaMax);
69 void setD(Float_t fD) {finder_D = fD;}
70 void setDCut(Float_t fDCut) {finder_DCut = fDCut;}
72 // some "standard" options
73 void setDefaultOptions();
76 void setDebugLevel(Int_t nDebugLevel);
77 void setDebugFilename(Char_t *sFilename) {debugFilename = sFilename;}
82 // precluster parameters
91 // jet finder parameters
97 Char_t *debugFilename;
100 // list of preclusters with pointer to last precluster
102 TPreCluster *firstPreCluster;
103 TPreCluster *lastPreCluster;
105 // array of pointers to preclusters
106 // makes access faster
107 TPreCluster **preClusterArray;
109 // functions related to preclusters...
110 void addPreCluster(TPreCluster *precluster);
111 void deletePreCluster(Int_t UID);
112 void dumpPreClusters();
113 void dumpPreClusterArray();
115 // double linked sorted list of (relativ) transverse momenta
116 list<Tdlist *> myDList;
117 //priority_queue<Tdlist *> myNewDList;
118 //priority_queue<Tdlist *> myHeap;
119 // priority queues are not known to CINT... :-(
121 // functions related to (relativ) transverse momenta list...
122 void addD(Tdlist *newD);
123 void buildNewDList();
124 Float_t calcD(TPreCluster *p1, TPreCluster *p2 = NULL);
126 // list of final jets
129 // private member functions
130 Bool_t isTParticleAccepted(TParticle *particle);
132 // debug/output functions
133 void DebugOutput(Char_t *output);
134 void TimingOutput(Char_t *output);
135 void DetailedOutput(Char_t *output);
137 ClassDef(AliTkKtJetFinder,1)