CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
MuonAlignmentAnalyzer Class Reference

#include <MuonAlignmentAnalyzer.h>

Inheritance diagram for MuonAlignmentAnalyzer:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &eventSetup) override
 
void beginJob () override
 
void endJob () override
 
 MuonAlignmentAnalyzer (const edm::ParameterSet &pset)
 Constructor. More...
 
 ~MuonAlignmentAnalyzer () override
 Destructor. More...
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
 ~EDAnalyzer () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

RecHitVector doMatching (const reco::Track &, edm::Handle< DTRecSegment4DCollection > &, edm::Handle< CSCSegmentCollection > &, intDVector *, intDVector *, edm::ESHandle< GlobalTrackingGeometry > &)
 

Private Attributes

std::vector< long > detectorCollection
 
bool doGBplots
 
bool doResplots
 
bool doSAplots
 
edm::Service< TFileServicefs
 
TH1F * hGBChi2
 
TH1F * hGBChi2_Barrel
 
TH1F * hGBChi2_Endcap
 
TH1F * hGBInvM
 
TH1F * hGBInvM_Barrel
 
TH1F * hGBInvM_Endcap
 
TH1F * hGBInvM_Overlap
 
TH1F * hGBinvPTres
 
TH2F * hGBinvPTvsEta
 
TH2F * hGBinvPTvsNhits
 
TH2F * hGBinvPTvsPhi
 
TH1F * hGBNhits
 
TH1F * hGBNhits_Barrel
 
TH1F * hGBNhits_Endcap
 
TH1F * hGBNmuons
 
TH1F * hGBNmuons_Barrel
 
TH1F * hGBNmuons_Endcap
 
TH2F * hGBPhivsEta
 
TH1F * hGBPTDiff
 
TH2F * hGBPTDiffvsEta
 
TH2F * hGBPTDiffvsPhi
 
TH1F * hGBPTRec
 
TH1F * hGBPTRec_Barrel
 
TH1F * hGBPTRec_Endcap
 
TH1F * hGBPTres
 
TH1F * hGBPTres_Barrel
 
TH1F * hGBPTres_Endcap
 
TH2F * hGBPTvsEta
 
TH2F * hGBPTvsPhi
 
TH2F * hprofGlobalAngleCSC
 
TH2F * hprofGlobalAngleDT
 
TH2F * hprofGlobalAngleRmsCSC
 
TH2F * hprofGlobalAngleRmsDT
 
TH1F * hprofGlobalPhiCSC
 
TH1F * hprofGlobalPhiDT
 
TH2F * hprofGlobalPositionCSC
 
TH2F * hprofGlobalPositionDT
 
TH2F * hprofGlobalPositionRmsCSC
 
TH2F * hprofGlobalPositionRmsDT
 
TH1F * hprofGlobalRCSC
 
TH1F * hprofGlobalRPhiCSC
 
TH1F * hprofGlobalRPhiDT
 
TH1F * hprofGlobalThetaCSC
 
TH1F * hprofGlobalThetaDT
 
TH1F * hprofGlobalZDT
 
TH2F * hprofLocalAngleCSC
 
TH2F * hprofLocalAngleDT
 
TH2F * hprofLocalAngleRmsCSC
 
TH2F * hprofLocalAngleRmsDT
 
TH1F * hprofLocalPhiCSC
 
TH1F * hprofLocalPhiDT
 
TH2F * hprofLocalPositionCSC
 
TH2F * hprofLocalPositionDT
 
TH2F * hprofLocalPositionRmsCSC
 
TH2F * hprofLocalPositionRmsDT
 
TH1F * hprofLocalThetaCSC
 
TH1F * hprofLocalThetaDT
 
TH1F * hprofLocalXCSC
 
TH1F * hprofLocalXDT
 
TH1F * hprofLocalYCSC
 
TH1F * hprofLocalYDT
 
TH1F * hResidualGlobalPhiCSC
 
std::vector< TH1F * > hResidualGlobalPhiCSC_ME
 
TH1F * hResidualGlobalPhiDT
 
std::vector< TH1F * > hResidualGlobalPhiDT_MB
 
std::vector< TH1F * > hResidualGlobalPhiDT_W
 
TH1F * hResidualGlobalRCSC
 
std::vector< TH1F * > hResidualGlobalRCSC_ME
 
TH1F * hResidualGlobalRPhiCSC
 
std::vector< TH1F * > hResidualGlobalRPhiCSC_ME
 
TH1F * hResidualGlobalRPhiDT
 
std::vector< TH1F * > hResidualGlobalRPhiDT_MB
 
std::vector< TH1F * > hResidualGlobalRPhiDT_W
 
TH1F * hResidualGlobalThetaCSC
 
std::vector< TH1F * > hResidualGlobalThetaCSC_ME
 
TH1F * hResidualGlobalThetaDT
 
std::vector< TH1F * > hResidualGlobalThetaDT_MB
 
std::vector< TH1F * > hResidualGlobalThetaDT_W
 
TH1F * hResidualGlobalZDT
 
std::vector< TH1F * > hResidualGlobalZDT_MB
 
std::vector< TH1F * > hResidualGlobalZDT_W
 
TH1F * hResidualLocalPhiCSC
 
std::vector< TH1F * > hResidualLocalPhiCSC_ME
 
TH1F * hResidualLocalPhiDT
 
std::vector< TH1F * > hResidualLocalPhiDT_MB
 
std::vector< TH1F * > hResidualLocalPhiDT_W
 
TH1F * hResidualLocalThetaCSC
 
std::vector< TH1F * > hResidualLocalThetaCSC_ME
 
TH1F * hResidualLocalThetaDT
 
std::vector< TH1F * > hResidualLocalThetaDT_MB
 
std::vector< TH1F * > hResidualLocalThetaDT_W
 
TH1F * hResidualLocalXCSC
 
std::vector< TH1F * > hResidualLocalXCSC_ME
 
TH1F * hResidualLocalXDT
 
std::vector< TH1F * > hResidualLocalXDT_MB
 
std::vector< TH1F * > hResidualLocalXDT_W
 
TH1F * hResidualLocalYCSC
 
std::vector< TH1F * > hResidualLocalYCSC_ME
 
TH1F * hResidualLocalYDT
 
std::vector< TH1F * > hResidualLocalYDT_MB
 
std::vector< TH1F * > hResidualLocalYDT_W
 
TH1F * hSAChi2
 
TH1F * hSAChi2_Barrel
 
TH1F * hSAChi2_Endcap
 
TH1F * hSAInvM
 
TH1F * hSAInvM_Barrel
 
TH1F * hSAInvM_Endcap
 
TH1F * hSAInvM_Overlap
 
TH1F * hSAinvPTres
 
TH2F * hSAinvPTvsEta
 
TH2F * hSAinvPTvsNhits
 
TH2F * hSAinvPTvsPhi
 
TH1F * hSANhits
 
TH1F * hSANhits_Barrel
 
TH1F * hSANhits_Endcap
 
TH1F * hSANmuons
 
TH1F * hSANmuons_Barrel
 
TH1F * hSANmuons_Endcap
 
TH2F * hSAPhivsEta
 
TH1F * hSAPTDiff
 
TH2F * hSAPTDiffvsEta
 
TH2F * hSAPTDiffvsPhi
 
TH1F * hSAPTRec
 
TH1F * hSAPTRec_Barrel
 
TH1F * hSAPTRec_Endcap
 
TH1F * hSAPTres
 
TH1F * hSAPTres_Barrel
 
TH1F * hSAPTres_Endcap
 
TH2F * hSAPTvsEta
 
TH2F * hSAPTvsPhi
 
TH1F * hSimInvM
 
TH1F * hSimInvM_Barrel
 
TH1F * hSimInvM_Endcap
 
TH1F * hSimInvM_Overlap
 
TH1F * hSimNmuons
 
TH1F * hSimNmuons_Barrel
 
TH1F * hSimNmuons_Endcap
 
TH2F * hSimPhivsEta
 
TH1F * hSimPT
 
TH1F * hSimPT_Barrel
 
TH1F * hSimPT_Endcap
 
TH2F * hSimPTvsEta
 
TH2F * hSimPTvsPhi
 
double invMassRangeMax
 
double invMassRangeMin
 
unsigned int min1DTrackRecHitSize
 
unsigned int min4DTrackSegmentSize
 
unsigned int nbins
 
int numberOfGBRecTracks
 
int numberOfHits
 
int numberOfSARecTracks
 
int numberOfSimTracks
 
double ptRangeMax
 
double ptRangeMin
 
double resLocalXRangeStation1
 
double resLocalXRangeStation2
 
double resLocalXRangeStation3
 
double resLocalXRangeStation4
 
double resLocalYRangeStation1
 
double resLocalYRangeStation2
 
double resLocalYRangeStation3
 
double resLocalYRangeStation4
 
double resPhiRange
 
double resThetaRange
 
std::string theDataType
 
edm::InputTag theGLBMuonTag
 
PropagatorthePropagator
 
edm::InputTag theRecHits4DTagCSC
 
edm::InputTag theRecHits4DTagDT
 
edm::InputTag theSTAMuonTag
 
std::vector< TH1F * > unitsGlobalPhi
 
std::vector< TH1F * > unitsGlobalRPhi
 
std::vector< TH1F * > unitsGlobalRZ
 
std::vector< TH1F * > unitsGlobalTheta
 
std::vector< TH1F * > unitsLocalPhi
 
std::vector< TH1F * > unitsLocalTheta
 
std::vector< TH1F * > unitsLocalX
 
std::vector< TH1F * > unitsLocalY
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

MuonAlignment offline Monitor Analyzer Makes histograms of high level Muon objects/quantities for Alignment Scenarios/DB comparison

Date
2011/09/04 17:40:58
Revision
1.13
Author
J. Fernandez - Univ. Oviedo Javie.nosp@m.r.Fe.nosp@m.rnand.nosp@m.ez@c.nosp@m.ern.c.nosp@m.h

Definition at line 40 of file MuonAlignmentAnalyzer.h.

Constructor & Destructor Documentation

MuonAlignmentAnalyzer::MuonAlignmentAnalyzer ( const edm::ParameterSet pset)

Constructor.

Definition at line 50 of file MuonAlignmentAnalyzer.cc.

References doGBplots, doResplots, doSAplots, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), invMassRangeMax, invMassRangeMin, min1DTrackRecHitSize, min4DTrackSegmentSize, nbins, numberOfGBRecTracks, numberOfHits, numberOfSARecTracks, numberOfSimTracks, ptRangeMax, ptRangeMin, resLocalXRangeStation1, resLocalXRangeStation2, resLocalXRangeStation3, resLocalXRangeStation4, resLocalYRangeStation1, resLocalYRangeStation2, resLocalYRangeStation3, resLocalYRangeStation4, resPhiRange, resThetaRange, AlCaHLTBitMon_QueryRunRegistry::string, theDataType, theGLBMuonTag, theRecHits4DTagCSC, theRecHits4DTagDT, and theSTAMuonTag.

51  : hGBNmuons(nullptr),
52  hSANmuons(nullptr),
53  hSimNmuons(nullptr),
54  hGBNmuons_Barrel(nullptr),
55  hSANmuons_Barrel(nullptr),
56  hSimNmuons_Barrel(nullptr),
57  hGBNmuons_Endcap(nullptr),
58  hSANmuons_Endcap(nullptr),
59  hSimNmuons_Endcap(nullptr),
60  hGBNhits(nullptr),
61  hGBNhits_Barrel(nullptr),
62  hGBNhits_Endcap(nullptr),
63  hSANhits(nullptr),
64  hSANhits_Barrel(nullptr),
65  hSANhits_Endcap(nullptr),
66  hGBChi2(nullptr),
67  hSAChi2(nullptr),
68  hGBChi2_Barrel(nullptr),
69  hSAChi2_Barrel(nullptr),
70  hGBChi2_Endcap(nullptr),
71  hSAChi2_Endcap(nullptr),
72  hGBInvM(nullptr),
73  hSAInvM(nullptr),
74  hSimInvM(nullptr),
75  hGBInvM_Barrel(nullptr),
76  hSAInvM_Barrel(nullptr),
77  hSimInvM_Barrel(nullptr),
78  hGBInvM_Endcap(nullptr),
79  hSAInvM_Endcap(nullptr),
80  hSimInvM_Endcap(nullptr),
81  hGBInvM_Overlap(nullptr),
82  hSAInvM_Overlap(nullptr),
83  hSimInvM_Overlap(nullptr),
84  hSAPTRec(nullptr),
85  hGBPTRec(nullptr),
86  hSimPT(nullptr),
87  hSAPTRec_Barrel(nullptr),
88  hGBPTRec_Barrel(nullptr),
89  hSimPT_Barrel(nullptr),
90  hSAPTRec_Endcap(nullptr),
91  hGBPTRec_Endcap(nullptr),
92  hSimPT_Endcap(nullptr),
93  hGBPTvsEta(nullptr),
94  hGBPTvsPhi(nullptr),
95  hSAPTvsEta(nullptr),
96  hSAPTvsPhi(nullptr),
97  hSimPTvsEta(nullptr),
98  hSimPTvsPhi(nullptr),
99  hSimPhivsEta(nullptr),
100  hSAPhivsEta(nullptr),
101  hGBPhivsEta(nullptr),
102  hSAPTres(nullptr),
103  hSAinvPTres(nullptr),
104  hGBPTres(nullptr),
105  hGBinvPTres(nullptr),
106  hSAPTres_Barrel(nullptr),
107  hSAPTres_Endcap(nullptr),
108  hGBPTres_Barrel(nullptr),
109  hGBPTres_Endcap(nullptr),
110  hSAPTDiff(nullptr),
111  hGBPTDiff(nullptr),
112  hSAPTDiffvsEta(nullptr),
113  hSAPTDiffvsPhi(nullptr),
114  hGBPTDiffvsEta(nullptr),
115  hGBPTDiffvsPhi(nullptr),
116  hGBinvPTvsEta(nullptr),
117  hGBinvPTvsPhi(nullptr),
118  hSAinvPTvsEta(nullptr),
119  hSAinvPTvsPhi(nullptr),
120  hSAinvPTvsNhits(nullptr),
121  hGBinvPTvsNhits(nullptr),
122  hResidualLocalXDT(nullptr),
123  hResidualLocalPhiDT(nullptr),
124  hResidualLocalThetaDT(nullptr),
125  hResidualLocalYDT(nullptr),
126  hResidualLocalXCSC(nullptr),
127  hResidualLocalPhiCSC(nullptr),
128  hResidualLocalThetaCSC(nullptr),
129  hResidualLocalYCSC(nullptr),
130 
143 
144  hResidualGlobalRPhiDT(nullptr),
145  hResidualGlobalPhiDT(nullptr),
146  hResidualGlobalThetaDT(nullptr),
147  hResidualGlobalZDT(nullptr),
148  hResidualGlobalRPhiCSC(nullptr),
149  hResidualGlobalPhiCSC(nullptr),
150  hResidualGlobalThetaCSC(nullptr),
151  hResidualGlobalRCSC(nullptr),
152 
165 
166  hprofLocalPositionCSC(nullptr),
167  hprofLocalAngleCSC(nullptr),
168  hprofLocalPositionRmsCSC(nullptr),
169  hprofLocalAngleRmsCSC(nullptr),
170  hprofGlobalPositionCSC(nullptr),
171  hprofGlobalAngleCSC(nullptr),
172  hprofGlobalPositionRmsCSC(nullptr),
173  hprofGlobalAngleRmsCSC(nullptr),
174  hprofLocalPositionDT(nullptr),
175  hprofLocalAngleDT(nullptr),
176  hprofLocalPositionRmsDT(nullptr),
177  hprofLocalAngleRmsDT(nullptr),
178  hprofGlobalPositionDT(nullptr),
179  hprofGlobalAngleDT(nullptr),
180  hprofGlobalPositionRmsDT(nullptr),
181  hprofGlobalAngleRmsDT(nullptr),
182  hprofLocalXDT(nullptr),
183  hprofLocalPhiDT(nullptr),
184  hprofLocalThetaDT(nullptr),
185  hprofLocalYDT(nullptr),
186  hprofLocalXCSC(nullptr),
187  hprofLocalPhiCSC(nullptr),
188  hprofLocalThetaCSC(nullptr),
189  hprofLocalYCSC(nullptr),
190  hprofGlobalRPhiDT(nullptr),
191  hprofGlobalPhiDT(nullptr),
192  hprofGlobalThetaDT(nullptr),
193  hprofGlobalZDT(nullptr),
194  hprofGlobalRPhiCSC(nullptr),
195  hprofGlobalPhiCSC(nullptr),
196  hprofGlobalThetaCSC(nullptr),
197  hprofGlobalRCSC(nullptr) {
198  theSTAMuonTag = pset.getParameter<edm::InputTag>("StandAloneTrackCollectionTag");
199  theGLBMuonTag = pset.getParameter<edm::InputTag>("GlobalMuonTrackCollectionTag");
200 
201  theRecHits4DTagDT = pset.getParameter<edm::InputTag>("RecHits4DDTCollectionTag");
202  theRecHits4DTagCSC = pset.getParameter<edm::InputTag>("RecHits4DCSCCollectionTag");
203 
204  theDataType = pset.getUntrackedParameter<std::string>("DataType");
205  ptRangeMin = pset.getUntrackedParameter<double>("ptRangeMin");
206  ptRangeMax = pset.getUntrackedParameter<double>("ptRangeMax");
207  invMassRangeMin = pset.getUntrackedParameter<double>("invMassRangeMin");
208  invMassRangeMax = pset.getUntrackedParameter<double>("invMassRangeMax");
209 
210  doSAplots = pset.getUntrackedParameter<bool>("doSAplots");
211  doGBplots = pset.getUntrackedParameter<bool>("doGBplots");
212  doResplots = pset.getUntrackedParameter<bool>("doResplots");
213 
214  resLocalXRangeStation1 = pset.getUntrackedParameter<double>("resLocalXRangeStation1");
215  resLocalXRangeStation2 = pset.getUntrackedParameter<double>("resLocalXRangeStation2");
216  resLocalXRangeStation3 = pset.getUntrackedParameter<double>("resLocalXRangeStation3");
217  resLocalXRangeStation4 = pset.getUntrackedParameter<double>("resLocalXRangeStation4");
218  resLocalYRangeStation1 = pset.getUntrackedParameter<double>("resLocalYRangeStation1");
219  resLocalYRangeStation2 = pset.getUntrackedParameter<double>("resLocalYRangeStation2");
220  resLocalYRangeStation3 = pset.getUntrackedParameter<double>("resLocalYRangeStation3");
221  resLocalYRangeStation4 = pset.getUntrackedParameter<double>("resLocalYRangeStation4");
222  resPhiRange = pset.getUntrackedParameter<double>("resPhiRange");
223  resThetaRange = pset.getUntrackedParameter<double>("resThetaRange");
224  nbins = pset.getUntrackedParameter<unsigned int>("nbins");
225  min1DTrackRecHitSize = pset.getUntrackedParameter<unsigned int>("min1DTrackRecHitSize");
226  min4DTrackSegmentSize = pset.getUntrackedParameter<unsigned int>("min4DTrackSegmentSize");
227 
228  if (theDataType != "RealData" && theDataType != "SimData")
229  edm::LogError("MuonAlignmentAnalyzer") << "Error in Data Type!!" << std::endl;
230 
231  numberOfSimTracks = 0;
234  numberOfHits = 0;
235 }
std::vector< TH1F * > hResidualGlobalRPhiDT_MB
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::vector< TH1F * > hResidualGlobalZDT_W
std::vector< TH1F * > hResidualLocalXCSC_ME
std::vector< TH1F * > hResidualLocalThetaDT_MB
std::vector< TH1F * > hResidualLocalYCSC_ME
std::vector< TH1F * > hResidualLocalPhiCSC_ME
std::vector< TH1F * > hResidualGlobalRPhiCSC_ME
std::vector< TH1F * > hResidualLocalPhiDT_MB
std::vector< TH1F * > hResidualLocalThetaDT_W
std::vector< TH1F * > hResidualGlobalZDT_MB
std::vector< TH1F * > hResidualGlobalThetaDT_W
std::vector< TH1F * > hResidualGlobalRPhiDT_W
std::vector< TH1F * > hResidualLocalThetaCSC_ME
std::vector< TH1F * > hResidualGlobalPhiCSC_ME
std::vector< TH1F * > hResidualGlobalPhiDT_W
std::vector< TH1F * > hResidualGlobalThetaDT_MB
std::vector< TH1F * > hResidualLocalPhiDT_W
std::vector< TH1F * > hResidualGlobalPhiDT_MB
std::vector< TH1F * > hResidualGlobalThetaCSC_ME
std::vector< TH1F * > hResidualLocalXDT_MB
std::vector< TH1F * > hResidualGlobalRCSC_ME
std::vector< TH1F * > hResidualLocalYDT_W
std::vector< TH1F * > hResidualLocalXDT_W
std::vector< TH1F * > hResidualLocalYDT_MB
MuonAlignmentAnalyzer::~MuonAlignmentAnalyzer ( )
override

Destructor.

Definition at line 238 of file MuonAlignmentAnalyzer.cc.

238 {}

Member Function Documentation

void MuonAlignmentAnalyzer::analyze ( const edm::Event event,
const edm::EventSetup eventSetup 
)
override

Definition at line 1720 of file MuonAlignmentAnalyzer.cc.

References funct::abs(), alongMomentum, PV3DBase< T, PVType, FrameType >::barePhi(), barePhi(), PV3DBase< T, PVType, FrameType >::bareTheta(), relativeConstraints::chamber, CSCDetId::chamber(), PbPb_ZMuSkimMuonDPG_cff::deltaR, detectorCollection, doGBplots, doMatching(), doResplots, doSAplots, HGC3DClusterGenMatchSelector_cfi::dR, relativeConstraints::empty, CSCDetId::endcap(), makeMuonMisalignmentScenario::endcap, PV3DBase< T, PVType, FrameType >::eta(), TrajectoryStateOnSurface::freeState(), fs, edm::EventSetup::get(), TrajectoryStateOnSurface::globalDirection(), TrajectoryStateOnSurface::hasError(), hGBChi2, hGBChi2_Barrel, hGBChi2_Endcap, hGBInvM, hGBInvM_Barrel, hGBInvM_Endcap, hGBInvM_Overlap, hGBinvPTres, hGBinvPTvsEta, hGBinvPTvsNhits, hGBinvPTvsPhi, hGBNhits, hGBNhits_Barrel, hGBNhits_Endcap, hGBNmuons, hGBNmuons_Barrel, hGBNmuons_Endcap, hGBPhivsEta, hGBPTDiff, hGBPTDiffvsEta, hGBPTDiffvsPhi, hGBPTRec, hGBPTRec_Barrel, hGBPTRec_Endcap, hGBPTres, hGBPTres_Barrel, hGBPTres_Endcap, hGBPTvsEta, hGBPTvsPhi, hResidualGlobalPhiCSC, hResidualGlobalPhiCSC_ME, hResidualGlobalPhiDT, hResidualGlobalPhiDT_MB, hResidualGlobalPhiDT_W, hResidualGlobalRCSC, hResidualGlobalRCSC_ME, hResidualGlobalRPhiCSC, hResidualGlobalRPhiCSC_ME, hResidualGlobalRPhiDT, hResidualGlobalRPhiDT_MB, hResidualGlobalRPhiDT_W, hResidualGlobalThetaCSC, hResidualGlobalThetaCSC_ME, hResidualGlobalThetaDT, hResidualGlobalThetaDT_MB, hResidualGlobalThetaDT_W, hResidualGlobalZDT, hResidualGlobalZDT_MB, hResidualGlobalZDT_W, hResidualLocalPhiCSC, hResidualLocalPhiCSC_ME, hResidualLocalPhiDT, hResidualLocalPhiDT_MB, hResidualLocalPhiDT_W, hResidualLocalThetaCSC, hResidualLocalThetaCSC_ME, hResidualLocalThetaDT, hResidualLocalThetaDT_MB, hResidualLocalThetaDT_W, hResidualLocalXCSC, hResidualLocalXCSC_ME, hResidualLocalXDT, hResidualLocalXDT_MB, hResidualLocalXDT_W, hResidualLocalYCSC, hResidualLocalYCSC_ME, hResidualLocalYDT, hResidualLocalYDT_MB, hResidualLocalYDT_W, hSAChi2, hSAChi2_Barrel, hSAChi2_Endcap, hSAInvM, hSAInvM_Barrel, hSAInvM_Endcap, hSAInvM_Overlap, hSAinvPTres, hSAinvPTvsEta, hSAinvPTvsNhits, hSAinvPTvsPhi, hSANhits, hSANhits_Barrel, hSANhits_Endcap, hSANmuons, hSANmuons_Barrel, hSANmuons_Endcap, hSAPhivsEta, hSAPTDiff, hSAPTDiffvsEta, hSAPTDiffvsPhi, hSAPTRec, hSAPTRec_Barrel, hSAPTRec_Endcap, hSAPTres, hSAPTres_Barrel, hSAPTres_Endcap, hSAPTvsEta, hSAPTvsPhi, hSimInvM, hSimInvM_Barrel, hSimInvM_Endcap, hSimInvM_Overlap, hSimNmuons, hSimNmuons_Barrel, hSimNmuons_Endcap, hSimPhivsEta, hSimPT, hSimPT_Barrel, hSimPT_Endcap, hSimPTvsEta, hSimPTvsPhi, mps_fire::i, cuy::ib, GlobalTrackingGeometry::idToDet(), reco::TransientTrack::innermostMeasurementState(), TrajectoryStateOnSurface::isValid(), TrajectoryStateOnSurface::localDirection(), TrajectoryStateOnSurface::localPosition(), PV3DBase< T, PVType, FrameType >::mag(), TFileService::make(), min1DTrackRecHitSize, min4DTrackSegmentSize, nbins, numberOfGBRecTracks, numberOfHits, numberOfSARecTracks, numberOfSimTracks, p1, p2, PV3DBase< T, PVType, FrameType >::perp(), perp(), FreeTrajectoryState::position(), position, Propagator::propagate(), resLocalXRangeStation1, resLocalXRangeStation2, resLocalXRangeStation3, resLocalXRangeStation4, resLocalYRangeStation1, resLocalYRangeStation2, resLocalYRangeStation3, resLocalYRangeStation4, resPhiRange, resThetaRange, CSCDetId::ring(), relativeConstraints::ring, DTChamberId::sector(), muonSimHitMatcherPSet::simTrack, TrackCandidateProducer_cfi::simTracks, DTChamberId::station(), relativeConstraints::station, CSCDetId::station(), muonTagProbeFilters_cff::staTracks, SteppingHelixPropagator_cfi::SteppingHelixPropagator, DetId::subdetId(), GeomDet::surface(), theDataType, theGLBMuonTag, thePropagator, theRecHits4DTagCSC, theRecHits4DTagDT, theSTAMuonTag, GeomDet::toGlobal(), HLT_2018_cff::track, unitsGlobalPhi, unitsGlobalRPhi, unitsGlobalRZ, unitsGlobalTheta, unitsLocalPhi, unitsLocalTheta, unitsLocalX, unitsLocalY, DTChamberId::wheel(), makeMuonMisalignmentScenario::wheel, x, PV3DBase< T, PVType, FrameType >::x(), y, PV3DBase< T, PVType, FrameType >::y(), z, and PV3DBase< T, PVType, FrameType >::z().

1720  {
1721  GlobalVector p1, p2;
1722  std::vector<double> simPar[4]; //pt,eta,phi,charge
1723 
1724  // ######### if data= MC, do Simulation Plots#####
1725  if (theDataType == "SimData") {
1726  double simEta = 0;
1727  double simPt = 0;
1728  double simPhi = 0;
1729  int i = 0, ie = 0, ib = 0;
1730 
1731  // Get the SimTrack collection from the event
1733  event.getByLabel("g4SimHits", simTracks);
1734 
1735  edm::SimTrackContainer::const_iterator simTrack;
1736 
1737  for (simTrack = simTracks->begin(); simTrack != simTracks->end(); ++simTrack) {
1738  if (abs((*simTrack).type()) == 13) {
1739  i++;
1740  simPt = (*simTrack).momentum().Pt();
1741  simEta = (*simTrack).momentum().eta();
1742  simPhi = (*simTrack).momentum().phi();
1744  hSimPT->Fill(simPt);
1745  if (fabs(simEta) < 1.04) {
1746  hSimPT_Barrel->Fill(simPt);
1747  ib++;
1748  } else {
1749  hSimPT_Endcap->Fill(simPt);
1750  ie++;
1751  }
1752  hSimPTvsEta->Fill(simEta, simPt);
1753  hSimPTvsPhi->Fill(simPhi, simPt);
1754  hSimPhivsEta->Fill(simEta, simPhi);
1755 
1756  simPar[0].push_back(simPt);
1757  simPar[1].push_back(simEta);
1758  simPar[2].push_back(simPhi);
1759  simPar[3].push_back((*simTrack).charge());
1760 
1761  // Save the muon pair
1762  if (i == 1)
1763  p1 = GlobalVector((*simTrack).momentum().x(), (*simTrack).momentum().y(), (*simTrack).momentum().z());
1764  if (i == 2)
1765  p2 = GlobalVector((*simTrack).momentum().x(), (*simTrack).momentum().y(), (*simTrack).momentum().z());
1766  }
1767  }
1768  hSimNmuons->Fill(i);
1769  hSimNmuons_Barrel->Fill(ib);
1770  hSimNmuons_Endcap->Fill(ie);
1771 
1772  if (i > 1) { // Take 2 first muons :-(
1773  TLorentzVector mu1(p1.x(), p1.y(), p1.z(), p1.mag());
1774  TLorentzVector mu2(p2.x(), p2.y(), p2.z(), p2.mag());
1775  TLorentzVector pair = mu1 + mu2;
1776  double Minv = pair.M();
1777  hSimInvM->Fill(Minv);
1778  if (fabs(p1.eta()) < 1.04 && fabs(p2.eta()) < 1.04)
1779  hSimInvM_Barrel->Fill(Minv);
1780  else if (fabs(p1.eta()) >= 1.04 && fabs(p2.eta()) >= 1.04)
1781  hSimInvM_Endcap->Fill(Minv);
1782  else
1783  hSimInvM_Overlap->Fill(Minv);
1784  }
1785 
1786  } //simData
1787 
1788  // ############ Stand Alone Muon plots ###############
1789  if (doSAplots) {
1790  double SArecPt = 0.;
1791  double SAeta = 0.;
1792  double SAphi = 0.;
1793  int i = 0, ie = 0, ib = 0;
1794  double ich = 0;
1795 
1796  // Get the RecTrack collection from the event
1798  event.getByLabel(theSTAMuonTag, staTracks);
1799  numberOfSARecTracks += staTracks->size();
1800 
1801  reco::TrackCollection::const_iterator staTrack;
1802 
1803  for (staTrack = staTracks->begin(); staTrack != staTracks->end(); ++staTrack) {
1804  i++;
1805 
1806  SArecPt = (*staTrack).pt();
1807  SAeta = (*staTrack).eta();
1808  SAphi = (*staTrack).phi();
1809  ich = (*staTrack).charge();
1810 
1811  hSAPTRec->Fill(SArecPt);
1812  hSAPhivsEta->Fill(SAeta, SAphi);
1813  hSAChi2->Fill((*staTrack).chi2());
1814  hSANhits->Fill((*staTrack).numberOfValidHits());
1815  if (fabs(SAeta) < 1.04) {
1816  hSAPTRec_Barrel->Fill(SArecPt);
1817  hSAChi2_Barrel->Fill((*staTrack).chi2());
1818  hSANhits_Barrel->Fill((*staTrack).numberOfValidHits());
1819  ib++;
1820  } else {
1821  hSAPTRec_Endcap->Fill(SArecPt);
1822  hSAChi2_Endcap->Fill((*staTrack).chi2());
1823  hSANhits_Endcap->Fill((*staTrack).numberOfValidHits());
1824  ie++;
1825  }
1826 
1827  // save the muon pair
1828  if (i == 1)
1829  p1 = GlobalVector((*staTrack).momentum().x(), (*staTrack).momentum().y(), (*staTrack).momentum().z());
1830  if (i == 2)
1831  p2 = GlobalVector((*staTrack).momentum().x(), (*staTrack).momentum().y(), (*staTrack).momentum().z());
1832 
1833  if (SArecPt && theDataType == "SimData") {
1834  double candDeltaR = -999.0, dR;
1835  int iCand = 0;
1836  if (!simPar[0].empty()) {
1837  for (unsigned int iSim = 0; iSim < simPar[0].size(); iSim++) {
1838  dR = deltaR(SAeta, SAphi, simPar[1][iSim], simPar[2][iSim]);
1839  if (candDeltaR < 0 || dR < candDeltaR) {
1840  candDeltaR = dR;
1841  iCand = iSim;
1842  }
1843  }
1844  }
1845 
1846  double simPt = simPar[0][iCand];
1847  hSAPTres->Fill((SArecPt - simPt) / simPt);
1848  if (fabs(SAeta) < 1.04)
1849  hSAPTres_Barrel->Fill((SArecPt - simPt) / simPt);
1850  else
1851  hSAPTres_Endcap->Fill((SArecPt - simPt) / simPt);
1852 
1853  hSAPTDiff->Fill(SArecPt - simPt);
1854 
1855  hSAPTDiffvsEta->Fill(SAeta, SArecPt - simPt);
1856  hSAPTDiffvsPhi->Fill(SAphi, SArecPt - simPt);
1857  double ptInvRes = (ich / SArecPt - simPar[3][iCand] / simPt) / (simPar[3][iCand] / simPt);
1858  hSAinvPTres->Fill(ptInvRes);
1859 
1860  hSAinvPTvsEta->Fill(SAeta, ptInvRes);
1861  hSAinvPTvsPhi->Fill(SAphi, ptInvRes);
1862  hSAinvPTvsNhits->Fill((*staTrack).numberOfValidHits(), ptInvRes);
1863  }
1864 
1865  hSAPTvsEta->Fill(SAeta, SArecPt);
1866  hSAPTvsPhi->Fill(SAphi, SArecPt);
1867  }
1868 
1869  hSANmuons->Fill(i);
1870  hSANmuons_Barrel->Fill(ib);
1871  hSANmuons_Endcap->Fill(ie);
1872 
1873  if (i > 1) { // Take 2 first muons :-(
1874  TLorentzVector mu1(p1.x(), p1.y(), p1.z(), p1.mag());
1875  TLorentzVector mu2(p2.x(), p2.y(), p2.z(), p2.mag());
1876  TLorentzVector pair = mu1 + mu2;
1877  double Minv = pair.M();
1878  hSAInvM->Fill(Minv);
1879  if (fabs(p1.eta()) < 1.04 && fabs(p2.eta()) < 1.04)
1880  hSAInvM_Barrel->Fill(Minv);
1881  else if (fabs(p1.eta()) >= 1.04 && fabs(p2.eta()) >= 1.04)
1882  hSAInvM_Endcap->Fill(Minv);
1883  else
1884  hSAInvM_Overlap->Fill(Minv);
1885  } // 2 first muons
1886 
1887  } //end doSAplots
1888 
1889  // ############### Global Muons plots ##########
1890 
1891  if (doGBplots) {
1892  // Get the RecTrack collection from the event
1894  event.getByLabel(theGLBMuonTag, glbTracks);
1895  numberOfGBRecTracks += glbTracks->size();
1896 
1897  double GBrecPt = 0;
1898  double GBeta = 0;
1899  double GBphi = 0;
1900  double ich = 0;
1901  int i = 0, ie = 0, ib = 0;
1902 
1903  reco::TrackCollection::const_iterator glbTrack;
1904 
1905  for (glbTrack = glbTracks->begin(); glbTrack != glbTracks->end(); ++glbTrack) {
1906  i++;
1907 
1908  GBrecPt = (*glbTrack).pt();
1909  GBeta = (*glbTrack).eta();
1910  GBphi = (*glbTrack).phi();
1911  ich = (*glbTrack).charge();
1912 
1913  hGBPTRec->Fill(GBrecPt);
1914  hGBPhivsEta->Fill(GBeta, GBphi);
1915  hGBChi2->Fill((*glbTrack).chi2());
1916  hGBNhits->Fill((*glbTrack).numberOfValidHits());
1917  if (fabs(GBeta) < 1.04) {
1918  hGBPTRec_Barrel->Fill(GBrecPt);
1919  hGBChi2_Barrel->Fill((*glbTrack).chi2());
1920  hGBNhits_Barrel->Fill((*glbTrack).numberOfValidHits());
1921  ib++;
1922  } else {
1923  hGBPTRec_Endcap->Fill(GBrecPt);
1924  hGBChi2_Endcap->Fill((*glbTrack).chi2());
1925  hGBNhits_Endcap->Fill((*glbTrack).numberOfValidHits());
1926  ie++;
1927  }
1928 
1929  // save the muon pair
1930  if (i == 1)
1931  p1 = GlobalVector((*glbTrack).momentum().x(), (*glbTrack).momentum().y(), (*glbTrack).momentum().z());
1932  if (i == 2)
1933  p2 = GlobalVector((*glbTrack).momentum().x(), (*glbTrack).momentum().y(), (*glbTrack).momentum().z());
1934 
1935  if (GBrecPt && theDataType == "SimData") {
1936  double candDeltaR = -999.0, dR;
1937  int iCand = 0;
1938  if (!simPar[0].empty()) {
1939  for (unsigned int iSim = 0; iSim < simPar[0].size(); iSim++) {
1940  dR = deltaR(GBeta, GBphi, simPar[1][iSim], simPar[2][iSim]);
1941  if (candDeltaR < 0 || dR < candDeltaR) {
1942  candDeltaR = dR;
1943  iCand = iSim;
1944  }
1945  }
1946  }
1947 
1948  double simPt = simPar[0][iCand];
1949 
1950  hGBPTres->Fill((GBrecPt - simPt) / simPt);
1951  if (fabs(GBeta) < 1.04)
1952  hGBPTres_Barrel->Fill((GBrecPt - simPt) / simPt);
1953  else
1954  hGBPTres_Endcap->Fill((GBrecPt - simPt) / simPt);
1955 
1956  hGBPTDiff->Fill(GBrecPt - simPt);
1957 
1958  hGBPTDiffvsEta->Fill(GBeta, GBrecPt - simPt);
1959  hGBPTDiffvsPhi->Fill(GBphi, GBrecPt - simPt);
1960 
1961  double ptInvRes = (ich / GBrecPt - simPar[3][iCand] / simPt) / (simPar[3][iCand] / simPt);
1962  hGBinvPTres->Fill(ptInvRes);
1963 
1964  hGBinvPTvsEta->Fill(GBeta, ptInvRes);
1965  hGBinvPTvsPhi->Fill(GBphi, ptInvRes);
1966  hGBinvPTvsNhits->Fill((*glbTrack).numberOfValidHits(), ptInvRes);
1967  }
1968 
1969  hGBPTvsEta->Fill(GBeta, GBrecPt);
1970  hGBPTvsPhi->Fill(GBphi, GBrecPt);
1971  }
1972 
1973  hGBNmuons->Fill(i);
1974  hGBNmuons_Barrel->Fill(ib);
1975  hGBNmuons_Endcap->Fill(ie);
1976 
1977  if (i > 1) { // Take 2 first muons :-(
1978  TLorentzVector mu1(p1.x(), p1.y(), p1.z(), p1.mag());
1979  TLorentzVector mu2(p2.x(), p2.y(), p2.z(), p2.mag());
1980  TLorentzVector pair = mu1 + mu2;
1981  double Minv = pair.M();
1982  hGBInvM->Fill(Minv);
1983  if (fabs(p1.eta()) < 1.04 && fabs(p2.eta()) < 1.04)
1984  hGBInvM_Barrel->Fill(Minv);
1985  else if (fabs(p1.eta()) >= 1.04 && fabs(p2.eta()) >= 1.04)
1986  hGBInvM_Endcap->Fill(Minv);
1987  else
1988  hGBInvM_Overlap->Fill(Minv);
1989  }
1990 
1991  } //end doGBplots
1992 
1993  // ############ Residual plots ###################
1994 
1995  if (doResplots) {
1996  edm::ESHandle<MagneticField> theMGField;
1997  eventSetup.get<IdealMagneticFieldRecord>().get(theMGField);
1998 
1999  edm::ESHandle<GlobalTrackingGeometry> theTrackingGeometry;
2000  eventSetup.get<GlobalTrackingGeometryRecord>().get(theTrackingGeometry);
2001 
2002  // Get the RecTrack collection from the event
2004  event.getByLabel(theSTAMuonTag, staTracks);
2005 
2006  // Get the 4D DTSegments
2007  edm::Handle<DTRecSegment4DCollection> all4DSegmentsDT;
2008  event.getByLabel(theRecHits4DTagDT, all4DSegmentsDT);
2010 
2011  // Get the 4D CSCSegments
2012  edm::Handle<CSCSegmentCollection> all4DSegmentsCSC;
2013  event.getByLabel(theRecHits4DTagCSC, all4DSegmentsCSC);
2015 
2016  //Vectors used to perform the matching between Segments and hits from Track
2017  intDVector indexCollectionDT;
2018  intDVector indexCollectionCSC;
2019 
2020  /* std::cout << "<MuonAlignmentAnalyzer> List of DTSegments found in Local Reconstruction" << std::endl;
2021  std::cout << "Number: " << all4DSegmentsDT->size() << std::endl;
2022  for (segmentDT = all4DSegmentsDT->begin(); segmentDT != all4DSegmentsDT->end(); ++segmentDT){
2023  const GeomDet* geomDet = theTrackingGeometry->idToDet((*segmentDT).geographicalId());
2024  std::cout << "<MuonAlignmentAnalyzer> " << geomDet->toGlobal((*segmentDT).localPosition()) << std::endl;
2025  std::cout << "<MuonAlignmentAnalyzer> Local " << (*segmentDT).localPosition() << std::endl;
2026  }
2027  std::cout << "<MuonAlignmentAnalyzer> List of CSCSegments found in Local Reconstruction" << std::endl;
2028  for (segmentCSC = all4DSegmentsCSC->begin(); segmentCSC != all4DSegmentsCSC->end(); ++segmentCSC){
2029  const GeomDet* geomDet = theTrackingGeometry->idToDet((*segmentCSC).geographicalId());
2030  std::cout << "<MuonAlignmentAnalyzer>" << geomDet->toGlobal((*segmentCSC).localPosition()) << std::endl;
2031  }
2032 */
2034 
2035  reco::TrackCollection::const_iterator staTrack;
2036  for (staTrack = staTracks->begin(); staTrack != staTracks->end(); ++staTrack) {
2037  int countPoints = 0;
2038 
2039  reco::TransientTrack track(*staTrack, &*theMGField, theTrackingGeometry);
2040 
2041  if (staTrack->numberOfValidHits() > (min1DTrackRecHitSize - 1)) {
2042  RecHitVector my4DTrack = this->doMatching(
2043  *staTrack, all4DSegmentsDT, all4DSegmentsCSC, &indexCollectionDT, &indexCollectionCSC, theTrackingGeometry);
2044 
2045  //cut in number of segments
2046 
2047  if (my4DTrack.size() > (min4DTrackSegmentSize - 1)) {
2048  // start propagation
2049  // TrajectoryStateOnSurface innerTSOS = track.impactPointState();
2050  TrajectoryStateOnSurface innerTSOS = track.innermostMeasurementState();
2051 
2052  //If the state is valid
2053  if (innerTSOS.isValid()) {
2054  //Loop over Associated segments
2055  for (RecHitVector::iterator rechit = my4DTrack.begin(); rechit != my4DTrack.end(); ++rechit) {
2056  const GeomDet *geomDet = theTrackingGeometry->idToDet((*rechit)->geographicalId());
2057  //Otherwise the propagator could throw an exception
2058  const Plane *pDest = dynamic_cast<const Plane *>(&geomDet->surface());
2059  const Cylinder *cDest = dynamic_cast<const Cylinder *>(&geomDet->surface());
2060 
2061  if (pDest != nullptr || cDest != nullptr) { //Donde antes iba el try
2062 
2063  TrajectoryStateOnSurface destiny =
2064  thePropagator->propagate(*(innerTSOS.freeState()), geomDet->surface());
2065 
2066  if (!destiny.isValid() || !destiny.hasError())
2067  continue;
2068 
2069  /* std::cout << "<MuonAlignmentAnalyzer> Segment: " << geomDet->toGlobal((*rechit)->localPosition()) << std::endl;
2070  std::cout << "<MuonAlignmentAnalyzer> Segment local: " << (*rechit)->localPosition() << std::endl;
2071  std::cout << "<MuonAlignmentAnalyzer> Predicted: " << destiny.freeState()->position() << std::endl;
2072  std::cout << "<MuonAlignmentAnalyzer> Predicted local: " << destiny.localPosition() << std::endl;
2073 */
2074  const long rawId = (*rechit)->geographicalId().rawId();
2075  int position = -1;
2076  bool newDetector = true;
2077  //Loop over the DetectorCollection to see if the detector is new and requires a new entry
2078  for (std::vector<long>::iterator myIds = detectorCollection.begin(); myIds != detectorCollection.end();
2079  myIds++) {
2080  ++position;
2081  //If matches newDetector = false
2082  if (*myIds == rawId) {
2083  newDetector = false;
2084  break;
2085  }
2086  }
2087 
2088  DetId myDet(rawId);
2089  int det = myDet.subdetId();
2090  int wheel = 0, station = 0, sector = 0;
2091  int endcap = 0, ring = 0, chamber = 0;
2092 
2093  double residualGlobalRPhi = 0, residualGlobalPhi = 0, residualGlobalR = 0, residualGlobalTheta = 0,
2094  residualGlobalZ = 0;
2095  double residualLocalX = 0, residualLocalPhi = 0, residualLocalY = 0, residualLocalTheta = 0;
2096 
2097  // Fill generic histograms
2098  //If it's a DT
2099  if (det == 1) {
2100  DTChamberId myChamber(rawId);
2101  wheel = myChamber.wheel();
2102  station = myChamber.station();
2103  sector = myChamber.sector();
2104 
2105  //global
2106  residualGlobalRPhi =
2107  geomDet->toGlobal((*rechit)->localPosition()).perp() *
2108  geomDet->toGlobal((*rechit)->localPosition()).barePhi() -
2109  destiny.freeState()->position().perp() * destiny.freeState()->position().barePhi();
2110 
2111  //local
2112  residualLocalX = (*rechit)->localPosition().x() - destiny.localPosition().x();
2113 
2114  //global
2115  residualGlobalPhi = geomDet->toGlobal(((RecSegment *)(*rechit))->localDirection()).barePhi() -
2116  destiny.globalDirection().barePhi();
2117 
2118  //local
2119  residualLocalPhi = atan2(((RecSegment *)(*rechit))->localDirection().z(),
2120  ((RecSegment *)(*rechit))->localDirection().x()) -
2121  atan2(destiny.localDirection().z(), destiny.localDirection().x());
2122 
2123  hResidualGlobalRPhiDT->Fill(residualGlobalRPhi);
2124  hResidualGlobalPhiDT->Fill(residualGlobalPhi);
2125  hResidualLocalXDT->Fill(residualLocalX);
2126  hResidualLocalPhiDT->Fill(residualLocalPhi);
2127 
2128  if (station != 4) {
2129  //global
2130  residualGlobalZ =
2131  geomDet->toGlobal((*rechit)->localPosition()).z() - destiny.freeState()->position().z();
2132 
2133  //local
2134  residualLocalY = (*rechit)->localPosition().y() - destiny.localPosition().y();
2135 
2136  //global
2137  residualGlobalTheta = geomDet->toGlobal(((RecSegment *)(*rechit))->localDirection()).bareTheta() -
2138  destiny.globalDirection().bareTheta();
2139 
2140  //local
2141  residualLocalTheta = atan2(((RecSegment *)(*rechit))->localDirection().z(),
2142  ((RecSegment *)(*rechit))->localDirection().y()) -
2143  atan2(destiny.localDirection().z(), destiny.localDirection().y());
2144 
2145  hResidualGlobalThetaDT->Fill(residualGlobalTheta);
2146  hResidualGlobalZDT->Fill(residualGlobalZ);
2147  hResidualLocalThetaDT->Fill(residualLocalTheta);
2148  hResidualLocalYDT->Fill(residualLocalY);
2149  }
2150 
2151  int index = wheel + 2;
2152  hResidualGlobalRPhiDT_W[index]->Fill(residualGlobalRPhi);
2153  hResidualGlobalPhiDT_W[index]->Fill(residualGlobalPhi);
2154  hResidualLocalXDT_W[index]->Fill(residualLocalX);
2155  hResidualLocalPhiDT_W[index]->Fill(residualLocalPhi);
2156  if (station != 4) {
2157  hResidualGlobalThetaDT_W[index]->Fill(residualGlobalTheta);
2158  hResidualGlobalZDT_W[index]->Fill(residualGlobalZ);
2159  hResidualLocalThetaDT_W[index]->Fill(residualLocalTheta);
2160  hResidualLocalYDT_W[index]->Fill(residualLocalY);
2161  }
2162 
2163  index = wheel * 4 + station + 7;
2164  hResidualGlobalRPhiDT_MB[index]->Fill(residualGlobalRPhi);
2165  hResidualGlobalPhiDT_MB[index]->Fill(residualGlobalPhi);
2166  hResidualLocalXDT_MB[index]->Fill(residualLocalX);
2167  hResidualLocalPhiDT_MB[index]->Fill(residualLocalPhi);
2168 
2169  if (station != 4) {
2170  hResidualGlobalThetaDT_MB[index]->Fill(residualGlobalTheta);
2171  hResidualGlobalZDT_MB[index]->Fill(residualGlobalZ);
2172  hResidualLocalThetaDT_MB[index]->Fill(residualLocalTheta);
2173  hResidualLocalYDT_MB[index]->Fill(residualLocalY);
2174  }
2175  } else if (det == 2) {
2176  CSCDetId myChamber(rawId);
2177  endcap = myChamber.endcap();
2178  station = myChamber.station();
2179  if (endcap == 2)
2180  station = -station;
2181  ring = myChamber.ring();
2182  chamber = myChamber.chamber();
2183 
2184  //global
2185  residualGlobalRPhi =
2186  geomDet->toGlobal((*rechit)->localPosition()).perp() *
2187  geomDet->toGlobal((*rechit)->localPosition()).barePhi() -
2188  destiny.freeState()->position().perp() * destiny.freeState()->position().barePhi();
2189 
2190  //local
2191  residualLocalX = (*rechit)->localPosition().x() - destiny.localPosition().x();
2192 
2193  //global
2194  residualGlobalR =
2195  geomDet->toGlobal((*rechit)->localPosition()).perp() - destiny.freeState()->position().perp();
2196 
2197  //local
2198  residualLocalY = (*rechit)->localPosition().y() - destiny.localPosition().y();
2199 
2200  //global
2201  residualGlobalPhi = geomDet->toGlobal(((RecSegment *)(*rechit))->localDirection()).barePhi() -
2202  destiny.globalDirection().barePhi();
2203 
2204  //local
2205  residualLocalPhi = atan2(((RecSegment *)(*rechit))->localDirection().y(),
2206  ((RecSegment *)(*rechit))->localDirection().x()) -
2207  atan2(destiny.localDirection().y(), destiny.localDirection().x());
2208 
2209  //global
2210  residualGlobalTheta = geomDet->toGlobal(((RecSegment *)(*rechit))->localDirection()).bareTheta() -
2211  destiny.globalDirection().bareTheta();
2212 
2213  //local
2214  residualLocalTheta = atan2(((RecSegment *)(*rechit))->localDirection().y(),
2215  ((RecSegment *)(*rechit))->localDirection().z()) -
2216  atan2(destiny.localDirection().y(), destiny.localDirection().z());
2217 
2218  hResidualGlobalRPhiCSC->Fill(residualGlobalRPhi);
2219  hResidualGlobalPhiCSC->Fill(residualGlobalPhi);
2220  hResidualGlobalThetaCSC->Fill(residualGlobalTheta);
2221  hResidualGlobalRCSC->Fill(residualGlobalR);
2222  hResidualLocalXCSC->Fill(residualLocalX);
2223  hResidualLocalPhiCSC->Fill(residualLocalPhi);
2224  hResidualLocalThetaCSC->Fill(residualLocalTheta);
2225  hResidualLocalYCSC->Fill(residualLocalY);
2226 
2227  int index = 2 * station + ring + 7;
2228  if (station == -1) {
2229  index = 5 + ring;
2230  if (ring == 4)
2231  index = 6;
2232  }
2233  if (station == 1) {
2234  index = 8 + ring;
2235  if (ring == 4)
2236  index = 9;
2237  }
2238  hResidualGlobalRPhiCSC_ME[index]->Fill(residualGlobalRPhi);
2239  hResidualGlobalPhiCSC_ME[index]->Fill(residualGlobalPhi);
2240  hResidualGlobalThetaCSC_ME[index]->Fill(residualGlobalTheta);
2241  hResidualGlobalRCSC_ME[index]->Fill(residualGlobalR);
2242  hResidualLocalXCSC_ME[index]->Fill(residualLocalX);
2243  hResidualLocalPhiCSC_ME[index]->Fill(residualLocalPhi);
2244  hResidualLocalThetaCSC_ME[index]->Fill(residualLocalTheta);
2245  hResidualLocalYCSC_ME[index]->Fill(residualLocalY);
2246 
2247  } else {
2248  residualGlobalRPhi = 0, residualGlobalPhi = 0, residualGlobalR = 0, residualGlobalTheta = 0,
2249  residualGlobalZ = 0;
2250  residualLocalX = 0, residualLocalPhi = 0, residualLocalY = 0, residualLocalTheta = 0,
2251  residualLocalY = 0;
2252  }
2253  // Fill individual chamber histograms
2254  if (newDetector) {
2255  //Create an RawIdDetector, fill it and push it into the collection
2256  detectorCollection.push_back(rawId);
2257 
2258  //This piece of code calculates the range of the residuals
2259  double rangeX = 3.0, rangeY = 5.;
2260  switch (abs(station)) {
2261  case 1: {
2262  rangeX = resLocalXRangeStation1;
2263  rangeY = resLocalYRangeStation1;
2264  } break;
2265  case 2: {
2266  rangeX = resLocalXRangeStation2;
2267  rangeY = resLocalYRangeStation2;
2268  } break;
2269  case 3: {
2270  rangeX = resLocalXRangeStation3;
2271  rangeY = resLocalYRangeStation3;
2272  } break;
2273  case 4: {
2274  rangeX = resLocalXRangeStation4;
2275  rangeY = resLocalYRangeStation4;
2276  } break;
2277  default:
2278  break;
2279  }
2280 
2281  //create new histograms
2282 
2283  char nameOfHistoLocalX[50];
2284  char nameOfHistoLocalTheta[50];
2285  char nameOfHistoLocalY[50];
2286  char nameOfHistoLocalPhi[50];
2287  char nameOfHistoGlobalRPhi[50];
2288  char nameOfHistoGlobalTheta[50];
2289  char nameOfHistoGlobalR[50];
2290  char nameOfHistoGlobalPhi[50];
2291  char nameOfHistoGlobalZ[50];
2292 
2293  if (det == 1) { // DT
2294  snprintf(nameOfHistoLocalX,
2295  sizeof(nameOfHistoLocalX),
2296  "ResidualLocalX_W%dMB%1dS%1d",
2297  wheel,
2298  station,
2299  sector);
2300  snprintf(nameOfHistoLocalPhi,
2301  sizeof(nameOfHistoLocalPhi),
2302  "ResidualLocalPhi_W%dMB%1dS%1d",
2303  wheel,
2304  station,
2305  sector);
2306  snprintf(nameOfHistoGlobalRPhi,
2307  sizeof(nameOfHistoGlobalRPhi),
2308  "ResidualGlobalRPhi_W%dMB%1dS%1d",
2309  wheel,
2310  station,
2311  sector);
2312  snprintf(nameOfHistoGlobalPhi,
2313  sizeof(nameOfHistoGlobalPhi),
2314  "ResidualGlobalPhi_W%dMB%1dS%1d",
2315  wheel,
2316  station,
2317  sector);
2318  snprintf(nameOfHistoLocalTheta,
2319  sizeof(nameOfHistoLocalTheta),
2320  "ResidualLocalTheta_W%dMB%1dS%1d",
2321  wheel,
2322  station,
2323  sector);
2324  snprintf(nameOfHistoLocalY,
2325  sizeof(nameOfHistoLocalY),
2326  "ResidualLocalY_W%dMB%1dS%1d",
2327  wheel,
2328  station,
2329  sector);
2330  TH1F *histoLocalY = fs->make<TH1F>(nameOfHistoLocalY, nameOfHistoLocalY, nbins, -rangeY, rangeY);
2331  unitsLocalY.push_back(histoLocalY);
2332  snprintf(nameOfHistoGlobalTheta,
2333  sizeof(nameOfHistoGlobalTheta),
2334  "ResidualGlobalTheta_W%dMB%1dS%1d",
2335  wheel,
2336  station,
2337  sector);
2338  snprintf(nameOfHistoGlobalZ,
2339  sizeof(nameOfHistoGlobalZ),
2340  "ResidualGlobalZ_W%dMB%1dS%1d",
2341  wheel,
2342  station,
2343  sector);
2344  TH1F *histoGlobalZ = fs->make<TH1F>(nameOfHistoGlobalZ, nameOfHistoGlobalZ, nbins, -rangeY, rangeY);
2345  unitsGlobalRZ.push_back(histoGlobalZ);
2346 
2347  } else if (det == 2) { //CSC
2348  snprintf(nameOfHistoLocalX,
2349  sizeof(nameOfHistoLocalX),
2350  "ResidualLocalX_ME%dR%1dC%1d",
2351  station,
2352  ring,
2353  chamber);
2354  snprintf(nameOfHistoLocalPhi,
2355  sizeof(nameOfHistoLocalPhi),
2356  "ResidualLocalPhi_ME%dR%1dC%1d",
2357  station,
2358  ring,
2359  chamber);
2360  snprintf(nameOfHistoLocalTheta,
2361  sizeof(nameOfHistoLocalTheta),
2362  "ResidualLocalTheta_ME%dR%1dC%1d",
2363  station,
2364  ring,
2365  chamber);
2366  snprintf(nameOfHistoLocalY,
2367  sizeof(nameOfHistoLocalY),
2368  "ResidualLocalY_ME%dR%1dC%1d",
2369  station,
2370  ring,
2371  chamber);
2372  TH1F *histoLocalY = fs->make<TH1F>(nameOfHistoLocalY, nameOfHistoLocalY, nbins, -rangeY, rangeY);
2373  unitsLocalY.push_back(histoLocalY);
2374  snprintf(nameOfHistoGlobalRPhi,
2375  sizeof(nameOfHistoGlobalRPhi),
2376  "ResidualGlobalRPhi_ME%dR%1dC%1d",
2377  station,
2378  ring,
2379  chamber);
2380  snprintf(nameOfHistoGlobalPhi,
2381  sizeof(nameOfHistoGlobalPhi),
2382  "ResidualGlobalPhi_ME%dR%1dC%1d",
2383  station,
2384  ring,
2385  chamber);
2386  snprintf(nameOfHistoGlobalTheta,
2387  sizeof(nameOfHistoGlobalTheta),
2388  "ResidualGlobalTheta_ME%dR%1dC%1d",
2389  station,
2390  ring,
2391  chamber);
2392  snprintf(nameOfHistoGlobalR,
2393  sizeof(nameOfHistoGlobalR),
2394  "ResidualGlobalR_ME%dR%1dC%1d",
2395  station,
2396  ring,
2397  chamber);
2398  TH1F *histoGlobalR = fs->make<TH1F>(nameOfHistoGlobalR, nameOfHistoGlobalR, nbins, -rangeY, rangeY);
2399  unitsGlobalRZ.push_back(histoGlobalR);
2400  }
2401 
2402  // Common histos to DT and CSC
2403  TH1F *histoLocalX = fs->make<TH1F>(nameOfHistoLocalX, nameOfHistoLocalX, nbins, -rangeX, rangeX);
2404  TH1F *histoGlobalRPhi =
2405  fs->make<TH1F>(nameOfHistoGlobalRPhi, nameOfHistoGlobalRPhi, nbins, -rangeX, rangeX);
2406  TH1F *histoLocalPhi =
2407  fs->make<TH1F>(nameOfHistoLocalPhi, nameOfHistoLocalPhi, nbins, -resPhiRange, resPhiRange);
2408  TH1F *histoGlobalPhi =
2409  fs->make<TH1F>(nameOfHistoGlobalPhi, nameOfHistoGlobalPhi, nbins, -resPhiRange, resPhiRange);
2410  TH1F *histoGlobalTheta = fs->make<TH1F>(
2411  nameOfHistoGlobalTheta, nameOfHistoGlobalTheta, nbins, -resThetaRange, resThetaRange);
2412  TH1F *histoLocalTheta = fs->make<TH1F>(
2413  nameOfHistoLocalTheta, nameOfHistoLocalTheta, nbins, -resThetaRange, resThetaRange);
2414 
2415  histoLocalX->Fill(residualLocalX);
2416  histoLocalPhi->Fill(residualLocalPhi);
2417  histoLocalTheta->Fill(residualLocalTheta);
2418  histoGlobalRPhi->Fill(residualGlobalRPhi);
2419  histoGlobalPhi->Fill(residualGlobalPhi);
2420  histoGlobalTheta->Fill(residualGlobalTheta);
2421  //Push them into their respective vectors
2422  unitsLocalX.push_back(histoLocalX);
2423  unitsLocalPhi.push_back(histoLocalPhi);
2424  unitsLocalTheta.push_back(histoLocalTheta);
2425  unitsGlobalRPhi.push_back(histoGlobalRPhi);
2426  unitsGlobalPhi.push_back(histoGlobalPhi);
2427  unitsGlobalTheta.push_back(histoGlobalTheta);
2428 
2429  } // new detector
2430  else {
2431  //If the detector was not new, just fill the histogram
2432  unitsLocalX.at(position)->Fill(residualLocalX);
2433  unitsLocalPhi.at(position)->Fill(residualLocalPhi);
2434  unitsLocalTheta.at(position)->Fill(residualLocalTheta);
2435  unitsGlobalRPhi.at(position)->Fill(residualGlobalRPhi);
2436  unitsGlobalPhi.at(position)->Fill(residualGlobalPhi);
2437  unitsGlobalTheta.at(position)->Fill(residualGlobalTheta);
2438  if (det == 1) {
2439  unitsLocalY.at(position)->Fill(residualLocalY);
2440  unitsGlobalRZ.at(position)->Fill(residualGlobalZ);
2441  } else if (det == 2) {
2442  unitsLocalY.at(position)->Fill(residualLocalY);
2443  unitsGlobalRZ.at(position)->Fill(residualGlobalR);
2444  }
2445  }
2446 
2447  countPoints++;
2448 
2449  innerTSOS = destiny;
2450 
2451  } else {
2452  edm::LogError("MuonAlignmentAnalyzer") << " Error!! Exception in propagator catched" << std::endl;
2453  continue;
2454  }
2455 
2456  } //loop over my4DTrack
2457  } //TSOS was valid
2458 
2459  } // cut in at least 4 segments
2460 
2461  } //end cut in RecHitsSize>36
2462  numberOfHits = numberOfHits + countPoints;
2463  } //loop over STAtracks
2464 
2465  delete thePropagator;
2466 
2467  } //end doResplots
2468 }
std::vector< TH1F * > hResidualGlobalRPhiDT_MB
T barePhi() const
std::vector< TH1F * > hResidualGlobalZDT_W
std::vector< TH1F * > hResidualLocalXCSC_ME
std::vector< TH1F * > hResidualLocalThetaDT_MB
T perp() const
Definition: PV3DBase.h:69
std::vector< TH1F * > unitsGlobalPhi
RecHitVector doMatching(const reco::Track &, edm::Handle< DTRecSegment4DCollection > &, edm::Handle< CSCSegmentCollection > &, intDVector *, intDVector *, edm::ESHandle< GlobalTrackingGeometry > &)
std::vector< TH1F * > hResidualLocalYCSC_ME
LocalVector localDirection() const
std::vector< TH1F * > hResidualLocalPhiCSC_ME
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Definition: GeomDet.h:49
std::vector< std::vector< int > > intDVector
std::vector< TH1F * > hResidualGlobalRPhiCSC_ME
std::vector< TH1F * > hResidualLocalPhiDT_MB
T bareTheta() const
Definition: PV3DBase.h:71
T y() const
Definition: PV3DBase.h:60
edm::Service< TFileService > fs
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
std::vector< TH1F * > unitsGlobalRPhi
std::vector< TH1F * > hResidualLocalThetaDT_W
std::vector< TH1F * > hResidualGlobalZDT_MB
std::vector< TH1F * > unitsLocalX
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
Definition: Plane.h:16
std::vector< TH1F * > hResidualGlobalThetaDT_W
std::vector< TH1F * > unitsLocalTheta
T barePhi() const
Definition: PV3DBase.h:65
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:43
std::vector< TH1F * > hResidualGlobalRPhiDT_W
std::vector< TH1F * > hResidualLocalThetaCSC_ME
T mag() const
Definition: PV3DBase.h:64
FreeTrajectoryState const * freeState(bool withErrors=true) const
T z() const
Definition: PV3DBase.h:61
std::vector< TH1F * > unitsGlobalRZ
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double p2[4]
Definition: TauolaWrapper.h:90
std::vector< TH1F * > hResidualGlobalPhiCSC_ME
std::vector< TH1F * > hResidualGlobalPhiDT_W
std::vector< TH1F * > unitsLocalPhi
Definition: DetId.h:17
GlobalPoint position() const
std::vector< TH1F * > hResidualGlobalThetaDT_MB
std::vector< TH1F * > unitsLocalY
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
std::vector< TH1F * > hResidualLocalPhiDT_W
std::vector< TH1F * > hResidualGlobalPhiDT_MB
T eta() const
Definition: PV3DBase.h:73
std::vector< TH1F * > hResidualGlobalThetaCSC_ME
T perp() const
Magnitude of transverse component.
double p1[4]
Definition: TauolaWrapper.h:89
static int position[264][3]
Definition: ReadPGInfo.cc:289
T get() const
Definition: EventSetup.h:73
const GeomDet * idToDet(DetId) const override
std::vector< TH1F * > hResidualLocalXDT_MB
std::vector< TH1F * > hResidualGlobalRCSC_ME
std::vector< TH1F * > hResidualLocalYDT_W
T x() const
Definition: PV3DBase.h:59
std::vector< long > detectorCollection
std::vector< TH1F * > unitsGlobalTheta
std::vector< TH1F * > hResidualLocalXDT_W
std::vector< TrackingRecHit * > RecHitVector
std::vector< TH1F * > hResidualLocalYDT_MB
Global3DVector GlobalVector
Definition: GlobalVector.h:10
GlobalVector globalDirection() const
ib
Definition: cuy.py:662
void MuonAlignmentAnalyzer::beginJob ( void  )
overridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 240 of file MuonAlignmentAnalyzer.cc.

References doGBplots, doResplots, doSAplots, fs, hGBChi2, hGBChi2_Barrel, hGBChi2_Endcap, hGBInvM, hGBInvM_Barrel, hGBInvM_Endcap, hGBInvM_Overlap, hGBinvPTres, hGBinvPTvsEta, hGBinvPTvsNhits, hGBinvPTvsPhi, hGBNhits, hGBNhits_Barrel, hGBNhits_Endcap, hGBNmuons, hGBNmuons_Barrel, hGBNmuons_Endcap, hGBPhivsEta, hGBPTDiff, hGBPTDiffvsEta, hGBPTDiffvsPhi, hGBPTRec, hGBPTRec_Barrel, hGBPTRec_Endcap, hGBPTres, hGBPTres_Barrel, hGBPTres_Endcap, hGBPTvsEta, hGBPTvsPhi, hprofGlobalAngleCSC, hprofGlobalAngleDT, hprofGlobalAngleRmsCSC, hprofGlobalAngleRmsDT, hprofGlobalPhiCSC, hprofGlobalPhiDT, hprofGlobalPositionCSC, hprofGlobalPositionDT, hprofGlobalPositionRmsCSC, hprofGlobalPositionRmsDT, hprofGlobalRCSC, hprofGlobalRPhiCSC, hprofGlobalRPhiDT, hprofGlobalThetaCSC, hprofGlobalThetaDT, hprofGlobalZDT, hprofLocalAngleCSC, hprofLocalAngleDT, hprofLocalAngleRmsCSC, hprofLocalAngleRmsDT, hprofLocalPhiCSC, hprofLocalPhiDT, hprofLocalPositionCSC, hprofLocalPositionDT, hprofLocalPositionRmsCSC, hprofLocalPositionRmsDT, hprofLocalThetaCSC, hprofLocalThetaDT, hprofLocalXCSC, hprofLocalXDT, hprofLocalYCSC, hprofLocalYDT, hResidualGlobalPhiCSC, hResidualGlobalPhiCSC_ME, hResidualGlobalPhiDT, hResidualGlobalPhiDT_MB, hResidualGlobalPhiDT_W, hResidualGlobalRCSC, hResidualGlobalRCSC_ME, hResidualGlobalRPhiCSC, hResidualGlobalRPhiCSC_ME, hResidualGlobalRPhiDT, hResidualGlobalRPhiDT_MB, hResidualGlobalRPhiDT_W, hResidualGlobalThetaCSC, hResidualGlobalThetaCSC_ME, hResidualGlobalThetaDT, hResidualGlobalThetaDT_MB, hResidualGlobalThetaDT_W, hResidualGlobalZDT, hResidualGlobalZDT_MB, hResidualGlobalZDT_W, hResidualLocalPhiCSC, hResidualLocalPhiCSC_ME, hResidualLocalPhiDT, hResidualLocalPhiDT_MB, hResidualLocalPhiDT_W, hResidualLocalThetaCSC, hResidualLocalThetaCSC_ME, hResidualLocalThetaDT, hResidualLocalThetaDT_MB, hResidualLocalThetaDT_W, hResidualLocalXCSC, hResidualLocalXCSC_ME, hResidualLocalXDT, hResidualLocalXDT_MB, hResidualLocalXDT_W, hResidualLocalYCSC, hResidualLocalYCSC_ME, hResidualLocalYDT, hResidualLocalYDT_MB, hResidualLocalYDT_W, hSAChi2, hSAChi2_Barrel, hSAChi2_Endcap, hSAInvM, hSAInvM_Barrel, hSAInvM_Endcap, hSAInvM_Overlap, hSAinvPTres, hSAinvPTvsEta, hSAinvPTvsNhits, hSAinvPTvsPhi, hSANhits, hSANhits_Barrel, hSANhits_Endcap, hSANmuons, hSANmuons_Barrel, hSANmuons_Endcap, hSAPhivsEta, hSAPTDiff, hSAPTDiffvsEta, hSAPTDiffvsPhi, hSAPTRec, hSAPTRec_Barrel, hSAPTRec_Endcap, hSAPTres, hSAPTres_Barrel, hSAPTres_Endcap, hSAPTvsEta, hSAPTvsPhi, hSimInvM, hSimInvM_Barrel, hSimInvM_Endcap, hSimInvM_Overlap, hSimNmuons, hSimNmuons_Barrel, hSimNmuons_Endcap, hSimPhivsEta, hSimPT, hSimPT_Barrel, hSimPT_Endcap, hSimPTvsEta, hSimPTvsPhi, mps_fire::i, createfilelist::int, invMassRangeMax, invMassRangeMin, TFileService::make(), ptRangeMax, ptRangeMin, and theDataType.

240  {
241  // eventSetup.get<IdealMagneticFieldRecord>().get(theMGField);
242 
243  //Create the propagator
244  // if(doResplots) thePropagator = new SteppingHelixPropagator(&*theMGField, alongMomentum);
245 
246  int nBinsPt = (int)fabs(ptRangeMax - ptRangeMin);
247  int nBinsMass = (int)fabs(invMassRangeMax - invMassRangeMin);
248 
249  // Define and book histograms for SA and GB muon quantities/objects
250 
251  if (doGBplots) {
252  hGBNmuons = fs->make<TH1F>("GBNmuons", "Nmuons", 10, 0, 10);
253  hGBNmuons_Barrel = fs->make<TH1F>("GBNmuons_Barrel", "Nmuons", 10, 0, 10);
254  hGBNmuons_Endcap = fs->make<TH1F>("GBNmuons_Endcap", "Nmuons", 10, 0, 10);
255  hGBNhits = fs->make<TH1F>("GBNhits", "Nhits", 100, 0, 100);
256  hGBNhits_Barrel = fs->make<TH1F>("GBNhits_Barrel", "Nhits", 100, 0, 100);
257  hGBNhits_Endcap = fs->make<TH1F>("GBNhits_Endcap", "Nhits", 100, 0, 100);
258  hGBPTRec = fs->make<TH1F>("GBpTRec", "p_{T}^{rec}", nBinsPt, ptRangeMin, ptRangeMax);
259  hGBPTRec_Barrel = fs->make<TH1F>("GBpTRec_Barrel", "p_{T}^{rec}", nBinsPt, ptRangeMin, ptRangeMax);
260  hGBPTRec_Endcap = fs->make<TH1F>("GBpTRec_Endcap", "p_{T}^{rec}", nBinsPt, ptRangeMin, ptRangeMax);
261  hGBPTvsEta = fs->make<TH2F>("GBPTvsEta", "p_{T}^{rec} VS #eta", 100, -2.5, 2.5, nBinsPt, ptRangeMin, ptRangeMax);
262  hGBPTvsPhi =
263  fs->make<TH2F>("GBPTvsPhi", "p_{T}^{rec} VS #phi", 100, -3.1416, 3.1416, nBinsPt, ptRangeMin, ptRangeMax);
264  hGBPhivsEta = fs->make<TH2F>("GBPhivsEta", "#phi VS #eta", 100, -2.5, 2.5, 100, -3.1416, 3.1416);
265 
266  if (theDataType == "SimData") {
267  hGBPTDiff = fs->make<TH1F>("GBpTDiff", "p_{T}^{rec} - p_{T}^{gen} ", 250, -120, 120);
269  fs->make<TH2F>("GBPTDiffvsEta", "p_{T}^{rec} - p_{T}^{gen} VS #eta", 100, -2.5, 2.5, 250, -120, 120);
271  fs->make<TH2F>("GBPTDiffvsPhi", "p_{T}^{rec} - p_{T}^{gen} VS #phi", 100, -3.1416, 3.1416, 250, -120, 120);
272  hGBPTres = fs->make<TH1F>("GBpTRes", "pT Resolution", 100, -2, 2);
273  hGBPTres_Barrel = fs->make<TH1F>("GBpTRes_Barrel", "pT Resolution", 100, -2, 2);
274  hGBPTres_Endcap = fs->make<TH1F>("GBpTRes_Endcap", "pT Resolution", 100, -2, 2);
275  hGBinvPTres = fs->make<TH1F>("GBinvPTRes", "#sigma (q/p_{T}) Resolution", 100, -2, 2);
276  hGBinvPTvsEta = fs->make<TH2F>("GBinvPTvsEta", "#sigma (q/p_{T}) VS #eta", 100, -2.5, 2.5, 100, -2, 2);
277  hGBinvPTvsPhi = fs->make<TH2F>("GBinvPTvsPhi", "#sigma (q/p_{T}) VS #phi", 100, -3.1416, 3.1416, 100, -2, 2);
278  hGBinvPTvsNhits = fs->make<TH2F>("GBinvPTvsNhits", "#sigma (q/p_{T}) VS Nhits", 100, 0, 100, 100, -2, 2);
279  }
280 
281  hGBChi2 = fs->make<TH1F>("GBChi2", "Chi2", 200, 0, 200);
282  hGBChi2_Barrel = fs->make<TH1F>("GBChi2_Barrel", "Chi2", 200, 0, 200);
283  hGBChi2_Endcap = fs->make<TH1F>("GBChi2_Endcap ", "Chi2", 200, 0, 200);
284  hGBInvM = fs->make<TH1F>("GBInvM", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
285  hGBInvM_Barrel = fs->make<TH1F>("GBInvM_Barrel", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
286  hGBInvM_Endcap = fs->make<TH1F>("GBInvM_Endcap ", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
287  hGBInvM_Overlap = fs->make<TH1F>("GBInvM_Overlap", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
288  }
289 
290  if (doSAplots) {
291  hSANmuons = fs->make<TH1F>("SANmuons", "Nmuons", 10, 0, 10);
292  hSANmuons_Barrel = fs->make<TH1F>("SANmuons_Barrel", "Nmuons", 10, 0, 10);
293  hSANmuons_Endcap = fs->make<TH1F>("SANmuons_Endcap", "Nmuons", 10, 0, 10);
294  hSANhits = fs->make<TH1F>("SANhits", "Nhits", 100, 0, 100);
295  hSANhits_Barrel = fs->make<TH1F>("SANhits_Barrel", "Nhits", 100, 0, 100);
296  hSANhits_Endcap = fs->make<TH1F>("SANhits_Endcap", "Nhits", 100, 0, 100);
297  hSAPTRec = fs->make<TH1F>("SApTRec", "p_{T}^{rec}", nBinsPt, ptRangeMin, ptRangeMax);
298  hSAPTRec_Barrel = fs->make<TH1F>("SApTRec_Barrel", "p_{T}^{rec}", nBinsPt, ptRangeMin, ptRangeMax);
299  hSAPTRec_Endcap = fs->make<TH1F>("SApTRec_Endcap", "p_{T}^{rec}", nBinsPt, ptRangeMin, ptRangeMax);
300  hSAPTvsEta = fs->make<TH2F>("SAPTvsEta", "p_{T}^{rec} VS #eta", 100, -2.5, 2.5, nBinsPt, ptRangeMin, ptRangeMax);
301  hSAPTvsPhi =
302  fs->make<TH2F>("SAPTvsPhi", "p_{T}^{rec} VS #phi", 100, -3.1416, 3.1416, nBinsPt, ptRangeMin, ptRangeMax);
303  hSAPhivsEta = fs->make<TH2F>("SAPhivsEta", "#phi VS #eta", 100, -2.5, 2.5, 100, -3.1416, 3.1416);
304 
305  if (theDataType == "SimData") {
306  hSAPTDiff = fs->make<TH1F>("SApTDiff", "p_{T}^{rec} - p_{T}^{gen} ", 250, -120, 120);
308  fs->make<TH2F>("SAPTDiffvsEta", "p_{T}^{rec} - p_{T}^{gen} VS #eta", 100, -2.5, 2.5, 250, -120, 120);
310  fs->make<TH2F>("SAPTDiffvsPhi", "p_{T}^{rec} - p_{T}^{gen} VS #phi", 100, -3.1416, 3.1416, 250, -120, 120);
311  hSAPTres = fs->make<TH1F>("SApTRes", "pT Resolution", 100, -2, 2);
312  hSAPTres_Barrel = fs->make<TH1F>("SApTRes_Barrel", "pT Resolution", 100, -2, 2);
313  hSAPTres_Endcap = fs->make<TH1F>("SApTRes_Endcap", "pT Resolution", 100, -2, 2);
314  hSAinvPTres = fs->make<TH1F>("SAinvPTRes", "1/pT Resolution", 100, -2, 2);
315 
316  hSAinvPTvsEta = fs->make<TH2F>("SAinvPTvsEta", "#sigma (q/p_{T}) VS #eta", 100, -2.5, 2.5, 100, -2, 2);
317  hSAinvPTvsPhi = fs->make<TH2F>("SAinvPTvsPhi", "#sigma (q/p_{T}) VS #phi", 100, -3.1416, 3.1416, 100, -2, 2);
318  hSAinvPTvsNhits = fs->make<TH2F>("SAinvPTvsNhits", "#sigma (q/p_{T}) VS Nhits", 100, 0, 100, 100, -2, 2);
319  }
320  hSAInvM = fs->make<TH1F>("SAInvM", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
321  hSAInvM_Barrel = fs->make<TH1F>("SAInvM_Barrel", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
322  hSAInvM_Endcap = fs->make<TH1F>("SAInvM_Endcap", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
323  hSAInvM_Overlap = fs->make<TH1F>("SAInvM_Overlap", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
324  hSAChi2 = fs->make<TH1F>("SAChi2", "Chi2", 200, 0, 200);
325  hSAChi2_Barrel = fs->make<TH1F>("SAChi2_Barrel", "Chi2", 200, 0, 200);
326  hSAChi2_Endcap = fs->make<TH1F>("SAChi2_Endcap", "Chi2", 200, 0, 200);
327  }
328 
329  if (theDataType == "SimData") {
330  hSimNmuons = fs->make<TH1F>("SimNmuons", "Nmuons", 10, 0, 10);
331  hSimNmuons_Barrel = fs->make<TH1F>("SimNmuons_Barrel", "Nmuons", 10, 0, 10);
332  hSimNmuons_Endcap = fs->make<TH1F>("SimNmuons_Endcap", "Nmuons", 10, 0, 10);
333  hSimPT = fs->make<TH1F>("SimPT", "p_{T}^{gen} ", nBinsPt, ptRangeMin, ptRangeMax);
334  hSimPT_Barrel = fs->make<TH1F>("SimPT_Barrel", "p_{T}^{gen} ", nBinsPt, ptRangeMin, ptRangeMax);
335  hSimPT_Endcap = fs->make<TH1F>("SimPT_Endcap", "p_{T}^{gen} ", nBinsPt, ptRangeMin, ptRangeMax);
336  hSimPTvsEta = fs->make<TH2F>("SimPTvsEta", "p_{T}^{gen} VS #eta", 100, -2.5, 2.5, nBinsPt, ptRangeMin, ptRangeMax);
337  hSimPTvsPhi =
338  fs->make<TH2F>("SimPTvsPhi", "p_{T}^{gen} VS #phi", 100, -3.1416, 3.1416, nBinsPt, ptRangeMin, ptRangeMax);
339  hSimPhivsEta = fs->make<TH2F>("SimPhivsEta", "#phi VS #eta", 100, -2.5, 2.5, 100, -3.1416, 3.1416);
340  hSimInvM = fs->make<TH1F>("SimInvM", "M_{inv}^{gen} ", nBinsMass, invMassRangeMin, invMassRangeMax);
341  hSimInvM_Barrel = fs->make<TH1F>("SimInvM_Barrel", "M_{inv}^{rec}", nBinsMass, invMassRangeMin, invMassRangeMax);
342  hSimInvM_Endcap = fs->make<TH1F>("SimInvM_Endcap", "M_{inv}^{gen} ", nBinsMass, invMassRangeMin, invMassRangeMax);
343  hSimInvM_Overlap = fs->make<TH1F>("SimInvM_Overlap", "M_{inv}^{gen} ", nBinsMass, invMassRangeMin, invMassRangeMax);
344  }
345 
346  if (doResplots) {
347  // All DT and CSC chambers
348  hResidualLocalXDT = fs->make<TH1F>("hResidualLocalXDT", "hResidualLocalXDT", 200, -10, 10);
349  hResidualLocalPhiDT = fs->make<TH1F>("hResidualLocalPhiDT", "hResidualLocalPhiDT", 100, -1, 1);
350  hResidualLocalThetaDT = fs->make<TH1F>("hResidualLocalThetaDT", "hResidualLocalThetaDT", 100, -1, 1);
351  hResidualLocalYDT = fs->make<TH1F>("hResidualLocalYDT", "hResidualLocalYDT", 200, -10, 10);
352  hResidualLocalXCSC = fs->make<TH1F>("hResidualLocalXCSC", "hResidualLocalXCSC", 200, -10, 10);
353  hResidualLocalPhiCSC = fs->make<TH1F>("hResidualLocalPhiCSC", "hResidualLocalPhiCSC", 100, -1, 1);
354  hResidualLocalThetaCSC = fs->make<TH1F>("hResidualLocalThetaCSC", "hResidualLocalThetaCSC", 100, -1, 1);
355  hResidualLocalYCSC = fs->make<TH1F>("hResidualLocalYCSC", "hResidualLocalYCSC", 200, -10, 10);
356  hResidualGlobalRPhiDT = fs->make<TH1F>("hResidualGlobalRPhiDT", "hResidualGlobalRPhiDT", 200, -10, 10);
357  hResidualGlobalPhiDT = fs->make<TH1F>("hResidualGlobalPhiDT", "hResidualGlobalPhiDT", 100, -1, 1);
358  hResidualGlobalThetaDT = fs->make<TH1F>("hResidualGlobalThetaDT", "hResidualGlobalThetaDT", 100, -1, 1);
359  hResidualGlobalZDT = fs->make<TH1F>("hResidualGlobalZDT", "hResidualGlobalZDT", 200, -10, 10);
360  hResidualGlobalRPhiCSC = fs->make<TH1F>("hResidualGlobalRPhiCSC", "hResidualGlobalRPhiCSC", 200, -10, 10);
361  hResidualGlobalPhiCSC = fs->make<TH1F>("hResidualGlobalPhiCSC", "hResidualGlobalPhiCSC", 100, -1, 1);
362  hResidualGlobalThetaCSC = fs->make<TH1F>("hResidualGlobalThetaCSC", "hResidualGlobalThetaCSC", 100, -1, 1);
363  hResidualGlobalRCSC = fs->make<TH1F>("hResidualGlobalRCSC", "hResidualGlobalRCSC", 200, -10, 10);
364 
365  // DT Wheels
366  hResidualLocalXDT_W[0] = fs->make<TH1F>("hResidualLocalXDT_W-2", "hResidualLocalXDT_W-2", 200, -10, 10);
367  hResidualLocalPhiDT_W[0] = fs->make<TH1F>("hResidualLocalPhiDT_W-2", "hResidualLocalPhiDT_W-2", 200, -1, 1);
368  hResidualLocalThetaDT_W[0] = fs->make<TH1F>("hResidualLocalThetaDT_W-2", "hResidualLocalThetaDT_W-2", 200, -1, 1);
369  hResidualLocalYDT_W[0] = fs->make<TH1F>("hResidualLocalYDT_W-2", "hResidualLocalYDT_W-2", 200, -10, 10);
370  hResidualLocalXDT_W[1] = fs->make<TH1F>("hResidualLocalXDT_W-1", "hResidualLocalXDT_W-1", 200, -10, 10);
371  hResidualLocalPhiDT_W[1] = fs->make<TH1F>("hResidualLocalPhiDT_W-1", "hResidualLocalPhiDT_W-1", 200, -1, 1);
372  hResidualLocalThetaDT_W[1] = fs->make<TH1F>("hResidualLocalThetaDT_W-1", "hResidualLocalThetaDT_W-1", 200, -1, 1);
373  hResidualLocalYDT_W[1] = fs->make<TH1F>("hResidualLocalYDT_W-1", "hResidualLocalYDT_W-1", 200, -10, 10);
374  hResidualLocalXDT_W[2] = fs->make<TH1F>("hResidualLocalXDT_W0", "hResidualLocalXDT_W0", 200, -10, 10);
375  hResidualLocalPhiDT_W[2] = fs->make<TH1F>("hResidualLocalPhiDT_W0", "hResidualLocalPhiDT_W0", 200, -1, 1);
376  hResidualLocalThetaDT_W[2] = fs->make<TH1F>("hResidualLocalThetaDT_W0", "hResidualLocalThetaDT_W0", 200, -1, 1);
377  hResidualLocalYDT_W[2] = fs->make<TH1F>("hResidualLocalYDT_W0", "hResidualLocalYDT_W0", 200, -10, 10);
378  hResidualLocalXDT_W[3] = fs->make<TH1F>("hResidualLocalXDT_W1", "hResidualLocalXDT_W1", 200, -10, 10);
379  hResidualLocalPhiDT_W[3] = fs->make<TH1F>("hResidualLocalPhiDT_W1", "hResidualLocalPhiDT_W1", 200, -1, 1);
380  hResidualLocalThetaDT_W[3] = fs->make<TH1F>("hResidualLocalThetaDT_W1", "hResidualLocalThetaDT_W1", 200, -1, 1);
381  hResidualLocalYDT_W[3] = fs->make<TH1F>("hResidualLocalYDT_W1", "hResidualLocalYDT_W1", 200, -10, 10);
382  hResidualLocalXDT_W[4] = fs->make<TH1F>("hResidualLocalXDT_W2", "hResidualLocalXDT_W2", 200, -10, 10);
383  hResidualLocalPhiDT_W[4] = fs->make<TH1F>("hResidualLocalPhiDT_W2", "hResidualLocalPhiDT_W2", 200, -1, 1);
384  hResidualLocalThetaDT_W[4] = fs->make<TH1F>("hResidualLocalThetaDT_W2", "hResidualLocalThetaDT_W2", 200, -1, 1);
385  hResidualLocalYDT_W[4] = fs->make<TH1F>("hResidualLocalYDT_W2", "hResidualLocalYDT_W2", 200, -10, 10);
386  hResidualGlobalRPhiDT_W[0] = fs->make<TH1F>("hResidualGlobalRPhiDT_W-2", "hResidualGlobalRPhiDT_W-2", 200, -10, 10);
387  hResidualGlobalPhiDT_W[0] = fs->make<TH1F>("hResidualGlobalPhiDT_W-2", "hResidualGlobalPhiDT_W-2", 200, -1, 1);
389  fs->make<TH1F>("hResidualGlobalThetaDT_W-2", "hResidualGlobalThetaDT_W-2", 200, -1, 1);
390  hResidualGlobalZDT_W[0] = fs->make<TH1F>("hResidualGlobalZDT_W-2", "hResidualGlobalZDT_W-2", 200, -10, 10);
391  hResidualGlobalRPhiDT_W[1] = fs->make<TH1F>("hResidualGlobalRPhiDT_W-1", "hResidualGlobalRPhiDT_W-1", 200, -10, 10);
392  hResidualGlobalPhiDT_W[1] = fs->make<TH1F>("hResidualGlobalPhiDT_W-1", "hResidualGlobalPhiDT_W-1", 200, -1, 1);
393  hResidualGlobalThetaDT_W[1] =
394  fs->make<TH1F>("hResidualGlobalThetaDT_W-1", "hResidualGlobalThetaDT_W-1", 200, -1, 1);
395  hResidualGlobalZDT_W[1] = fs->make<TH1F>("hResidualGlobalZDT_W-1", "hResidualGlobalZDT_W-1", 200, -10, 10);
396  hResidualGlobalRPhiDT_W[2] = fs->make<TH1F>("hResidualGlobalRPhiDT_W0", "hResidualGlobalRPhiDT_W0", 200, -10, 10);
397  hResidualGlobalPhiDT_W[2] = fs->make<TH1F>("hResidualGlobalPhiDT_W0", "hResidualGlobalPhiDT_W0", 200, -1, 1);
398  hResidualGlobalThetaDT_W[2] = fs->make<TH1F>("hResidualGlobalThetaDT_W0", "hResidualGlobalThetaDT_W0", 200, -1, 1);
399  hResidualGlobalZDT_W[2] = fs->make<TH1F>("hResidualGlobalZDT_W0", "hResidualGlobalZDT_W0", 200, -10, 10);
400  hResidualGlobalRPhiDT_W[3] = fs->make<TH1F>("hResidualGlobalRPhiDT_W1", "hResidualGlobalRPhiDT_W1", 200, -10, 10);
401  hResidualGlobalPhiDT_W[3] = fs->make<TH1F>("hResidualGlobalPhiDT_W1", "hResidualGlobalPhiDT_W1", 200, -1, 1);
402  hResidualGlobalThetaDT_W[3] = fs->make<TH1F>("hResidualGlobalThetaDT_W1", "hResidualGlobalThetaDT_W1", 200, -1, 1);
403  hResidualGlobalZDT_W[3] = fs->make<TH1F>("hResidualGlobalZDT_W1", "hResidualGlobalZDT_W1", 200, -10, 10);
404  hResidualGlobalRPhiDT_W[4] = fs->make<TH1F>("hResidualGlobalRPhiDT_W2", "hResidualGlobalRPhiDT_W2", 200, -10, 10);
405  hResidualGlobalPhiDT_W[4] = fs->make<TH1F>("hResidualGlobalPhiDT_W2", "hResidualGlobalPhiDT_W2", 200, -1, 1);
406  hResidualGlobalThetaDT_W[4] = fs->make<TH1F>("hResidualGlobalThetaDT_W2", "hResidualGlobalThetaDT_W2", 200, -1, 1);
407  hResidualGlobalZDT_W[4] = fs->make<TH1F>("hResidualGlobalZDT_W2", "hResidualGlobalZDT_W2", 200, -10, 10);
408 
409  // DT Stations
410  hResidualLocalXDT_MB[0] = fs->make<TH1F>("hResidualLocalXDT_MB-2/1", "hResidualLocalXDT_MB-2/1", 200, -10, 10);
411  hResidualLocalPhiDT_MB[0] = fs->make<TH1F>("hResidualLocalPhiDT_MB-2/1", "hResidualLocalPhiDT_MB-2/1", 200, -1, 1);
413  fs->make<TH1F>("hResidualLocalThetaDT_MB-2/1", "hResidualLocalThetaDT_MB-2/1", 200, -1, 1);
414  hResidualLocalYDT_MB[0] = fs->make<TH1F>("hResidualLocalYDT_MB-2/1", "hResidualLocalYDT_MB-2/1", 200, -10, 10);
415  hResidualLocalXDT_MB[1] = fs->make<TH1F>("hResidualLocalXDT_MB-2/2", "hResidualLocalXDT_MB-2/2", 200, -10, 10);
416  hResidualLocalPhiDT_MB[1] = fs->make<TH1F>("hResidualLocalPhiDT_MB-2/2", "hResidualLocalPhiDT_MB-2/2", 200, -1, 1);
417  hResidualLocalThetaDT_MB[1] =
418  fs->make<TH1F>("hResidualLocalThetaDT_MB-2/2", "hResidualLocalThetaDT_MB-2/2", 200, -1, 1);
419  hResidualLocalYDT_MB[1] = fs->make<TH1F>("hResidualLocalYDT_MB-2/2", "hResidualLocalYDT_MB-2/2", 200, -10, 10);
420  hResidualLocalXDT_MB[2] = fs->make<TH1F>("hResidualLocalXDT_MB-2/3", "hResidualLocalXDT_MB-2/3", 200, -10, 10);
421  hResidualLocalPhiDT_MB[2] = fs->make<TH1F>("hResidualLocalPhiDT_MB-2/3", "hResidualLocalPhiDT_MB-2/3", 200, -1, 1);
422  hResidualLocalThetaDT_MB[2] =
423  fs->make<TH1F>("hResidualLocalThetaDT_MB-2/3", "hResidualLocalThetaDT_MB-2/3", 200, -1, 1);
424  hResidualLocalYDT_MB[2] = fs->make<TH1F>("hResidualLocalYDT_MB-2/3", "hResidualLocalYDT_MB-2/3", 200, -10, 10);
425  hResidualLocalXDT_MB[3] = fs->make<TH1F>("hResidualLocalXDT_MB-2/4", "hResidualLocalXDT_MB-2/4", 200, -10, 10);
426  hResidualLocalPhiDT_MB[3] = fs->make<TH1F>("hResidualLocalPhiDT_MB-2/4", "hResidualLocalPhiDT_MB-2/4", 200, -1, 1);
427  hResidualLocalThetaDT_MB[3] =
428  fs->make<TH1F>("hResidualLocalThetaDT_MB-2/4", "hResidualLocalThetaDT_MB-2/4", 200, -1, 1);
429  hResidualLocalYDT_MB[3] = fs->make<TH1F>("hResidualLocalYDT_MB-2/4", "hResidualLocalYDT_MB-2/4", 200, -10, 10);
430  hResidualLocalXDT_MB[4] = fs->make<TH1F>("hResidualLocalXDT_MB-1/1", "hResidualLocalXDT_MB-1/1", 200, -10, 10);
431  hResidualLocalPhiDT_MB[4] = fs->make<TH1F>("hResidualLocalPhiDT_MB-1/1", "hResidualLocalPhiDT_MB-1/1", 200, -1, 1);
432  hResidualLocalThetaDT_MB[4] =
433  fs->make<TH1F>("hResidualLocalThetaDT_MB-1/1", "hResidualLocalThetaDT_MB-1/1", 200, -1, 1);
434  hResidualLocalYDT_MB[4] = fs->make<TH1F>("hResidualLocalYDT_MB-1/1", "hResidualLocalYDT_MB-1/1", 200, -10, 10);
435  hResidualLocalXDT_MB[5] = fs->make<TH1F>("hResidualLocalXDT_MB-1/2", "hResidualLocalXDT_MB-1/2", 200, -10, 10);
436  hResidualLocalPhiDT_MB[5] = fs->make<TH1F>("hResidualLocalPhiDT_MB-1/2", "hResidualLocalPhiDT_MB-1/2", 200, -1, 1);
437  hResidualLocalThetaDT_MB[5] =
438  fs->make<TH1F>("hResidualLocalThetaDT_MB-1/2", "hResidualLocalThetaDT_MB-1/2", 200, -1, 1);
439  hResidualLocalYDT_MB[5] = fs->make<TH1F>("hResidualLocalYDT_MB-1/2", "hResidualLocalYDT_MB-1/2", 200, -10, 10);
440  hResidualLocalXDT_MB[6] = fs->make<TH1F>("hResidualLocalXDT_MB-1/3", "hResidualLocalXDT_MB-1/3", 200, -10, 10);
441  hResidualLocalPhiDT_MB[6] = fs->make<TH1F>("hResidualLocalPhiDT_MB-1/3", "hResidualLocalPhiDT_MB-1/3", 200, -1, 1);
442  hResidualLocalThetaDT_MB[6] =
443  fs->make<TH1F>("hResidualLocalThetaDT_MB-1/3", "hResidualLocalThetaDT_MB-1/3", 200, -1, 1);
444  hResidualLocalYDT_MB[6] = fs->make<TH1F>("hResidualLocalYDT_MB-1/3", "hResidualLocalYDT_MB-1/3", 200, -10, 10);
445  hResidualLocalXDT_MB[7] = fs->make<TH1F>("hResidualLocalXDT_MB-1/4", "hResidualLocalXDT_MB-1/4", 200, -10, 10);
446  hResidualLocalPhiDT_MB[7] = fs->make<TH1F>("hResidualLocalPhiDT_MB-1/4", "hResidualLocalPhiDT_MB-1/4", 200, -1, 1);
447  hResidualLocalThetaDT_MB[7] =
448  fs->make<TH1F>("hResidualLocalThetaDT_MB-1/4", "hResidualLocalThetaDT_MB-1/4", 200, -1, 1);
449  hResidualLocalYDT_MB[7] = fs->make<TH1F>("hResidualLocalYDT_MB-1/4", "hResidualLocalYDT_MB-1/4", 200, -10, 10);
450  hResidualLocalXDT_MB[8] = fs->make<TH1F>("hResidualLocalXDT_MB0/1", "hResidualLocalXDT_MB0/1", 200, -10, 10);
451  hResidualLocalPhiDT_MB[8] = fs->make<TH1F>("hResidualLocalPhiDT_MB0/1", "hResidualLocalPhiDT_MB0/1", 200, -1, 1);
452  hResidualLocalThetaDT_MB[8] =
453  fs->make<TH1F>("hResidualLocalThetaDT_MB0/1", "hResidualLocalThetaDT_MB0/1", 200, -1, 1);
454  hResidualLocalYDT_MB[8] = fs->make<TH1F>("hResidualLocalYDT_MB0/1", "hResidualLocalYDT_MB0/1", 200, -10, 10);
455  hResidualLocalXDT_MB[9] = fs->make<TH1F>("hResidualLocalXDT_MB0/2", "hResidualLocalXDT_MB0/2", 200, -10, 10);
456  hResidualLocalPhiDT_MB[9] = fs->make<TH1F>("hResidualLocalPhiDT_MB0/2", "hResidualLocalPhiDT_MB0/2", 200, -1, 1);
457  hResidualLocalThetaDT_MB[9] =
458  fs->make<TH1F>("hResidualLocalThetaDT_MB0/2", "hResidualLocalThetaDT_MB0/2", 200, -1, 1);
459  hResidualLocalYDT_MB[9] = fs->make<TH1F>("hResidualLocalYDT_MB0/2", "hResidualLocalYDT_MB0/2", 200, -10, 10);
460  hResidualLocalXDT_MB[10] = fs->make<TH1F>("hResidualLocalXDT_MB0/3", "hResidualLocalXDT_MB0/3", 200, -10, 10);
461  hResidualLocalThetaDT_MB[10] =
462  fs->make<TH1F>("hResidualLocalThetaDT_MB0/3", "hResidualLocalThetaDT_MB0/3", 200, -1, 1);
463  hResidualLocalPhiDT_MB[10] = fs->make<TH1F>("hResidualLocalPhiDT_MB0/3", "hResidualLocalPhiDT_MB0/3", 200, -1, 1);
464  hResidualLocalYDT_MB[10] = fs->make<TH1F>("hResidualLocalYDT_MB0/3", "hResidualLocalYDT_MB0/3", 200, -10, 10);
465  hResidualLocalXDT_MB[11] = fs->make<TH1F>("hResidualLocalXDT_MB0/4", "hResidualLocalXDT_MB0/4", 200, -10, 10);
466  hResidualLocalPhiDT_MB[11] = fs->make<TH1F>("hResidualLocalPhiDT_MB0/4", "hResidualLocalPhiDT_MB0/4", 200, -1, 1);
467  hResidualLocalThetaDT_MB[11] =
468  fs->make<TH1F>("hResidualLocalThetaDT_MB0/4", "hResidualLocalThetaDT_MB0/4", 200, -1, 1);
469  hResidualLocalYDT_MB[11] = fs->make<TH1F>("hResidualLocalYDT_MB0/4", "hResidualLocalYDT_MB0/4", 200, -10, 10);
470  hResidualLocalXDT_MB[12] = fs->make<TH1F>("hResidualLocalXDT_MB1/1", "hResidualLocalXDT_MB1/1", 200, -10, 10);
471  hResidualLocalPhiDT_MB[12] = fs->make<TH1F>("hResidualLocalPhiDT_MB1/1", "hResidualLocalPhiDT_MB1/1", 200, -1, 1);
472  hResidualLocalThetaDT_MB[12] =
473  fs->make<TH1F>("hResidualLocalThetaDT_MB1/1", "hResidualLocalThetaDT_MB1/1", 200, -1, 1);
474  hResidualLocalYDT_MB[12] = fs->make<TH1F>("hResidualLocalYDT_MB1/1", "hResidualLocalYDT_MB1/1", 200, -10, 10);
475  hResidualLocalXDT_MB[13] = fs->make<TH1F>("hResidualLocalXDT_MB1/2", "hResidualLocalXDT_MB1/2", 200, -10, 10);
476  hResidualLocalPhiDT_MB[13] = fs->make<TH1F>("hResidualLocalPhiDT_MB1/2", "hResidualLocalPhiDT_MB1/2", 200, -1, 1);
477  hResidualLocalThetaDT_MB[13] =
478  fs->make<TH1F>("hResidualLocalThetaDT_MB1/2", "hResidualLocalThetaDT_MB1/2", 200, -1, 1);
479  hResidualLocalYDT_MB[13] = fs->make<TH1F>("hResidualLocalYDT_MB1/2", "hResidualLocalYDT_MB1/2", 200, -10, 10);
480  hResidualLocalXDT_MB[14] = fs->make<TH1F>("hResidualLocalXDT_MB1/3", "hResidualLocalXDT_MB1/3", 200, -10, 10);
481  hResidualLocalPhiDT_MB[14] = fs->make<TH1F>("hResidualLocalPhiDT_MB1/3", "hResidualLocalPhiDT_MB1/3", 200, -1, 1);
482  hResidualLocalThetaDT_MB[14] =
483  fs->make<TH1F>("hResidualLocalThetaDT_MB1/3", "hResidualLocalThetaDT_MB1/3", 200, -1, 1);
484  hResidualLocalYDT_MB[14] = fs->make<TH1F>("hResidualLocalYDT_MB1/3", "hResidualLocalYDT_MB1/3", 200, -10, 10);
485  hResidualLocalXDT_MB[15] = fs->make<TH1F>("hResidualLocalXDT_MB1/4", "hResidualLocalXDT_MB1/4", 200, -10, 10);
486  hResidualLocalPhiDT_MB[15] = fs->make<TH1F>("hResidualLocalPhiDT_MB1/4", "hResidualLocalPhiDT_MB1/4", 200, -1, 1);
487  hResidualLocalThetaDT_MB[15] =
488  fs->make<TH1F>("hResidualLocalThetaDT_MB1/4", "hResidualLocalThetaDT_MB1/4", 200, -1, 1);
489  hResidualLocalYDT_MB[15] = fs->make<TH1F>("hResidualLocalYDT_MB1/4", "hResidualLocalYDT_MB1/4", 200, -10, 10);
490  hResidualLocalXDT_MB[16] = fs->make<TH1F>("hResidualLocalXDT_MB2/1", "hResidualLocalXDT_MB2/1", 200, -10, 10);
491  hResidualLocalPhiDT_MB[16] = fs->make<TH1F>("hResidualLocalPhiDT_MB2/1", "hResidualLocalPhiDT_MB2/1", 200, -1, 1);
492  hResidualLocalThetaDT_MB[16] =
493  fs->make<TH1F>("hResidualLocalThetaDT_MB2/1", "hResidualLocalThetaDT_MB2/1", 200, -1, 1);
494  hResidualLocalYDT_MB[16] = fs->make<TH1F>("hResidualLocalYDT_MB2/1", "hResidualLocalYDT_MB2/1", 200, -10, 10);
495  hResidualLocalXDT_MB[17] = fs->make<TH1F>("hResidualLocalXDT_MB2/2", "hResidualLocalXDT_MB2/2", 200, -10, 10);
496  hResidualLocalPhiDT_MB[17] = fs->make<TH1F>("hResidualLocalPhiDT_MB2/2", "hResidualLocalPhiDT_MB2/2", 200, -1, 1);
497  hResidualLocalThetaDT_MB[17] =
498  fs->make<TH1F>("hResidualLocalThetaDT_MB2/2", "hResidualLocalThetaDT_MB2/2", 200, -1, 1);
499  hResidualLocalYDT_MB[17] = fs->make<TH1F>("hResidualLocalYDT_MB2/2", "hResidualLocalYDT_MB2/2", 200, -10, 10);
500  hResidualLocalXDT_MB[18] = fs->make<TH1F>("hResidualLocalXDT_MB2/3", "hResidualLocalXDT_MB2/3", 200, -10, 10);
501  hResidualLocalPhiDT_MB[18] = fs->make<TH1F>("hResidualLocalPhiDT_MB2/3", "hResidualLocalPhiDT_MB2/3", 200, -1, 1);
502  hResidualLocalThetaDT_MB[18] =
503  fs->make<TH1F>("hResidualLocalThetaDT_MB2/3", "hResidualLocalThetaDT_MB2/3", 200, -1, 1);
504  hResidualLocalYDT_MB[18] = fs->make<TH1F>("hResidualLocalYDT_MB2/3", "hResidualLocalYDT_MB2/3", 200, -10, 10);
505  hResidualLocalXDT_MB[19] = fs->make<TH1F>("hResidualLocalXDT_MB2/4", "hResidualLocalXDT_MB2/4", 200, -10, 10);
506  hResidualLocalPhiDT_MB[19] = fs->make<TH1F>("hResidualLocalPhiDT_MB2/4", "hResidualLocalPhiDT_MB2/4", 200, -1, 1);
507  hResidualLocalThetaDT_MB[19] =
508  fs->make<TH1F>("hResidualLocalThetaDT_MB2/4", "hResidualLocalThetaDT_MB2/4", 200, -1, 1);
509  hResidualLocalYDT_MB[19] = fs->make<TH1F>("hResidualLocalYDT_MB2/4", "hResidualLocalYDT_MB2/4", 200, -10, 10);
511  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-2/1", "hResidualGlobalRPhiDT_MB-2/1", 200, -10, 10);
513  fs->make<TH1F>("hResidualGlobalPhiDT_MB-2/1", "hResidualGlobalPhiDT_MB-2/1", 200, -1, 1);
515  fs->make<TH1F>("hResidualGlobalThetaDT_MB-2/1", "hResidualGlobalThetaDT_MB-2/1", 200, -1, 1);
516  hResidualGlobalZDT_MB[0] = fs->make<TH1F>("hResidualGlobalZDT_MB-2/1", "hResidualGlobalZDT_MB-2/1", 200, -10, 10);
517  hResidualGlobalRPhiDT_MB[1] =
518  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-2/2", "hResidualGlobalRPhiDT_MB-2/2", 200, -10, 10);
519  hResidualGlobalPhiDT_MB[1] =
520  fs->make<TH1F>("hResidualGlobalPhiDT_MB-2/2", "hResidualGlobalPhiDT_MB-2/2", 200, -1, 1);
521  hResidualGlobalThetaDT_MB[1] =
522  fs->make<TH1F>("hResidualGlobalThetaDT_MB-2/2", "hResidualGlobalThetaDT_MB-2/2", 200, -1, 1);
523  hResidualGlobalZDT_MB[1] = fs->make<TH1F>("hResidualGlobalZDT_MB-2/2", "hResidualGlobalZDT_MB-2/2", 200, -10, 10);
524  hResidualGlobalRPhiDT_MB[2] =
525  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-2/3", "hResidualGlobalRPhiDT_MB-2/3", 200, -10, 10);
526  hResidualGlobalPhiDT_MB[2] =
527  fs->make<TH1F>("hResidualGlobalPhiDT_MB-2/3", "hResidualGlobalPhiDT_MB-2/3", 200, -1, 1);
528  hResidualGlobalThetaDT_MB[2] =
529  fs->make<TH1F>("hResidualGlobalThetaDT_MB-2/3", "hResidualGlobalThetaDT_MB-2/3", 200, -1, 1);
530  hResidualGlobalZDT_MB[2] = fs->make<TH1F>("hResidualGlobalZDT_MB-2/3", "hResidualGlobalZDT_MB-2/3", 200, -10, 10);
531  hResidualGlobalRPhiDT_MB[3] =
532  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-2/4", "hResidualGlobalRPhiDT_MB-2/4", 200, -10, 10);
533  hResidualGlobalPhiDT_MB[3] =
534  fs->make<TH1F>("hResidualGlobalPhiDT_MB-2/4", "hResidualGlobalPhiDT_MB-2/4", 200, -1, 1);
535  hResidualGlobalThetaDT_MB[3] =
536  fs->make<TH1F>("hResidualGlobalThetaDT_MB-2/4", "hResidualGlobalThetaDT_MB-2/4", 200, -1, 1);
537  hResidualGlobalZDT_MB[3] = fs->make<TH1F>("hResidualGlobalZDT_MB-2/4", "hResidualGlobalZDT_MB-2/4", 200, -10, 10);
538  hResidualGlobalRPhiDT_MB[4] =
539  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-1/1", "hResidualGlobalRPhiDT_MB-1/1", 200, -10, 10);
540  hResidualGlobalPhiDT_MB[4] =
541  fs->make<TH1F>("hResidualGlobalPhiDT_MB-1/1", "hResidualGlobalPhiDT_MB-1/1", 200, -1, 1);
542  hResidualGlobalThetaDT_MB[4] =
543  fs->make<TH1F>("hResidualGlobalThetaDT_MB-1/1", "hResidualGlobalThetaDT_MB-1/1", 200, -1, 1);
544  hResidualGlobalZDT_MB[4] = fs->make<TH1F>("hResidualGlobalZDT_MB-1/1", "hResidualGlobalZDT_MB-1/1", 200, -10, 10);
545  hResidualGlobalRPhiDT_MB[5] =
546  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-1/2", "hResidualGlobalRPhiDT_MB-1/2", 200, -10, 10);
547  hResidualGlobalPhiDT_MB[5] =
548  fs->make<TH1F>("hResidualGlobalPhiDT_MB-1/2", "hResidualGlobalPhiDT_MB-1/2", 200, -1, 1);
549  hResidualGlobalThetaDT_MB[5] =
550  fs->make<TH1F>("hResidualGlobalThetaDT_MB-1/2", "hResidualGlobalThetaDT_MB-1/2", 200, -1, 1);
551  hResidualGlobalZDT_MB[5] = fs->make<TH1F>("hResidualGlobalZDT_MB-1/2", "hResidualGlobalZDT_MB-1/2", 200, -10, 10);
552  hResidualGlobalRPhiDT_MB[6] =
553  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-1/3", "hResidualGlobalRPhiDT_MB-1/3", 200, -10, 10);
554  hResidualGlobalPhiDT_MB[6] =
555  fs->make<TH1F>("hResidualGlobalPhiDT_MB-1/3", "hResidualGlobalPhiDT_MB-1/3", 200, -1, 1);
556  hResidualGlobalThetaDT_MB[6] =
557  fs->make<TH1F>("hResidualGlobalThetaDT_MB-1/3", "hResidualGlobalThetaDT_MB-1/3", 200, -1, 1);
558  hResidualGlobalZDT_MB[6] = fs->make<TH1F>("hResidualGlobalZDT_MB-1/3", "hResidualGlobalZDT_MB-1/3", 200, -10, 10);
559  hResidualGlobalRPhiDT_MB[7] =
560  fs->make<TH1F>("hResidualGlobalRPhiDT_MB-1/4", "hResidualGlobalRPhiDT_MB-1/4", 200, -10, 10);
561  hResidualGlobalPhiDT_MB[7] =
562  fs->make<TH1F>("hResidualGlobalPhiDT_MB-1/4", "hResidualGlobalPhiDT_MB-1/4", 200, -1, 1);
563  hResidualGlobalThetaDT_MB[7] =
564  fs->make<TH1F>("hResidualGlobalThetaDT_MB-1/4", "hResidualGlobalThetaDT_MB-1/4", 200, -1, 1);
565  hResidualGlobalZDT_MB[7] = fs->make<TH1F>("hResidualGlobalZDT_MB-1/4", "hResidualGlobalZDT_MB-1/4", 200, -10, 10);
566  hResidualGlobalRPhiDT_MB[8] =
567  fs->make<TH1F>("hResidualGlobalRPhiDT_MB0/1", "hResidualGlobalRPhiDT_MB0/1", 200, -10, 10);
568  hResidualGlobalPhiDT_MB[8] = fs->make<TH1F>("hResidualGlobalPhiDT_MB0/1", "hResidualGlobalPhiDT_MB0/1", 200, -1, 1);
569  hResidualGlobalThetaDT_MB[8] =
570  fs->make<TH1F>("hResidualGlobalThetaDT_MB0/1", "hResidualGlobalThetaDT_MB0/1", 200, -1, 1);
571  hResidualGlobalZDT_MB[8] = fs->make<TH1F>("hResidualGlobalZDT_MB0/1", "hResidualGlobalZDT_MB0/1", 200, -10, 10);
572  hResidualGlobalRPhiDT_MB[9] =
573  fs->make<TH1F>("hResidualGlobalRPhiDT_MB0/2", "hResidualGlobalRPhiDT_MB0/2", 200, -10, 10);
574  hResidualGlobalPhiDT_MB[9] = fs->make<TH1F>("hResidualGlobalPhiDT_MB0/2", "hResidualGlobalPhiDT_MB0/2", 200, -1, 1);
575  hResidualGlobalThetaDT_MB[9] =
576  fs->make<TH1F>("hResidualGlobalThetaDT_MB0/2", "hResidualGlobalThetaDT_MB0/2", 200, -1, 1);
577  hResidualGlobalZDT_MB[9] = fs->make<TH1F>("hResidualGlobalZDT_MB0/2", "hResidualGlobalZDT_MB0/2", 200, -10, 10);
578  hResidualGlobalRPhiDT_MB[10] =
579  fs->make<TH1F>("hResidualGlobalRPhiDT_MB0/3", "hResidualGlobalRPhiDT_MB0/3", 200, -10, 10);
580  hResidualGlobalThetaDT_MB[10] =
581  fs->make<TH1F>("hResidualGlobalThetaDT_MB0/3", "hResidualGlobalThetaDT_MB0/3", 200, -1, 1);
582  hResidualGlobalPhiDT_MB[10] =
583  fs->make<TH1F>("hResidualGlobalPhiDT_MB0/3", "hResidualGlobalPhiDT_MB0/3", 200, -1, 1);
584  hResidualGlobalZDT_MB[10] = fs->make<TH1F>("hResidualGlobalZDT_MB0/3", "hResidualGlobalZDT_MB0/3", 200, -10, 10);
585  hResidualGlobalRPhiDT_MB[11] =
586  fs->make<TH1F>("hResidualGlobalRPhiDT_MB0/4", "hResidualGlobalRPhiDT_MB0/4", 200, -10, 10);
587  hResidualGlobalPhiDT_MB[11] =
588  fs->make<TH1F>("hResidualGlobalPhiDT_MB0/4", "hResidualGlobalPhiDT_MB0/4", 200, -1, 1);
589  hResidualGlobalThetaDT_MB[11] =
590  fs->make<TH1F>("hResidualGlobalThetaDT_MB0/4", "hResidualGlobalThetaDT_MB0/4", 200, -1, 1);
591  hResidualGlobalZDT_MB[11] = fs->make<TH1F>("hResidualGlobalZDT_MB0/4", "hResidualGlobalZDT_MB0/4", 200, -10, 10);
592  hResidualGlobalRPhiDT_MB[12] =
593  fs->make<TH1F>("hResidualGlobalRPhiDT_MB1/1", "hResidualGlobalRPhiDT_MB1/1", 200, -10, 10);
594  hResidualGlobalPhiDT_MB[12] =
595  fs->make<TH1F>("hResidualGlobalPhiDT_MB1/1", "hResidualGlobalPhiDT_MB1/1", 200, -1, 1);
596  hResidualGlobalThetaDT_MB[12] =
597  fs->make<TH1F>("hResidualGlobalThetaDT_MB1/1", "hResidualGlobalThetaDT_MB1/1", 200, -1, 1);
598  hResidualGlobalZDT_MB[12] = fs->make<TH1F>("hResidualGlobalZDT_MB1/1", "hResidualGlobalZDT_MB1/1", 200, -10, 10);
599  hResidualGlobalRPhiDT_MB[13] =
600  fs->make<TH1F>("hResidualGlobalRPhiDT_MB1/2", "hResidualGlobalRPhiDT_MB1/2", 200, -10, 10);
601  hResidualGlobalPhiDT_MB[13] =
602  fs->make<TH1F>("hResidualGlobalPhiDT_MB1/2", "hResidualGlobalPhiDT_MB1/2", 200, -1, 1);
603  hResidualGlobalThetaDT_MB[13] =
604  fs->make<TH1F>("hResidualGlobalThetaDT_MB1/2", "hResidualGlobalThetaDT_MB1/2", 200, -1, 1);
605  hResidualGlobalZDT_MB[13] = fs->make<TH1F>("hResidualGlobalZDT_MB1/2", "hResidualGlobalZDT_MB1/2", 200, -10, 10);
606  hResidualGlobalRPhiDT_MB[14] =
607  fs->make<TH1F>("hResidualGlobalRPhiDT_MB1/3", "hResidualGlobalRPhiDT_MB1/3", 200, -10, 10);
608  hResidualGlobalPhiDT_MB[14] =
609  fs->make<TH1F>("hResidualGlobalPhiDT_MB1/3", "hResidualGlobalPhiDT_MB1/3", 200, -1, 1);
610  hResidualGlobalThetaDT_MB[14] =
611  fs->make<TH1F>("hResidualGlobalThetaDT_MB1/3", "hResidualGlobalThetaDT_MB1/3", 200, -1, 1);
612  hResidualGlobalZDT_MB[14] = fs->make<TH1F>("hResidualGlobalZDT_MB1/3", "hResidualGlobalZDT_MB1/3", 200, -10, 10);
613  hResidualGlobalRPhiDT_MB[15] =
614  fs->make<TH1F>("hResidualGlobalRPhiDT_MB1/4", "hResidualGlobalRPhiDT_MB1/4", 200, -10, 10);
615  hResidualGlobalPhiDT_MB[15] =
616  fs->make<TH1F>("hResidualGlobalPhiDT_MB1/4", "hResidualGlobalPhiDT_MB1/4", 200, -1, 1);
617  hResidualGlobalThetaDT_MB[15] =
618  fs->make<TH1F>("hResidualGlobalThetaDT_MB1/4", "hResidualGlobalThetaDT_MB1/4", 200, -1, 1);
619  hResidualGlobalZDT_MB[15] = fs->make<TH1F>("hResidualGlobalZDT_MB1/4", "hResidualGlobalZDT_MB1/4", 200, -10, 10);
620  hResidualGlobalRPhiDT_MB[16] =
621  fs->make<TH1F>("hResidualGlobalRPhiDT_MB2/1", "hResidualGlobalRPhiDT_MB2/1", 200, -10, 10);
622  hResidualGlobalPhiDT_MB[16] =
623  fs->make<TH1F>("hResidualGlobalPhiDT_MB2/1", "hResidualGlobalPhiDT_MB2/1", 200, -1, 1);
624  hResidualGlobalThetaDT_MB[16] =
625  fs->make<TH1F>("hResidualGlobalThetaDT_MB2/1", "hResidualGlobalThetaDT_MB2/1", 200, -1, 1);
626  hResidualGlobalZDT_MB[16] = fs->make<TH1F>("hResidualGlobalZDT_MB2/1", "hResidualGlobalZDT_MB2/1", 200, -10, 10);
627  hResidualGlobalRPhiDT_MB[17] =
628  fs->make<TH1F>("hResidualGlobalRPhiDT_MB2/2", "hResidualGlobalRPhiDT_MB2/2", 200, -10, 10);
629  hResidualGlobalPhiDT_MB[17] =
630  fs->make<TH1F>("hResidualGlobalPhiDT_MB2/2", "hResidualGlobalPhiDT_MB2/2", 200, -1, 1);
631  hResidualGlobalThetaDT_MB[17] =
632  fs->make<TH1F>("hResidualGlobalThetaDT_MB2/2", "hResidualGlobalThetaDT_MB2/2", 200, -1, 1);
633  hResidualGlobalZDT_MB[17] = fs->make<TH1F>("hResidualGlobalZDT_MB2/2", "hResidualGlobalZDT_MB2/2", 200, -10, 10);
634  hResidualGlobalRPhiDT_MB[18] =
635  fs->make<TH1F>("hResidualGlobalRPhiDT_MB2/3", "hResidualGlobalRPhiDT_MB2/3", 200, -10, 10);
636  hResidualGlobalPhiDT_MB[18] =
637  fs->make<TH1F>("hResidualGlobalPhiDT_MB2/3", "hResidualGlobalPhiDT_MB2/3", 200, -1, 1);
638  hResidualGlobalThetaDT_MB[18] =
639  fs->make<TH1F>("hResidualGlobalThetaDT_MB2/3", "hResidualGlobalThetaDT_MB2/3", 200, -1, 1);
640  hResidualGlobalZDT_MB[18] = fs->make<TH1F>("hResidualGlobalZDT_MB2/3", "hResidualGlobalZDT_MB2/3", 200, -10, 10);
641  hResidualGlobalRPhiDT_MB[19] =
642  fs->make<TH1F>("hResidualGlobalRPhiDT_MB2/4", "hResidualGlobalRPhiDT_MB2/4", 200, -10, 10);
643  hResidualGlobalPhiDT_MB[19] =
644  fs->make<TH1F>("hResidualGlobalPhiDT_MB2/4", "hResidualGlobalPhiDT_MB2/4", 200, -1, 1);
645  hResidualGlobalThetaDT_MB[19] =
646  fs->make<TH1F>("hResidualGlobalThetaDT_MB2/4", "hResidualGlobalThetaDT_MB2/4", 200, -1, 1);
647  hResidualGlobalZDT_MB[19] = fs->make<TH1F>("hResidualGlobalZDT_MB2/4", "hResidualGlobalZDT_MB2/4", 200, -10, 10);
648 
649  // CSC Stations
650  hResidualLocalXCSC_ME[0] = fs->make<TH1F>("hResidualLocalXCSC_ME-4/1", "hResidualLocalXCSC_ME-4/1", 200, -10, 10);
652  fs->make<TH1F>("hResidualLocalPhiCSC_ME-4/1", "hResidualLocalPhiCSC_ME-4/1", 200, -1, 1);
654  fs->make<TH1F>("hResidualLocalThetaCSC_ME-4/1", "hResidualLocalThetaCSC_ME-4/1", 200, -1, 1);
655  hResidualLocalYCSC_ME[0] = fs->make<TH1F>("hResidualLocalYCSC_ME-4/1", "hResidualLocalYCSC_ME-4/1", 200, -10, 10);
656  hResidualLocalXCSC_ME[1] = fs->make<TH1F>("hResidualLocalXCSC_ME-4/2", "hResidualLocalXCSC_ME-4/2", 200, -10, 10);
657  hResidualLocalPhiCSC_ME[1] =
658  fs->make<TH1F>("hResidualLocalPhiCSC_ME-4/2", "hResidualLocalPhiCSC_ME-4/2", 200, -1, 1);
659  hResidualLocalThetaCSC_ME[1] =
660  fs->make<TH1F>("hResidualLocalThetaCSC_ME-4/2", "hResidualLocalThetaCSC_ME-4/2", 200, -1, 1);
661  hResidualLocalYCSC_ME[1] = fs->make<TH1F>("hResidualLocalYCSC_ME-4/2", "hResidualLocalYCSC_ME-4/2", 200, -10, 10);
662  hResidualLocalXCSC_ME[2] = fs->make<TH1F>("hResidualLocalXCSC_ME-3/1", "hResidualLocalXCSC_ME-3/1", 200, -10, 10);
663  hResidualLocalPhiCSC_ME[2] =
664  fs->make<TH1F>("hResidualLocalPhiCSC_ME-3/1", "hResidualLocalPhiCSC_ME-3/1", 200, -1, 1);
665  hResidualLocalThetaCSC_ME[2] =
666  fs->make<TH1F>("hResidualLocalThetaCSC_ME-3/1", "hResidualLocalThetaCSC_ME-3/1", 200, -1, 1);
667  hResidualLocalYCSC_ME[2] = fs->make<TH1F>("hResidualLocalYCSC_ME-3/1", "hResidualLocalYCSC_ME-3/1", 200, -10, 10);
668  hResidualLocalXCSC_ME[3] = fs->make<TH1F>("hResidualLocalXCSC_ME-3/2", "hResidualLocalXCSC_ME-3/2", 200, -10, 10);
669  hResidualLocalPhiCSC_ME[3] =
670  fs->make<TH1F>("hResidualLocalPhiCSC_ME-3/2", "hResidualLocalPhiCSC_ME-3/2", 200, -1, 1);
671  hResidualLocalThetaCSC_ME[3] =
672  fs->make<TH1F>("hResidualLocalThetaCSC_ME-3/2", "hResidualLocalThetaCSC_ME-3/2", 200, -1, 1);
673  hResidualLocalYCSC_ME[3] = fs->make<TH1F>("hResidualLocalYCSC_ME-3/2", "hResidualLocalYCSC_ME-3/2", 200, -10, 10);
674  hResidualLocalXCSC_ME[4] = fs->make<TH1F>("hResidualLocalXCSC_ME-2/1", "hResidualLocalXCSC_ME-2/1", 200, -10, 10);
675  hResidualLocalPhiCSC_ME[4] =
676  fs->make<TH1F>("hResidualLocalPhiCSC_ME-2/1", "hResidualLocalPhiCSC_ME-2/1", 200, -1, 1);
677  hResidualLocalThetaCSC_ME[4] =
678  fs->make<TH1F>("hResidualLocalThetaCSC_ME-2/1", "hResidualLocalThetaCSC_ME-2/1", 200, -1, 1);
679  hResidualLocalYCSC_ME[4] = fs->make<TH1F>("hResidualLocalYCSC_ME-2/1", "hResidualLocalYCSC_ME-2/1", 200, -10, 10);
680  hResidualLocalXCSC_ME[5] = fs->make<TH1F>("hResidualLocalXCSC_ME-2/2", "hResidualLocalXCSC_ME-2/2", 200, -10, 10);
681  hResidualLocalPhiCSC_ME[5] =
682  fs->make<TH1F>("hResidualLocalPhiCSC_ME-2/2", "hResidualLocalPhiCSC_ME-2/2", 200, -1, 1);
683  hResidualLocalThetaCSC_ME[5] =
684  fs->make<TH1F>("hResidualLocalThetaCSC_ME-2/2", "hResidualLocalThetaCSC_ME-2/2", 200, -1, 1);
685  hResidualLocalYCSC_ME[5] = fs->make<TH1F>("hResidualLocalYCSC_ME-2/2", "hResidualLocalYCSC_ME-2/2", 200, -10, 10);
686  hResidualLocalXCSC_ME[6] = fs->make<TH1F>("hResidualLocalXCSC_ME-1/1", "hResidualLocalXCSC_ME-1/1", 200, -10, 10);
687  hResidualLocalPhiCSC_ME[6] =
688  fs->make<TH1F>("hResidualLocalPhiCSC_ME-1/1", "hResidualLocalPhiCSC_ME-1/1", 200, -1, 1);
689  hResidualLocalThetaCSC_ME[6] =
690  fs->make<TH1F>("hResidualLocalThetaCSC_ME-1/1", "hResidualLocalThetaCSC_ME-1/1", 200, -1, 1);
691  hResidualLocalYCSC_ME[6] = fs->make<TH1F>("hResidualLocalYCSC_ME-1/1", "hResidualLocalYCSC_ME-1/1", 200, -10, 10);
692  hResidualLocalXCSC_ME[7] = fs->make<TH1F>("hResidualLocalXCSC_ME-1/2", "hResidualLocalXCSC_ME-1/2", 200, -10, 10);
693  hResidualLocalPhiCSC_ME[7] =
694  fs->make<TH1F>("hResidualLocalPhiCSC_ME-1/2", "hResidualLocalPhiCSC_ME-1/2", 200, -1, 1);
695  hResidualLocalThetaCSC_ME[7] =
696  fs->make<TH1F>("hResidualLocalThetaCSC_ME-1/2", "hResidualLocalThetaCSC_ME-1/2", 200, -1, 1);
697  hResidualLocalYCSC_ME[7] = fs->make<TH1F>("hResidualLocalYCSC_ME-1/2", "hResidualLocalYCSC_ME-1/2", 200, -10, 10);
698  hResidualLocalXCSC_ME[8] = fs->make<TH1F>("hResidualLocalXCSC_ME-1/3", "hResidualLocalXCSC_ME-1/3", 200, -10, 10);
699  hResidualLocalPhiCSC_ME[8] =
700  fs->make<TH1F>("hResidualLocalPhiCSC_ME-1/3", "hResidualLocalPhiCSC_ME-1/3", 200, -1, 1);
701  hResidualLocalThetaCSC_ME[8] =
702  fs->make<TH1F>("hResidualLocalThetaCSC_ME-1/3", "hResidualLocalThetaCSC_ME-1/3", 200, -1, 1);
703  hResidualLocalYCSC_ME[8] = fs->make<TH1F>("hResidualLocalYCSC_ME-1/3", "hResidualLocalYCSC_ME-1/3", 200, -10, 10);
704  hResidualLocalXCSC_ME[9] = fs->make<TH1F>("hResidualLocalXCSC_ME1/1", "hResidualLocalXCSC_ME1/1", 200, -10, 10);
705  hResidualLocalPhiCSC_ME[9] = fs->make<TH1F>("hResidualLocalPhiCSC_ME1/1", "hResidualLocalPhiCSC_ME1/1", 100, -1, 1);
706  hResidualLocalThetaCSC_ME[9] =
707  fs->make<TH1F>("hResidualLocalThetaCSC_ME1/1", "hResidualLocalThetaCSC_ME1/1", 200, -1, 1);
708  hResidualLocalYCSC_ME[9] = fs->make<TH1F>("hResidualLocalYCSC_ME1/1", "hResidualLocalYCSC_ME1/1", 200, -10, 10);
709  hResidualLocalXCSC_ME[10] = fs->make<TH1F>("hResidualLocalXCSC_ME1/2", "hResidualLocalXCSC_ME1/2", 200, -10, 10);
710  hResidualLocalPhiCSC_ME[10] =
711  fs->make<TH1F>("hResidualLocalPhiCSC_ME1/2", "hResidualLocalPhiCSC_ME1/2", 200, -1, 1);
712  hResidualLocalThetaCSC_ME[10] =
713  fs->make<TH1F>("hResidualLocalThetaCSC_ME1/2", "hResidualLocalThetaCSC_ME1/2", 200, -1, 1);
714  hResidualLocalYCSC_ME[10] = fs->make<TH1F>("hResidualLocalYCSC_ME1/2", "hResidualLocalYCSC_ME1/2", 200, -10, 10);
715  hResidualLocalXCSC_ME[11] = fs->make<TH1F>("hResidualLocalXCSC_ME1/3", "hResidualLocalXCSC_ME1/3", 200, -10, 10);
716  hResidualLocalPhiCSC_ME[11] =
717  fs->make<TH1F>("hResidualLocalPhiCSC_ME1/3", "hResidualLocalPhiCSC_ME1/3", 200, -1, 1);
718  hResidualLocalThetaCSC_ME[11] =
719  fs->make<TH1F>("hResidualLocalThetaCSC_ME1/3", "hResidualLocalThetaCSC_ME1/3", 200, -1, 1);
720  hResidualLocalYCSC_ME[11] = fs->make<TH1F>("hResidualLocalYCSC_ME1/3", "hResidualLocalYCSC_ME1/3", 200, -10, 10);
721  hResidualLocalXCSC_ME[12] = fs->make<TH1F>("hResidualLocalXCSC_ME2/1", "hResidualLocalXCSC_ME2/1", 200, -10, 10);
722  hResidualLocalPhiCSC_ME[12] =
723  fs->make<TH1F>("hResidualLocalPhiCSC_ME2/1", "hResidualLocalPhiCSC_ME2/1", 200, -1, 1);
724  hResidualLocalThetaCSC_ME[12] =
725  fs->make<TH1F>("hResidualLocalThetaCSC_ME2/1", "hResidualLocalThetaCSC_ME2/1", 200, -1, 1);
726  hResidualLocalYCSC_ME[12] = fs->make<TH1F>("hResidualLocalYCSC_ME2/1", "hResidualLocalYCSC_ME2/1", 200, -10, 10);
727  hResidualLocalXCSC_ME[13] = fs->make<TH1F>("hResidualLocalXCSC_ME2/2", "hResidualLocalXCSC_ME2/2", 200, -10, 10);
728  hResidualLocalPhiCSC_ME[13] =
729  fs->make<TH1F>("hResidualLocalPhiCSC_ME2/2", "hResidualLocalPhiCSC_ME2/2", 200, -1, 1);
730  hResidualLocalThetaCSC_ME[13] =
731  fs->make<TH1F>("hResidualLocalThetaCSC_ME2/2", "hResidualLocalThetaCSC_ME2/2", 200, -1, 1);
732  hResidualLocalYCSC_ME[13] = fs->make<TH1F>("hResidualLocalYCSC_ME2/2", "hResidualLocalYCSC_ME2/2", 200, -10, 10);
733  hResidualLocalXCSC_ME[14] = fs->make<TH1F>("hResidualLocalXCSC_ME3/1", "hResidualLocalXCSC_ME3/1", 200, -10, 10);
734  hResidualLocalPhiCSC_ME[14] =
735  fs->make<TH1F>("hResidualLocalPhiCSC_ME3/1", "hResidualLocalPhiCSC_ME3/1", 200, -1, 1);
736  hResidualLocalThetaCSC_ME[14] =
737  fs->make<TH1F>("hResidualLocalThetaCSC_ME3/1", "hResidualLocalThetaCSC_ME3/1", 200, -1, 1);
738  hResidualLocalYCSC_ME[14] = fs->make<TH1F>("hResidualLocalYCSC_ME3/1", "hResidualLocalYCSC_ME3/1", 200, -10, 10);
739  hResidualLocalXCSC_ME[15] = fs->make<TH1F>("hResidualLocalXCSC_ME3/2", "hResidualLocalXCSC_ME3/2", 200, -10, 10);
740  hResidualLocalPhiCSC_ME[15] =
741  fs->make<TH1F>("hResidualLocalPhiCSC_ME3/2", "hResidualLocalPhiCSC_ME3/2", 200, -1, 1);
742  hResidualLocalThetaCSC_ME[15] =
743  fs->make<TH1F>("hResidualLocalThetaCSC_ME3/2", "hResidualLocalThetaCSC_ME3/2", 200, -1, 1);
744  hResidualLocalYCSC_ME[15] = fs->make<TH1F>("hResidualLocalYCSC_ME3/2", "hResidualLocalYCSC_ME3/2", 200, -10, 10);
745  hResidualLocalXCSC_ME[16] = fs->make<TH1F>("hResidualLocalXCSC_ME4/1", "hResidualLocalXCSC_ME4/1", 200, -10, 10);
746  hResidualLocalPhiCSC_ME[16] =
747  fs->make<TH1F>("hResidualLocalPhiCSC_ME4/1", "hResidualLocalPhiCSC_ME4/1", 200, -1, 1);
748  hResidualLocalThetaCSC_ME[16] =
749  fs->make<TH1F>("hResidualLocalThetaCSC_ME4/1", "hResidualLocalThetaCSC_ME4/1", 200, -1, 1);
750  hResidualLocalYCSC_ME[16] = fs->make<TH1F>("hResidualLocalYCSC_ME4/1", "hResidualLocalYCSC_ME4/1", 200, -10, 10);
751  hResidualLocalXCSC_ME[17] = fs->make<TH1F>("hResidualLocalXCSC_ME4/2", "hResidualLocalXCSC_ME4/2", 200, -10, 10);
752  hResidualLocalPhiCSC_ME[17] =
753  fs->make<TH1F>("hResidualLocalPhiCSC_ME4/2", "hResidualLocalPhiCSC_ME4/2", 200, -1, 1);
754  hResidualLocalThetaCSC_ME[17] =
755  fs->make<TH1F>("hResidualLocalThetaCSC_ME4/2", "hResidualLocalThetaCSC_ME4/2", 200, -1, 1);
756  hResidualLocalYCSC_ME[17] = fs->make<TH1F>("hResidualLocalYCSC_ME4/2", "hResidualLocalYCSC_ME4/2", 200, -10, 10);
758  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-4/1", "hResidualGlobalRPhiCSC_ME-4/1", 200, -10, 10);
760  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-4/1", "hResidualGlobalPhiCSC_ME-4/1", 200, -1, 1);
762  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-4/1", "hResidualGlobalThetaCSC_ME-4/1", 200, -1, 1);
764  fs->make<TH1F>("hResidualGlobalRCSC_ME-4/1", "hResidualGlobalRCSC_ME-4/1", 200, -10, 10);
765  hResidualGlobalRPhiCSC_ME[1] =
766  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-4/2", "hResidualGlobalRPhiCSC_ME-4/2", 200, -10, 10);
767  hResidualGlobalPhiCSC_ME[1] =
768  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-4/2", "hResidualGlobalPhiCSC_ME-4/2", 200, -1, 1);
769  hResidualGlobalThetaCSC_ME[1] =
770  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-4/2", "hResidualGlobalThetaCSC_ME-4/2", 200, -1, 1);
771  hResidualGlobalRCSC_ME[1] =
772  fs->make<TH1F>("hResidualGlobalRCSC_ME-4/2", "hResidualGlobalRCSC_ME-4/2", 200, -10, 10);
773  hResidualGlobalRPhiCSC_ME[2] =
774  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-3/1", "hResidualGlobalRPhiCSC_ME-3/1", 200, -10, 10);
775  hResidualGlobalPhiCSC_ME[2] =
776  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-3/1", "hResidualGlobalPhiCSC_ME-3/1", 200, -1, 1);
777  hResidualGlobalThetaCSC_ME[2] =
778  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-3/1", "hResidualGlobalThetaCSC_ME-3/1", 200, -1, 1);
779  hResidualGlobalRCSC_ME[2] =
780  fs->make<TH1F>("hResidualGlobalRCSC_ME-3/1", "hResidualGlobalRCSC_ME-3/1", 200, -10, 10);
781  hResidualGlobalRPhiCSC_ME[3] =
782  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-3/2", "hResidualGlobalRPhiCSC_ME-3/2", 200, -10, 10);
783  hResidualGlobalPhiCSC_ME[3] =
784  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-3/2", "hResidualGlobalPhiCSC_ME-3/2", 200, -1, 1);
785  hResidualGlobalThetaCSC_ME[3] =
786  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-3/2", "hResidualGlobalThetaCSC_ME-3/2", 200, -1, 1);
787  hResidualGlobalRCSC_ME[3] =
788  fs->make<TH1F>("hResidualGlobalRCSC_ME-3/2", "hResidualGlobalRCSC_ME-3/2", 200, -10, 10);
789  hResidualGlobalRPhiCSC_ME[4] =
790  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-2/1", "hResidualGlobalRPhiCSC_ME-2/1", 200, -10, 10);
791  hResidualGlobalPhiCSC_ME[4] =
792  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-2/1", "hResidualGlobalPhiCSC_ME-2/1", 200, -1, 1);
793  hResidualGlobalThetaCSC_ME[4] =
794  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-2/1", "hResidualGlobalThetaCSC_ME-2/1", 200, -1, 1);
795  hResidualGlobalRCSC_ME[4] =
796  fs->make<TH1F>("hResidualGlobalRCSC_ME-2/1", "hResidualGlobalRCSC_ME-2/1", 200, -10, 10);
797  hResidualGlobalRPhiCSC_ME[5] =
798  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-2/2", "hResidualGlobalRPhiCSC_ME-2/2", 200, -10, 10);
799  hResidualGlobalPhiCSC_ME[5] =
800  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-2/2", "hResidualGlobalPhiCSC_ME-2/2", 200, -1, 1);
801  hResidualGlobalThetaCSC_ME[5] =
802  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-2/2", "hResidualGlobalThetaCSC_ME-2/2", 200, -1, 1);
803  hResidualGlobalRCSC_ME[5] =
804  fs->make<TH1F>("hResidualGlobalRCSC_ME-2/2", "hResidualGlobalRCSC_ME-2/2", 200, -10, 10);
805  hResidualGlobalRPhiCSC_ME[6] =
806  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-1/1", "hResidualGlobalRPhiCSC_ME-1/1", 200, -10, 10);
807  hResidualGlobalPhiCSC_ME[6] =
808  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-1/1", "hResidualGlobalPhiCSC_ME-1/1", 200, -1, 1);
809  hResidualGlobalThetaCSC_ME[6] =
810  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-1/1", "hResidualGlobalThetaCSC_ME-1/1", 200, -1, 1);
811  hResidualGlobalRCSC_ME[6] =
812  fs->make<TH1F>("hResidualGlobalRCSC_ME-1/1", "hResidualGlobalRCSC_ME-1/1", 200, -10, 10);
813  hResidualGlobalRPhiCSC_ME[7] =
814  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-1/2", "hResidualGlobalRPhiCSC_ME-1/2", 200, -10, 10);
815  hResidualGlobalPhiCSC_ME[7] =
816  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-1/2", "hResidualGlobalPhiCSC_ME-1/2", 200, -1, 1);
817  hResidualGlobalThetaCSC_ME[7] =
818  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-1/2", "hResidualGlobalThetaCSC_ME-1/2", 200, -1, 1);
819  hResidualGlobalRCSC_ME[7] =
820  fs->make<TH1F>("hResidualGlobalRCSC_ME-1/2", "hResidualGlobalRCSC_ME-1/2", 200, -10, 10);
821  hResidualGlobalRPhiCSC_ME[8] =
822  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME-1/3", "hResidualGlobalRPhiCSC_ME-1/3", 200, -10, 10);
823  hResidualGlobalPhiCSC_ME[8] =
824  fs->make<TH1F>("hResidualGlobalPhiCSC_ME-1/3", "hResidualGlobalPhiCSC_ME-1/3", 200, -1, 1);
825  hResidualGlobalThetaCSC_ME[8] =
826  fs->make<TH1F>("hResidualGlobalThetaCSC_ME-1/3", "hResidualGlobalThetaCSC_ME-1/3", 200, -1, 1);
827  hResidualGlobalRCSC_ME[8] =
828  fs->make<TH1F>("hResidualGlobalRCSC_ME-1/3", "hResidualGlobalRCSC_ME-1/3", 200, -10, 10);
829  hResidualGlobalRPhiCSC_ME[9] =
830  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME1/1", "hResidualGlobalRPhiCSC_ME1/1", 200, -10, 10);
831  hResidualGlobalPhiCSC_ME[9] =
832  fs->make<TH1F>("hResidualGlobalPhiCSC_ME1/1", "hResidualGlobalPhiCSC_ME1/1", 100, -1, 1);
833  hResidualGlobalThetaCSC_ME[9] =
834  fs->make<TH1F>("hResidualGlobalThetaCSC_ME1/1", "hResidualGlobalThetaCSC_ME1/1", 200, -1, 1);
835  hResidualGlobalRCSC_ME[9] = fs->make<TH1F>("hResidualGlobalRCSC_ME1/1", "hResidualGlobalRCSC_ME1/1", 200, -10, 10);
836  hResidualGlobalRPhiCSC_ME[10] =
837  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME1/2", "hResidualGlobalRPhiCSC_ME1/2", 200, -10, 10);
838  hResidualGlobalPhiCSC_ME[10] =
839  fs->make<TH1F>("hResidualGlobalPhiCSC_ME1/2", "hResidualGlobalPhiCSC_ME1/2", 200, -1, 1);
840  hResidualGlobalThetaCSC_ME[10] =
841  fs->make<TH1F>("hResidualGlobalThetaCSC_ME1/2", "hResidualGlobalThetaCSC_ME1/2", 200, -1, 1);
842  hResidualGlobalRCSC_ME[10] = fs->make<TH1F>("hResidualGlobalRCSC_ME1/2", "hResidualGlobalRCSC_ME1/2", 200, -10, 10);
843  hResidualGlobalRPhiCSC_ME[11] =
844  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME1/3", "hResidualGlobalRPhiCSC_ME1/3", 200, -10, 10);
845  hResidualGlobalPhiCSC_ME[11] =
846  fs->make<TH1F>("hResidualGlobalPhiCSC_ME1/3", "hResidualGlobalPhiCSC_ME1/3", 200, -1, 1);
847  hResidualGlobalThetaCSC_ME[11] =
848  fs->make<TH1F>("hResidualGlobalThetaCSC_ME1/3", "hResidualGlobalThetaCSC_ME1/3", 200, -1, 1);
849  hResidualGlobalRCSC_ME[11] = fs->make<TH1F>("hResidualGlobalRCSC_ME1/3", "hResidualGlobalRCSC_ME1/3", 200, -10, 10);
850  hResidualGlobalRPhiCSC_ME[12] =
851  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME2/1", "hResidualGlobalRPhiCSC_ME2/1", 200, -10, 10);
852  hResidualGlobalPhiCSC_ME[12] =
853  fs->make<TH1F>("hResidualGlobalPhiCSC_ME2/1", "hResidualGlobalPhiCSC_ME2/1", 200, -1, 1);
854  hResidualGlobalThetaCSC_ME[12] =
855  fs->make<TH1F>("hResidualGlobalThetaCSC_ME2/1", "hResidualGlobalThetaCSC_ME2/1", 200, -1, 1);
856  hResidualGlobalRCSC_ME[12] = fs->make<TH1F>("hResidualGlobalRCSC_ME2/1", "hResidualGlobalRCSC_ME2/1", 200, -10, 10);
857  hResidualGlobalRPhiCSC_ME[13] =
858  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME2/2", "hResidualGlobalRPhiCSC_ME2/2", 200, -10, 10);
859  hResidualGlobalPhiCSC_ME[13] =
860  fs->make<TH1F>("hResidualGlobalPhiCSC_ME2/2", "hResidualGlobalPhiCSC_ME2/2", 200, -1, 1);
861  hResidualGlobalThetaCSC_ME[13] =
862  fs->make<TH1F>("hResidualGlobalThetaCSC_ME2/2", "hResidualGlobalThetaCSC_ME2/2", 200, -1, 1);
863  hResidualGlobalRCSC_ME[13] = fs->make<TH1F>("hResidualGlobalRCSC_ME2/2", "hResidualGlobalRCSC_ME2/2", 200, -10, 10);
864  hResidualGlobalRPhiCSC_ME[14] =
865  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME3/1", "hResidualGlobalRPhiCSC_ME3/1", 200, -10, 10);
866  hResidualGlobalPhiCSC_ME[14] =
867  fs->make<TH1F>("hResidualGlobalPhiCSC_ME3/1", "hResidualGlobalPhiCSC_ME3/1", 200, -1, 1);
868  hResidualGlobalThetaCSC_ME[14] =
869  fs->make<TH1F>("hResidualGlobalThetaCSC_ME3/1", "hResidualGlobalThetaCSC_ME3/1", 200, -1, 1);
870  hResidualGlobalRCSC_ME[14] = fs->make<TH1F>("hResidualGlobalRCSC_ME3/1", "hResidualGlobalRCSC_ME3/1", 200, -10, 10);
871  hResidualGlobalRPhiCSC_ME[15] =
872  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME3/2", "hResidualGlobalRPhiCSC_ME3/2", 200, -10, 10);
873  hResidualGlobalPhiCSC_ME[15] =
874  fs->make<TH1F>("hResidualGlobalPhiCSC_ME3/2", "hResidualGlobalPhiCSC_ME3/2", 200, -1, 1);
875  hResidualGlobalThetaCSC_ME[15] =
876  fs->make<TH1F>("hResidualGlobalThetaCSC_ME3/2", "hResidualGlobalThetaCSC_ME3/2", 200, -1, 1);
877  hResidualGlobalRCSC_ME[15] = fs->make<TH1F>("hResidualGlobalRCSC_ME3/2", "hResidualGlobalRCSC_ME3/2", 200, -10, 10);
878  hResidualGlobalRPhiCSC_ME[16] =
879  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME4/1", "hResidualGlobalRPhiCSC_ME4/1", 200, -10, 10);
880  hResidualGlobalPhiCSC_ME[16] =
881  fs->make<TH1F>("hResidualGlobalPhiCSC_ME4/1", "hResidualGlobalPhiCSC_ME4/1", 200, -1, 1);
882  hResidualGlobalThetaCSC_ME[16] =
883  fs->make<TH1F>("hResidualGlobalThetaCSC_ME4/1", "hResidualGlobalThetaCSC_ME4/1", 200, -1, 1);
884  hResidualGlobalRCSC_ME[16] = fs->make<TH1F>("hResidualGlobalRCSC_ME4/1", "hResidualGlobalRCSC_ME4/1", 200, -10, 10);
885  hResidualGlobalRPhiCSC_ME[17] =
886  fs->make<TH1F>("hResidualGlobalRPhiCSC_ME4/2", "hResidualGlobalRPhiCSC_ME4/2", 200, -10, 10);
887  hResidualGlobalPhiCSC_ME[17] =
888  fs->make<TH1F>("hResidualGlobalPhiCSC_ME4/2", "hResidualGlobalPhiCSC_ME4/2", 200, -1, 1);
889  hResidualGlobalThetaCSC_ME[17] =
890  fs->make<TH1F>("hResidualGlobalThetaCSC_ME4/2", "hResidualGlobalThetaCSC_ME4/2", 200, -1, 1);
891  hResidualGlobalRCSC_ME[17] = fs->make<TH1F>("hResidualGlobalRCSC_ME4/2", "hResidualGlobalRCSC_ME4/2", 200, -10, 10);
892 
893  //DQM plots: mean residual with RMS as error
894  hprofLocalXDT = fs->make<TH1F>("hprofLocalXDT", "Local X DT;;X (cm)", 280, 0, 280);
895  hprofLocalPhiDT = fs->make<TH1F>("hprofLocalPhiDT", "Local Phi DT;;Phi (rad)", 280, 0, 280);
896  hprofLocalThetaDT = fs->make<TH1F>("hprofLocalThetaDT", "Local Theta DT;;Theta (rad)", 280, 0, 280);
897  hprofLocalYDT = fs->make<TH1F>("hprofLocalYDT", "Local Y DT;;Y (cm)", 280, 0, 280);
898  hprofLocalXCSC = fs->make<TH1F>("hprofLocalXCSC", "Local X CSC;;X (cm)", 540, 0, 540);
899  hprofLocalPhiCSC = fs->make<TH1F>("hprofLocalPhiCSC", "Local Phi CSC;;Phi (rad)", 540, 0, 540);
900  hprofLocalThetaCSC = fs->make<TH1F>("hprofLocalThetaCSC", "Local Theta CSC;;Theta (rad)", 540, 0, 540);
901  hprofLocalYCSC = fs->make<TH1F>("hprofLocalYCSC", "Local Y CSC;;Y (cm)", 540, 0, 540);
902  hprofGlobalRPhiDT = fs->make<TH1F>("hprofGlobalRPhiDT", "Global RPhi DT;;RPhi (cm)", 280, 0, 280);
903  hprofGlobalPhiDT = fs->make<TH1F>("hprofGlobalPhiDT", "Global Phi DT;;Phi (rad)", 280, 0, 280);
904  hprofGlobalThetaDT = fs->make<TH1F>("hprofGlobalThetaDT", "Global Theta DT;;Theta (rad)", 280, 0, 280);
905  hprofGlobalZDT = fs->make<TH1F>("hprofGlobalZDT", "Global Z DT;;Z (cm)", 280, 0, 280);
906  hprofGlobalRPhiCSC = fs->make<TH1F>("hprofGlobalRPhiCSC", "Global RPhi CSC;;RPhi (cm)", 540, 0, 540);
907  hprofGlobalPhiCSC = fs->make<TH1F>("hprofGlobalPhiCSC", "Global Phi CSC;;Phi (cm)", 540, 0, 540);
908  hprofGlobalThetaCSC = fs->make<TH1F>("hprofGlobalThetaCSC", "Global Theta CSC;;Theta (rad)", 540, 0, 540);
909  hprofGlobalRCSC = fs->make<TH1F>("hprofGlobalRCSC", "Global R CSC;;R (cm)", 540, 0, 540);
910 
911  // TH1F options
912  hprofLocalXDT->GetXaxis()->SetLabelSize(0.025);
913  hprofLocalPhiDT->GetXaxis()->SetLabelSize(0.025);
914  hprofLocalThetaDT->GetXaxis()->SetLabelSize(0.025);
915  hprofLocalYDT->GetXaxis()->SetLabelSize(0.025);
916  hprofLocalXCSC->GetXaxis()->SetLabelSize(0.025);
917  hprofLocalPhiCSC->GetXaxis()->SetLabelSize(0.025);
918  hprofLocalThetaCSC->GetXaxis()->SetLabelSize(0.025);
919  hprofLocalYCSC->GetXaxis()->SetLabelSize(0.025);
920  hprofGlobalRPhiDT->GetXaxis()->SetLabelSize(0.025);
921  hprofGlobalPhiDT->GetXaxis()->SetLabelSize(0.025);
922  hprofGlobalThetaDT->GetXaxis()->SetLabelSize(0.025);
923  hprofGlobalZDT->GetXaxis()->SetLabelSize(0.025);
924  hprofGlobalRPhiCSC->GetXaxis()->SetLabelSize(0.025);
925  hprofGlobalPhiCSC->GetXaxis()->SetLabelSize(0.025);
926  hprofGlobalThetaCSC->GetXaxis()->SetLabelSize(0.025);
927  hprofGlobalRCSC->GetXaxis()->SetLabelSize(0.025);
928 
929  // TH2F histos definition
930  hprofGlobalPositionDT = fs->make<TH2F>(
931  "hprofGlobalPositionDT", "Global DT position (cm) absolute MEAN residuals;Sector;;cm", 14, 0, 14, 40, 0, 40);
932  hprofGlobalAngleDT = fs->make<TH2F>(
933  "hprofGlobalAngleDT", "Global DT angle (rad) absolute MEAN residuals;Sector;;rad", 14, 0, 14, 40, 0, 40);
935  "hprofGlobalPositionRmsDT", "Global DT position (cm) RMS residuals;Sector;;rad", 14, 0, 14, 40, 0, 40);
936  hprofGlobalAngleRmsDT = fs->make<TH2F>(
937  "hprofGlobalAngleRmsDT", "Global DT angle (rad) RMS residuals;Sector;;rad", 14, 0, 14, 40, 0, 40);
938  hprofLocalPositionDT = fs->make<TH2F>(
939  "hprofLocalPositionDT", "Local DT position (cm) absolute MEAN residuals;Sector;;cm", 14, 0, 14, 40, 0, 40);
940  hprofLocalAngleDT = fs->make<TH2F>(
941  "hprofLocalAngleDT", "Local DT angle (rad) absolute MEAN residuals;Sector;;rad", 14, 0, 14, 40, 0, 40);
943  "hprofLocalPositionRmsDT", "Local DT position (cm) RMS residuals;Sector;;rad", 14, 0, 14, 40, 0, 40);
945  fs->make<TH2F>("hprofLocalAngleRmsDT", "Local DT angle (rad) RMS residuals;Sector;;rad", 14, 0, 14, 40, 0, 40);
946 
947  hprofGlobalPositionCSC = fs->make<TH2F>(
948  "hprofGlobalPositionCSC", "Global CSC position (cm) absolute MEAN residuals;Sector;;cm", 36, 0, 36, 36, 0, 36);
949  hprofGlobalAngleCSC = fs->make<TH2F>(
950  "hprofGlobalAngleCSC", "Global CSC angle (rad) absolute MEAN residuals;Sector;;rad", 36, 0, 36, 36, 0, 36);
952  "hprofGlobalPositionRmsCSC", "Global CSC position (cm) RMS residuals;Sector;;rad", 36, 0, 36, 36, 0, 36);
953  hprofGlobalAngleRmsCSC = fs->make<TH2F>(
954  "hprofGlobalAngleRmsCSC", "Global CSC angle (rad) RMS residuals;Sector;;rad", 36, 0, 36, 36, 0, 36);
955  hprofLocalPositionCSC = fs->make<TH2F>(
956  "hprofLocalPositionCSC", "Local CSC position (cm) absolute MEAN residuals;Sector;;cm", 36, 0, 36, 36, 0, 36);
957  hprofLocalAngleCSC = fs->make<TH2F>(
958  "hprofLocalAngleCSC", "Local CSC angle (rad) absolute MEAN residuals;Sector;;rad", 36, 0, 36, 36, 0, 36);
960  "hprofLocalPositionRmsCSC", "Local CSC position (cm) RMS residuals;Sector;;rad", 36, 0, 36, 36, 0, 36);
961  hprofLocalAngleRmsCSC = fs->make<TH2F>(
962  "hprofLocalAngleRmsCSC", "Local CSC angle (rad) RMS residuals;Sector;;rad", 36, 0, 36, 36, 0, 36);
963 
964  // histos options
965  Float_t labelSize = 0.025;
966  hprofGlobalPositionDT->GetYaxis()->SetLabelSize(labelSize);
967  hprofGlobalAngleDT->GetYaxis()->SetLabelSize(labelSize);
968  hprofGlobalPositionRmsDT->GetYaxis()->SetLabelSize(labelSize);
969  hprofGlobalAngleRmsDT->GetYaxis()->SetLabelSize(labelSize);
970  hprofLocalPositionDT->GetYaxis()->SetLabelSize(labelSize);
971  hprofLocalAngleDT->GetYaxis()->SetLabelSize(labelSize);
972  hprofLocalPositionRmsDT->GetYaxis()->SetLabelSize(labelSize);
973  hprofLocalAngleRmsDT->GetYaxis()->SetLabelSize(labelSize);
974 
975  hprofGlobalPositionCSC->GetYaxis()->SetLabelSize(labelSize);
976  hprofGlobalAngleCSC->GetYaxis()->SetLabelSize(labelSize);
977  hprofGlobalPositionRmsCSC->GetYaxis()->SetLabelSize(labelSize);
978  hprofGlobalAngleRmsCSC->GetYaxis()->SetLabelSize(labelSize);
979  hprofLocalPositionCSC->GetYaxis()->SetLabelSize(labelSize);
980  hprofLocalAngleCSC->GetYaxis()->SetLabelSize(labelSize);
981  hprofLocalPositionRmsCSC->GetYaxis()->SetLabelSize(labelSize);
982  hprofLocalAngleRmsCSC->GetYaxis()->SetLabelSize(labelSize);
983 
984  char binLabel[15];
985  for (int i = 1; i < 15; i++) {
986  snprintf(binLabel, sizeof(binLabel), "Sec-%d", i);
987  hprofGlobalPositionDT->GetXaxis()->SetBinLabel(i, binLabel);
988  hprofGlobalAngleDT->GetXaxis()->SetBinLabel(i, binLabel);
989  hprofGlobalPositionRmsDT->GetXaxis()->SetBinLabel(i, binLabel);
990  hprofGlobalAngleRmsDT->GetXaxis()->SetBinLabel(i, binLabel);
991  hprofLocalPositionDT->GetXaxis()->SetBinLabel(i, binLabel);
992  hprofLocalAngleDT->GetXaxis()->SetBinLabel(i, binLabel);
993  hprofLocalPositionRmsDT->GetXaxis()->SetBinLabel(i, binLabel);
994  hprofLocalAngleRmsDT->GetXaxis()->SetBinLabel(i, binLabel);
995  }
996 
997  for (int i = 1; i < 37; i++) {
998  snprintf(binLabel, sizeof(binLabel), "Ch-%d", i);
999  hprofGlobalPositionCSC->GetXaxis()->SetBinLabel(i, binLabel);
1000  hprofGlobalAngleCSC->GetXaxis()->SetBinLabel(i, binLabel);
1001  hprofGlobalPositionRmsCSC->GetXaxis()->SetBinLabel(i, binLabel);
1002  hprofGlobalAngleRmsCSC->GetXaxis()->SetBinLabel(i, binLabel);
1003  hprofLocalPositionCSC->GetXaxis()->SetBinLabel(i, binLabel);
1004  hprofLocalAngleCSC->GetXaxis()->SetBinLabel(i, binLabel);
1005  hprofLocalPositionRmsCSC->GetXaxis()->SetBinLabel(i, binLabel);
1006  hprofLocalAngleRmsCSC->GetXaxis()->SetBinLabel(i, binLabel);
1007  }
1008  }
1009 }
std::vector< TH1F * > hResidualGlobalRPhiDT_MB
std::vector< TH1F * > hResidualGlobalZDT_W
std::vector< TH1F * > hResidualLocalXCSC_ME
std::vector< TH1F * > hResidualLocalThetaDT_MB
std::vector< TH1F * > hResidualLocalYCSC_ME
std::vector< TH1F * > hResidualLocalPhiCSC_ME
std::vector< TH1F * > hResidualGlobalRPhiCSC_ME
std::vector< TH1F * > hResidualLocalPhiDT_MB
edm::Service< TFileService > fs
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
std::vector< TH1F * > hResidualLocalThetaDT_W
std::vector< TH1F * > hResidualGlobalZDT_MB
std::vector< TH1F * > hResidualGlobalThetaDT_W
std::vector< TH1F * > hResidualGlobalRPhiDT_W
std::vector< TH1F * > hResidualLocalThetaCSC_ME
std::vector< TH1F * > hResidualGlobalPhiCSC_ME
std::vector< TH1F * > hResidualGlobalPhiDT_W
std::vector< TH1F * > hResidualGlobalThetaDT_MB
std::vector< TH1F * > hResidualLocalPhiDT_W
std::vector< TH1F * > hResidualGlobalPhiDT_MB
std::vector< TH1F * > hResidualGlobalThetaCSC_ME
std::vector< TH1F * > hResidualLocalXDT_MB
std::vector< TH1F * > hResidualGlobalRCSC_ME
std::vector< TH1F * > hResidualLocalYDT_W
std::vector< TH1F * > hResidualLocalXDT_W
std::vector< TH1F * > hResidualLocalYDT_MB
RecHitVector MuonAlignmentAnalyzer::doMatching ( const reco::Track staTrack,
edm::Handle< DTRecSegment4DCollection > &  all4DSegmentsDT,
edm::Handle< CSCSegmentCollection > &  all4DSegmentsCSC,
intDVector indexCollectionDT,
intDVector indexCollectionCSC,
edm::ESHandle< GlobalTrackingGeometry > &  theTrackingGeometry 
)
private

Definition at line 2470 of file MuonAlignmentAnalyzer.cc.

References GeomDetEnumerators::CSC, DEFINE_FWK_MODULE, GeomDetEnumerators::DT, TrackingRecHit::geographicalId(), edm::Ref< C, T, F >::get(), GlobalTrackingGeometry::idToDet(), reco::TrackBase::numberOfValidHits(), DetId::rawId(), reco::Track::recHit(), and GeomDet::subDetector().

Referenced by analyze().

2475  {
2478 
2479  std::vector<int> positionDT;
2480  std::vector<int> positionCSC;
2481  RecHitVector my4DTrack;
2482 
2483  //Loop over the hits of the track
2484  for (int counter = 0; counter != staTrack.numberOfValidHits() - 1; counter++) {
2485  TrackingRecHitRef myRef = staTrack.recHit(counter);
2486  const TrackingRecHit *rechit = myRef.get();
2487  const GeomDet *geomDet = theTrackingGeometry->idToDet(rechit->geographicalId());
2488 
2489  //It's a DT Hit
2490  if (geomDet->subDetector() == GeomDetEnumerators::DT) {
2491  //Take the layer associated to this hit
2492  DTLayerId myLayer(rechit->geographicalId().rawId());
2493 
2494  int NumberOfDTSegment = 0;
2495  //Loop over segments
2496  for (segmentDT = all4DSegmentsDT->begin(); segmentDT != all4DSegmentsDT->end(); ++segmentDT) {
2497  //By default the chamber associated to this Segment is new
2498  bool isNewChamber = true;
2499 
2500  //Loop over segments already included in the vector of segments in the actual track
2501  for (std::vector<int>::iterator positionIt = positionDT.begin(); positionIt != positionDT.end(); positionIt++) {
2502  //If this segment has been used before isNewChamber = false
2503  if (NumberOfDTSegment == *positionIt)
2504  isNewChamber = false;
2505  }
2506 
2507  //Loop over vectors of segments associated to previous tracks
2508  for (std::vector<std::vector<int> >::iterator collect = indexCollectionDT->begin();
2509  collect != indexCollectionDT->end();
2510  ++collect) {
2511  //Loop over segments associated to a track
2512  for (std::vector<int>::iterator positionIt = (*collect).begin(); positionIt != (*collect).end();
2513  positionIt++) {
2514  //If this segment was used in a previos track then isNewChamber = false
2515  if (NumberOfDTSegment == *positionIt)
2516  isNewChamber = false;
2517  }
2518  }
2519 
2520  //If the chamber is new
2521  if (isNewChamber) {
2522  DTChamberId myChamber((*segmentDT).geographicalId().rawId());
2523  //If the layer of the hit belongs to the chamber of the 4D Segment
2524  if (myLayer.wheel() == myChamber.wheel() && myLayer.station() == myChamber.station() &&
2525  myLayer.sector() == myChamber.sector()) {
2526  //push position of the segment and tracking rechit
2527  positionDT.push_back(NumberOfDTSegment);
2528  my4DTrack.push_back((TrackingRecHit *)&(*segmentDT));
2529  }
2530  }
2531  NumberOfDTSegment++;
2532  }
2533  //In case is a CSC
2534  } else if (geomDet->subDetector() == GeomDetEnumerators::CSC) {
2535  //Take the layer associated to this hit
2536  CSCDetId myLayer(rechit->geographicalId().rawId());
2537 
2538  int NumberOfCSCSegment = 0;
2539  //Loop over 4Dsegments
2540  for (segmentCSC = all4DSegmentsCSC->begin(); segmentCSC != all4DSegmentsCSC->end(); segmentCSC++) {
2541  //By default the chamber associated to the segment is new
2542  bool isNewChamber = true;
2543 
2544  //Loop over segments in the current track
2545  for (std::vector<int>::iterator positionIt = positionCSC.begin(); positionIt != positionCSC.end();
2546  positionIt++) {
2547  //If this segment has been used then newchamber = false
2548  if (NumberOfCSCSegment == *positionIt)
2549  isNewChamber = false;
2550  }
2551  //Loop over vectors of segments in previous tracks
2552  for (std::vector<std::vector<int> >::iterator collect = indexCollectionCSC->begin();
2553  collect != indexCollectionCSC->end();
2554  ++collect) {
2555  //Loop over segments in a track
2556  for (std::vector<int>::iterator positionIt = (*collect).begin(); positionIt != (*collect).end();
2557  positionIt++) {
2558  //If the segment was used in a previous track isNewChamber = false
2559  if (NumberOfCSCSegment == *positionIt)
2560  isNewChamber = false;
2561  }
2562  }
2563  //If the chamber is new
2564  if (isNewChamber) {
2565  CSCDetId myChamber((*segmentCSC).geographicalId().rawId());
2566  //If the chambers are the same
2567  if (myLayer.chamberId() == myChamber.chamberId()) {
2568  //push
2569  positionCSC.push_back(NumberOfCSCSegment);
2570  my4DTrack.push_back((TrackingRecHit *)&(*segmentCSC));
2571  }
2572  }
2573  NumberOfCSCSegment++;
2574  }
2575  }
2576  }
2577 
2578  indexCollectionDT->push_back(positionDT);
2579  indexCollectionCSC->push_back(positionCSC);
2580 
2581  return my4DTrack;
2582 }
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:43
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:740
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:232
TrackingRecHitRef recHit(size_t i) const
Get i-th hit on the track.
Definition: Track.h:94
const GeomDet * idToDet(DetId) const override
DetId geographicalId() const
virtual SubDetector subDetector() const
Which subdetector.
Definition: GeomDet.cc:38
std::vector< TrackingRecHit * > RecHitVector
void MuonAlignmentAnalyzer::endJob ( void  )
overridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 1011 of file MuonAlignmentAnalyzer.cc.

References funct::abs(), relativeConstraints::chamber, doGBplots, doResplots, doSAplots, hprofGlobalAngleCSC, hprofGlobalAngleDT, hprofGlobalAngleRmsCSC, hprofGlobalAngleRmsDT, hprofGlobalPhiCSC, hprofGlobalPhiDT, hprofGlobalPositionCSC, hprofGlobalPositionDT, hprofGlobalPositionRmsCSC, hprofGlobalPositionRmsDT, hprofGlobalRCSC, hprofGlobalRPhiCSC, hprofGlobalRPhiDT, hprofGlobalThetaCSC, hprofGlobalThetaDT, hprofGlobalZDT, hprofLocalAngleCSC, hprofLocalAngleDT, hprofLocalAngleRmsCSC, hprofLocalAngleRmsDT, hprofLocalPhiCSC, hprofLocalPhiDT, hprofLocalPositionCSC, hprofLocalPositionDT, hprofLocalPositionRmsCSC, hprofLocalPositionRmsDT, hprofLocalThetaCSC, hprofLocalThetaDT, hprofLocalXCSC, hprofLocalXDT, hprofLocalYCSC, hprofLocalYDT, mps_fire::i, VtxSmearedParameters_cfi::MeanZ, numberOfGBRecTracks, numberOfHits, numberOfSARecTracks, numberOfSimTracks, relativeConstraints::ring, relativeConstraints::station, theDataType, unitsGlobalPhi, unitsGlobalRPhi, unitsGlobalRZ, unitsGlobalTheta, unitsLocalPhi, unitsLocalTheta, unitsLocalX, unitsLocalY, and makeMuonMisalignmentScenario::wheel.

Referenced by o2olib.O2ORunMgr::executeJob().

1011  {
1012  edm::LogInfo("MuonAlignmentAnalyzer") << "----------------- " << std::endl << std::endl;
1013 
1014  if (theDataType == "SimData")
1015  edm::LogInfo("MuonAlignmentAnalyzer") << "Number of Sim tracks: " << numberOfSimTracks << std::endl << std::endl;
1016 
1017  if (doSAplots)
1018  edm::LogInfo("MuonAlignmentAnalyzer") << "Number of SA Reco tracks: " << numberOfSARecTracks << std::endl
1019  << std::endl;
1020 
1021  if (doGBplots)
1022  edm::LogInfo("MuonAlignmentAnalyzer") << "Number of GB Reco tracks: " << numberOfGBRecTracks << std::endl
1023  << std::endl;
1024 
1025  if (doResplots) {
1026  // delete thePropagator;
1027 
1028  edm::LogInfo("MuonAlignmentAnalyzer") << "Number of Hits considered for residuals: " << numberOfHits << std::endl
1029  << std::endl;
1030 
1031  char binLabel[40];
1032 
1033  for (unsigned int i = 0; i < unitsLocalX.size(); i++) {
1034  TString nameHistoLocalX = unitsLocalX[i]->GetName();
1035 
1036  TString nameHistoLocalPhi = unitsLocalPhi[i]->GetName();
1037 
1038  TString nameHistoLocalTheta = unitsLocalTheta[i]->GetName();
1039 
1040  TString nameHistoLocalY = unitsLocalY[i]->GetName();
1041 
1042  TString nameHistoGlobalRPhi = unitsGlobalRPhi[i]->GetName();
1043 
1044  TString nameHistoGlobalPhi = unitsGlobalPhi[i]->GetName();
1045 
1046  TString nameHistoGlobalTheta = unitsGlobalTheta[i]->GetName();
1047 
1048  TString nameHistoGlobalRZ = unitsGlobalRZ[i]->GetName();
1049 
1050  if (nameHistoLocalX.Contains("MB")) // HistoLocalX DT
1051  {
1052  int wheel, station, sector;
1053 
1054  sscanf(nameHistoLocalX, "ResidualLocalX_W%dMB%1dS%d", &wheel, &station, &sector);
1055 
1056  Int_t nstation = station - 1;
1057  Int_t nwheel = wheel + 2;
1058 
1059  Double_t MeanRPhi = unitsLocalX[i]->GetMean();
1060  Double_t ErrorRPhi = unitsLocalX[i]->GetMeanError();
1061 
1062  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1063 
1064  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1065 
1066  hprofLocalXDT->SetMarkerStyle(21);
1067  hprofLocalXDT->SetMarkerColor(kRed);
1068  hprofLocalXDT->SetBinContent(xbin, MeanRPhi);
1069  hprofLocalXDT->SetBinError(xbin, ErrorRPhi);
1070  hprofLocalXDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1071 
1072  Int_t ybin = 1 + nwheel * 8 + nstation * 2;
1073  hprofLocalPositionDT->SetBinContent(sector, ybin, fabs(MeanRPhi));
1074  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_LocalX", wheel, station);
1075  hprofLocalPositionDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1076  hprofLocalPositionRmsDT->SetBinContent(sector, ybin, ErrorRPhi);
1077  hprofLocalPositionRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1078  }
1079 
1080  if (nameHistoLocalX.Contains("ME")) // HistoLocalX CSC
1081  {
1082  int station, ring, chamber;
1083 
1084  sscanf(nameHistoLocalX, "ResidualLocalX_ME%dR%1dC%d", &station, &ring, &chamber);
1085 
1086  Double_t MeanRPhi = unitsLocalX[i]->GetMean();
1087  Double_t ErrorRPhi = unitsLocalX[i]->GetMeanError();
1088 
1089  Int_t xbin = abs(station) * 2 + ring;
1090  if (abs(station) == 1)
1091  xbin = ring;
1092  if (station > 0)
1093  xbin = xbin + 9;
1094  else
1095  xbin = 10 - xbin;
1096 
1097  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1098  if (xbin < 5)
1099  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1100  else if (xbin < 6)
1101  xbin = 108 + chamber;
1102  else if (xbin < 14)
1103  xbin = 126 + (xbin - 6) * 36 + chamber;
1104  else if (xbin < 18)
1105  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1106  else
1107  xbin = 522 + chamber;
1108 
1109  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1110 
1111  hprofLocalXCSC->SetMarkerStyle(21);
1112  hprofLocalXCSC->SetMarkerColor(kRed);
1113  hprofLocalXCSC->SetBinContent(xbin, MeanRPhi);
1114  hprofLocalXCSC->SetBinError(xbin, ErrorRPhi);
1115  hprofLocalXCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1116 
1117  Int_t ybin = abs(station) * 2 + ring;
1118  if (abs(station) == 1)
1119  ybin = ring;
1120  if (station > 0)
1121  ybin = ybin + 9;
1122  else
1123  ybin = 10 - ybin;
1124  ybin = 2 * ybin - 1;
1125  hprofLocalPositionCSC->SetBinContent(chamber, ybin, fabs(MeanRPhi));
1126  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_LocalX", station, ring);
1127  hprofLocalPositionCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1128  hprofLocalPositionRmsCSC->SetBinContent(chamber, ybin, ErrorRPhi);
1129  hprofLocalPositionRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1130  }
1131 
1132  if (nameHistoLocalTheta.Contains("MB")) // HistoLocalTheta DT
1133  {
1134  int wheel, station, sector;
1135 
1136  sscanf(nameHistoLocalTheta, "ResidualLocalTheta_W%dMB%1dS%d", &wheel, &station, &sector);
1137 
1138  if (station != 4) {
1139  Int_t nstation = station - 1;
1140  Int_t nwheel = wheel + 2;
1141 
1142  Double_t MeanTheta = unitsLocalTheta[i]->GetMean();
1143  Double_t ErrorTheta = unitsLocalTheta[i]->GetMeanError();
1144 
1145  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1146 
1147  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1148 
1149  hprofLocalThetaDT->SetBinContent(xbin, MeanTheta);
1150  hprofLocalThetaDT->SetBinError(xbin, ErrorTheta);
1151  hprofLocalThetaDT->SetMarkerStyle(21);
1152  hprofLocalThetaDT->SetMarkerColor(kRed);
1153  hprofLocalThetaDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1154 
1155  Int_t ybin = 2 + nwheel * 8 + nstation * 2;
1156  hprofLocalAngleDT->SetBinContent(sector, ybin, fabs(MeanTheta));
1157  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_LocalTheta", wheel, station);
1158  hprofLocalAngleDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1159  hprofLocalAngleRmsDT->SetBinContent(sector, ybin, ErrorTheta);
1160  hprofLocalAngleRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1161  }
1162  }
1163 
1164  if (nameHistoLocalPhi.Contains("MB")) // HistoLocalPhi DT
1165  {
1166  int wheel, station, sector;
1167 
1168  sscanf(nameHistoLocalPhi, "ResidualLocalPhi_W%dMB%1dS%d", &wheel, &station, &sector);
1169 
1170  Int_t nstation = station - 1;
1171  Int_t nwheel = wheel + 2;
1172 
1173  Double_t MeanPhi = unitsLocalPhi[i]->GetMean();
1174  Double_t ErrorPhi = unitsLocalPhi[i]->GetMeanError();
1175 
1176  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1177 
1178  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1179 
1180  hprofLocalPhiDT->SetBinContent(xbin, MeanPhi);
1181  hprofLocalPhiDT->SetBinError(xbin, ErrorPhi);
1182  hprofLocalPhiDT->SetMarkerStyle(21);
1183  hprofLocalPhiDT->SetMarkerColor(kRed);
1184  hprofLocalPhiDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1185 
1186  Int_t ybin = 1 + nwheel * 8 + nstation * 2;
1187  hprofLocalAngleDT->SetBinContent(sector, ybin, fabs(MeanPhi));
1188  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_LocalPhi", wheel, station);
1189  hprofLocalAngleDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1190  hprofLocalAngleRmsDT->SetBinContent(sector, ybin, ErrorPhi);
1191  hprofLocalAngleRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1192  }
1193 
1194  if (nameHistoLocalPhi.Contains("ME")) // HistoLocalPhi CSC
1195  {
1196  int station, ring, chamber;
1197 
1198  sscanf(nameHistoLocalPhi, "ResidualLocalPhi_ME%dR%1dC%d", &station, &ring, &chamber);
1199 
1200  Double_t MeanPhi = unitsLocalPhi[i]->GetMean();
1201  Double_t ErrorPhi = unitsLocalPhi[i]->GetMeanError();
1202 
1203  Int_t xbin = abs(station) * 2 + ring;
1204  if (abs(station) == 1)
1205  xbin = ring;
1206  if (station > 0)
1207  xbin = xbin + 9;
1208  else
1209  xbin = 10 - xbin;
1210 
1211  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1212  if (xbin < 5)
1213  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1214  else if (xbin < 6)
1215  xbin = 108 + chamber;
1216  else if (xbin < 14)
1217  xbin = 126 + (xbin - 6) * 36 + chamber;
1218  else if (xbin < 18)
1219  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1220  else
1221  xbin = 522 + chamber;
1222 
1223  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1224 
1225  hprofLocalPhiCSC->SetMarkerStyle(21);
1226  hprofLocalPhiCSC->SetMarkerColor(kRed);
1227  hprofLocalPhiCSC->SetBinContent(xbin, MeanPhi);
1228  hprofLocalPhiCSC->SetBinError(xbin, ErrorPhi);
1229  hprofLocalPhiCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1230 
1231  Int_t ybin = abs(station) * 2 + ring;
1232  if (abs(station) == 1)
1233  ybin = ring;
1234  if (station > 0)
1235  ybin = ybin + 9;
1236  else
1237  ybin = 10 - ybin;
1238  ybin = 2 * ybin - 1;
1239  hprofLocalAngleCSC->SetBinContent(chamber, ybin, fabs(MeanPhi));
1240  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_LocalPhi", station, ring);
1241  hprofLocalAngleCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1242  hprofLocalAngleRmsCSC->SetBinContent(chamber, ybin, ErrorPhi);
1243  hprofLocalAngleRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1244  }
1245 
1246  if (nameHistoLocalTheta.Contains("ME")) // HistoLocalTheta CSC
1247  {
1248  int station, ring, chamber;
1249 
1250  sscanf(nameHistoLocalTheta, "ResidualLocalTheta_ME%dR%1dC%d", &station, &ring, &chamber);
1251 
1252  Double_t MeanTheta = unitsLocalTheta[i]->GetMean();
1253  Double_t ErrorTheta = unitsLocalTheta[i]->GetMeanError();
1254 
1255  Int_t xbin = abs(station) * 2 + ring;
1256  if (abs(station) == 1)
1257  xbin = ring;
1258  if (station > 0)
1259  xbin = xbin + 9;
1260  else
1261  xbin = 10 - xbin;
1262 
1263  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1264  if (xbin < 5)
1265  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1266  else if (xbin < 6)
1267  xbin = 108 + chamber;
1268  else if (xbin < 14)
1269  xbin = 126 + (xbin - 6) * 36 + chamber;
1270  else if (xbin < 18)
1271  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1272  else
1273  xbin = 522 + chamber;
1274 
1275  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1276 
1277  hprofLocalThetaCSC->SetMarkerStyle(21);
1278  hprofLocalThetaCSC->SetMarkerColor(kRed);
1279  hprofLocalThetaCSC->SetBinContent(xbin, MeanTheta);
1280  hprofLocalThetaCSC->SetBinError(xbin, ErrorTheta);
1281  hprofLocalThetaCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1282 
1283  Int_t ybin = abs(station) * 2 + ring;
1284  if (abs(station) == 1)
1285  ybin = ring;
1286  if (station > 0)
1287  ybin = ybin + 9;
1288  else
1289  ybin = 10 - ybin;
1290  ybin = 2 * ybin;
1291  hprofLocalAngleCSC->SetBinContent(chamber, ybin, fabs(MeanTheta));
1292  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_LocalTheta", station, ring);
1293  hprofLocalAngleCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1294  hprofLocalAngleRmsCSC->SetBinContent(chamber, ybin, ErrorTheta);
1295  hprofLocalAngleRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1296  }
1297 
1298  if (nameHistoLocalY.Contains("MB")) // HistoLocalY DT
1299  {
1300  int wheel, station, sector;
1301 
1302  sscanf(nameHistoLocalY, "ResidualLocalY_W%dMB%1dS%d", &wheel, &station, &sector);
1303 
1304  if (station != 4) {
1305  Int_t nstation = station - 1;
1306  Int_t nwheel = wheel + 2;
1307 
1308  Double_t MeanZ = unitsLocalY[i]->GetMean();
1309  Double_t ErrorZ = unitsLocalY[i]->GetMeanError();
1310 
1311  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1312 
1313  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1314 
1315  hprofLocalYDT->SetMarkerStyle(21);
1316  hprofLocalYDT->SetMarkerColor(kRed);
1317  hprofLocalYDT->SetBinContent(xbin, MeanZ);
1318  hprofLocalYDT->SetBinError(xbin, ErrorZ);
1319  hprofLocalYDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1320 
1321  Int_t ybin = 2 + nwheel * 8 + nstation * 2;
1322  hprofLocalPositionDT->SetBinContent(sector, ybin, fabs(MeanZ));
1323  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_LocalY", wheel, station);
1324  hprofLocalPositionDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1325  hprofLocalPositionRmsDT->SetBinContent(sector, ybin, ErrorZ);
1326  hprofLocalPositionRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1327  }
1328  }
1329 
1330  if (nameHistoLocalY.Contains("ME")) // HistoLocalY CSC
1331  {
1332  int station, ring, chamber;
1333 
1334  sscanf(nameHistoLocalY, "ResidualLocalY_ME%dR%1dC%d", &station, &ring, &chamber);
1335 
1336  Double_t MeanR = unitsLocalY[i]->GetMean();
1337  Double_t ErrorR = unitsLocalY[i]->GetMeanError();
1338 
1339  Int_t xbin = abs(station) * 2 + ring;
1340  if (abs(station) == 1)
1341  xbin = ring;
1342  if (station > 0)
1343  xbin = xbin + 9;
1344  else
1345  xbin = 10 - xbin;
1346 
1347  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1348  if (xbin < 5)
1349  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1350  else if (xbin < 6)
1351  xbin = 108 + chamber;
1352  else if (xbin < 14)
1353  xbin = 126 + (xbin - 6) * 36 + chamber;
1354  else if (xbin < 18)
1355  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1356  else
1357  xbin = 522 + chamber;
1358 
1359  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1360 
1361  hprofLocalYCSC->SetMarkerStyle(21);
1362  hprofLocalYCSC->SetMarkerColor(kRed);
1363  hprofLocalYCSC->SetBinContent(xbin, MeanR);
1364  hprofLocalYCSC->SetBinError(xbin, ErrorR);
1365  hprofLocalYCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1366 
1367  Int_t ybin = abs(station) * 2 + ring;
1368  if (abs(station) == 1)
1369  ybin = ring;
1370  if (station > 0)
1371  ybin = ybin + 9;
1372  else
1373  ybin = 10 - ybin;
1374  ybin = 2 * ybin;
1375  hprofLocalPositionCSC->SetBinContent(chamber, ybin, fabs(MeanR));
1376  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_LocalY", station, ring);
1377  hprofLocalPositionCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1378  hprofLocalPositionRmsCSC->SetBinContent(chamber, ybin, ErrorR);
1379  hprofLocalPositionRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1380  }
1381 
1382  if (nameHistoGlobalRPhi.Contains("MB")) // HistoGlobalRPhi DT
1383  {
1384  int wheel, station, sector;
1385 
1386  sscanf(nameHistoGlobalRPhi, "ResidualGlobalRPhi_W%dMB%1dS%d", &wheel, &station, &sector);
1387 
1388  Int_t nstation = station - 1;
1389  Int_t nwheel = wheel + 2;
1390 
1391  Double_t MeanRPhi = unitsGlobalRPhi[i]->GetMean();
1392  Double_t ErrorRPhi = unitsGlobalRPhi[i]->GetMeanError();
1393 
1394  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1395 
1396  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1397 
1398  hprofGlobalRPhiDT->SetMarkerStyle(21);
1399  hprofGlobalRPhiDT->SetMarkerColor(kRed);
1400  hprofGlobalRPhiDT->SetBinContent(xbin, MeanRPhi);
1401  hprofGlobalRPhiDT->SetBinError(xbin, ErrorRPhi);
1402  hprofGlobalRPhiDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1403 
1404  Int_t ybin = 1 + nwheel * 8 + nstation * 2;
1405  hprofGlobalPositionDT->SetBinContent(sector, ybin, fabs(MeanRPhi));
1406  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_GlobalRPhi", wheel, station);
1407  hprofGlobalPositionDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1408  hprofGlobalPositionRmsDT->SetBinContent(sector, ybin, ErrorRPhi);
1409  hprofGlobalPositionRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1410  }
1411 
1412  if (nameHistoGlobalRPhi.Contains("ME")) // HistoGlobalRPhi CSC
1413  {
1414  int station, ring, chamber;
1415 
1416  sscanf(nameHistoGlobalRPhi, "ResidualGlobalRPhi_ME%dR%1dC%d", &station, &ring, &chamber);
1417 
1418  Double_t MeanRPhi = unitsGlobalRPhi[i]->GetMean();
1419  Double_t ErrorRPhi = unitsGlobalRPhi[i]->GetMeanError();
1420 
1421  Int_t xbin = abs(station) * 2 + ring;
1422  if (abs(station) == 1)
1423  xbin = ring;
1424  if (station > 0)
1425  xbin = xbin + 9;
1426  else
1427  xbin = 10 - xbin;
1428 
1429  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1430  if (xbin < 5)
1431  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1432  else if (xbin < 6)
1433  xbin = 108 + chamber;
1434  else if (xbin < 14)
1435  xbin = 126 + (xbin - 6) * 36 + chamber;
1436  else if (xbin < 18)
1437  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1438  else
1439  xbin = 522 + chamber;
1440 
1441  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1442 
1443  hprofGlobalRPhiCSC->SetMarkerStyle(21);
1444  hprofGlobalRPhiCSC->SetMarkerColor(kRed);
1445  hprofGlobalRPhiCSC->SetBinContent(xbin, MeanRPhi);
1446  hprofGlobalRPhiCSC->SetBinError(xbin, ErrorRPhi);
1447  hprofGlobalRPhiCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1448 
1449  Int_t ybin = abs(station) * 2 + ring;
1450  if (abs(station) == 1)
1451  ybin = ring;
1452  if (station > 0)
1453  ybin = ybin + 9;
1454  else
1455  ybin = 10 - ybin;
1456  ybin = 2 * ybin - 1;
1457  hprofGlobalPositionCSC->SetBinContent(chamber, ybin, fabs(MeanRPhi));
1458  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_GlobalRPhi", station, ring);
1459  hprofGlobalPositionCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1460  hprofGlobalPositionRmsCSC->SetBinContent(chamber, ybin, ErrorRPhi);
1461  hprofGlobalPositionRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1462  }
1463 
1464  if (nameHistoGlobalTheta.Contains("MB")) // HistoGlobalRTheta DT
1465  {
1466  int wheel, station, sector;
1467 
1468  sscanf(nameHistoGlobalTheta, "ResidualGlobalTheta_W%dMB%1dS%d", &wheel, &station, &sector);
1469 
1470  if (station != 4) {
1471  Int_t nstation = station - 1;
1472  Int_t nwheel = wheel + 2;
1473 
1474  Double_t MeanTheta = unitsGlobalTheta[i]->GetMean();
1475  Double_t ErrorTheta = unitsGlobalTheta[i]->GetMeanError();
1476 
1477  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1478 
1479  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1480 
1481  hprofGlobalThetaDT->SetBinContent(xbin, MeanTheta);
1482  hprofGlobalThetaDT->SetBinError(xbin, ErrorTheta);
1483  hprofGlobalThetaDT->SetMarkerStyle(21);
1484  hprofGlobalThetaDT->SetMarkerColor(kRed);
1485  hprofGlobalThetaDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1486 
1487  Int_t ybin = 2 + nwheel * 8 + nstation * 2;
1488  hprofGlobalAngleDT->SetBinContent(sector, ybin, fabs(MeanTheta));
1489  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_GlobalTheta", wheel, station);
1490  hprofGlobalAngleDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1491  hprofGlobalAngleRmsDT->SetBinContent(sector, ybin, ErrorTheta);
1492  hprofGlobalAngleRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1493  }
1494  }
1495 
1496  if (nameHistoGlobalPhi.Contains("MB")) // HistoGlobalPhi DT
1497  {
1498  int wheel, station, sector;
1499 
1500  sscanf(nameHistoGlobalPhi, "ResidualGlobalPhi_W%dMB%1dS%d", &wheel, &station, &sector);
1501 
1502  Int_t nstation = station - 1;
1503  Int_t nwheel = wheel + 2;
1504 
1505  Double_t MeanPhi = unitsGlobalPhi[i]->GetMean();
1506  Double_t ErrorPhi = unitsGlobalPhi[i]->GetMeanError();
1507 
1508  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1509 
1510  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1511 
1512  hprofGlobalPhiDT->SetBinContent(xbin, MeanPhi);
1513  hprofGlobalPhiDT->SetBinError(xbin, ErrorPhi);
1514  hprofGlobalPhiDT->SetMarkerStyle(21);
1515  hprofGlobalPhiDT->SetMarkerColor(kRed);
1516  hprofGlobalPhiDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1517 
1518  Int_t ybin = 1 + nwheel * 8 + nstation * 2;
1519  hprofGlobalAngleDT->SetBinContent(sector, ybin, fabs(MeanPhi));
1520  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_GlobalPhi", wheel, station);
1521  hprofGlobalAngleDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1522  hprofGlobalAngleRmsDT->SetBinContent(sector, ybin, ErrorPhi);
1523  hprofGlobalAngleRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1524  }
1525 
1526  if (nameHistoGlobalPhi.Contains("ME")) // HistoGlobalPhi CSC
1527  {
1528  int station, ring, chamber;
1529 
1530  sscanf(nameHistoGlobalPhi, "ResidualGlobalPhi_ME%dR%1dC%d", &station, &ring, &chamber);
1531 
1532  Double_t MeanPhi = unitsGlobalPhi[i]->GetMean();
1533  Double_t ErrorPhi = unitsGlobalPhi[i]->GetMeanError();
1534 
1535  Int_t xbin = abs(station) * 2 + ring;
1536  if (abs(station) == 1)
1537  xbin = ring;
1538  if (station > 0)
1539  xbin = xbin + 9;
1540  else
1541  xbin = 10 - xbin;
1542 
1543  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1544  if (xbin < 5)
1545  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1546  else if (xbin < 6)
1547  xbin = 108 + chamber;
1548  else if (xbin < 14)
1549  xbin = 126 + (xbin - 6) * 36 + chamber;
1550  else if (xbin < 18)
1551  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1552  else
1553  xbin = 522 + chamber;
1554 
1555  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1556 
1557  hprofGlobalPhiCSC->SetMarkerStyle(21);
1558  hprofGlobalPhiCSC->SetMarkerColor(kRed);
1559  hprofGlobalPhiCSC->SetBinContent(xbin, MeanPhi);
1560  hprofGlobalPhiCSC->SetBinError(xbin, ErrorPhi);
1561  hprofGlobalPhiCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1562 
1563  Int_t ybin = abs(station) * 2 + ring;
1564  if (abs(station) == 1)
1565  ybin = ring;
1566  if (station > 0)
1567  ybin = ybin + 9;
1568  else
1569  ybin = 10 - ybin;
1570  ybin = 2 * ybin - 1;
1571  hprofGlobalAngleCSC->SetBinContent(chamber, ybin, fabs(MeanPhi));
1572  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_GlobalPhi", station, ring);
1573  hprofGlobalAngleCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1574  hprofGlobalAngleRmsCSC->SetBinContent(chamber, ybin, ErrorPhi);
1575  hprofGlobalAngleRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1576  }
1577 
1578  if (nameHistoGlobalTheta.Contains("ME")) // HistoGlobalTheta CSC
1579  {
1580  int station, ring, chamber;
1581 
1582  sscanf(nameHistoGlobalTheta, "ResidualGlobalTheta_ME%dR%1dC%d", &station, &ring, &chamber);
1583 
1584  Double_t MeanTheta = unitsGlobalTheta[i]->GetMean();
1585  Double_t ErrorTheta = unitsGlobalTheta[i]->GetMeanError();
1586 
1587  Int_t xbin = abs(station) * 2 + ring;
1588  if (abs(station) == 1)
1589  xbin = ring;
1590  if (station > 0)
1591  xbin = xbin + 9;
1592  else
1593  xbin = 10 - xbin;
1594 
1595  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1596  if (xbin < 5)
1597  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1598  else if (xbin < 6)
1599  xbin = 108 + chamber;
1600  else if (xbin < 14)
1601  xbin = 126 + (xbin - 6) * 36 + chamber;
1602  else if (xbin < 18)
1603  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1604  else
1605  xbin = 522 + chamber;
1606 
1607  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1608 
1609  hprofGlobalThetaCSC->SetMarkerStyle(21);
1610  hprofGlobalThetaCSC->SetMarkerColor(kRed);
1611  hprofGlobalThetaCSC->SetBinContent(xbin, MeanTheta);
1612  hprofGlobalThetaCSC->SetBinError(xbin, ErrorTheta);
1613  hprofGlobalThetaCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1614 
1615  Int_t ybin = abs(station) * 2 + ring;
1616  if (abs(station) == 1)
1617  ybin = ring;
1618  if (station > 0)
1619  ybin = ybin + 9;
1620  else
1621  ybin = 10 - ybin;
1622  ybin = 2 * ybin;
1623  hprofGlobalAngleCSC->SetBinContent(chamber, ybin, fabs(MeanTheta));
1624  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_GlobalTheta", station, ring);
1625  hprofGlobalAngleCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1626  hprofGlobalAngleRmsCSC->SetBinContent(chamber, ybin, ErrorTheta);
1627  hprofGlobalAngleRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1628  }
1629 
1630  if (nameHistoGlobalRZ.Contains("MB")) // HistoGlobalZ DT
1631  {
1632  int wheel, station, sector;
1633 
1634  sscanf(nameHistoGlobalRZ, "ResidualGlobalZ_W%dMB%1dS%d", &wheel, &station, &sector);
1635 
1636  if (station != 4) {
1637  Int_t nstation = station - 1;
1638  Int_t nwheel = wheel + 2;
1639 
1640  Double_t MeanZ = unitsGlobalRZ[i]->GetMean();
1641  Double_t ErrorZ = unitsGlobalRZ[i]->GetMeanError();
1642 
1643  Int_t xbin = sector + 14 * nstation + 14 * 4 * nwheel;
1644 
1645  snprintf(binLabel, sizeof(binLabel), "MB%d/%dS%d", wheel, station, sector);
1646 
1647  hprofGlobalZDT->SetMarkerStyle(21);
1648  hprofGlobalZDT->SetMarkerColor(kRed);
1649 
1650  hprofGlobalZDT->SetBinContent(xbin, MeanZ);
1651  hprofGlobalZDT->SetBinError(xbin, ErrorZ);
1652  hprofGlobalZDT->GetXaxis()->SetBinLabel(xbin, binLabel);
1653 
1654  Int_t ybin = 2 + nwheel * 8 + nstation * 2;
1655  hprofGlobalPositionDT->SetBinContent(sector, ybin, fabs(MeanZ));
1656  snprintf(binLabel, sizeof(binLabel), "MB%d/%d_GlobalZ", wheel, station);
1657  hprofGlobalPositionDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1658  hprofGlobalPositionRmsDT->SetBinContent(sector, ybin, ErrorZ);
1659  hprofGlobalPositionRmsDT->GetYaxis()->SetBinLabel(ybin, binLabel);
1660  }
1661  }
1662 
1663  if (nameHistoGlobalRZ.Contains("ME")) // HistoGlobalR CSC
1664  {
1665  int station, ring, chamber;
1666 
1667  sscanf(nameHistoGlobalRZ, "ResidualGlobalR_ME%dR%1dC%d", &station, &ring, &chamber);
1668 
1669  Double_t MeanR = unitsGlobalRZ[i]->GetMean();
1670  Double_t ErrorR = unitsGlobalRZ[i]->GetMeanError();
1671 
1672  Int_t xbin = abs(station) * 2 + ring;
1673  if (abs(station) == 1)
1674  xbin = ring;
1675  if (station > 0)
1676  xbin = xbin + 9;
1677  else
1678  xbin = 10 - xbin;
1679 
1680  // To avoid holes in xAxis, I can't imagine right now a simpler way...
1681  if (xbin < 5)
1682  xbin = 18 * (((Int_t)(xbin / 3)) * 2 + (Int_t)(xbin / 2)) + chamber;
1683  else if (xbin < 6)
1684  xbin = 108 + chamber;
1685  else if (xbin < 14)
1686  xbin = 126 + (xbin - 6) * 36 + chamber;
1687  else if (xbin < 18)
1688  xbin = 414 + 18 * (((Int_t)(xbin - 13) / 3) * 2 + ((Int_t)(xbin - 13) / 2)) + chamber;
1689  else
1690  xbin = 522 + chamber;
1691 
1692  snprintf(binLabel, sizeof(binLabel), "ME%d/%dC%d", station, ring, chamber);
1693 
1694  hprofGlobalRCSC->SetMarkerStyle(21);
1695  hprofGlobalRCSC->SetMarkerColor(kRed);
1696  hprofGlobalRCSC->SetBinContent(xbin, MeanR);
1697  hprofGlobalRCSC->SetBinError(xbin, ErrorR);
1698  hprofGlobalRCSC->GetXaxis()->SetBinLabel(xbin, binLabel);
1699 
1700  Int_t ybin = abs(station) * 2 + ring;
1701  if (abs(station) == 1)
1702  ybin = ring;
1703  if (station > 0)
1704  ybin = ybin + 9;
1705  else
1706  ybin = 10 - ybin;
1707  ybin = 2 * ybin;
1708  hprofGlobalPositionCSC->SetBinContent(chamber, ybin, fabs(MeanR));
1709  snprintf(binLabel, sizeof(binLabel), "ME%d/%d_GlobalR", station, ring);
1710  hprofGlobalPositionCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1711  hprofGlobalPositionRmsCSC->SetBinContent(chamber, ybin, ErrorR);
1712  hprofGlobalPositionRmsCSC->GetYaxis()->SetBinLabel(ybin, binLabel);
1713  }
1714 
1715  } // for in histos
1716 
1717  } // doResPlots
1718 }
std::vector< TH1F * > unitsGlobalPhi
std::vector< TH1F * > unitsGlobalRPhi
std::vector< TH1F * > unitsLocalX
std::vector< TH1F * > unitsLocalTheta
std::vector< TH1F * > unitsGlobalRZ
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
std::vector< TH1F * > unitsLocalPhi
std::vector< TH1F * > unitsLocalY
std::vector< TH1F * > unitsGlobalTheta

Member Data Documentation

std::vector<long> MuonAlignmentAnalyzer::detectorCollection
private

Definition at line 258 of file MuonAlignmentAnalyzer.h.

Referenced by analyze().

bool MuonAlignmentAnalyzer::doGBplots
private

Definition at line 77 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), beginJob(), endJob(), and MuonAlignmentAnalyzer().

bool MuonAlignmentAnalyzer::doResplots
private

Definition at line 77 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), beginJob(), endJob(), and MuonAlignmentAnalyzer().

bool MuonAlignmentAnalyzer::doSAplots
private

Definition at line 77 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), beginJob(), endJob(), and MuonAlignmentAnalyzer().

edm::Service<TFileService> MuonAlignmentAnalyzer::fs
private

Definition at line 64 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBChi2
private

Definition at line 101 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBChi2_Barrel
private

Definition at line 103 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBChi2_Endcap
private

Definition at line 105 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBInvM
private

Definition at line 109 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBInvM_Barrel
private

Definition at line 113 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBInvM_Endcap
private

Definition at line 117 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBInvM_Overlap
private

Definition at line 122 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBinvPTres
private

Definition at line 152 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hGBinvPTvsEta
private

Definition at line 164 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hGBinvPTvsNhits
private

Definition at line 169 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hGBinvPTvsPhi
private

Definition at line 165 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBNhits
private

Definition at line 93 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBNhits_Barrel
private

Definition at line 94 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBNhits_Endcap
private

Definition at line 95 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBNmuons
private

Definition at line 82 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBNmuons_Barrel
private

Definition at line 85 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBNmuons_Endcap
private

Definition at line 88 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hGBPhivsEta
private

Definition at line 146 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBPTDiff
private

Definition at line 159 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hGBPTDiffvsEta
private

Definition at line 162 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hGBPTDiffvsPhi
private

Definition at line 163 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBPTRec
private

Definition at line 128 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBPTRec_Barrel
private

Definition at line 131 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBPTRec_Endcap
private

Definition at line 134 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBPTres
private

Definition at line 151 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBPTres_Barrel
private

Definition at line 155 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hGBPTres_Endcap
private

Definition at line 156 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hGBPTvsEta
private

Definition at line 136 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hGBPTvsPhi
private

Definition at line 137 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hprofGlobalAngleCSC
private

Definition at line 229 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofGlobalAngleDT
private

Definition at line 237 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofGlobalAngleRmsCSC
private

Definition at line 231 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofGlobalAngleRmsDT
private

Definition at line 239 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofGlobalPhiCSC
private

Definition at line 254 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofGlobalPhiDT
private

Definition at line 250 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofGlobalPositionCSC
private

Definition at line 228 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofGlobalPositionDT
private

Definition at line 236 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofGlobalPositionRmsCSC
private

Definition at line 230 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofGlobalPositionRmsDT
private

Definition at line 238 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofGlobalRCSC
private

Definition at line 256 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofGlobalRPhiCSC
private

Definition at line 253 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofGlobalRPhiDT
private

Definition at line 249 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofGlobalThetaCSC
private

Definition at line 255 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofGlobalThetaDT
private

Definition at line 251 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofGlobalZDT
private

Definition at line 252 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofLocalAngleCSC
private

Definition at line 225 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofLocalAngleDT
private

Definition at line 233 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofLocalAngleRmsCSC
private

Definition at line 227 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofLocalAngleRmsDT
private

Definition at line 235 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofLocalPhiCSC
private

Definition at line 246 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofLocalPhiDT
private

Definition at line 242 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofLocalPositionCSC
private

Definition at line 224 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofLocalPositionDT
private

Definition at line 232 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofLocalPositionRmsCSC
private

Definition at line 226 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH2F* MuonAlignmentAnalyzer::hprofLocalPositionRmsDT
private

Definition at line 234 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofLocalThetaCSC
private

Definition at line 247 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofLocalThetaDT
private

Definition at line 243 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofLocalXCSC
private

Definition at line 245 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofLocalXDT
private

Definition at line 241 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofLocalYCSC
private

Definition at line 248 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hprofLocalYDT
private

Definition at line 244 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and endJob().

TH1F* MuonAlignmentAnalyzer::hResidualGlobalPhiCSC
private

Definition at line 207 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalPhiCSC_ME
private

Definition at line 215 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualGlobalPhiDT
private

Definition at line 203 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalPhiDT_MB
private

Definition at line 219 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalPhiDT_W
private

Definition at line 211 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualGlobalRCSC
private

Definition at line 209 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalRCSC_ME
private

Definition at line 217 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualGlobalRPhiCSC
private

Definition at line 206 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalRPhiCSC_ME
private

Definition at line 214 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualGlobalRPhiDT
private

Definition at line 202 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalRPhiDT_MB
private

Definition at line 218 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalRPhiDT_W
private

Definition at line 210 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualGlobalThetaCSC
private

Definition at line 208 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalThetaCSC_ME
private

Definition at line 216 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualGlobalThetaDT
private

Definition at line 204 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalThetaDT_MB
private

Definition at line 220 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalThetaDT_W
private

Definition at line 212 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualGlobalZDT
private

Definition at line 205 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalZDT_MB
private

Definition at line 221 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualGlobalZDT_W
private

Definition at line 213 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualLocalPhiCSC
private

Definition at line 187 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalPhiCSC_ME
private

Definition at line 195 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualLocalPhiDT
private

Definition at line 183 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalPhiDT_MB
private

Definition at line 199 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalPhiDT_W
private

Definition at line 191 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualLocalThetaCSC
private

Definition at line 188 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalThetaCSC_ME
private

Definition at line 196 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualLocalThetaDT
private

Definition at line 184 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalThetaDT_MB
private

Definition at line 200 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalThetaDT_W
private

Definition at line 192 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualLocalXCSC
private

Definition at line 186 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalXCSC_ME
private

Definition at line 194 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualLocalXDT
private

Definition at line 182 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalXDT_MB
private

Definition at line 198 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalXDT_W
private

Definition at line 190 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualLocalYCSC
private

Definition at line 189 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalYCSC_ME
private

Definition at line 197 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hResidualLocalYDT
private

Definition at line 185 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalYDT_MB
private

Definition at line 201 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::hResidualLocalYDT_W
private

Definition at line 193 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAChi2
private

Definition at line 102 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAChi2_Barrel
private

Definition at line 104 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAChi2_Endcap
private

Definition at line 106 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAInvM
private

Definition at line 110 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAInvM_Barrel
private

Definition at line 114 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAInvM_Endcap
private

Definition at line 118 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAInvM_Overlap
private

Definition at line 123 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAinvPTres
private

Definition at line 150 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hSAinvPTvsEta
private

Definition at line 166 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hSAinvPTvsNhits
private

Definition at line 168 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hSAinvPTvsPhi
private

Definition at line 167 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSANhits
private

Definition at line 96 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSANhits_Barrel
private

Definition at line 97 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSANhits_Endcap
private

Definition at line 98 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSANmuons
private

Definition at line 83 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSANmuons_Barrel
private

Definition at line 86 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSANmuons_Endcap
private

Definition at line 89 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hSAPhivsEta
private

Definition at line 145 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAPTDiff
private

Definition at line 158 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hSAPTDiffvsEta
private

Definition at line 160 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hSAPTDiffvsPhi
private

Definition at line 161 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAPTRec
private

Definition at line 127 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAPTRec_Barrel
private

Definition at line 130 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAPTRec_Endcap
private

Definition at line 133 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAPTres
private

Definition at line 149 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAPTres_Barrel
private

Definition at line 153 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSAPTres_Endcap
private

Definition at line 154 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hSAPTvsEta
private

Definition at line 138 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hSAPTvsPhi
private

Definition at line 139 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSimInvM
private

Definition at line 111 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSimInvM_Barrel
private

Definition at line 115 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSimInvM_Endcap
private

Definition at line 119 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSimInvM_Overlap
private

Definition at line 124 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSimNmuons
private

Definition at line 84 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSimNmuons_Barrel
private

Definition at line 87 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSimNmuons_Endcap
private

Definition at line 90 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hSimPhivsEta
private

Definition at line 144 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSimPT
private

Definition at line 129 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSimPT_Barrel
private

Definition at line 132 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH1F* MuonAlignmentAnalyzer::hSimPT_Endcap
private

Definition at line 135 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hSimPTvsEta
private

Definition at line 140 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

TH2F* MuonAlignmentAnalyzer::hSimPTvsPhi
private

Definition at line 141 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and beginJob().

double MuonAlignmentAnalyzer::invMassRangeMax
private

Definition at line 271 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and MuonAlignmentAnalyzer().

double MuonAlignmentAnalyzer::invMassRangeMin
private

Definition at line 271 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and MuonAlignmentAnalyzer().

unsigned int MuonAlignmentAnalyzer::min1DTrackRecHitSize
private

Definition at line 276 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

unsigned int MuonAlignmentAnalyzer::min4DTrackSegmentSize
private

Definition at line 276 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

unsigned int MuonAlignmentAnalyzer::nbins
private
int MuonAlignmentAnalyzer::numberOfGBRecTracks
private

Definition at line 266 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), endJob(), and MuonAlignmentAnalyzer().

int MuonAlignmentAnalyzer::numberOfHits
private

Definition at line 268 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), endJob(), and MuonAlignmentAnalyzer().

int MuonAlignmentAnalyzer::numberOfSARecTracks
private

Definition at line 267 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), endJob(), and MuonAlignmentAnalyzer().

int MuonAlignmentAnalyzer::numberOfSimTracks
private

Definition at line 265 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), endJob(), and MuonAlignmentAnalyzer().

double MuonAlignmentAnalyzer::ptRangeMax
private

Definition at line 271 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and MuonAlignmentAnalyzer().

double MuonAlignmentAnalyzer::ptRangeMin
private

Definition at line 271 of file MuonAlignmentAnalyzer.h.

Referenced by beginJob(), and MuonAlignmentAnalyzer().

double MuonAlignmentAnalyzer::resLocalXRangeStation1
private

Definition at line 273 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

double MuonAlignmentAnalyzer::resLocalXRangeStation2
private

Definition at line 273 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

double MuonAlignmentAnalyzer::resLocalXRangeStation3
private

Definition at line 273 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

double MuonAlignmentAnalyzer::resLocalXRangeStation4
private

Definition at line 273 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

double MuonAlignmentAnalyzer::resLocalYRangeStation1
private

Definition at line 274 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

double MuonAlignmentAnalyzer::resLocalYRangeStation2
private

Definition at line 274 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

double MuonAlignmentAnalyzer::resLocalYRangeStation3
private

Definition at line 274 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

double MuonAlignmentAnalyzer::resLocalYRangeStation4
private

Definition at line 274 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

double MuonAlignmentAnalyzer::resPhiRange
private

Definition at line 275 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

double MuonAlignmentAnalyzer::resThetaRange
private

Definition at line 275 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

std::string MuonAlignmentAnalyzer::theDataType
private

Definition at line 75 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), beginJob(), endJob(), and MuonAlignmentAnalyzer().

edm::InputTag MuonAlignmentAnalyzer::theGLBMuonTag
private

Definition at line 67 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

Propagator* MuonAlignmentAnalyzer::thePropagator
private

Definition at line 262 of file MuonAlignmentAnalyzer.h.

Referenced by analyze().

edm::InputTag MuonAlignmentAnalyzer::theRecHits4DTagCSC
private

Definition at line 72 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

edm::InputTag MuonAlignmentAnalyzer::theRecHits4DTagDT
private

Definition at line 71 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

edm::InputTag MuonAlignmentAnalyzer::theSTAMuonTag
private

Definition at line 68 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and MuonAlignmentAnalyzer().

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsGlobalPhi
private

Definition at line 177 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsGlobalRPhi
private

Definition at line 176 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsGlobalRZ
private

Definition at line 179 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsGlobalTheta
private

Definition at line 178 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsLocalPhi
private

Definition at line 173 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsLocalTheta
private

Definition at line 174 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsLocalX
private

Definition at line 172 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().

std::vector<TH1F *> MuonAlignmentAnalyzer::unitsLocalY
private

Definition at line 175 of file MuonAlignmentAnalyzer.h.

Referenced by analyze(), and endJob().