Changeset 273e668 in git for external/fastjet/plugins/SISCone/split_merge.h
- Timestamp:
- Oct 15, 2014, 10:55:55 AM (10 years ago)
- Branches:
- ImprovedOutputFile, Timing, dual_readout, llp, master
- Children:
- 35b9204, b25d4cf
- Parents:
- f14bd6a
- git-author:
- Pavel Demin <pavel.demin@…> (10/10/14 08:56:40)
- git-committer:
- Pavel Demin <pavel.demin@…> (10/15/14 10:55:55)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
external/fastjet/plugins/SISCone/split_merge.h
rf14bd6a r273e668 22 22 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA // 23 23 // // 24 // $Revision:: 268$//25 // $Date:: 20 09-03-12 21:24:16 +0100 (Thu, 12 Mar 2009) $//24 // $Revision:: 367 $// 25 // $Date:: 2014-09-04 15:57:37 +0200 (Thu, 04 Sep 2014) $// 26 26 /////////////////////////////////////////////////////////////////////////////// 27 27 … … 141 141 /// the split-merge process i.e. the variable we use for 142 142 /// 1. ordering jet candidates; 143 /// 2. computing t e overlap fraction of two candidates.143 /// 2. computing the overlap fraction of two candidates. 144 144 /// The default value uses pttile (p-scheme pt). Other alternatives are 145 145 /// pt, mt=sqrt(pt^2+m^2)=sqrt(E^2-pz^2) or Et. … … 151 151 /// the default value i.e. to use pt only for the purpose of 152 152 /// investigating the IR issue 153 /// - using Et is safe but do not respect boost invariance153 /// - using Et is safe but does not respect boost invariance 154 154 /// - using mt solves the IR unsafety issues with the pt variable 155 155 /// for QCD jets but the IR unsafety remains for nack-to-back … … 234 234 int full_clear(); 235 235 236 /////////////////////////////////////// 237 // user-defined stable-cone ordering // 238 /////////////////////////////////////// 239 240 /// \class Cuser_scale_base 241 /// base class for user-defined ordering of stable cones 242 /// 243 /// derived classes have to implement the () operator that returns 244 /// the scale associated with a given jet. 245 class Cuser_scale_base{ 246 public: 247 /// empty virtual dtor 248 virtual ~Cuser_scale_base(){} 249 250 /// the scale associated with a given jet 251 /// 252 /// "progressive removal" iteratively removes the stable cone with 253 /// the largest scale 254 virtual double operator()(const Cjet & jet) const = 0; 255 256 /// returns true when the scale associated with jet a is larger than 257 /// the scale associated with jet b 258 /// 259 /// By default this does a simple direct comparison but it can be 260 /// overloaded for higher precision [recommended if possible] 261 /// 262 /// This function assumes that a.sm_var2 and b.sm_var2 have been 263 /// correctly initialised with the signed squared output of 264 /// operator(), as is by default the case when is_larger is called 265 /// from within siscone. 266 virtual bool is_larger(const Cjet & a, const Cjet & b) const{ 267 return (a.sm_var2 > b.sm_var2); 268 } 269 }; 270 271 /// associate a user-defined scale to order the stable cones 272 /// 273 /// Note that this is only used in "progressive-removal mode", 274 /// e.g. in add_hardest_protocone_to_jets(). 275 void set_user_scale(const Cuser_scale_base * user_scale_in){ 276 _user_scale = user_scale_in; 277 } 278 279 /// return the user-defined scale (NULL if none) 280 const Cuser_scale_base * user_scale() const { return _user_scale; } 281 236 282 237 283 ///////////////////////////////// … … 256 302 */ 257 303 int add_protocones(std::vector<Cmomentum> *protocones, double R2, double ptmin=0.0); 304 305 /** 306 * remove the hardest protocone and declare it a jet 307 * \param protocones list of protocones (initial jet candidates) 308 * \param R2 cone radius (squared) 309 * \param ptmin minimal pT allowed for jets 310 * \return 0 on success, 1 on error 311 * 312 * The list of remaining particles (and the uncollinear-hard ones) 313 * is updated. 314 */ 315 int add_hardest_protocone_to_jets(std::vector<Cmomentum> *protocones, double R2, double ptmin=0.0); 258 316 259 317 /** … … 314 372 Csplit_merge_ptcomparison ptcomparison; 315 373 316 /// stop split--merge when the SM_var of the hardest protojet 317 /// is below this cut-off. 374 /// stop split--merge or progressive-removal when the squared SM_var 375 /// of the hardest protojet is below this cut-off. Note that this is 376 /// a signed square (ie SM_var*|SM_var|) to be able to handle 377 /// negative values. 378 /// 379 /// Note that the cut-off is set on the variable squared. 380 double SM_var2_hardest_cut_off; 381 382 /// pt cutoff for the particles to put in p_uncol_hard 383 /// this is meant to allow removing soft particles in the 384 /// stable-cone search. 385 /// 318 386 /// This is not collinear-safe so you should not use this 319 387 /// variable unless you really know what you are doing 320 388 /// Note that the cut-off is set on the variable squared. 321 double SM_var2_hardest_cut_off;322 323 /// pt cutoff for the particles to put in p_uncol_hard324 /// this is meant to allow removing soft particles in the325 /// stable-cone search.326 389 double stable_cone_soft_pt2_cutoff; 327 390 … … 390 453 bool use_pt_weighted_splitting; 391 454 455 /// use a user-defined scale to order the stable cones and jet 456 /// candidates 457 const Cuser_scale_base *_user_scale; 458 392 459 #ifdef ALLOW_MERGE_IDENTICAL_PROTOCONES 393 460 /// checkxor for the candidates (to avoid having twice the same contents)
Note:
See TracChangeset
for help on using the changeset viewer.