1 |
#include<iostream>
|
2 |
|
3 |
#include "TFile.h"
|
4 |
#include "TTree.h"
|
5 |
#include "TVectorF.h"
|
6 |
#include "TClonesArray.h"
|
7 |
|
8 |
#include "DTDPGAnalysis/interface/DefineTreeVariables.h"
|
9 |
|
10 |
#include "FWCore/Framework/interface/EDAnalyzer.h"
|
11 |
#include "FWCore/Framework/interface/ESHandle.h"
|
12 |
#include "FWCore/Framework/interface/Event.h"
|
13 |
#include "FWCore/Framework/interface/Frameworkfwd.h"
|
14 |
|
15 |
#include "TrackingTools/GeomPropagators/interface/Propagator.h"
|
16 |
|
17 |
//
|
18 |
// class declaration
|
19 |
//
|
20 |
class TTreeGenerator : public edm::EDAnalyzer {
|
21 |
|
22 |
public:
|
23 |
explicit TTreeGenerator(const edm::ParameterSet&);
|
24 |
~TTreeGenerator() {};
|
25 |
|
26 |
|
27 |
private:
|
28 |
|
29 |
virtual void beginJob() ;
|
30 |
virtual void beginRun(const edm::Run&, const edm::EventSetup&) {};
|
31 |
virtual void analyze(const edm::Event&, const edm::EventSetup&);
|
32 |
virtual void endJob() ;
|
33 |
|
34 |
void initialize_Tree_variables();
|
35 |
inline void clear_Arrays();
|
36 |
|
37 |
void fill_digi_variables(edm::Handle<DTDigiCollection> dtdigis);
|
38 |
void fill_dtsegments_variables(edm::Handle<DTRecSegment4DCollection> segments4D);
|
39 |
void fill_cscsegments_variables(edm::Handle<CSCSegmentCollection> cscsegments);
|
40 |
void fill_dcc_variables(edm::Handle<L1MuDTChambPhContainer> localTriggerDCC);
|
41 |
void fill_ddu_variables(edm::Handle<DTLocalTriggerCollection> localTriggerDDU);
|
42 |
void fill_muons_variables(edm::Handle<reco::MuonCollection> MuList);
|
43 |
void fill_gmt_variables(edm::Handle<L1MuGMTReadoutCollection> gmtrc);
|
44 |
|
45 |
void fill_dtphi_info(const DTChamberRecSegment2D* phiSeg);
|
46 |
void fill_dtz_info(const DTSLRecSegment2D* zSeg);
|
47 |
|
48 |
std::vector<L1MuRegionalCand> getBXCands(const L1MuGMTReadoutRecord* igmtrr, const int DetectorType) const;
|
49 |
|
50 |
TrajectoryStateOnSurface cylExtrapTrkSam(reco::TrackRef track, const float rho) const;
|
51 |
FreeTrajectoryState freeTrajStateMuon(const reco::TrackRef track) const;
|
52 |
|
53 |
//method to fill empty slots (just to avoid potential crashes)
|
54 |
inline void fill_cscsegments_emptyvars();
|
55 |
inline void fill_muons_emptyvars();
|
56 |
|
57 |
edm::InputTag dtDigiLabel_;
|
58 |
edm::InputTag dtSegmentLabel_;
|
59 |
edm::InputTag cscSegmentLabel_;
|
60 |
edm::InputTag dtTrigDCCLabel_;
|
61 |
edm::InputTag dtTrigDDULabel_;
|
62 |
edm::InputTag staMuLabel_;
|
63 |
edm::InputTag gmtLabel_;
|
64 |
|
65 |
edm::InputTag PrimaryVertexTag_;
|
66 |
|
67 |
edm::InputTag triggerTag_;
|
68 |
|
69 |
edm::ESHandle<MagneticField> theBField;
|
70 |
edm::ESHandle<Propagator> propagatorAlong;
|
71 |
edm::ESHandle<Propagator> propagatorOpposite;
|
72 |
|
73 |
edm::ESHandle<GlobalTrackingGeometry> theTrackingGeometry;
|
74 |
|
75 |
int digisSize_;
|
76 |
int dtsegmentsSize_;
|
77 |
int cscsegmentsSize_;
|
78 |
int dtltDCCSize_;
|
79 |
int dtltDDUSize_;
|
80 |
int gmtSize_;
|
81 |
int STAMuSize_;
|
82 |
|
83 |
//counters
|
84 |
short idigis;
|
85 |
short idtsegments;
|
86 |
short icscsegments;
|
87 |
short idtltDCC;
|
88 |
short idtltDDU;
|
89 |
short imuons;
|
90 |
short igmtdt;
|
91 |
short igmtcands;
|
92 |
|
93 |
TFile *outFile;
|
94 |
TTree *tree_;
|
95 |
|
96 |
};
|