Fork me on GitHub

source: git/modules/SimpleCalorimeter.h@ 659c7b6

ImprovedOutputFile Timing dual_readout llp
Last change on this file since 659c7b6 was df636c74, checked in by Pavel Demin <pavel.demin@…>, 9 years ago

update eflow in SimpleCalorimeter

  • 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
46 SimpleCalorimeter();
47 ~SimpleCalorimeter();
48
49 void Init();
50 void Process();
51 void Finish();
52
53private:
54
55 typedef std::map< Long64_t, Double_t > TFractionMap; //!
56 typedef std::map< Double_t, std::set< Double_t > > TBinMap; //!
57
58 Candidate *fTower;
59 Double_t fTowerEta, fTowerPhi, fTowerEdges[4];
60 Double_t fTowerEnergy;
61 Double_t fTrackEnergy[2];
62
63 Double_t fTowerTime;
64 Double_t fTrackTime;
65
66 Double_t fTowerTimeWeight;
67 Double_t fTrackTimeWeight;
68
69 Int_t fTowerTrackHits, fTowerPhotonHits;
70
71 Double_t fEnergyMin;
72
73 Double_t fEnergySignificanceMin;
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[2]; //!
105 TIterator *fItTowerTrackArray[2]; //!
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.