CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
IsolatedTracksNxN.h
Go to the documentation of this file.
1 #ifndef CalibrationIsolatedParticlesIsolatedTracksNxN_h
2 #define CalibrationIsolatedParticlesIsolatedTracksNxN_h
3 
4 // system include files
5 #include <memory>
6 #include <cmath>
7 #include <string>
8 #include <map>
9 #include <vector>
10 
11 // user include files
12 #include <Math/GenVector/VectorUtil.h>
13 
20 
22 
23 // TFile Service
26 
31 
32 // muons and tracks
36 // Vertices
40 // Calorimeters
53 
54 //L1 objects
61 
62 // Jets in the event
66 
67 // SimHit
69 //simtrack
74 
75 // track associator
79 // ecal / hcal
86 
88 
94 
100 
101 // root objects
102 #include "TROOT.h"
103 #include "TSystem.h"
104 #include "TFile.h"
105 #include "TH1F.h"
106 #include "TH2F.h"
107 #include "TProfile.h"
108 #include "TDirectory.h"
109 #include "TTree.h"
110 
112 
113  public:
114  explicit IsolatedTracksNxN(const edm::ParameterSet&);
116 
117  private:
118  //void beginJob(const edm::EventSetup&) ;
119  void beginJob() ;
120  void analyze(const edm::Event&, const edm::EventSetup&);
121  void endJob() ;
122 
123  void printTrack(const reco::Track* pTrack);
124 
125  void BookHistograms();
126 
127  double DeltaPhi(double v1, double v2);
128  double DeltaR(double eta1, double phi1, double eta2, double phi2);
129 
130 
131  void clearTreeVectors();
132 
133  private:
134 
135  bool initL1, doMC;
136  static const size_t nL1BitsMax=128;
137  std::string algoBitToName[nL1BitsMax];
138  std::map <std::string,bool> l1TriggerMap;
139  std::map<std::string,bool>::iterator trig_iter;
140 
150 
153 
155 
156  // track associator to detector parameters
157  //TrackAssociatorParameters parameters_;
158  //mutable TrackDetectorAssociator* trackAssociator_;
159 
161 
162  double genPartPBins[16], genPartEtaBins[4];
163 
164  static const size_t NPBins = 15;
165  static const size_t NEtaBins = 3;
166 
171 
174 
175  TH1F *h_nTracks;
176 
179 
182 
185 
186 
187 
188  TTree* tree;
189 
191 
195 
196  std::vector<int> *t_L1Decision;
197  std::vector<double> *t_L1CenJetPt, *t_L1CenJetEta, *t_L1CenJetPhi;
198  std::vector<double> *t_L1FwdJetPt, *t_L1FwdJetEta, *t_L1FwdJetPhi;
199  std::vector<double> *t_L1TauJetPt, *t_L1TauJetEta, *t_L1TauJetPhi;
200  std::vector<double> *t_L1MuonPt, *t_L1MuonEta, *t_L1MuonPhi;
201  std::vector<double> *t_L1IsoEMPt, *t_L1IsoEMEta, *t_L1IsoEMPhi;
203  std::vector<double> *t_L1METPt, *t_L1METEta, *t_L1METPhi;
204 
205  std::vector<double> *t_jetPt, *t_jetEta, *t_jetPhi;
206  std::vector<double> *t_nTrksJetCalo, *t_nTrksJetVtx;
207 
209  std::vector<double> *t_trackPtAll;
211 
212  std::vector<double> *t_trackP, *t_trackPt, *t_trackEta, *t_trackPhi;
214  std::vector<double> *t_trackDxy, *t_trackDxyBS, *t_trackDz, *t_trackDzBS;
215  std::vector<double> *t_trackDxyPV, *t_trackDzPV;
216  std::vector<double> *t_trackChiSq;
217  std::vector<int> *t_trackPVIdx;
218 
220  std::vector<int> *t_trackHitsTOB, *t_trackHitsTEC;
225  std::vector<double> *t_trackOutPosOutHitDr, *t_trackL;
226 
227  std::vector<double> *t_maxNearP31x31;
228  std::vector<double> *t_maxNearP25x25;
229  std::vector<double> *t_maxNearP21x21;
230  std::vector<double> *t_maxNearP15x15;
231  std::vector<double> *t_maxNearP13x13;
232  std::vector<double> *t_maxNearP11x11;
233  std::vector<double> *t_maxNearP9x9;
234  std::vector<double> *t_maxNearP7x7;
235 
236  std::vector<int> *t_ecalSpike11x11;
237  std::vector<double> *t_e3x3, *t_e5x5, *t_e7x7, *t_e9x9, *t_e11x11;
238  std::vector<double> *t_e13x13, *t_e15x15, *t_e21x21, *t_e25x25, *t_e31x31;
239  //std::vector< std::vector<double> > *t_e11x11Xtals;
240 
246 
247  std::vector<double> *t_esimPdgId, *t_simTrackP;
248 
249  std::vector<double> *t_trkEcalEne;
250 
251  std::vector<double> *t_esim3x3, *t_esim5x5, *t_esim7x7, *t_esim9x9, *t_esim11x11;
253 
256 
259 
262 
265 
268 
269 
271  std::vector<double> *t_h3x3, *t_h5x5, *t_h7x7;
272  std::vector<double> *t_h3x3Sig, *t_h5x5Sig, *t_h7x7Sig;
273  std::vector<int> *t_infoHcal;
274 
275  std::vector<double> *t_trkHcalEne;
276  std::vector<double> *t_hsim3x3, *t_hsim5x5, *t_hsim7x7;
278  std::vector<double> *t_hsim3x3Rest, *t_hsim5x5Rest, *t_hsim7x7Rest;
282 
284 };
285 
286 #endif
std::vector< double > * t_hsim7x7CharHad
std::vector< double > * t_PVTracksSumPtWt
double DeltaPhi(double v1, double v2)
std::vector< double > * t_hsim3x3Matched
std::vector< double > * t_e15x15
std::vector< double > * t_esim25x25Photon
std::vector< double > * t_nTrksJetCalo
std::vector< double > * t_esim31x31NeutHad
std::vector< double > * t_maxNearHcalP7x7
std::vector< double > * t_esim21x21Matched
std::vector< double > * t_trackPt
std::vector< double > * t_esim25x25CharHad
std::vector< double > * t_trackPAll
std::vector< double > * t_trackHcalPhi
std::vector< double > * t_trackDxyPVAll
std::vector< double > * t_esim5x5Photon
std::vector< int > * t_trackHitOutMeasTEC
std::vector< double > * t_trackPdgIdAll
edm::InputTag JetExtender_
std::vector< double > * t_esim7x7NeutHad
std::map< std::string, bool > l1TriggerMap
edm::InputTag L1extraCenJetSource_
std::vector< double > * t_trackOutPosOutHitDr
std::vector< double > * t_maxNearHcalP5x5
std::vector< double > * t_L1NonIsoEMPt
std::vector< int > * t_trackHitOutMeasTIB
std::vector< int > * t_trackHitInMissTOB
std::vector< double > * t_trackDz
std::vector< double > * t_maxNearP11x11
std::vector< double > * t_trackEcalEta
std::vector< double > * t_trackEtaAll
std::vector< double > * t_esim31x31Photon
std::vector< double > * t_esim11x11Matched
std::vector< double > * t_L1IsoEMEta
std::vector< double > * t_PVTracksSumPt
std::vector< double > * t_e9x9_10Sig
std::vector< double > * t_esim3x3CharHad
std::vector< double > * t_esim31x31Rest
TH1F * h_maxNearP25x25[NPBins][NEtaBins]
std::vector< double > * t_esim21x21Photon
std::vector< double > * t_hsim3x3CharHad
std::vector< double > * t_maxNearP7x7
std::vector< double > * t_hsim7x7Rest
std::vector< double > * t_L1TauJetPhi
std::vector< double > * t_esim25x25Rest
std::vector< int > * t_infoHcal
std::vector< double > * t_e11x11_15Sig
static const size_t NEtaBins
std::vector< double > * t_L1TauJetPt
std::vector< double > * t_esim25x25
std::vector< double > * t_trackEcalPhi
std::vector< double > * t_esim11x11NeutHad
std::vector< double > * t_L1TauJetEta
std::vector< double > * t_e15x15_15Sig
std::vector< double > * t_esim5x5Matched
std::vector< double > * t_L1MuonEta
std::vector< double > * t_L1MuonPt
std::vector< double > * t_esim3x3Rest
std::vector< double > * t_h3x3
std::vector< double > * t_L1MuonPhi
std::vector< double > * t_esim3x3Matched
std::vector< double > * t_trackDxyAll
std::vector< double > * t_maxNearP13x13
std::vector< double > * t_maxNearHcalP3x3
edm::InputTag L1extraIsoEmSource_
IsolatedTracksNxN(const edm::ParameterSet &)
std::vector< double > * t_hsim3x3Photon
std::vector< double > * t_esim31x31
std::vector< double > * t_PVTracksSumPtHP
std::vector< double > * t_e25x25
std::vector< double > * t_esim5x5
std::vector< double > * t_esim11x11Rest
edm::InputTag L1GTReadoutRcdSource_
std::vector< int > * t_trackNOuterHits
std::vector< double > * t_h7x7Sig
std::vector< double > * t_e15x15_30Sig
std::vector< double > * t_trackPhiAll
std::vector< double > * t_e7x7_25Sig
std::vector< double > * t_trkHcalEne
std::vector< double > * t_esim7x7Rest
edm::InputTag L1extraFwdJetSource_
std::vector< double > * t_e7x7_20Sig
std::vector< double > * t_e11x11_10Sig
std::vector< double > * t_trackPtAll
std::vector< double > * t_h3x3Sig
std::vector< double > * t_esim13x13
edm::Service< TFileService > fs
std::vector< double > * t_e13x13
std::vector< double > * t_esimPdgId
std::map< std::string, bool >::iterator trig_iter
std::vector< double > * t_esim5x5NeutHad
std::vector< double > * t_maxNearP9x9
std::vector< double > * t_e11x11_20Sig
std::vector< double > * t_jetEta
std::vector< double > * t_maxNearP31x31
std::vector< double > * t_esim7x7CharHad
std::vector< int > * t_trackHitInMissTEC
std::vector< double > * t_trackEta
std::vector< double > * t_esim21x21Rest
std::vector< double > * t_esim9x9Photon
std::vector< int > * t_trackHitInMeasTID
std::vector< double > * t_esim5x5Rest
std::vector< double > * t_hsim5x5Rest
std::vector< double > * t_e11x11
std::vector< double > * t_esim15x15
std::vector< double > * t_esim13x13CharHad
std::vector< double > * t_L1CenJetPt
std::vector< double > * t_trackChiSqAll
std::vector< int > * t_L1Decision
edm::InputTag L1extraTauJetSource_
std::vector< double > * t_esim21x21CharHad
std::vector< double > * t_e15x15_25Sig
std::vector< int > * t_trackHitOutMissTIB
std::vector< double > * t_esim15x15Rest
std::vector< double > * t_esim11x11
std::vector< double > * t_hsim7x7
std::vector< int > * t_trackHitOutMissTID
std::vector< double > * t_esim31x31CharHad
std::vector< int > * t_trackHitOutMissTOBTEC
std::vector< int > * t_trackHitsTEC
std::vector< double > * t_e9x9_30Sig
const MagneticField * bField
std::vector< double > * t_maxNearP25x25
std::vector< double > * t_L1CenJetPhi
std::vector< double > * t_L1FwdJetEta
std::vector< double > * t_h7x7
std::vector< int > * t_ecalSpike11x11
std::vector< double > * t_esim15x15NeutHad
std::vector< double > * t_e9x9_20Sig
std::vector< int > * t_trackHitOutMeasTOB
std::vector< int > * t_trackHitInMeasTIB
std::vector< double > * t_trackDzPV
std::vector< double > * t_L1FwdJetPhi
std::vector< double > * t_esim13x13NeutHad
std::vector< double > * t_nTrksJetVtx
std::vector< double > * t_esim7x7Photon
std::vector< double > * t_e5x5
std::vector< double > * t_hsim3x3NeutHad
std::vector< double > * t_L1NonIsoEMPhi
std::vector< double > * t_trackDzBS
void analyze(const edm::Event &, const edm::EventSetup &)
std::vector< int > * t_trackHitOutMissTOB
std::vector< double > * t_L1CenJetEta
std::vector< double > * t_trackDzPVAll
std::vector< double > * t_esim9x9
std::vector< double > * t_hsim5x5
std::vector< double > * t_h5x5
std::vector< double > * t_trackDxyPV
std::vector< double > * t_hsim5x5NeutHad
std::vector< double > * t_trackChiSq
std::vector< double > * t_maxNearP15x15
std::vector< double > * t_hsim5x5Photon
std::vector< double > * t_PVy
std::vector< double > * t_PVNTracksHP
std::vector< double > * t_hsim3x3Rest
edm::InputTag L1extraNonIsoEmSource_
std::vector< double > * t_esim13x13Photon
std::vector< double > * t_e7x7
std::vector< double > * t_esim9x9Rest
std::vector< double > * t_L1METPhi
std::vector< double > * t_esim7x7
std::vector< int > * t_trackHitInMissTIB
std::vector< double > * t_e9x9_15Sig
std::vector< double > * t_e7x7_15Sig
std::vector< double > * t_trackPhi
std::vector< double > * t_e7x7_10Sig
std::vector< double > * t_PVisValid
std::vector< double > * t_trkEcalEne
std::vector< double > * t_trackDzAll
TH1F * h_maxNearP31x31[NPBins][NEtaBins]
std::vector< double > * t_esim11x11CharHad
std::vector< double > * t_esim31x31Matched
TH1F * h_maxNearP15x15[NPBins][NEtaBins]
std::vector< double > * t_e9x9_25Sig
std::vector< double > * t_esim13x13Rest
std::vector< double > * t_esim9x9NeutHad
std::vector< double > * t_L1FwdJetPt
std::vector< double > * t_simTrackP
std::vector< double > * t_hsim7x7Matched
std::vector< int > * t_trackPVIdx
static const size_t nL1BitsMax
std::vector< double > * t_PVNTracks
std::vector< int > * t_trackHitsTOB
std::vector< double > * t_PVndof
std::vector< double > * t_esim9x9Matched
std::vector< double > * t_hsim7x7NeutHad
std::vector< double > * t_L1IsoEMPhi
std::vector< double > * t_esim13x13Matched
std::vector< double > * t_esim3x3Photon
std::vector< double > * t_maxNearP21x21
std::vector< double > * t_PVNTracksWt
std::vector< double > * t_esim25x25NeutHad
std::vector< double > * t_L1NonIsoEMEta
std::vector< double > * t_e31x31
std::vector< double > * t_PVNTracksHPWt
std::vector< double > * t_PVz
std::vector< double > * t_e3x3
void printTrack(const reco::Track *pTrack)
std::vector< double > * t_e15x15_20Sig
std::vector< double > * t_PVTracksSumPtHPWt
std::vector< double > * t_trackDxy
std::vector< double > * t_hsim5x5CharHad
std::vector< double > * t_e15x15_10Sig
TH1F * h_maxNearP21x21[NPBins][NEtaBins]
std::vector< double > * t_jetPhi
std::vector< double > * t_trackL
std::vector< double > * t_esim3x3
std::vector< double > * t_trackDxyBS
std::vector< double > * t_trackHcalEta
std::vector< double > * t_L1METPt
edm::InputTag L1extraMuonSource_
std::vector< double > * t_esim3x3NeutHad
std::vector< int > * t_NLayersCrossed
double DeltaR(double eta1, double phi1, double eta2, double phi2)
edm::InputTag JetSrc_
std::vector< int > * t_trackHitInMeasTOB
std::vector< double > * t_PVx
std::vector< int > * t_trackHitInMeasTEC
std::vector< double > * t_esim15x15Photon
std::vector< double > * t_e9x9
std::vector< double > * t_hsim5x5Matched
std::vector< double > * t_esim7x7Matched
std::string algoBitToName[nL1BitsMax]
std::vector< double > * t_esim15x15Matched
std::vector< int > * t_trackHitOutMeasTID
std::vector< double > * t_L1METEta
std::vector< double > * t_esim21x21NeutHad
std::vector< double > * t_e7x7_30Sig
std::vector< double > * t_esim25x25Matched
std::vector< int > * t_trackHitOutMissTEC
std::vector< double > * t_e11x11_25Sig
std::vector< double > * t_hsim3x3
std::vector< double > * t_trackP
static const size_t NPBins
std::vector< double > * t_hsim7x7Photon
std::vector< double > * t_jetPt
std::vector< double > * t_L1IsoEMPt
std::vector< double > * t_e21x21
std::vector< double > * t_esim11x11Photon
edm::InputTag L1GTObjectMapRcdSource_
std::vector< double > * t_h5x5Sig
std::vector< double > * t_esim21x21
std::vector< int > * t_trackHitInMissTID
std::vector< double > * t_e11x11_30Sig
std::vector< int > * t_trackHitInMissTIBTID
std::vector< double > * t_esim9x9CharHad
std::vector< double > * t_esim5x5CharHad
std::vector< double > * t_esim15x15CharHad