ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataTree/interface/TriggerName.h
Revision: 1.7
Committed: Wed Dec 2 23:18:26 2009 UTC (15 years, 5 months ago) by loizides
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_032, Mit_031, Mit_025c_branch2, Mit_025c_branch1, Mit_030, Mit_029c, Mit_029b, Mit_030_pre1, Mit_029a, Mit_029, Mit_029_pre1, Mit_028a, Mit_025c_branch0, Mit_028, Mit_027a, Mit_027, Mit_026, Mit_025e, Mit_025d, Mit_025c, Mit_025b, Mit_025a, Mit_025, Mit_025pre2, Mit_024b, Mit_025pre1, Mit_024a, Mit_024, Mit_023, Mit_022a, Mit_022, Mit_020d, TMit_020d, Mit_020c, Mit_021, Mit_021pre2, Mit_021pre1, Mit_020b, Mit_020a, Mit_020, Mit_020pre1, Mit_018, Mit_017, Mit_017pre3, Mit_017pre2, Mit_017pre1, Mit_016, Mit_015b, Mit_015a, Mit_015, Mit_014e, Mit_014d, Mit_014c, Mit_014b, Mit_014a, Mit_014, Mit_014pre3, Mit_014pre2, Mit_014pre1, Mit_013d, Mit_013c, Mit_013b, Mit_013a, Mit_013, Mit_013pre1, Mit_012i, Mit_012h, Mit_012g, Mit_012f, Mit_012e, Mit_012d, HEAD
Branch point for: Mit_025c_branch
Changes since 1.6: +28 -6 lines
Log Message:
Sort trigger according to trigger bit when printing

File Contents

# Content
1 //--------------------------------------------------------------------------------------------------
2 // $Id: TriggerName.h,v 1.6 2009/03/24 16:10:15 loizides Exp $
3 //
4 // TriggerName
5 //
6 // A class to hold a name and a number, ie the trigger name and trigger bit.
7 //
8 // Authors: C.Loizides
9 //--------------------------------------------------------------------------------------------------
10
11 #ifndef MITANA_DATATREE_TRIGGERNAME_H
12 #define MITANA_DATATREE_TRIGGERNAME_H
13
14 #include <string>
15 #include <TObject.h>
16 #include <TString.h>
17 #include "MitAna/DataTree/interface/DataBase.h"
18
19 namespace mithep
20 {
21 class TriggerName : public DataBase
22 {
23 public:
24 TriggerName() : fId(0), fHash(0) {}
25 TriggerName(const char *name, UShort_t id) :
26 fName(name), fId(id), fHash(fName.Hash()) {}
27 TriggerName(const std::string &name, UShort_t id) :
28 fName(name), fId(id), fHash(fName.Hash()) {}
29 TriggerName(const TString &name, UShort_t id) :
30 fName(name), fId(id), fHash(fName.Hash()) {}
31
32 Int_t Compare(const TObject *o) const;
33 UShort_t Id() const { return fId; }
34 Bool_t IsSortable() const { return kTRUE; }
35 const char *GetName() const { return fName; }
36 ULong_t Hash() const { return fHash; }
37 const char *Name() const { return fName; }
38 EObjType ObjType() const { return kTriggerName; }
39 void Print(Option_t *opt="") const;
40
41 protected:
42 TString fName; //name
43 UShort_t fId; //id
44 UInt_t fHash; //hash
45
46 ClassDef(TriggerName, 1) // Trigger name class
47 };
48 }
49
50 //--------------------------------------------------------------------------------------------------
51 inline Int_t mithep::TriggerName::Compare(const TObject *o) const
52 {
53 // Default compare function for sorting according to transverse momentum.
54 // Returns -1 if this object is smaller than given object, 0 if objects are
55 // equal and 1 if this is larger than given object.
56
57 const mithep::TriggerName *t = dynamic_cast<const mithep::TriggerName *>(o);
58 if (!t)
59 return 1;
60
61 Double_t myid = Id();
62 Double_t id = t->Id();
63 if (myid<id)
64 return -1;
65 else if (id<myid)
66 return +1;
67 return 0;
68 }
69 #endif