ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/PhysicsMod/interface/PlotKineMod.h
Revision: 1.2
Committed: Thu Dec 4 13:52:27 2008 UTC (16 years, 5 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.1: +15 -7 lines
Log Message:
Updated to use const ptr to col

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 loizides 1.2 // $Id: PlotKineMod.h,v 1.1 2008/11/28 20:27:23 loizides Exp $
3 loizides 1.1 //
4     // PlotKineMod
5     //
6     // This module
7     //
8     // Authors: C.Loizides
9     //--------------------------------------------------------------------------------------------------
10    
11     #ifndef MITANA_PHYSICSMOD_PLOTKINEMOD_H
12     #define MITANA_PHYSICSMOD_PLOTKINEMOD_H
13    
14     #include "MitAna/TreeMod/interface/BaseMod.h"
15     #include "MitAna/DataTree/interface/Collections.h"
16     #include <TH1D.h>
17    
18     namespace mithep
19     {
20     template<class T>
21     class PlotKineMod : public BaseMod
22     {
23     public:
24     PlotKineMod(const char *name="PlotKineMod",
25     const char *title="Plot kinematics module");
26     ~PlotKineMod() {}
27    
28     const char *GetColName() const { return fColName; }
29     Double_t GetEtaMin() const { return fEtaMin; }
30     Double_t GSetEtaMax() const { return fEtaMax; }
31     Double_t GetPtMin() const { return fPtMin; }
32     Double_t GetPtMax() const { return fPtMax; }
33     void SetColName(const char *n) { fColName=n; }
34     void SetEtaMin(Double_t e) { fEtaMin = e; }
35     void SetEtaMax(Double_t e) { fEtaMax = e; }
36     void SetPtMin(Double_t pt) { fPtMin = pt; }
37     void SetPtMax(Double_t pt) { fPtMax = pt; }
38    
39     protected:
40     TString fColName; //name of collection
41     Double_t fPtMin; //minimum pt
42     Double_t fPtMax; //maximum pt
43     Double_t fEtaMin; //minimum eta
44     Double_t fEtaMax; //maximum eta
45 loizides 1.2 Bool_t fLoadBr; //=true then load branch (def=1)
46     const Collection<T> *fCol; //!pointer to collection
47 loizides 1.1 TH1D *fPtHist; //!pt histogram
48     TH1D *fEtaHist; //!eta histogram
49 loizides 1.2 TH1D *fMassHist; //!mass histogram
50     TH1D *fMtHist; //!mt histogram
51 loizides 1.1
52     void Process();
53     void SlaveBegin();
54    
55     ClassDefT(PlotKineMod,1) // Plot kinematics module
56     };
57     }
58    
59     //--------------------------------------------------------------------------------------------------
60     template<class T>
61     mithep::PlotKineMod<T>::PlotKineMod(const char *name, const char *title) :
62     BaseMod(name,title),
63     fColName("SetMe"),
64     fPtMin(1),
65     fPtMax(5000),
66     fEtaMin(-10),
67     fEtaMax(10),
68 loizides 1.2 fLoadBr(kTRUE),
69 loizides 1.1 fCol(0),
70     fPtHist(0),
71     fEtaHist(0)
72     {
73     // Constructor.
74     }
75    
76     //--------------------------------------------------------------------------------------------------
77     template<class T>
78     void mithep::PlotKineMod<T>::Process()
79     {
80     // Process entries of the tree: Just load the branch and fill the histograms.
81    
82 loizides 1.2 if (fLoadBr)
83     LoadBranch(GetColName());
84     else
85     fCol = GetObjThisEvt<Collection<T> >(GetColName());
86    
87 loizides 1.1 Int_t ents=fCol->GetEntries();
88     for(Int_t i=0;i<ents;++i) {
89 loizides 1.2 const T *p = fCol->At(i);
90 loizides 1.1 Double_t pt = p->Pt();
91     if (pt<fPtMin)
92     continue;
93     if (pt>fPtMax)
94     continue;
95     Double_t eta = p->Eta();
96     if (eta<fEtaMin)
97     continue;
98     if (eta>fEtaMax)
99     continue;
100     fPtHist->Fill(pt);
101     fEtaHist->Fill(eta);
102     }
103     }
104    
105     //--------------------------------------------------------------------------------------------------
106     template<class T>
107     void mithep::PlotKineMod<T>::SlaveBegin()
108     {
109     // Request a branch and create the histograms.
110    
111 loizides 1.2 if (fLoadBr)
112     ReqBranch(GetColName(), fCol);
113 loizides 1.1
114 loizides 1.2 fPtHist = new TH1D("hPtHist",";p_{t} [GeV];#",100,0.,250.);
115 loizides 1.1 AddOutput(fPtHist);
116     fEtaHist = new TH1D("hEtaHist",";#eta;#",160,-8.,8.);
117     AddOutput(fEtaHist);
118     }
119     #endif