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

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 loizides 1.7 // $Id: TriggerName.h,v 1.6 2009/03/24 16:10:15 loizides Exp $
3 loizides 1.1 //
4     // TriggerName
5     //
6 loizides 1.2 // A class to hold a name and a number, ie the trigger name and trigger bit.
7 loizides 1.1 //
8     // Authors: C.Loizides
9     //--------------------------------------------------------------------------------------------------
10    
11     #ifndef MITANA_DATATREE_TRIGGERNAME_H
12     #define MITANA_DATATREE_TRIGGERNAME_H
13    
14 loizides 1.2 #include <string>
15 loizides 1.1 #include <TObject.h>
16     #include <TString.h>
17 loizides 1.3 #include "MitAna/DataTree/interface/DataBase.h"
18 loizides 1.1
19     namespace mithep
20     {
21 loizides 1.3 class TriggerName : public DataBase
22 loizides 1.1 {
23     public:
24 loizides 1.5 TriggerName() : fId(0), fHash(0) {}
25 loizides 1.2 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 loizides 1.1
32 loizides 1.7 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 loizides 1.1 void Print(Option_t *opt="") const;
40    
41     protected:
42     TString fName; //name
43     UShort_t fId; //id
44 loizides 1.2 UInt_t fHash; //hash
45    
46 loizides 1.5 ClassDef(TriggerName, 1) // Trigger name class
47 loizides 1.1 };
48 loizides 1.2 }
49 loizides 1.7
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 loizides 1.1 #endif