CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ResidualRefitting.h
Go to the documentation of this file.
1 #ifndef _ResidualRefitting_h__
2 #define __ResidualRefitting_h_ (1)
3 
4 
5 #include <vector>
6 #include <string>
7 
8 #include "TFile.h"
9 #include "TBranch.h"
10 #include "TTree.h"
11 
17 
20 
23 
27 //#include "TrackingTools/GeomPropagators/interface/AnalyticalPropagator.h"
28 //#include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixPropagator.h"
29 
30 //#include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
31 
32 //#include "TrackPropagation/SteppingHelixPropagator/interface/SteppingHelixPropagator.h"
33 
35 //#include "TrackingTools/TransientTrack/interface/TransientTrack.h"
36 //#include "TrackingTools/TrackRefitter/interface/TrackTransformer.h"
37 
39 
40  static const int N_MAX_STORED = 10;
41  static const int N_MAX_STORED_HIT = 1000;
42 
43  static const int PXB = 1;
44  static const int PXF = 2;
45  static const int TIB = 3;
46  static const int TID = 4;
47  static const int TOB = 5;
48  static const int TEC = 6;
49 
50 
51  public:
52 
53 // typedef std::pair<const Trajectory*, const reco::Track*> ConstTrajTrackPair;
54 // typedef std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection;
55 
56  typedef struct {
57  int evtNum_;
58  int runNum_;
59  } storage_event;
60 
62 
63 
64  typedef struct StorageMuon {
65 
66  int n_;
67 
69  float pt_ [N_MAX_STORED];
70  float eta_ [N_MAX_STORED];
71  float p_ [N_MAX_STORED];
72  float phi_ [N_MAX_STORED];
75  float ndf_ [N_MAX_STORED];
77 
79  n_(0) {
80  for (int i=0;i<N_MAX_STORED;++i) {
81  charge_[i] = 0;
82  pt_[i] = 0.;
83  eta_[i] = 0.;
84  p_[i] = 0.;
85  phi_[i] = 0.;
86  numRecHits_[i] = 0;
87  chiSq_[i] = 0.;
88  ndf_[i] = 0.;
89  chiSqOvrNdf_[i] = 0.;
90  }
91  }
92  } storage_muon; // Storage for standard muon information
93 
94  typedef struct StorageHit {
95 
96  int n_;
98 
108 
117 
119  n_(0) {
120  for (int i=0;i<N_MAX_STORED_HIT;++i) {
121  muonLink_[i] = 0;
122  system_[i] = 0;
123  endcap_[i] = 0;
124  station_[i] = 0;
125  ring_[i] = 0;
126  chamber_[i] = 0;
127  layer_[i] = 0;
128  superLayer_[i] = 0;
129  wheel_[i] = 0;
130  sector_[i] = 0;
131  gpX_[i] = 0.;
132  gpY_[i] = 0.;
133  gpZ_[i] = 0.;
134  gpEta_[i] = 0.;
135  gpPhi_[i] = 0.;
136  lpX_[i] = 0.;
137  lpY_[i] = 0.;
138  lpZ_[i] = 0.;
139  }
140  }
141  } storage_hit;
142 
143  typedef struct StorageTrackExtrap {
144 
145  int n_;
146 
160 
162  n_(0) {
163  for (int i=0;i<N_MAX_STORED_HIT;++i) {
164  muonLink_[i] = 0;
165  recLink_[i] = 0;
166  gpX_[i] = 0.;
167  gpY_[i] = 0.;
168  gpZ_[i] = 0.;
169  gpEta_[i] = 0.;
170  gpPhi_[i] = 0.;
171  lpX_[i] = 0.;
172  lpY_[i] = 0.;
173  lpZ_[i] = 0.;
174  resX_[i] = 0.;
175  resY_[i] = 0.;
176  resZ_[i] = 0.;
177  }
178  }
180 
181  typedef struct StorageTrackHit {
182 
183  int n_;
184 
197 
206 
208  n_(0) {
209  for (int i=0;i<N_MAX_STORED_HIT;++i) {
210  muonLink_[i] = 0;
211  detector_[i] = 0;
212  subdetector_[i] = 0;
213  blade_[i] = 0;
214  disk_[i] = 0;
215  ladder_[i] = 0;
216  layer_[i] = 0;
217  module_[i] = 0;
218  panel_[i] = 0;
219  ring_[i] = 0;
220  side_[i] = 0;
221  wheel_[i] = 0;
222  gpX_[i] = 0.;
223  gpY_[i] = 0.;
224  gpZ_[i] = 0.;
225  gpEta_[i] = 0.;
226  gpPhi_[i] = 0.;
227  lpX_[i] = 0.;
228  lpY_[i] = 0.;
229  lpZ_[i] = 0.;
230  }
231  }
233 
234 //Standard Muon info storage
242 
245 
247 
254 
255 
256 
257 //Rec hit storage
260 
261 //Track Extrapolation to Muon System
264 
265 //Track Extrapolation with Cylinder
267 
268 //Track Extrapolation to Tracker system
277 
278 //
279 // Start of the method declarations
280 //
281 
282  explicit ResidualRefitting( const edm::ParameterSet & );
284 
285  virtual void analyze(const edm::Event&, const edm::EventSetup&);
286  virtual void beginJob() ;
287  virtual void endJob() ;
288 //Zero Storage
289  void zero_storage();
292  void branchMuon(ResidualRefitting::storage_muon& storageTmp, std::string branchName);
293  void branchTrackExtrap(ResidualRefitting::storage_trackExtrap& storageTmp, std::string branchName);
294 
295 
296 
297 // void collectTrackRecExtrap(reco::MuonCollection::const_iterator muon, ResidualRefitting::storage_trackExtrap& storeTemp);
298  void muonInfo(ResidualRefitting::storage_muon& storeMuon, reco::TrackRef muon, int val);
299 
301  void StoreTrackerRecHits(DetId detid, int iTrack, int iRec);
304  int MatchTrackWithRecHits(reco::TrackCollection::const_iterator trackIt, edm::Handle<reco::TrackCollection> ref);
305 
307 
308 
309  void trkExtrap(const DetId& detid, int iTrkLink, int iTrk, int iRec,
310  const FreeTrajectoryState& freeTrajState,
311  const LocalPoint& recPoint,
312  storage_trackExtrap& storeTemp);
313 
314  void cylExtrapTrkSam(int recNum, reco::TrackRef track, ResidualRefitting::storage_trackExtrap& storage, double rho);
315 
316 //Simplifiying functions
317  FreeTrajectoryState freeTrajStateMuon(reco::TrackRef muon);//Returns a Free Trajectory State
318 //Debug Data Dumps
319 // void dumpRecoMuonColl(reco::MuonCollection::const_iterator muon); //
320 // void dumpRecoTrack(reco::TrackCollection::const_iterator muon);
321  void dumpTrackRef(reco::TrackRef muon, std::string str);
325 
326  int ReturnSector(DetId detid);
328 
329 
330 // Deprecated Functions
336  ResidualRefitting::storage_trackExtrap& storeExtrap, int omitSystem);
337 
338  // output histogram file name
339  std::string outputFileName_;
340  //edm::InputTag PropagatorSource_;
341  std::string PropagatorSource_;
342 
343  // names of product labels
348  muonsNoPXF_,
350  muonsNoTID_,
352  muonsNoTEC_;
353 // tjTag;
354 
355 
356  bool debug_;
357 
358  // output ROOT file
359  TFile * outputFile_ ;
360 
361  TTree *outputTree_;
362  TBranch *outputBranch_;
363 
364 // unsigned int nBins_;
365 
370 
371 };
372 
373 #endif
ResidualRefitting::storage_muon storageGmrNoTIBLayer4
int endcap_[N_MAX_STORED_HIT]
struct ResidualRefitting::StorageMuon storage_muon
static const int TIB
ResidualRefitting::storage_muon storageTrkNoTOBLayer4
int i
Definition: DBlmapReader.cc:9
void zero_muon(ResidualRefitting::storage_muon *str)
static const int N_MAX_STORED
int ReturnStation(DetId detid)
void dumpTrackRef(reco::TrackRef muon, std::string str)
ResidualRefitting::storage_muon storageGmrNoTOBLayer1
ResidualRefitting::storage_trackExtrap storageTrackNoTEC
ResidualRefitting::storage_muon storageGmrNoPXBLayer1
float lpZ_[N_MAX_STORED_HIT]
ResidualRefitting::storage_trackExtrap storageTrackNoPXBLayer1
ResidualRefitting::storage_muon storageGmrNoTID
ResidualRefitting::storage_muon storageTrkNoTOBLayer6
int ReturnSector(DetId detid)
ResidualRefitting::storage_muon storageGmrNoTIBLayer1
static const int PXB
ResidualRefitting::storage_trackHit storageTrackHit_
std::string PropagatorSource_
Definition: DDAxes.h:10
const MagneticField * theField
void zero_trackExtrap(ResidualRefitting::storage_trackExtrap *str)
ResidualRefitting::storage_trackExtrap storageTrackExtrapRecNoSt3_
ResidualRefitting::storage_muon storageTrkNoTOBLayer5
static const int TOB
ResidualRefitting::storage_trackExtrap storageTrackNoTIBLayer2
static const int N_MAX_STORED_HIT
ResidualRefitting::storage_trackExtrap storageTrackNoTIBLayer4
ResidualRefitting::storage_muon storageTrkNoTIBLayer2
int sector_[N_MAX_STORED_HIT]
ResidualRefitting::storage_muon storageGmrNoTOBLayer2
struct ResidualRefitting::StorageTrackHit storage_trackHit
virtual void analyze(const edm::Event &, const edm::EventSetup &)
void NewTrackMeasurements(edm::Handle< reco::TrackCollection > trackCollOrig, edm::Handle< reco::TrackCollection > trackColl, ResidualRefitting::storage_trackExtrap &trackExtrap)
ResidualRefitting::storage_muon storageGmrNoSt1_
int layer_[N_MAX_STORED_HIT]
int chamber_[N_MAX_STORED_HIT]
ResidualRefitting::storage_trackExtrap storageTrackNoTOBLayer6
float lpY_[N_MAX_STORED_HIT]
void omitTrackerSystem(edm::Handle< reco::MuonCollection > trkMuons, ResidualRefitting::storage_muon &storeGmr, ResidualRefitting::storage_muon &storeTrk, ResidualRefitting::storage_trackExtrap &storeExtrap, int omitSystem)
ResidualRefitting::storage_trackExtrap storageTrackExtrapRecNoSt1_
void trkExtrap(const DetId &detid, int iTrkLink, int iTrk, int iRec, const FreeTrajectoryState &freeTrajState, const LocalPoint &recPoint, storage_trackExtrap &storeTemp)
ResidualRefitting::storage_muon storageGmrNoTOBLayer6
int muonLink_[N_MAX_STORED_HIT]
ResidualRefitting::storage_muon storageSamNew_
static const int TEC
ResidualRefitting::storage_trackExtrap storageTrackNoTOBLayer4
float gpEta_[N_MAX_STORED_HIT]
edm::InputTag tracks_
ResidualRefitting::storage_muon storageTrkNoTID
ResidualRefitting::storage_trackExtrap storageTrackExtrapTracker_
ResidualRefitting::storage_trackExtrap storageTrackExtrapRec_
static const int TID
ResidualRefitting::storage_muon storageGmrNoTOBLayer4
void dumpTrackHits(ResidualRefitting::storage_trackHit hit)
ResidualRefitting::storage_muon storageGmrNoSt4_
edm::InputTag muonsNoStation2_
ResidualRefitting::storage_trackExtrap storageTrackExtrapRecNoSt4_
ResidualRefitting::storage_trackExtrap storageTrackNoTOBLayer2
void branchMuon(ResidualRefitting::storage_muon &storageTmp, std::string branchName)
int MatchTrackWithRecHits(reco::TrackCollection::const_iterator trackIt, edm::Handle< reco::TrackCollection > ref)
edm::InputTag muonsNoTIBLayer1_
edm::InputTag muonsNoTOBLayer6_
float lpX_[N_MAX_STORED_HIT]
ResidualRefitting::storage_muon storageSamNoSt4_
int wheel_[N_MAX_STORED_HIT]
void muonInfo(ResidualRefitting::storage_muon &storeMuon, reco::TrackRef muon, int val)
struct ResidualRefitting::StorageHit storage_hit
ResidualRefitting::storage_trackExtrap storageTrackExtrapRecNoSt2_
ResidualRefitting::storage_muon storageTrkNoPXBLayer2
edm::InputTag muonsNoStation1_
edm::InputTag muonsNoTIBLayer4_
ResidualRefitting::storage_muon storageGmrNoSt2_
float gpY_[N_MAX_STORED_HIT]
ResidualRefitting::storage_muon storageGmrNoSt3_
void omitStation(edm::Handle< reco::MuonCollection > funcMuons, edm::Handle< reco::TrackCollection >, ResidualRefitting::storage_muon &storeGmr, ResidualRefitting::storage_muon &storeSam, ResidualRefitting::storage_trackExtrap &storeExtrap, int omitStation)
MuonServiceProxy * theService
edm::InputTag muonsNoTIBLayer3_
edm::InputTag muonsNoTOBLayer3_
ResidualRefitting::storage_muon storageGmrNoPXBLayer2
ResidualRefitting(const edm::ParameterSet &)
FreeTrajectoryState freeTrajStateMuon(reco::TrackRef muon)
ResidualRefitting::storage_muon storageGmrOld_
void dumpMuonRecHits(ResidualRefitting::storage_hit hit)
edm::InputTag muonsNoTOBLayer5_
ResidualRefitting::storage_muon storageTrkNoPXF
ResidualRefitting::storage_muon storageGmrNoTEC
ResidualRefitting::storage_trackExtrap trackExtrap120_
const edm::ESHandle< GlobalTrackingGeometry > trackingGeometry
edm::InputTag muonsNoStation3_
Definition: DetId.h:20
edm::InputTag muonsNoTOBLayer2_
ResidualRefitting::storage_muon storageGmrNoTIBLayer3
void dumpTrackExtrap(ResidualRefitting::storage_trackExtrap track)
ResidualRefitting::storage_muon storageGmrNew_
float gpX_[N_MAX_STORED_HIT]
edm::InputTag muonsNoPXF_
std::string outputFileName_
ResidualRefitting::storage_muon storageGmrNoTIBLayer2
int station_[N_MAX_STORED_HIT]
edm::InputTag muonsRemake_
void cylExtrapTrkSam(int recNum, reco::TrackRef track, ResidualRefitting::storage_trackExtrap &storage, double rho)
float gpPhi_[N_MAX_STORED_HIT]
edm::InputTag muonsNoTID_
static const int PXF
ResidualRefitting::storage_muon storageTrkNoTIBLayer3
edm::InputTag muons_
ResidualRefitting::storage_trackExtrap storageTrackNoTID
void StoreTrackerRecHits(DetId detid, int iTrack, int iRec)
ResidualRefitting::storage_muon storageTrkNoTOBLayer2
bool IsSameHit(trackingRecHit_iterator hit1, trackingRecHit_iterator hit2)
ResidualRefitting::storage_trackExtrap storageTrackNoPXBLayer3
ResidualRefitting::storage_trackExtrap storageTrackNoTOBLayer5
struct ResidualRefitting::StorageTrackExtrap storage_trackExtrap
ResidualRefitting::storage_muon storageSamNoSt2_
edm::InputTag muonsNoPXBLayer2_
ResidualRefitting::storage_trackExtrap storageTrackNoTOBLayer3
ResidualRefitting::storage_muon storageTrkNoTOBLayer1
float chiSqOvrNdf_[N_MAX_STORED]
ResidualRefitting::storage_muon storageGmrNoPXBLayer3
ResidualRefitting::storage_muon storageTrkNoTEC
ResidualRefitting::storage_muon storageSamNoSt3_
ResidualRefitting::storage_muon storageTrkNoPXBLayer1
float gpZ_[N_MAX_STORED_HIT]
void CollectTrackHits(edm::Handle< reco::TrackCollection > trackColl, ResidualRefitting::storage_trackExtrap &trackExtrap)
ResidualRefitting::storage_muon storageTrkNoTIBLayer1
ResidualRefitting::storage_muon storageGmrNoTOBLayer3
ResidualRefitting::storage_trackExtrap storageTrackNoTIBLayer1
int superLayer_[N_MAX_STORED_HIT]
ResidualRefitting::storage_event eventInfo_
ResidualRefitting::storage_hit storageRecMuon_
ResidualRefitting::storage_muon storageTrkNoTOBLayer3
edm::InputTag muonsNoPXBLayer1_
edm::ESHandle< Propagator > thePropagator
edm::InputTag muonsNoPXBLayer3_
edm::InputTag muonsNoTIBLayer2_
ResidualRefitting::storage_muon storageTrkNew_
ResidualRefitting::storage_trackExtrap storageTrackNoPXF
ResidualRefitting::storage_muon storageSamNoSt1_
ResidualRefitting::storage_muon storageGmrNoTOBLayer5
ResidualRefitting::storage_trackExtrap storageTrackNoTIBLayer3
virtual void beginJob()
edm::InputTag muonsNoStation4_
int system_[N_MAX_STORED_HIT]
edm::InputTag muonsNoTOBLayer4_
ResidualRefitting::storage_trackExtrap storageTrackNoTOBLayer1
void branchTrackExtrap(ResidualRefitting::storage_trackExtrap &storageTmp, std::string branchName)
ResidualRefitting::storage_muon storageGmrNoPXF
ResidualRefitting::storage_trackExtrap storageTrackNoPXBLayer2
ResidualRefitting::storage_muon storageTrkNoPXBLayer3
edm::InputTag muonsNoTOBLayer1_
edm::InputTag muonsNoTEC_
ResidualRefitting::storage_muon storageTrkNoTIBLayer4
ResidualRefitting::storage_trackExtrap samExtrap120_