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 {
65 
66  int n_;
67 
68  int charge_ [N_MAX_STORED];
69  float pt_ [N_MAX_STORED];
70  float eta_ [N_MAX_STORED];
71  float p_ [N_MAX_STORED];
72  float phi_ [N_MAX_STORED];
73  int numRecHits_ [N_MAX_STORED];
74  float chiSq_ [N_MAX_STORED];
75  float ndf_ [N_MAX_STORED];
76  float chiSqOvrNdf_ [N_MAX_STORED];
77 
78  } storage_muon; // Storage for standard muon information
79 
80  typedef struct {
81 
82  int n_;
83  int muonLink_[N_MAX_STORED_HIT];
84 
85  int system_ [N_MAX_STORED_HIT];
86  int endcap_ [N_MAX_STORED_HIT];
87  int station_ [N_MAX_STORED_HIT];
89  int chamber_ [N_MAX_STORED_HIT];
91  int superLayer_ [N_MAX_STORED_HIT];
92  int wheel_ [N_MAX_STORED_HIT];
93  int sector_ [N_MAX_STORED_HIT];
94 
95  float gpX_ [N_MAX_STORED_HIT];
96  float gpY_ [N_MAX_STORED_HIT];
97  float gpZ_ [N_MAX_STORED_HIT];
98  float gpEta_ [N_MAX_STORED_HIT];
99  float gpPhi_ [N_MAX_STORED_HIT];
100  float lpX_ [N_MAX_STORED_HIT];
101  float lpY_ [N_MAX_STORED_HIT];
102  float lpZ_ [N_MAX_STORED_HIT];
103 
104 
105  } storage_hit;
106 
107  typedef struct {
108 
109  int n_;
110 
111  int muonLink_ [N_MAX_STORED_HIT];
112  int recLink_ [N_MAX_STORED_HIT];
113  float gpX_ [N_MAX_STORED_HIT];
114  float gpY_ [N_MAX_STORED_HIT];
115  float gpZ_ [N_MAX_STORED_HIT];
116  float gpEta_ [N_MAX_STORED_HIT];
117  float gpPhi_ [N_MAX_STORED_HIT];
118  float lpX_ [N_MAX_STORED_HIT];
119  float lpY_ [N_MAX_STORED_HIT];
120  float lpZ_ [N_MAX_STORED_HIT];
121  float resX_ [N_MAX_STORED_HIT];
122  float resY_ [N_MAX_STORED_HIT];
123  float resZ_ [N_MAX_STORED_HIT];
125 
126  typedef struct {
127 
128  int n_;
129 
130  int muonLink_ [N_MAX_STORED_HIT];
131  int detector_ [N_MAX_STORED_HIT];
132  int subdetector_[N_MAX_STORED_HIT];
133  int blade_ [N_MAX_STORED_HIT];
135  int ladder_ [N_MAX_STORED_HIT];
138  int panel_ [N_MAX_STORED_HIT];
140  int side_ [N_MAX_STORED_HIT];
141  int wheel_ [N_MAX_STORED_HIT];
142 
143  float gpX_ [N_MAX_STORED_HIT];
144  float gpY_ [N_MAX_STORED_HIT];
145  float gpZ_ [N_MAX_STORED_HIT];
146  float gpEta_ [N_MAX_STORED_HIT];
147  float gpPhi_ [N_MAX_STORED_HIT];
148  float lpX_ [N_MAX_STORED_HIT];
149  float lpY_ [N_MAX_STORED_HIT];
150  float lpZ_ [N_MAX_STORED_HIT];
151 
153 
154 //Standard Muon info storage
162 
165 
167 
174 
175 
176 
177 //Rec hit storage
180 
181 //Track Extrapolation to Muon System
184 
185 //Track Extrapolation with Cylinder
187 
188 //Track Extrapolation to Tracker system
197 
198 //
199 // Start of the method declarations
200 //
201 
202  explicit ResidualRefitting( const edm::ParameterSet & );
204 
205  virtual void analyze(const edm::Event&, const edm::EventSetup&);
206  virtual void beginJob() ;
207  virtual void endJob() ;
208 //Zero Storage
209  void zero_storage();
212  void branchMuon(ResidualRefitting::storage_muon& storageTmp, std::string branchName);
213  void branchTrackExtrap(ResidualRefitting::storage_trackExtrap& storageTmp, std::string branchName);
214 
215 
216 
217 // void collectTrackRecExtrap(reco::MuonCollection::const_iterator muon, ResidualRefitting::storage_trackExtrap& storeTemp);
218  void muonInfo(ResidualRefitting::storage_muon& storeMuon, reco::TrackRef muon, int val);
219 
221  void StoreTrackerRecHits(DetId detid, int iTrack, int iRec);
224  int MatchTrackWithRecHits(reco::TrackCollection::const_iterator trackIt, edm::Handle<reco::TrackCollection> ref);
225 
227 
228 
229  void trkExtrap(DetId detid, int iTrkLink, int iTrk, int iRec,
230  FreeTrajectoryState freeTrajState,
231  LocalPoint recPoint,
232  storage_trackExtrap& storeTemp);
233 
234  void cylExtrapTrkSam(int recNum, reco::TrackRef track, ResidualRefitting::storage_trackExtrap& storage, double rho);
235 
236 //Simplifiying functions
237  FreeTrajectoryState freeTrajStateMuon(reco::TrackRef muon);//Returns a Free Trajectory State
238 //Debug Data Dumps
239 // void dumpRecoMuonColl(reco::MuonCollection::const_iterator muon); //
240 // void dumpRecoTrack(reco::TrackCollection::const_iterator muon);
241  void dumpTrackRef(reco::TrackRef muon, std::string str);
245 
246  int ReturnSector(DetId detid);
248 
249 
250 // Deprecated Functions
256  ResidualRefitting::storage_trackExtrap& storeExtrap, int omitSystem);
257 
258  // output histogram file name
259  std::string outputFileName_;
260  //edm::InputTag PropagatorSource_;
261  std::string PropagatorSource_;
262 
263  // names of product labels
268  muonsNoPXF_,
270  muonsNoTID_,
272  muonsNoTEC_;
273 // tjTag;
274 
275 
276  bool debug_;
277 
278  // output ROOT file
279  TFile * outputFile_ ;
280 
281  TTree *outputTree_;
282  TBranch *outputBranch_;
283 
284 // unsigned int nBins_;
285 
290 
291 };
292 
293 #endif
ResidualRefitting::storage_muon storageGmrNoTIBLayer4
static const char module_[]
static const int TIB
ResidualRefitting::storage_muon storageTrkNoTOBLayer4
static const char layer_[]
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
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
ResidualRefitting::storage_muon storageGmrNoTOBLayer2
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_
ResidualRefitting::storage_trackExtrap storageTrackNoTOBLayer6
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_
ResidualRefitting::storage_muon storageGmrNoTOBLayer6
ResidualRefitting::storage_muon storageSamNew_
static const int TEC
ResidualRefitting::storage_trackExtrap storageTrackNoTOBLayer4
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_
ResidualRefitting::storage_muon storageSamNoSt4_
void muonInfo(ResidualRefitting::storage_muon &storeMuon, reco::TrackRef muon, int val)
ResidualRefitting::storage_trackExtrap storageTrackExtrapRecNoSt2_
ResidualRefitting::storage_muon storageTrkNoPXBLayer2
edm::InputTag muonsNoStation1_
static const char ring_[]
edm::InputTag muonsNoTIBLayer4_
ResidualRefitting::storage_muon storageGmrNoSt2_
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_
edm::InputTag muonsNoPXF_
std::string outputFileName_
ResidualRefitting::storage_muon storageGmrNoTIBLayer2
edm::InputTag muonsRemake_
void cylExtrapTrkSam(int recNum, reco::TrackRef track, ResidualRefitting::storage_trackExtrap &storage, double rho)
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
ResidualRefitting::storage_muon storageSamNoSt2_
edm::InputTag muonsNoPXBLayer2_
ResidualRefitting::storage_trackExtrap storageTrackNoTOBLayer3
ResidualRefitting::storage_muon storageTrkNoTOBLayer1
ResidualRefitting::storage_muon storageGmrNoPXBLayer3
ResidualRefitting::storage_muon storageTrkNoTEC
ResidualRefitting::storage_muon storageSamNoSt3_
ResidualRefitting::storage_muon storageTrkNoPXBLayer1
void CollectTrackHits(edm::Handle< reco::TrackCollection > trackColl, ResidualRefitting::storage_trackExtrap &trackExtrap)
ResidualRefitting::storage_muon storageTrkNoTIBLayer1
ResidualRefitting::storage_muon storageGmrNoTOBLayer3
ResidualRefitting::storage_trackExtrap storageTrackNoTIBLayer1
ResidualRefitting::storage_event eventInfo_
void trkExtrap(DetId detid, int iTrkLink, int iTrk, int iRec, FreeTrajectoryState freeTrajState, LocalPoint recPoint, storage_trackExtrap &storeTemp)
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_
static const char disk_[]
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_