Fork me on GitHub

source: git/modules/SimpleCalorimeter.h@ cb80e6f

Last change on this file since cb80e6f was 5eda6767, checked in by Michele Selvaggi <michele@…>, 3 years ago

fix calo tower position

  • Property mode set to 100644
File size: 2.7 KB
RevLine 
[fc6300d]1
[51f7063]2/*
3 * Delphes: a framework for fast simulation of a generic collider experiment
4 * Copyright (C) 2012-2014 Universite catholique de Louvain (UCL), Belgium
[1fa50c2]5 *
[51f7063]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.
[1fa50c2]10 *
[51f7063]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.
[1fa50c2]15 *
[51f7063]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
[82575a3]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:
[341014c]53 typedef std::map<Long64_t, Double_t> TFractionMap; //!
[77e9ae1]54 typedef std::map<Double_t, std::set<Double_t> > TBinMap; //!
[82575a3]55
56 Candidate *fTower;
57 Double_t fTowerEta, fTowerPhi, fTowerEdges[4];
58 Double_t fTowerEnergy;
[efac6f9]59 Double_t fTrackEnergy;
[e5767b57]60
[82575a3]61 Double_t fTowerTime;
62 Double_t fTrackTime;
[e5767b57]63
[5eda6767]64 Double_t fTowerRmax;
65
[e5767b57]66 Double_t fTowerTimeWeight;
67 Double_t fTrackTimeWeight;
68
[82575a3]69 Int_t fTowerTrackHits, fTowerPhotonHits;
70
[4b9a2dc]71 Double_t fEnergyMin;
[e5767b57]72
73 Double_t fEnergySignificanceMin;
74
[efac6f9]75 Double_t fTrackSigma;
76
[4e09c3a]77 Bool_t fSmearTowerCenter;
[4b9a2dc]78
[df636c74]79 Bool_t fIsEcal; //!
[fc6300d]80
[82575a3]81 TFractionMap fFractionMap; //!
82 TBinMap fBinMap; //!
83
[341014c]84 std::vector<Double_t> fEtaBins;
85 std::vector<std::vector<Double_t> *> fPhiBins;
[82575a3]86
[341014c]87 std::vector<Long64_t> fTowerHits;
[82575a3]88
[341014c]89 std::vector<Double_t> fTowerFractions;
[e5767b57]90
[341014c]91 std::vector<Double_t> fTrackFractions;
[e5767b57]92
[82575a3]93 DelphesFormula *fResolutionFormula; //!
[e5767b57]94
[82575a3]95 TIterator *fItParticleInputArray; //!
96 TIterator *fItTrackInputArray; //!
97
98 const TObjArray *fParticleInputArray; //!
99 const TObjArray *fTrackInputArray; //!
100
101 TObjArray *fTowerOutputArray; //!
[e5767b57]102
[a98c7ef]103 TObjArray *fEFlowTrackOutputArray; //!
[82575a3]104 TObjArray *fEFlowTowerOutputArray; //!
[df636c74]105
[efac6f9]106 TObjArray *fTowerTrackArray; //!
107 TIterator *fItTowerTrackArray; //!
[82575a3]108
109 void FinalizeTower();
110 Double_t LogNormal(Double_t mean, Double_t sigma);
111
112 ClassDef(SimpleCalorimeter, 1)
113};
114
115#endif
Note: See TracBrowser for help on using the repository browser.