-
Notifications
You must be signed in to change notification settings - Fork 4.2k
/
ESDigitizerTest.cpp
58 lines (41 loc) · 1.79 KB
/
ESDigitizerTest.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include "DataFormats/EcalDetId/interface/ESDetId.h"
#include "DataFormats/EcalDigi/interface/ESDataFrame.h"
#include "SimDataFormats/CaloHit/interface/PCaloHit.h"
#include "SimCalorimetry/CaloSimAlgos/interface/CaloHitResponse.h"
#include "SimCalorimetry/CaloSimAlgos/interface/CaloTDigitizer.h"
#include "SimCalorimetry/EcalSimAlgos/interface/EcalSimParameterMap.h"
#include "SimCalorimetry/EcalSimAlgos/interface/ESShape.h"
#include "SimCalorimetry/EcalSimAlgos/interface/EcalDigitizerTraits.h"
#include "SimCalorimetry/EcalSimAlgos/interface/ESElectronicsSim.h"
#include "SimDataFormats/CrossingFrame/interface/CrossingFrame.h"
#include <vector>
#include <iostream>
#include <iterator>
int main() {
// make a silly little hit in each subdetector, which should
// correspond to a 300 keV particle
ESDetId ESDetId(1, 1, 1, 1, 1);
PCaloHit ESHit(ESDetId.rawId(), 0.0003, 0.);
vector<DetId> ESDetIds;
ESDetIds.push_back(ESDetId);
vector<PCaloHit> ESHits;
ESHits.push_back(ESHit);
string ESName = "EcalHitsES";
edm::EventID id;
CrossingFrame<PCaloHit> crossingFrame(-5, 5, 25, ESName, 1);
crossingFrame.addSignals(&ESHits,id);
EcalSimParameterMap parameterMap;
ESShape shape(1);
CaloHitResponse ESResponse(¶meterMap, &shape);
ESElectronicsSim electronicsSim(true, 3, 1, 1000, 9, 78.47);
bool addNoise = false;
CaloTDigitizer<ESDigitizerTraits> ESDigitizer(&ESResponse, &electronicsSim, addNoise);
ESDigitizer.setDetIds(ESDetIds);
unique_ptr<ESDigiCollection> ESResult(new ESDigiCollection);
MixCollection<PCaloHit> ESHitCollection(&crossingFrame);
ESDigitizer.run(ESHitCollection, *ESResult);
// print out all the digis
cout << "ES Frames" << endl;
copy(ESResult->begin(), ESResult->end(), std::ostream_iterator<ESDataFrame>(std::cout, "\n"));
return 0;
}