Fork me on GitHub

source: git/modules/SimpleCalorimeter.h @ 77e9ae1

ImprovedOutputFileTimingllp
Last change on this file since 77e9ae1 was 77e9ae1, checked in by Pavel Demin <pavel-demin@…>, 18 months ago

set Standard to Cpp03 in .clang-format

  • Property mode set to 100644
File size: 2.7 KB
Line 
1
2/*
3 *  Delphes: a framework for fast simulation of a generic collider experiment
4 *  Copyright (C) 2012-2014  Universite catholique de Louvain (UCL), Belgium
5 *
6 *  This program is free software: you can redistribute it and/or modify
7 *  it under the terms of the GNU General Public License as published by
8 *  the Free Software Foundation, either version 3 of the License, or
9 *  (at your option) any later version.
10 *
11 *  This program is distributed in the hope that it will be useful,
12 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 *  GNU General Public License for more details.
15 *
16 *  You should have received a copy of the GNU General Public License
17 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef SimpleCalorimeter_h
21#define SimpleCalorimeter_h
22
23/** \class SimpleCalorimeter
24 *
25 *  Fills SimpleCalorimeter towers, performs SimpleCalorimeter resolution smearing,
26 *  and creates energy flow objects (tracks, photons, and neutral hadrons).
27 *
28 *  \author P. Demin - UCL, Louvain-la-Neuve
29 *
30 */
31
32#include "classes/DelphesModule.h"
33
34#include <map>
35#include <set>
36#include <vector>
37
38class TObjArray;
39class DelphesFormula;
40class Candidate;
41
42class SimpleCalorimeter: public DelphesModule
43{
44public:
45  SimpleCalorimeter();
46  ~SimpleCalorimeter();
47
48  void Init();
49  void Process();
50  void Finish();
51
52private:
53  typedef std::map<Long64_t, Double_t> TFractionMap; //!
54  typedef std::map<Double_t, std::set<Double_t> > TBinMap; //!
55
56  Candidate *fTower;
57  Double_t fTowerEta, fTowerPhi, fTowerEdges[4];
58  Double_t fTowerEnergy;
59  Double_t fTrackEnergy;
60
61  Double_t fTowerTime;
62  Double_t fTrackTime;
63
64  Double_t fTowerTimeWeight;
65  Double_t fTrackTimeWeight;
66
67  Int_t fTowerTrackHits, fTowerPhotonHits;
68
69  Double_t fEnergyMin;
70
71  Double_t fEnergySignificanceMin;
72
73  Double_t fTrackSigma;
74
75  Bool_t fSmearTowerCenter;
76
77  Bool_t fIsEcal; //!
78
79  TFractionMap fFractionMap; //!
80  TBinMap fBinMap; //!
81
82  std::vector<Double_t> fEtaBins;
83  std::vector<std::vector<Double_t> *> fPhiBins;
84
85  std::vector<Long64_t> fTowerHits;
86
87  std::vector<Double_t> fTowerFractions;
88
89  std::vector<Double_t> fTrackFractions;
90
91  DelphesFormula *fResolutionFormula; //!
92
93  TIterator *fItParticleInputArray; //!
94  TIterator *fItTrackInputArray; //!
95
96  const TObjArray *fParticleInputArray; //!
97  const TObjArray *fTrackInputArray; //!
98
99  TObjArray *fTowerOutputArray; //!
100
101  TObjArray *fEFlowTrackOutputArray; //!
102  TObjArray *fEFlowTowerOutputArray; //!
103
104  TObjArray *fTowerTrackArray; //!
105  TIterator *fItTowerTrackArray; //!
106
107  void FinalizeTower();
108  Double_t LogNormal(Double_t mean, Double_t sigma);
109
110  ClassDef(SimpleCalorimeter, 1)
111};
112
113#endif
Note: See TracBrowser for help on using the repository browser.