1 | #ifndef analysis_cms_exo_17_030_h
|
---|
2 | #define analysis_cms_exo_17_030_h
|
---|
3 |
|
---|
4 | #include "SampleAnalyzer/Process/Analyzer/AnalyzerBase.h"
|
---|
5 | #include <string>
|
---|
6 | #include <TString.h>
|
---|
7 | #include <vector>
|
---|
8 | #include <array>
|
---|
9 |
|
---|
10 | namespace MA5
|
---|
11 | {
|
---|
12 | typedef std::vector<const RecJetFormat*> JetCollection;
|
---|
13 | typedef std::array<const RecJetFormat*, 3> Triplet;
|
---|
14 | typedef std::pair<Triplet, Triplet> TripletPair;
|
---|
15 | typedef std::vector<TripletPair> PairCollection;
|
---|
16 | typedef std::vector<Triplet> TripletCollection;
|
---|
17 |
|
---|
18 | class cms_exo_17_030 : public AnalyzerBase {
|
---|
19 | INIT_ANALYSIS(cms_exo_17_030,"cms_exo_17_030")
|
---|
20 |
|
---|
21 | public:
|
---|
22 | virtual bool Initialize(const MA5::Configuration& cfg, const std::map<std::string,std::string>& parameters);
|
---|
23 | virtual void Finalize(const SampleFormat& summary, const std::vector<SampleFormat>& files);
|
---|
24 | virtual bool Execute(SampleFormat& sample, const EventFormat& event);
|
---|
25 |
|
---|
26 | private:
|
---|
27 | std::vector<std::string> bins_SR1, bins_SR2, bins_SR3, bins_SR4;
|
---|
28 | std::vector<std::string> cuts_SR1, cuts_SR2, cuts_SR3, cuts_SR4;
|
---|
29 | const static unsigned int nBins_SR1 = 30;
|
---|
30 | const static unsigned int binsize_SR1 = 7;
|
---|
31 | const static unsigned int firstBin_SR1 = 196;
|
---|
32 |
|
---|
33 | const static unsigned int nBins_SR2 = 32;
|
---|
34 | const static unsigned int binsize_SR2 = 10;
|
---|
35 | const static unsigned int firstBin_SR2 = 390;
|
---|
36 |
|
---|
37 | const static unsigned int nBins_SR3 = 17;
|
---|
38 | const static unsigned int binsize_SR3 = 30;
|
---|
39 | const static unsigned int firstBin_SR3 = 690;
|
---|
40 |
|
---|
41 | const static unsigned int nBins_SR4 = 20;
|
---|
42 | const static unsigned int binsize_SR4 = 40;
|
---|
43 | const static unsigned int firstBin_SR4 = 1200;
|
---|
44 |
|
---|
45 | JetCollection jetSelection(const EventFormat& event,const double &ptCut, const double &etaCut);
|
---|
46 | TripletCollection pairSelection(const PairCollection &pairs, const double &asymmCut);
|
---|
47 | TripletCollection deltaSelection(const TripletCollection &trips, const double &deltaCut);
|
---|
48 | TripletCollection mds32Selection(const TripletCollection &trips, const double &mdsCut);
|
---|
49 | TripletCollection GenMatchedTriplets(const EventFormat& event, const JetCollection &jetcoll);
|
---|
50 | TripletCollection GenMatchedTriplets( const EventFormat& event, const TripletCollection &trips);
|
---|
51 |
|
---|
52 | PairCollection makePairCollection(const JetCollection &jetcoll);
|
---|
53 |
|
---|
54 | // kinematic variables
|
---|
55 | MALorentzVector momentum(const Triplet &trip);
|
---|
56 | double HT(const JetCollection &jetcoll);
|
---|
57 | double mass(const Triplet &triplet);
|
---|
58 | double dalitz32(const Triplet &triplet, const int &idx1, const int &idx2);
|
---|
59 | double mds32(const Triplet &triplet);
|
---|
60 | double dalitz6332(const JetCollection &jetcoll, const int &idx1, const int &idx2, const int &idx3);
|
---|
61 | double mds6332(const JetCollection &jetcoll);
|
---|
62 | double massAsymm(const TripletPair &pair);
|
---|
63 | double delta(const Triplet &triplet);
|
---|
64 | };
|
---|
65 | }
|
---|
66 |
|
---|
67 | #endif
|
---|