CMS 3D CMS Logo

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

#include <SiStripCalibLorentzAngle.h>

Inheritance diagram for SiStripCalibLorentzAngle:
ConditionDBWriter< SiStripLorentzAngle > edm::EDAnalyzer edm::EDConsumerBase

Public Types

typedef dqm::legacy::DQMStore DQMStore
 
typedef dqm::legacy::MonitorElement MonitorElement
 
- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

void algoBeginJob (const edm::EventSetup &) override
 
std::unique_ptr< SiStripLorentzAnglegetNewObject () override
 
 SiStripCalibLorentzAngle (const edm::ParameterSet &conf)
 
 ~SiStripCalibLorentzAngle () override
 
- Public Member Functions inherited from ConditionDBWriter< SiStripLorentzAngle >
 ConditionDBWriter (const edm::ParameterSet &iConfig)
 
 ~ConditionDBWriter () override
 
- 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 Types

typedef std::map< std::string, TProfile * > ProfileMap
 
typedef std::map< std::string, TH1D * > TH1Dmap
 
typedef std::map< std::string, TH2D * > TH2Dmap
 

Private Attributes

float AsymmParam
 
int badFit
 
bool CalibByMC
 
edm::ParameterSet conf_
 
std::map< uint32_t, float > detid_la
 
edm::ESHandle< TrackerGeometryestracker
 
TDirectory * FirstIT_GoodFit_Histos
 
TF1 * fitfunc
 
TF1 * fitfunc2IT
 
TF1 * FitFunction
 
TF1 * FitFunction2IT
 
float geta
 
float globalX
 
float globalY
 
float globalZ
 
int goodFit
 
int goodFit1IT
 
float gphi
 
const GlobalPoint gposition
 
float gR
 
float gz
 
float hallMobility
 
TFile * hFile
 
float histoEntries
 
std::vector< MonitorElement * > histolist
 
int Layer
 
bool LayerDB
 
TDirectory * LorentzAngle_Plots
 
edm::ESHandle< MagneticFieldmagfield_
 
float mean_TIB1
 
float mean_TIB2
 
float mean_TIB3
 
float mean_TIB4
 
float mean_TOB1
 
float mean_TOB2
 
float mean_TOB3
 
float mean_TOB4
 
float mean_TOB5
 
float mean_TOB6
 
float meanMobility_TIB
 
float meanMobility_TOB
 
TTree * ModuleTree
 
int MonoStereo
 
float muH
 
TDirectory * MuH
 
TDirectory * MuH_vs_Eta
 
TDirectory * MuH_vs_Phi
 
ProfileMap Profiles
 
TDirectory * Rootple
 
TDirectory * SecondIT_BadFit_Histos
 
TDirectory * SecondIT_GoodFit_Histos
 
TH1Dmap TH1Ds
 
TH2Dmap TH2Ds
 
float theBfield
 
int TIB
 
TDirectory * TIB_1IT_GoodFit
 
TDirectory * TIB_2IT_BadFit
 
TDirectory * TIB_2IT_GoodFit
 
TDirectory * TIB_Eta
 
TGraphErrors * TIB_graph
 
TDirectory * TIB_MuH
 
TDirectory * TIB_Phi
 
int TOB
 
TDirectory * TOB_1IT_GoodFit
 
TDirectory * TOB_2IT_BadFit
 
TDirectory * TOB_2IT_GoodFit
 
TDirectory * TOB_Eta
 
TGraphErrors * TOB_graph
 
TDirectory * TOB_MuH
 
TDirectory * TOB_Phi
 
const TrackerGeometrytracker
 
const TrackerTopologytTopo
 

Additional Inherited Members

- 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 ConditionDBWriter< SiStripLorentzAngle >
void setDoStore (const bool doStore)
 When set to false the payload will not be written to the db. More...
 
void storeOnDbNow ()
 
cond::Time_t timeOfLastIOV ()
 
- 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

Definition at line 38 of file SiStripCalibLorentzAngle.h.

Member Typedef Documentation

Definition at line 41 of file SiStripCalibLorentzAngle.h.

Definition at line 40 of file SiStripCalibLorentzAngle.h.

typedef std::map<std::string, TProfile *> SiStripCalibLorentzAngle::ProfileMap
private

Definition at line 57 of file SiStripCalibLorentzAngle.h.

typedef std::map<std::string, TH1D *> SiStripCalibLorentzAngle::TH1Dmap
private

Definition at line 59 of file SiStripCalibLorentzAngle.h.

typedef std::map<std::string, TH2D *> SiStripCalibLorentzAngle::TH2Dmap
private

Definition at line 61 of file SiStripCalibLorentzAngle.h.

Constructor & Destructor Documentation

SiStripCalibLorentzAngle::SiStripCalibLorentzAngle ( const edm::ParameterSet conf)
explicit
SiStripCalibLorentzAngle::~SiStripCalibLorentzAngle ( )
override

Definition at line 815 of file SiStripCalibLorentzAngle.cc.

References hFile.

815 { delete hFile; }

Member Function Documentation

void SiStripCalibLorentzAngle::algoBeginJob ( const edm::EventSetup c)
overridevirtual

Reimplemented from ConditionDBWriter< SiStripLorentzAngle >.

Definition at line 24 of file SiStripCalibLorentzAngle.cc.

References badFit, Surface::bounds(), CalibByMC, conf_, dbe_, detid_la, estracker, PV3DBase< T, PVType, FrameType >::eta(), extract(), FirstIT_GoodFit_Histos, fitfunc, fitfunc2IT, FitFunction, FitFunction2IT, edm::EventSetup::get(), geta, dqm::dqmstoreimpl::DQMStore::getAllContents(), SiStripHistoId::getComponentId(), SiStripLorentzAngle::getLorentzAngles(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), globalX, globalY, globalZ, goodFit, goodFit1IT, gphi, gposition, gR, gz, hFile, timingPdfMaker::histo, histoEntries, histolist, triggerObjects_cff::id, TrackerGeometry::idToDetUnit(), createfilelist::int, MagneticField::inTesla(), Layer, LayerDB, StripTopology::localPitch(), LorentzAngle_Plots, PV3DBase< T, PVType, FrameType >::mag(), magfield_, mean_TIB1, mean_TIB2, mean_TIB3, mean_TIB4, mean_TOB1, mean_TOB2, mean_TOB3, mean_TOB4, mean_TOB5, mean_TOB6, meanMobility_TIB, meanMobility_TOB, ModuleTree, MonoStereo, muH, MuH, MuH_vs_Eta, MuH_vs_Phi, Skims_PA_cff::name, dqm::dqmstoreimpl::DQMStore::open(), Utilities::operator, AlCaHLTBitMon_ParallelJobs::p, PV3DBase< T, PVType, FrameType >::phi(), GloballyPositioned< T >::position(), funct::pow(), edm::ESHandle< T >::product(), Profiles, Rootple, SecondIT_BadFit_Histos, SecondIT_GoodFit_Histos, GeomDet::specificSurface(), mathSSE::sqrt(), StripSubdetector::stereo(), AlCaHLTBitMon_QueryRunRegistry::string, DetId::subdetId(), GeomDet::surface(), TH1Ds, TH2Ds, theBfield, Bounds::thickness(), Calorimetry_cff::thickness, StripSubdetector::TIB, TIB, TIB_1IT_GoodFit, TIB_2IT_BadFit, TIB_2IT_GoodFit, TIB_Eta, TIB_graph, TIB_MuH, TIB_Phi, TrackerTopology::tibLayer(), StripSubdetector::TOB, TOB, TOB_1IT_GoodFit, TOB_2IT_BadFit, TOB_2IT_GoodFit, TOB_Eta, TOB_graph, TOB_MuH, TOB_Phi, TrackerTopology::tobLayer(), toLocal(), GeomDet::topology(), tracker, tTopo, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

24  {
25  //Retrieve tracker topology from geometry
27  c.get<TrackerTopologyRcd>().get(tTopoHandle);
28  tTopo = tTopoHandle.product();
29 
31  tracker = &(*estracker);
32 
33  //get magnetic field and geometry from ES
35  c.get<IdealMagneticFieldRecord>().get(magfield_);
36 
37  edm::ESHandle<SiStripLorentzAngle> SiStripLorentzAngle_;
38  c.get<SiStripLorentzAngleRcd>().get(SiStripLorentzAngle_);
39  detid_la = SiStripLorentzAngle_->getLorentzAngles();
40 
42 
43  std::string inputFile_ = conf_.getUntrackedParameter<std::string>("fileName", "LAProfiles.root");
44  std::string LAreport_ = conf_.getUntrackedParameter<std::string>("LA_Report", "LA_Report.txt");
45  std::string NoEntriesHisto_ = conf_.getUntrackedParameter<std::string>("NoEntriesHisto", "NoEntriesHisto.txt");
46  std::string Dir_Name_ = conf_.getUntrackedParameter<std::string>("Dir_Name", "SiStrip");
47 
48  LayerDB = conf_.getUntrackedParameter<bool>("LayerDB", false);
49 
50  CalibByMC = conf_.getUntrackedParameter<bool>("CalibByMC", false);
51 
52  dbe_->open(inputFile_);
53 
54  // use SistripHistoId for producing histogram id (and title)
55  SiStripHistoId hidmanager;
56 
57  edm::LogInfo("SiStripCalibLorentzAngle") << "### DIR-NAME = " << Dir_Name_;
58  histolist = dbe_->getAllContents(Dir_Name_);
59  std::vector<MonitorElement*>::iterator histo;
60 
61  hFile = new TFile(conf_.getUntrackedParameter<std::string>("out_fileName").c_str(), "RECREATE");
62 
63  LorentzAngle_Plots = hFile->mkdir("LorentzAngle_Plots");
64  Rootple = LorentzAngle_Plots->mkdir("Rootple");
65  MuH = LorentzAngle_Plots->mkdir("MuH");
66  TIB_MuH = MuH->mkdir("TIB_MuH");
67  TOB_MuH = MuH->mkdir("TOB_MuH");
68  MuH_vs_Phi = LorentzAngle_Plots->mkdir("MuH_vs_Phi");
69  TIB_Phi = MuH_vs_Phi->mkdir("TIB_Phi");
70  TOB_Phi = MuH_vs_Phi->mkdir("TOB_Phi");
71  MuH_vs_Eta = LorentzAngle_Plots->mkdir("MuH_vs_Eta");
72  TIB_Eta = MuH_vs_Eta->mkdir("TIB_Eta");
73  TOB_Eta = MuH_vs_Eta->mkdir("TOB_Eta");
74  FirstIT_GoodFit_Histos = LorentzAngle_Plots->mkdir("1IT_GoodFit_Histos");
75  TIB_1IT_GoodFit = FirstIT_GoodFit_Histos->mkdir("TIB_1IT_GoodFit");
76  TOB_1IT_GoodFit = FirstIT_GoodFit_Histos->mkdir("TOB_1IT_GoodFit");
77  SecondIT_GoodFit_Histos = LorentzAngle_Plots->mkdir("2IT_GoodFit_Histos");
78  TIB_2IT_GoodFit = SecondIT_GoodFit_Histos->mkdir("TIB_2IT_GoodFit");
79  TOB_2IT_GoodFit = SecondIT_GoodFit_Histos->mkdir("TOB_2IT_GoodFit");
80  SecondIT_BadFit_Histos = LorentzAngle_Plots->mkdir("2IT_BadFit_Histos");
81  TIB_2IT_BadFit = SecondIT_BadFit_Histos->mkdir("TIB_2IT_BadFit");
82  TOB_2IT_BadFit = SecondIT_BadFit_Histos->mkdir("TOB_2IT_BadFit");
83 
84  TH1Ds["LA_TIB"] = new TH1D("TanLAPerTesla TIB", "TanLAPerTesla TIB", 1000, -0.5, 0.5);
85  TH1Ds["LA_TIB"]->SetDirectory(MuH);
86  TH1Ds["LA_TOB"] = new TH1D("TanLAPerTesla TOB", "TanLAPerTesla TOB", 1000, -0.5, 0.5);
87  TH1Ds["LA_TOB"]->SetDirectory(MuH);
88  TH1Ds["LA_err_TIB"] = new TH1D("TanLAPerTesla Error TIB", "TanLAPerTesla Error TIB", 1000, 0, 1);
89  TH1Ds["LA_err_TIB"]->SetDirectory(MuH);
90  TH1Ds["LA_err_TOB"] = new TH1D("TanLAPerTesla Error TOB", "TanLAPerTesla Error TOB", 1000, 0, 1);
91  TH1Ds["LA_err_TOB"]->SetDirectory(MuH);
92  TH1Ds["LA_chi2norm_TIB"] = new TH1D("TanLAPerTesla Chi2norm TIB", "TanLAPerTesla Chi2norm TIB", 2000, 0, 10);
93  TH1Ds["LA_chi2norm_TIB"]->SetDirectory(MuH);
94  TH1Ds["LA_chi2norm_TOB"] = new TH1D("TanLAPerTesla Chi2norm TOB", "TanLAPerTesla Chi2norm TOB", 2000, 0, 10);
95  TH1Ds["LA_chi2norm_TOB"]->SetDirectory(MuH);
96  TH1Ds["MagneticField"] = new TH1D("MagneticField", "MagneticField", 500, 0, 5);
97  TH1Ds["MagneticField"]->SetDirectory(MuH);
98 
99  TH2Ds["LA_TIB_graph"] = new TH2D("TanLAPerTesla TIB Layers", "TanLAPerTesla TIB Layers", 60, 0, 5, 1000, -0.3, 0.3);
100  TH2Ds["LA_TIB_graph"]->SetDirectory(MuH);
101  TH2Ds["LA_TIB_graph"]->SetNdivisions(6);
102  TH2Ds["LA_TOB_graph"] = new TH2D("TanLAPerTesla TOB Layers", "TanLAPerTesla TOB Layers", 80, 0, 7, 1000, -0.3, 0.3);
103  TH2Ds["LA_TOB_graph"]->SetDirectory(MuH);
104  TH2Ds["LA_TOB_graph"]->SetNdivisions(8);
105 
106  TH1Ds["LA_TIB_1"] = new TH1D("TanLAPerTesla TIB1", "TanLAPerTesla TIB1", 2000, -0.5, 0.5);
107  TH1Ds["LA_TIB_1"]->SetDirectory(TIB_MuH);
108  TH1Ds["LA_TIB_1_mono"] = new TH1D("TanLAPerTesla TIB1 MONO", "TanLAPerTesla TIB1 MONO", 2000, -0.5, 0.5);
109  TH1Ds["LA_TIB_1_mono"]->SetDirectory(TIB_MuH);
110  TH1Ds["LA_TIB_1_stereo"] = new TH1D("TanLAPerTesla TIB1 STEREO", "TanLAPerTesla TIB1 STEREO", 2000, -0.5, 0.5);
111  TH1Ds["LA_TIB_1_stereo"]->SetDirectory(TIB_MuH);
112  TH1Ds["LA_TIB_2"] = new TH1D("TanLAPerTesla TIB2", "TanLAPerTesla TIB2", 2000, -0.5, 0.5);
113  TH1Ds["LA_TIB_2"]->SetDirectory(TIB_MuH);
114  TH1Ds["LA_TIB_2_mono"] = new TH1D("TanLAPerTesla TIB2 MONO", "TanLAPerTesla TIB2 MONO", 2000, -0.5, 0.5);
115  TH1Ds["LA_TIB_2_mono"]->SetDirectory(TIB_MuH);
116  TH1Ds["LA_TIB_2_stereo"] = new TH1D("TanLAPerTesla TIB2 STEREO", "TanLAPerTesla TIB2 STEREO", 2000, -0.5, 0.5);
117  TH1Ds["LA_TIB_2_stereo"]->SetDirectory(TIB_MuH);
118  TH1Ds["LA_TIB_3"] = new TH1D("TanLAPerTesla_TIB 3", "TanLAPerTesla TIB3", 2000, -0.5, 0.5);
119  TH1Ds["LA_TIB_3"]->SetDirectory(TIB_MuH);
120  TH1Ds["LA_TIB_4"] = new TH1D("TanLAPerTesla_TIB 4", "TanLAPerTesla TIB4", 2000, -0.5, 0.5);
121  TH1Ds["LA_TIB_4"]->SetDirectory(TIB_MuH);
122 
123  TH1Ds["LA_TOB_1"] = new TH1D("TanLAPerTesla TOB1", "TanLAPerTesla TOB1", 2000, -0.5, 0.5);
124  TH1Ds["LA_TOB_1"]->SetDirectory(TOB_MuH);
125  TH1Ds["LA_TOB_1_mono"] = new TH1D("TanLAPerTesla TOB1 MONO", "TanLAPerTesla TOB1 MONO", 2000, -0.5, 0.5);
126  TH1Ds["LA_TOB_1_mono"]->SetDirectory(TOB_MuH);
127  TH1Ds["LA_TOB_1_stereo"] = new TH1D("TanLAPerTesla TOB1 STEREO", "TanLAPerTesla TOB1 STEREO", 2000, -0.5, 0.5);
128  TH1Ds["LA_TOB_1_stereo"]->SetDirectory(TOB_MuH);
129  TH1Ds["LA_TOB_2"] = new TH1D("TanLAPerTesla TOB2", "TanLAPerTesla TOB2", 2000, -0.5, 0.5);
130  TH1Ds["LA_TOB_2"]->SetDirectory(TOB_MuH);
131  TH1Ds["LA_TOB_2_mono"] = new TH1D("TanLAPerTesla TOB2 MONO", "TanLAPerTesla TOB2 MONO", 2000, -0.5, 0.5);
132  TH1Ds["LA_TOB_2_mono"]->SetDirectory(TOB_MuH);
133  TH1Ds["LA_TOB_2_stereo"] = new TH1D("TanLAPerTesla TOB2 STEREO", "TanLAPerTesla TOB2 STEREO", 2000, -0.5, 0.5);
134  TH1Ds["LA_TOB_2_stereo"]->SetDirectory(TOB_MuH);
135  TH1Ds["LA_TOB_3"] = new TH1D("TanLAPerTesla TOB3", "TanLAPerTesla TOB3", 2000, -0.5, 0.5);
136  TH1Ds["LA_TOB_3"]->SetDirectory(TOB_MuH);
137  TH1Ds["LA_TOB_4"] = new TH1D("TanLAPerTesla TOB4", "TanLAPerTesla TOB4", 2000, -0.5, 0.5);
138  TH1Ds["LA_TOB_4"]->SetDirectory(TOB_MuH);
139  TH1Ds["LA_TOB_5"] = new TH1D("TanLAPerTesla TOB5", "TanLAPerTesla TOB5", 2000, -0.5, 0.5);
140  TH1Ds["LA_TOB_5"]->SetDirectory(TOB_MuH);
141  TH1Ds["LA_TOB_6"] = new TH1D("TanLAPerTesla TOB6", "TanLAPerTesla TOB6", 2000, -0.5, 0.5);
142  TH1Ds["LA_TOB_6"]->SetDirectory(TOB_MuH);
143 
144  TH2Ds["LA_phi_TIB"] = new TH2D("TanLAPerTesla vs Phi TIB", "TanLAPerTesla vs Phi TIB", 800, -4, 4, 600, -0.3, 0.3);
145  TH2Ds["LA_phi_TIB"]->SetDirectory(MuH_vs_Phi);
146  TH2Ds["LA_phi_TOB"] = new TH2D("TanLAPerTesla vs Phi TOB", "TanLAPerTesla vs Phi TOB", 800, -4, 4, 600, -0.3, 0.3);
147  TH2Ds["LA_phi_TOB"]->SetDirectory(MuH_vs_Phi);
148 
149  TH2Ds["LA_phi_TIB1"] = new TH2D("TanLAPerTesla vs Phi TIB1", "TanLAPerTesla vs Phi TIB1", 800, -4, 4, 600, -0.3, 0.3);
150  TH2Ds["LA_phi_TIB1"]->SetDirectory(TIB_Phi);
151  TH2Ds["LA_phi_TIB1_mono"] =
152  new TH2D("TanLAPerTesla vs Phi TIB1 MONO", "TanLAPerTesla vs Phi TIB1 MONO", 800, -4, 4, 600, -0.3, 0.3);
153  TH2Ds["LA_phi_TIB1_mono"]->SetDirectory(TIB_Phi);
154  TH2Ds["LA_phi_TIB1_stereo"] =
155  new TH2D("TanLAPerTesla vs Phi TIB1 STEREO", "TanLAPerTesla vs Phi TIB1 STEREO", 800, -4, 4, 600, -0.3, 0.3);
156  TH2Ds["LA_phi_TIB1_stereo"]->SetDirectory(TIB_Phi);
157  TH2Ds["LA_phi_TIB2"] = new TH2D("TanLAPerTesla vs Phi TIB2", "TanLAPerTesla vs Phi TIB2", 800, -4, 4, 600, -0.3, 0.3);
158  TH2Ds["LA_phi_TIB2"]->SetDirectory(TIB_Phi);
159  TH2Ds["LA_phi_TIB2_mono"] =
160  new TH2D("TanLAPerTesla vs Phi TIB2 MONO", "TanLAPerTesla vs Phi TIB2 MONO", 800, -4, 4, 600, -0.3, 0.3);
161  TH2Ds["LA_phi_TIB2_mono"]->SetDirectory(TIB_Phi);
162  TH2Ds["LA_phi_TIB2_stereo"] =
163  new TH2D("TanLAPerTesla vs Phi TIB2 STEREO", "TanLAPerTesla vs Phi TIB2 STEREO", 800, -4, 4, 600, -0.3, 0.3);
164  TH2Ds["LA_phi_TIB2_stereo"]->SetDirectory(TIB_Phi);
165  TH2Ds["LA_phi_TIB3"] = new TH2D("TanLAPerTesla vs Phi TIB3", "TanLAPerTesla vs Phi TIB3", 800, -4, 4, 600, -0.3, 0.3);
166  TH2Ds["LA_phi_TIB3"]->SetDirectory(TIB_Phi);
167  TH2Ds["LA_phi_TIB4"] = new TH2D("TanLAPerTesla vs Phi TIB4", "TanLAPerTesla vs Phi TIB4", 800, -4, 4, 600, -0.3, 0.3);
168  TH2Ds["LA_phi_TIB4"]->SetDirectory(TIB_Phi);
169 
170  TH2Ds["LA_phi_TOB1"] = new TH2D("TanLAPerTesla vs Phi TOB1", "TanLAPerTesla vs Phi TOB1", 800, -4, 4, 600, -0.3, 0.3);
171  TH2Ds["LA_phi_TOB1"]->SetDirectory(TOB_Phi);
172  TH2Ds["LA_phi_TOB1_mono"] =
173  new TH2D("TanLAPerTesla vs Phi TOB1 MONO", "TanLAPerTesla vs Phi TOB1 MONO", 800, -4, 4, 600, -0.3, 0.3);
174  TH2Ds["LA_phi_TOB1_mono"]->SetDirectory(TOB_Phi);
175  TH2Ds["LA_phi_TOB1_stereo"] =
176  new TH2D("TanLAPerTesla vs Phi TOB1 STEREO", "TanLAPerTesla vs Phi TOB1 STEREO", 800, -4, 4, 600, -0.3, 0.3);
177  TH2Ds["LA_phi_TOB1_stereo"]->SetDirectory(TOB_Phi);
178  TH2Ds["LA_phi_TOB2"] = new TH2D("TanLAPerTesla vs Phi TOB2", "TanLAPerTesla vs Phi TOB2", 800, -4, 4, 600, -0.3, 0.3);
179  TH2Ds["LA_phi_TOB2"]->SetDirectory(TOB_Phi);
180  TH2Ds["LA_phi_TOB2_mono"] =
181  new TH2D("TanLAPerTesla vs Phi TOB2 MONO", "TanLAPerTesla vs Phi TOB2 MONO", 800, -4, 4, 600, -0.3, 0.3);
182  TH2Ds["LA_phi_TOB2_mono"]->SetDirectory(TOB_Phi);
183  TH2Ds["LA_phi_TOB2_stereo"] =
184  new TH2D("TanLAPerTesla vs Phi TOB2 STEREO", "TanLAPerTesla vs Phi TOB2 STEREO", 800, -4, 4, 600, -0.3, 0.3);
185  TH2Ds["LA_phi_TOB2_stereo"]->SetDirectory(TOB_Phi);
186  TH2Ds["LA_phi_TOB3"] = new TH2D("TanLAPerTesla vs Phi TOB3", "TanLAPerTesla vs Phi TOB3", 800, -4, 4, 600, -0.3, 0.3);
187  TH2Ds["LA_phi_TOB3"]->SetDirectory(TOB_Phi);
188  TH2Ds["LA_phi_TOB4"] = new TH2D("TanLAPerTesla vs Phi TOB4", "TanLAPerTesla vs Phi TOB4", 800, -4, 4, 600, -0.3, 0.3);
189  TH2Ds["LA_phi_TOB4"]->SetDirectory(TOB_Phi);
190  TH2Ds["LA_phi_TOB5"] = new TH2D("TanLAPerTesla vs Phi TOB5", "TanLAPerTesla vs Phi TOB5", 800, -4, 4, 600, -0.3, 0.3);
191  TH2Ds["LA_phi_TOB5"]->SetDirectory(TOB_Phi);
192  TH2Ds["LA_phi_TOB6"] = new TH2D("TanLAPerTesla vs Phi TOB6", "TanLAPerTesla vs Phi TOB6", 800, -4, 4, 600, -0.3, 0.3);
193  TH2Ds["LA_phi_TOB6"]->SetDirectory(TOB_Phi);
194 
195  TH2Ds["LA_eta_TIB"] =
196  new TH2D("TanLAPerTesla vs Eta TIB", "TanLAPerTesla vs Eta TIB", 800, -2.6, 2.6, 600, -0.3, 0.3);
197  TH2Ds["LA_eta_TIB"]->SetDirectory(MuH_vs_Eta);
198  TH2Ds["LA_eta_TOB"] =
199  new TH2D("TanLAPerTesla vs Eta TOB", "TanLAPerTesla vs Eta TOB", 800, -2.6, 2.6, 600, -0.3, 0.3);
200  TH2Ds["LA_eta_TOB"]->SetDirectory(MuH_vs_Eta);
201 
202  TH2Ds["LA_eta_TIB1"] =
203  new TH2D("TanLAPerTesla vs Eta TIB1", "TanLAPerTesla vs Eta TIB1", 800, -2.6, 2.6, 600, -0.3, 0.3);
204  TH2Ds["LA_eta_TIB1"]->SetDirectory(TIB_Eta);
205  TH2Ds["LA_eta_TIB1_mono"] =
206  new TH2D("TanLAPerTesla vs Eta TIB1 MONO", "TanLAPerTesla vs Eta TIB1 MONO", 800, -2.6, 2.6, 600, -0.3, 0.3);
207  TH2Ds["LA_eta_TIB1_mono"]->SetDirectory(TIB_Eta);
208  TH2Ds["LA_eta_TIB1_stereo"] =
209  new TH2D("TanLAPerTesla vs Eta TIB1 STEREO", "TanLAPerTesla vs Eta TIB1 STEREO", 800, -2.6, 2.6, 600, -0.3, 0.3);
210  TH2Ds["LA_eta_TIB1_stereo"]->SetDirectory(TIB_Eta);
211  TH2Ds["LA_eta_TIB2"] =
212  new TH2D("TanLAPerTesla vs Eta TIB2", "TanLAPerTesla vs Eta TIB2", 800, -2.6, 2.6, 600, -0.3, 0.3);
213  TH2Ds["LA_eta_TIB2"]->SetDirectory(TIB_Eta);
214  TH2Ds["LA_eta_TIB2_mono"] =
215  new TH2D("TanLAPerTesla vs Eta TIB2 MONO", "TanLAPerTesla vs Eta TIB2 MONO", 800, -2.6, 2.6, 600, -0.3, 0.3);
216  TH2Ds["LA_eta_TIB2_mono"]->SetDirectory(TIB_Eta);
217  TH2Ds["LA_eta_TIB2_stereo"] =
218  new TH2D("TanLAPerTesla vs Eta TIB2 STEREO", "TanLAPerTesla vs Eta TIB2 STEREO", 800, -2.6, 2.6, 600, -0.3, 0.3);
219  TH2Ds["LA_eta_TIB2_stereo"]->SetDirectory(TIB_Eta);
220  TH2Ds["LA_eta_TIB3"] =
221  new TH2D("TanLAPerTesla vs Eta TIB3", "TanLAPerTesla vs Eta TIB3", 800, -2.6, 2.6, 600, -0.3, 0.3);
222  TH2Ds["LA_eta_TIB3"]->SetDirectory(TIB_Eta);
223  TH2Ds["LA_eta_TIB4"] =
224  new TH2D("TanLAPerTesla vs Eta TIB4", "TanLAPerTesla vs Eta TIB4", 800, -2.6, 2.6, 600, -0.3, 0.3);
225  TH2Ds["LA_eta_TIB4"]->SetDirectory(TIB_Eta);
226 
227  TH2Ds["LA_eta_TOB1"] =
228  new TH2D("TanLAPerTesla vs Eta TOB1", "TanLAPerTesla vs Eta TOB1", 800, -2.6, 2.6, 600, -0.3, 0.3);
229  TH2Ds["LA_eta_TOB1"]->SetDirectory(TIB_Eta);
230  TH2Ds["LA_eta_TOB1_mono"] =
231  new TH2D("TanLAPerTesla vs Eta TOB1 MONO", "TanLAPerTesla vs Eta TOB1 MONO", 800, -2.6, 2.6, 600, -0.3, 0.3);
232  TH2Ds["LA_eta_TOB1_mono"]->SetDirectory(TIB_Eta);
233  TH2Ds["LA_eta_TOB1_stereo"] =
234  new TH2D("TanLAPerTesla vs Eta TOB1 STEREO", "TanLAPerTesla vs Eta TOB1 STEREO", 800, -2.6, 2.6, 600, -0.3, 0.3);
235  TH2Ds["LA_eta_TOB1_stereo"]->SetDirectory(TIB_Eta);
236  TH2Ds["LA_eta_TOB2"] =
237  new TH2D("TanLAPerTesla vs Eta TOB2", "TanLAPerTesla vs Eta TOB2", 800, -2.6, 2.6, 600, -0.3, 0.3);
238  TH2Ds["LA_eta_TOB2"]->SetDirectory(TIB_Eta);
239  TH2Ds["LA_eta_TOB2_mono"] =
240  new TH2D("TanLAPerTesla vs Eta TOB2 MONO", "TanLAPerTesla vs Eta TOB2 MONO", 800, -2.6, 2.6, 600, -0.3, 0.3);
241  TH2Ds["LA_eta_TOB2_mono"]->SetDirectory(TIB_Eta);
242  TH2Ds["LA_eta_TOB2_stereo"] =
243  new TH2D("TanLAPerTesla vs Eta TOB2 STEREO", "TanLAPerTesla vs Eta TOB2 STEREO", 800, -2.6, 2.6, 600, -0.3, 0.3);
244  TH2Ds["LA_eta_TOB2_stereo"]->SetDirectory(TIB_Eta);
245  TH2Ds["LA_eta_TOB3"] =
246  new TH2D("TanLAPerTesla vs Eta TOB3", "TanLAPerTesla vs Eta TOB3", 800, -2.6, 2.6, 600, -0.3, 0.3);
247  TH2Ds["LA_eta_TOB3"]->SetDirectory(TIB_Eta);
248  TH2Ds["LA_eta_TOB4"] =
249  new TH2D("TanLAPerTesla vs Eta TOB4", "TanLAPerTesla vs Eta TOB4", 800, -2.6, 2.6, 600, -0.3, 0.3);
250  TH2Ds["LA_eta_TOB4"]->SetDirectory(TIB_Eta);
251  TH2Ds["LA_eta_TOB5"] =
252  new TH2D("TanLAPerTesla vs Eta TOB5", "TanLAPerTesla vs Eta TOB5", 800, -2.6, 2.6, 600, -0.3, 0.3);
253  TH2Ds["LA_eta_TOB5"]->SetDirectory(TIB_Eta);
254  TH2Ds["LA_eta_TOB6"] =
255  new TH2D("TanLAPerTesla vs Eta TOB6", "TanLAPerTesla vs Eta TOB6", 800, -2.6, 2.6, 600, -0.3, 0.3);
256  TH2Ds["LA_eta_TOB6"]->SetDirectory(TIB_Eta);
257 
258  ModuleTree = new TTree("ModuleTree", "ModuleTree");
259  ModuleTree->Branch("histoEntries", &histoEntries, "histoEntries/F");
260  ModuleTree->Branch("globalX", &globalX, "globalX/F");
261  ModuleTree->Branch("globalY", &globalY, "globalY/F");
262  ModuleTree->Branch("globalZ", &globalZ, "globalZ/F");
263  ModuleTree->Branch("gphi", &gphi, "gphi/F");
264  ModuleTree->Branch("geta", &geta, "geta/F");
265  ModuleTree->Branch("gR", &gR, "gR/F");
266  ModuleTree->Branch("goodFit", &goodFit, "goodFit/I");
267  ModuleTree->Branch("goodFit1IT", &goodFit1IT, "goodFit1IT/I");
268  ModuleTree->Branch("badFit", &badFit, "badFit/I");
269  ModuleTree->Branch("TIB", &TIB, "TIB/I");
270  ModuleTree->Branch("TOB", &TOB, "TOB/I");
271  ModuleTree->Branch("Layer", &Layer, "Layer/I");
272  ModuleTree->Branch("MonoStereo", &MonoStereo, "MonoStereo/I");
273  ModuleTree->Branch("theBfield", &theBfield, "theBfield/F");
274  ModuleTree->Branch("muH", &muH, "muH/F");
275 
276  ModuleTree->SetDirectory(Rootple);
277 
278  int histocounter = 0;
279  int NotEnoughEntries = 0;
280  int ZeroEntries = 0;
281  int GoodFit = 0;
282  int FirstIT_goodfit = 0;
283  int FirstIT_badfit = 0;
284  int SecondIT_badfit = 0;
285  int SecondIT_goodfit = 0;
286  int no_mod_histo = 0;
287  float chi2norm = 0;
288  LocalPoint p = LocalPoint(0, 0, 0);
289 
290  double ModuleRangeMin = conf_.getParameter<double>("ModuleFitXMin");
291  double ModuleRangeMax = conf_.getParameter<double>("ModuleFitXMax");
292  double ModuleRangeMin2IT = conf_.getParameter<double>("ModuleFit2ITXMin");
293  double ModuleRangeMax2IT = conf_.getParameter<double>("ModuleFit2ITXMax");
294  double FitCuts_Entries = conf_.getParameter<double>("FitCuts_Entries");
295  double FitCuts_p0 = conf_.getParameter<double>("FitCuts_p0");
296  double FitCuts_p1 = conf_.getParameter<double>("FitCuts_p1");
297  double FitCuts_p2 = conf_.getParameter<double>("FitCuts_p2");
298  double FitCuts_chi2 = conf_.getParameter<double>("FitCuts_chi2");
299  double FitCuts_ParErr_p0 = conf_.getParameter<double>("FitCuts_ParErr_p0");
300  double p0_guess = conf_.getParameter<double>("p0_guess");
301  double p1_guess = conf_.getParameter<double>("p1_guess");
302  double p2_guess = conf_.getParameter<double>("p2_guess");
303 
304  double TIB1calib = 1.;
305  double TIB2calib = 1.;
306  double TIB3calib = 1.;
307  double TIB4calib = 1.;
308  double TOB1calib = 1.;
309  double TOB2calib = 1.;
310  double TOB3calib = 1.;
311  double TOB4calib = 1.;
312  double TOB5calib = 1.;
313  double TOB6calib = 1.;
314 
315  if (CalibByMC == true) {
316  //Calibration factors evaluated by using MC analysis
317  TIB1calib = conf_.getParameter<double>("TIB1calib");
318  TIB2calib = conf_.getParameter<double>("TIB2calib");
319  TIB3calib = conf_.getParameter<double>("TIB3calib");
320  TIB4calib = conf_.getParameter<double>("TIB4calib");
321  TOB1calib = conf_.getParameter<double>("TOB1calib");
322  TOB2calib = conf_.getParameter<double>("TOB2calib");
323  TOB3calib = conf_.getParameter<double>("TOB3calib");
324  TOB4calib = conf_.getParameter<double>("TOB4calib");
325  TOB5calib = conf_.getParameter<double>("TOB5calib");
326  TOB6calib = conf_.getParameter<double>("TOB6calib");
327  }
328 
329  auto fitfunc = std::make_unique<TF1>("fitfunc", "([4]/[3])*[1]*(TMath::Abs(x-[0]))+[2]", -1, 1);
330  auto fitfunc2IT = std::make_unique<TF1>("fitfunc2IT", "([4]/[3])*[1]*(TMath::Abs(x-[0]))+[2]", -1, 1);
331 
332  std::ofstream NoEntries;
333  NoEntries.open(NoEntriesHisto_.c_str());
334  std::ofstream Rep;
335  Rep.open(LAreport_.c_str());
336 
337  gStyle->SetOptStat(1110);
338 
339  for (histo = histolist.begin(); histo != histolist.end(); ++histo) {
340  FitFunction = nullptr;
341  FitFunction2IT = nullptr;
342  bool Good2ITFit = false;
343  bool ModuleHisto = true;
344 
345  histoEntries = -99;
346  gphi = -99;
347  geta = -99;
348  gz = -99;
349  gR = -1;
350  globalX = -99;
351  globalY = -99;
352  globalZ = -99;
353  goodFit = 0;
354  goodFit1IT = 0;
355  badFit = 0;
356  muH = -1;
357  TIB = 0;
358  TOB = 0;
359  MonoStereo = -1;
360 
361  uint32_t id = hidmanager.getComponentId((*histo)->getName());
362  DetId detid(id);
363  StripSubdetector subid(id);
364  const GeomDetUnit* stripdet;
365  MonoStereo = subid.stereo();
366 
367  if (!(stripdet = tracker->idToDetUnit(subid))) {
368  no_mod_histo++;
369  ModuleHisto = false;
370  edm::LogInfo("SiStripCalibLorentzAngle") << "### NO MODULE HISTOGRAM";
371  }
372 
373  if (stripdet != nullptr && ModuleHisto == true) {
374  if (subid.subdetId() == int(StripSubdetector::TIB)) {
375  Layer = tTopo->tibLayer(detid);
376  TIB = 1;
377  }
378  if (subid.subdetId() == int(StripSubdetector::TOB)) {
379  Layer = tTopo->tobLayer(detid);
380  TOB = 1;
381  }
382 
383  //get module coordinates
384  const GlobalPoint gposition = (stripdet->surface()).toGlobal(p);
385  histoEntries = (*histo)->getEntries();
386  globalX = gposition.x();
387  globalY = gposition.y();
388  globalZ = gposition.z();
389  gphi = gposition.phi();
390  geta = gposition.eta();
391  gR = sqrt(pow(gposition.x(), 2) + pow(gposition.y(), 2));
392  gz = gposition.z();
393 
394  //get magnetic field
395  const StripGeomDetUnit* det = dynamic_cast<const StripGeomDetUnit*>(estracker->idToDetUnit(detid));
396  if (det == nullptr) {
397  edm::LogError("SiStripCalibLorentzAngle") << "[SiStripCalibLorentzAngle::getNewObject] the detID " << id
398  << " doesn't seem to belong to Tracker" << std::endl;
399  continue;
400  }
401  LocalVector lbfield = (det->surface()).toLocal(magfield_->inTesla(det->surface().position()));
402  theBfield = lbfield.mag();
403  theBfield = (theBfield > 0) ? theBfield : 0.00001;
404  TH1Ds["MagneticField"]->Fill(theBfield);
405  }
406  if (stripdet == nullptr)
407  continue;
408 
409  if (((*histo)->getEntries() <= FitCuts_Entries) && ModuleHisto == true) {
410  if (((*histo)->getEntries() == 0) && ModuleHisto == true) {
411  NoEntries << "NO ENTRIES MODULE, ID = " << id << std::endl;
412  edm::LogInfo("SiStripCalibLorentzAngle") << "### HISTOGRAM WITH 0 ENTRIES => TYPE:" << subid.subdetId();
413  ZeroEntries++;
414  } else {
415  edm::LogInfo("SiStripCalibLorentzAngle")
416  << "### HISTOGRAM WITH NR. ENTRIES <= ENTRIES_CUT => TYPE:" << subid.subdetId();
417  NotEnoughEntries++;
418  }
419  }
420 
422  if (TIB == 1) {
423  name += "TIB";
424  } else {
425  name += "TOB";
426  }
427  std::stringstream LayerStream;
428  LayerStream << Layer;
429  name += LayerStream.str();
430  std::stringstream idnum;
431  idnum << id;
432  name += "_Id_";
433  name += idnum.str();
434 
435  gStyle->SetOptFit(111);
436 
437  //Extract TProfile from Monitor Element to ProfileMap
438  Profiles[name] = new TProfile;
439  TProfile* theProfile = ExtractTObject<TProfile>().extract(*histo);
440  theProfile->Copy(*Profiles[name]);
441  Profiles[name]->SetName(name.c_str());
442 
443  if (((*histo)->getEntries() > FitCuts_Entries) && ModuleHisto == true) {
444  histocounter++;
445  if (TIB == 1) {
446  edm::LogInfo("SiStripCalibLorentzAngle") << "TIB layer = " << Layer;
447  }
448  if (TOB == 1) {
449  edm::LogInfo("SiStripCalibLorentzAngle") << "TOB layer = " << Layer;
450  }
451  edm::LogInfo("SiStripCalibLorentzAngle") << "id: " << id;
452 
453  float thickness = stripdet->specificSurface().bounds().thickness();
454  const StripTopology& topol = (const StripTopology&)stripdet->topology();
455  float pitch = topol.localPitch(p);
456 
457  fitfunc->SetParameter(0, p0_guess);
458  fitfunc->SetParameter(1, p1_guess);
459  fitfunc->SetParameter(2, p2_guess);
460  fitfunc->FixParameter(3, pitch);
461  fitfunc->FixParameter(4, thickness);
462 
463  Profiles[name]->Fit(fitfunc.get(), "E", "", ModuleRangeMin, ModuleRangeMax);
464 
465  FitFunction = fitfunc.get();
466  chi2norm = FitFunction->GetChisquare() / FitFunction->GetNDF();
467 
468  if (FitFunction->GetParameter(0) > FitCuts_p0 || FitFunction->GetParameter(1) < FitCuts_p1 ||
469  FitFunction->GetParameter(2) < FitCuts_p2 || chi2norm > FitCuts_chi2 ||
470  FitFunction->GetParError(0) < FitCuts_ParErr_p0) {
471  FirstIT_badfit++;
472 
473  fitfunc2IT->SetParameter(0, p0_guess);
474  fitfunc2IT->SetParameter(1, p1_guess);
475  fitfunc2IT->SetParameter(2, p2_guess);
476  fitfunc2IT->FixParameter(3, pitch);
477  fitfunc2IT->FixParameter(4, thickness);
478 
479  //2nd Iteration
480  Profiles[name]->Fit(fitfunc2IT.get(), "E", "", ModuleRangeMin2IT, ModuleRangeMax2IT);
481 
482  FitFunction = fitfunc2IT.get();
483  chi2norm = FitFunction->GetChisquare() / FitFunction->GetNDF();
484 
485  //2nd Iteration failed
486 
487  if (FitFunction->GetParameter(0) > FitCuts_p0 || FitFunction->GetParameter(1) < FitCuts_p1 ||
488  FitFunction->GetParameter(2) < FitCuts_p2 || chi2norm > FitCuts_chi2 ||
489  FitFunction->GetParError(0) < FitCuts_ParErr_p0) {
490  if (subid.subdetId() == int(StripSubdetector::TIB)) {
491  Profiles[name]->SetDirectory(TIB_2IT_BadFit);
492  } else {
493  Profiles[name]->SetDirectory(TOB_2IT_BadFit);
494  }
495 
496  SecondIT_badfit++;
497  badFit = 1;
498  }
499 
500  //2nd Iteration ok
501 
502  if (FitFunction->GetParameter(0) < FitCuts_p0 && FitFunction->GetParameter(1) > FitCuts_p1 &&
503  FitFunction->GetParameter(2) > FitCuts_p2 && chi2norm < FitCuts_chi2 &&
504  FitFunction->GetParError(0) > FitCuts_ParErr_p0) {
505  if (subid.subdetId() == int(StripSubdetector::TIB)) {
506  Profiles[name]->SetDirectory(TIB_2IT_GoodFit);
507  } else {
508  Profiles[name]->SetDirectory(TOB_2IT_GoodFit);
509  }
510 
511  SecondIT_goodfit++;
512  Good2ITFit = true;
513  }
514  }
515 
516  if (FitFunction->GetParameter(0) < FitCuts_p0 && FitFunction->GetParameter(1) > FitCuts_p1 &&
517  FitFunction->GetParameter(2) > FitCuts_p2 && chi2norm < FitCuts_chi2 &&
518  FitFunction->GetParError(0) > FitCuts_ParErr_p0) {
519  if (Good2ITFit == false) {
520  FirstIT_goodfit++;
521  goodFit1IT = 1;
522 
523  if (subid.subdetId() == int(StripSubdetector::TIB)) {
524  Profiles[name]->SetDirectory(TIB_1IT_GoodFit);
525  } else {
526  Profiles[name]->SetDirectory(TOB_1IT_GoodFit);
527  }
528  }
529 
530  GoodFit++;
531  goodFit = 1;
532 
533  LorentzAngle_Plots->cd();
534 
535  edm::LogInfo("SiStripCalibLorentzAngle") << FitFunction->GetParameter(0);
536 
537  muH = -(FitFunction->GetParameter(0)) / theBfield;
538 
539  if (TIB == 1) {
540  if (Layer == 1)
541  muH = muH / TIB1calib;
542  if (Layer == 2)
543  muH = muH / TIB2calib;
544  if (Layer == 3)
545  muH = muH / TIB3calib;
546  if (Layer == 4)
547  muH = muH / TIB4calib;
548  }
549  if (TOB == 1) {
550  if (Layer == 1)
551  muH = muH / TOB1calib;
552  if (Layer == 2)
553  muH = muH / TOB2calib;
554  if (Layer == 3)
555  muH = muH / TOB3calib;
556  if (Layer == 4)
557  muH = muH / TOB4calib;
558  if (Layer == 5)
559  muH = muH / TOB5calib;
560  if (Layer == 6)
561  muH = muH / TOB6calib;
562  }
563 
564  detid_la[id] = muH;
565 
566  if (TIB == 1) {
567  TH1Ds["LA_TIB"]->Fill(muH);
568  TH1Ds["LA_err_TIB"]->Fill(FitFunction->GetParError(0) / theBfield);
569  TH1Ds["LA_chi2norm_TIB"]->Fill(chi2norm);
570  TH2Ds["LA_phi_TIB"]->Fill(gphi, muH);
571  TH2Ds["LA_eta_TIB"]->Fill(geta, muH);
572  TH2Ds["LA_TIB_graph"]->Fill(Layer, muH);
573 
574  if (Layer == 1) {
575  TH1Ds["LA_TIB_1"]->Fill(muH);
576  TH2Ds["LA_phi_TIB1"]->Fill(gphi, muH);
577  TH2Ds["LA_eta_TIB1"]->Fill(geta, muH);
578  if (MonoStereo == 0) {
579  TH1Ds["LA_TIB_1_mono"]->Fill(muH);
580  TH2Ds["LA_phi_TIB1_mono"]->Fill(gphi, muH);
581  TH2Ds["LA_eta_TIB1_mono"]->Fill(geta, muH);
582  }
583  if (MonoStereo == 1) {
584  TH1Ds["LA_TIB_1_stereo"]->Fill(muH);
585  TH2Ds["LA_phi_TIB1_stereo"]->Fill(gphi, muH);
586  TH2Ds["LA_eta_TIB1_stereo"]->Fill(geta, muH);
587  }
588  }
589 
590  if (Layer == 2) {
591  TH1Ds["LA_TIB_2"]->Fill(muH);
592  TH2Ds["LA_phi_TIB2"]->Fill(gphi, muH);
593  TH2Ds["LA_eta_TIB2"]->Fill(geta, muH);
594  if (MonoStereo == 0) {
595  TH1Ds["LA_TIB_2_mono"]->Fill(muH);
596  TH2Ds["LA_phi_TIB2_mono"]->Fill(gphi, muH);
597  TH2Ds["LA_eta_TIB2_mono"]->Fill(geta, muH);
598  }
599  if (MonoStereo == 1) {
600  TH1Ds["LA_TIB_2_stereo"]->Fill(muH);
601  TH2Ds["LA_phi_TIB2_stereo"]->Fill(gphi, muH);
602  TH2Ds["LA_eta_TIB2_stereo"]->Fill(geta, muH);
603  }
604  }
605 
606  if (Layer == 3) {
607  TH1Ds["LA_TIB_3"]->Fill(muH);
608  TH2Ds["LA_phi_TIB3"]->Fill(gphi, muH);
609  TH2Ds["LA_eta_TIB3"]->Fill(geta, muH);
610  }
611 
612  if (Layer == 4) {
613  TH1Ds["LA_TIB_4"]->Fill(muH);
614  TH2Ds["LA_phi_TIB4"]->Fill(gphi, muH);
615  TH2Ds["LA_eta_TIB4"]->Fill(geta, muH);
616  }
617  }
618 
619  if (TOB == 1) {
620  TH1Ds["LA_TOB"]->Fill(muH);
621  TH1Ds["LA_err_TOB"]->Fill(FitFunction->GetParError(0) / theBfield);
622  TH1Ds["LA_chi2norm_TOB"]->Fill(chi2norm);
623  TH2Ds["LA_phi_TOB"]->Fill(gphi, muH);
624  TH2Ds["LA_eta_TOB"]->Fill(geta, muH);
625  TH2Ds["LA_TOB_graph"]->Fill(Layer, muH);
626 
627  if (Layer == 1) {
628  TH1Ds["LA_TOB_1"]->Fill(muH);
629  TH2Ds["LA_phi_TOB1"]->Fill(gphi, muH);
630  TH2Ds["LA_eta_TOB1"]->Fill(geta, muH);
631  if (MonoStereo == 0) {
632  TH1Ds["LA_TOB_1_mono"]->Fill(muH);
633  TH2Ds["LA_phi_TOB1_mono"]->Fill(gphi, muH);
634  TH2Ds["LA_eta_TOB1_mono"]->Fill(geta, muH);
635  }
636  if (MonoStereo == 1) {
637  TH1Ds["LA_TOB_1_stereo"]->Fill(muH);
638  TH2Ds["LA_phi_TOB1_stereo"]->Fill(gphi, muH);
639  TH2Ds["LA_eta_TOB1_stereo"]->Fill(geta, muH);
640  }
641  }
642 
643  if (Layer == 2) {
644  TH1Ds["LA_TOB_2"]->Fill(muH);
645  TH2Ds["LA_phi_TOB2"]->Fill(gphi, muH);
646  TH2Ds["LA_eta_TOB2"]->Fill(geta, muH);
647  if (MonoStereo == 0) {
648  TH1Ds["LA_TOB_2_mono"]->Fill(muH);
649  TH2Ds["LA_phi_TOB2_mono"]->Fill(gphi, muH);
650  TH2Ds["LA_eta_TOB2_mono"]->Fill(geta, muH);
651  }
652  if (MonoStereo == 1) {
653  TH1Ds["LA_TOB_2_stereo"]->Fill(muH);
654  TH2Ds["LA_phi_TOB2_stereo"]->Fill(gphi, muH);
655  TH2Ds["LA_eta_TOB2_stereo"]->Fill(geta, muH);
656  }
657  }
658 
659  if (Layer == 3) {
660  TH1Ds["LA_TOB_3"]->Fill(muH);
661  TH2Ds["LA_phi_TOB3"]->Fill(gphi, muH);
662  TH2Ds["LA_eta_TOB3"]->Fill(geta, muH);
663  }
664 
665  if (Layer == 4) {
666  TH1Ds["LA_TOB_4"]->Fill(muH);
667  TH2Ds["LA_phi_TOB4"]->Fill(gphi, muH);
668  TH2Ds["LA_eta_TOB4"]->Fill(geta, muH);
669  }
670 
671  if (Layer == 5) {
672  TH1Ds["LA_TOB_5"]->Fill(muH);
673  TH2Ds["LA_phi_TOB5"]->Fill(gphi, muH);
674  TH2Ds["LA_eta_TOB5"]->Fill(geta, muH);
675  }
676 
677  if (Layer == 6) {
678  TH1Ds["LA_TOB_6"]->Fill(muH);
679  TH2Ds["LA_phi_TOB6"]->Fill(gphi, muH);
680  TH2Ds["LA_eta_TOB6"]->Fill(geta, muH);
681  }
682  }
683  }
684  }
685 
686  ModuleTree->Fill();
687  }
688 
689  double GaussFitRange = conf_.getParameter<double>("GaussFitRange");
690  auto gaus = std::make_unique<TF1>("gaus", "gaus");
691 
692  TH1Ds["LA_TIB_1"]->Fit(gaus.get(), "", "", -GaussFitRange, GaussFitRange);
693  mean_TIB1 = gaus->GetParameter(1);
694  float err_mean_TIB1 = gaus->GetParError(1);
695  float rms_TIB1 = gaus->GetParameter(2);
696  TH1Ds["LA_TIB_2"]->Fit(gaus.get(), "", "", -GaussFitRange, GaussFitRange);
697  mean_TIB2 = gaus->GetParameter(1);
698  float err_mean_TIB2 = gaus->GetParError(1);
699  float rms_TIB2 = gaus->GetParameter(2);
700  TH1Ds["LA_TIB_3"]->Fit(gaus.get(), "", "", -GaussFitRange, GaussFitRange);
701  mean_TIB3 = gaus->GetParameter(1);
702  float err_mean_TIB3 = gaus->GetParError(1);
703  float rms_TIB3 = gaus->GetParameter(2);
704  TH1Ds["LA_TIB_4"]->Fit(gaus.get(), "", "", -GaussFitRange, GaussFitRange);
705  mean_TIB4 = gaus->GetParameter(1);
706  float err_mean_TIB4 = gaus->GetParError(1);
707  float rms_TIB4 = gaus->GetParameter(2);
708 
709  TH1Ds["LA_TOB_1"]->Fit(gaus.get(), "", "", -GaussFitRange, GaussFitRange);
710  mean_TOB1 = gaus->GetParameter(1);
711  float err_mean_TOB1 = gaus->GetParError(1);
712  float rms_TOB1 = gaus->GetParameter(2);
713  TH1Ds["LA_TOB_2"]->Fit(gaus.get(), "", "", -GaussFitRange, GaussFitRange);
714  mean_TOB2 = gaus->GetParameter(1);
715  float err_mean_TOB2 = gaus->GetParError(1);
716  float rms_TOB2 = gaus->GetParameter(2);
717  TH1Ds["LA_TOB_3"]->Fit(gaus.get(), "", "", -GaussFitRange, GaussFitRange);
718  mean_TOB3 = gaus->GetParameter(1);
719  float err_mean_TOB3 = gaus->GetParError(1);
720  float rms_TOB3 = gaus->GetParameter(2);
721  TH1Ds["LA_TOB_4"]->Fit(gaus.get(), "", "", -GaussFitRange, GaussFitRange);
722  mean_TOB4 = gaus->GetParameter(1);
723  float err_mean_TOB4 = gaus->GetParError(1);
724  float rms_TOB4 = gaus->GetParameter(2);
725  TH1Ds["LA_TOB_5"]->Fit(gaus.get(), "", "", -GaussFitRange, GaussFitRange);
726  mean_TOB5 = gaus->GetParameter(1);
727  float err_mean_TOB5 = gaus->GetParError(1);
728  float rms_TOB5 = gaus->GetParameter(2);
729  TH1Ds["LA_TOB_6"]->Fit(gaus.get(), "", "", -GaussFitRange, GaussFitRange);
730  mean_TOB6 = gaus->GetParameter(1);
731  float err_mean_TOB6 = gaus->GetParError(1);
732  float rms_TOB6 = gaus->GetParameter(2);
733 
734  int nlayersTIB = 4;
735  float TIBx[4] = {1, 2, 3, 4};
736  float TIBex[4] = {0, 0, 0, 0};
737  float TIBy[4] = {mean_TIB1, mean_TIB2, mean_TIB3, mean_TIB4};
738  float TIBey[4] = {err_mean_TIB1, err_mean_TIB2, err_mean_TIB3, err_mean_TIB4};
739 
740  int nlayersTOB = 6;
741  float TOBx[6] = {1, 2, 3, 4, 5, 6};
742  float TOBex[6] = {0, 0, 0, 0, 0, 0};
743  float TOBy[6] = {mean_TOB1, mean_TOB2, mean_TOB3, mean_TOB4, mean_TOB5, mean_TOB6};
744  float TOBey[6] = {err_mean_TOB1, err_mean_TOB2, err_mean_TOB3, err_mean_TOB4, err_mean_TOB5, err_mean_TOB6};
745 
746  TIB_graph = new TGraphErrors(nlayersTIB, TIBx, TIBy, TIBex, TIBey);
747  TOB_graph = new TGraphErrors(nlayersTOB, TOBx, TOBy, TOBex, TOBey);
748 
749  //TF1 *fit_TIB= new TF1("fit_TIB","[0]",0,4);
750  //TF1 *fit_TOB= new TF1("fit_TOB","[0]",0,6);
751 
752  gStyle->SetOptFit(111);
753  gStyle->SetOptStat(111);
754 
755  TIB_graph->SetTitle("TIB Layers #mu_{H}");
756  TIB_graph->GetXaxis()->SetTitle("Layers");
757  TIB_graph->GetXaxis()->SetNdivisions(4);
758  TIB_graph->GetYaxis()->SetTitle("#mu_{H}");
759  TIB_graph->SetMarkerStyle(20);
760  TIB_graph->GetYaxis()->SetTitleOffset(1.3);
761  TIB_graph->Fit("fit_TIB", "E", "", 1, 4);
762  meanMobility_TIB = TIB_graph->GetFunction("fit_TIB")->GetParameter(0);
763 
764  TOB_graph->SetTitle("TOB Layers #mu_{H}");
765  TOB_graph->GetXaxis()->SetTitle("Layers");
766  TOB_graph->GetXaxis()->SetNdivisions(6);
767  TOB_graph->GetYaxis()->SetTitle("#mu_{H}");
768  TOB_graph->SetMarkerStyle(20);
769  TOB_graph->GetYaxis()->SetTitleOffset(1.3);
770  TOB_graph->Fit("fit_TOB", "E", "", 1, 6);
771  meanMobility_TOB = TOB_graph->GetFunction("fit_TOB")->GetParameter(0);
772 
773  TIB_graph->Write("TIB_graph");
774  TOB_graph->Write("TOB_graph");
775 
776  Rep << "- NR.OF TIB AND TOB MODULES = 7932" << std::endl << std::endl << std::endl;
777  Rep << "- NO MODULE HISTOS FOUND = " << no_mod_histo << std::endl << std::endl;
778  Rep << "- NR.OF HISTOS WITH ENTRIES > " << FitCuts_Entries << " = " << histocounter << std::endl << std::endl;
779  Rep << "- NR.OF HISTOS WITH ENTRIES <= " << FitCuts_Entries << " (!=0) = " << NotEnoughEntries << std::endl
780  << std::endl;
781  Rep << "- NR.OF HISTOS WITH 0 ENTRIES = " << ZeroEntries << std::endl << std::endl << std::endl;
782  Rep << "- NR.OF GOOD FIT (FIRST IT + SECOND IT GOOD FIT)= " << GoodFit << std::endl << std::endl;
783  Rep << "- NR.OF FIRST IT GOOD FIT = " << FirstIT_goodfit << std::endl << std::endl;
784  Rep << "- NR.OF SECOND IT GOOD FIT = " << SecondIT_goodfit << std::endl << std::endl;
785  Rep << "- NR.OF FIRST IT BAD FIT = " << FirstIT_badfit << std::endl << std::endl;
786  Rep << "- NR.OF SECOND IT BAD FIT = " << SecondIT_badfit << std::endl << std::endl << std::endl;
787 
788  Rep << "--------------- Mean MuH values per Layer -------------------" << std::endl << std::endl << std::endl;
789  Rep << "TIB1 = " << mean_TIB1 << " +- " << err_mean_TIB1 << " RMS = " << rms_TIB1 << std::endl;
790  Rep << "TIB2 = " << mean_TIB2 << " +- " << err_mean_TIB2 << " RMS = " << rms_TIB2 << std::endl;
791  Rep << "TIB3 = " << mean_TIB3 << " +- " << err_mean_TIB3 << " RMS = " << rms_TIB3 << std::endl;
792  Rep << "TIB4 = " << mean_TIB4 << " +- " << err_mean_TIB4 << " RMS = " << rms_TIB4 << std::endl;
793  Rep << "TOB1 = " << mean_TOB1 << " +- " << err_mean_TOB1 << " RMS = " << rms_TOB1 << std::endl;
794  Rep << "TOB2 = " << mean_TOB2 << " +- " << err_mean_TOB2 << " RMS = " << rms_TOB2 << std::endl;
795  Rep << "TOB3 = " << mean_TOB3 << " +- " << err_mean_TOB3 << " RMS = " << rms_TOB3 << std::endl;
796  Rep << "TOB4 = " << mean_TOB4 << " +- " << err_mean_TOB4 << " RMS = " << rms_TOB4 << std::endl;
797  Rep << "TOB5 = " << mean_TOB5 << " +- " << err_mean_TOB5 << " RMS = " << rms_TOB5 << std::endl;
798  Rep << "TOB6 = " << mean_TOB6 << " +- " << err_mean_TOB6 << " RMS = " << rms_TOB6 << std::endl << std::endl;
799  Rep << "Mean Hall Mobility TIB = " << meanMobility_TIB << " +- " << TIB_graph->GetFunction("fit_TIB")->GetParError(0)
800  << std::endl;
801  Rep << "Mean Hall Mobility TOB = " << meanMobility_TOB << " +- " << TOB_graph->GetFunction("fit_TOB")->GetParError(0)
802  << std::endl
803  << std::endl
804  << std::endl;
805 
806  Rep.close();
807  NoEntries.close();
808 
809  hFile->Write();
810  hFile->Close();
811 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
Point3DBase< Scalar, LocalTag > LocalPoint
Definition: Definitions.h:30
unsigned int tibLayer(const DetId &id) const
dqm::legacy::DQMStore DQMStore
virtual const Topology & topology() const
Definition: GeomDet.cc:67
const std::map< unsigned int, float > & getLorentzAngles() const
dqm::legacy::DQMStore * dbe_
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
T y() const
Definition: PV3DBase.h:60
const Bounds & bounds() const
Definition: Surface.h:89
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
uint32_t getComponentId(std::string histoid)
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
const TrackerTopology * tTopo
const TrackerGeometry * tracker
T mag() const
Definition: PV3DBase.h:64
std::vector< MonitorElement * > histolist
T sqrt(T t)
Definition: SSEVec.h:19
T z() const
Definition: PV3DBase.h:61
static constexpr auto TOB
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
std::vector< MonitorElement * > getAllContents(std::string const &path, uint32_t runNumber=0, uint32_t lumi=0) const
Definition: DQMStore.cc:1616
int extract(std::vector< int > *output, const std::string &dati)
Definition: DetId.h:17
static constexpr auto TIB
virtual float thickness() const =0
virtual float localPitch(const LocalPoint &) const =0
T eta() const
Definition: PV3DBase.h:73
T get() const
Definition: EventSetup.h:73
edm::ESHandle< TrackerGeometry > estracker
bool open(std::string const &filename, bool overwrite=false, std::string const &path="", std::string const &prepend="", OpenRunDirs stripdirs=KeepRunDirs, bool fileMustExist=true)
Definition: DQMStore.cc:2626
edm::ESHandle< MagneticField > magfield_
T x() const
Definition: PV3DBase.h:59
const PositionType & position() const
T const * product() const
Definition: ESHandle.h:86
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
std::map< uint32_t, float > detid_la
const Plane & specificSurface() const
Same as surface(), kept for backward compatibility.
Definition: GeomDet.h:40
unsigned int tobLayer(const DetId &id) const
std::unique_ptr< SiStripLorentzAngle > SiStripCalibLorentzAngle::getNewObject ( )
overridevirtual

Implements ConditionDBWriter< SiStripLorentzAngle >.

Definition at line 819 of file SiStripCalibLorentzAngle.cc.

References detid_la, TrackerGeometry::detIds(), estracker, hallMobility, createfilelist::int, LayerDB, SiStripSimParameters_cfi::LorentzAngle, mean_TIB1, mean_TIB2, mean_TIB3, mean_TIB4, mean_TOB1, mean_TOB2, mean_TOB3, mean_TOB4, mean_TOB5, mean_TOB6, meanMobility_TIB, meanMobility_TOB, StripSubdetector::TEC, TrackerTopology::tecRing(), StripSubdetector::TIB, TrackerTopology::tibLayer(), StripSubdetector::TID, StripSubdetector::TOB, TrackerTopology::tobLayer(), and tTopo.

819  {
820  auto LorentzAngle = std::make_unique<SiStripLorentzAngle>();
821 
822  if (!LayerDB) {
823  for (std::map<uint32_t, float>::iterator it = detid_la.begin(); it != detid_la.end(); it++) {
824  float langle = it->second;
825  if (!LorentzAngle->putLorentzAngle(it->first, langle))
826  edm::LogError("SiStripCalibLorentzAngle")
827  << "[SiStripCalibLorentzAngle::analyze] detid already exists" << std::endl;
828  }
829  }
830 
831  else {
833  TrackerGeometry::DetIdContainer::const_iterator Iditer;
834 
835  for (Iditer = Id.begin(); Iditer != Id.end(); Iditer++) {
836  StripSubdetector subid(Iditer->rawId());
837 
838  hallMobility = 0.;
839 
840  if (subid.subdetId() == int(StripSubdetector::TIB)) {
841  uint32_t tibLayer = tTopo->tibLayer(*Iditer);
842  if (tibLayer == 1) {
843  hallMobility = mean_TIB1;
844  }
845  if (tibLayer == 2) {
846  hallMobility = mean_TIB2;
847  }
848  if (tibLayer == 3) {
849  hallMobility = mean_TIB3;
850  }
851  if (tibLayer == 4) {
852  hallMobility = mean_TIB4;
853  }
854  if (!LorentzAngle->putLorentzAngle(Iditer->rawId(), hallMobility))
855  edm::LogError("SiStripLorentzAngleGenerator") << " detid already exists" << std::endl;
856  }
857 
858  if (subid.subdetId() == int(StripSubdetector::TOB)) {
859  uint32_t tobLayer = tTopo->tobLayer(*Iditer);
860  if (tobLayer == 1) {
861  hallMobility = mean_TOB1;
862  }
863  if (tobLayer == 2) {
864  hallMobility = mean_TOB2;
865  }
866  if (tobLayer == 3) {
867  hallMobility = mean_TOB3;
868  }
869  if (tobLayer == 4) {
870  hallMobility = mean_TOB4;
871  }
872  if (tobLayer == 5) {
873  hallMobility = mean_TOB5;
874  }
875  if (tobLayer == 6) {
876  hallMobility = mean_TOB6;
877  }
878  if (!LorentzAngle->putLorentzAngle(Iditer->rawId(), hallMobility))
879  edm::LogError("SiStripLorentzAngleGenerator") << " detid already exists" << std::endl;
880  }
881 
882  if (subid.subdetId() == int(StripSubdetector::TID)) {
883  hallMobility = meanMobility_TIB;
884  if (!LorentzAngle->putLorentzAngle(Iditer->rawId(), hallMobility))
885  edm::LogError("SiStripLorentzAngleGenerator") << " detid already exists" << std::endl;
886  }
887 
888  if (subid.subdetId() == int(StripSubdetector::TEC)) {
889  if (tTopo->tecRing(subid) < 5) {
890  hallMobility = meanMobility_TIB;
891  } else {
892  hallMobility = meanMobility_TOB;
893  }
894  if (!LorentzAngle->putLorentzAngle(Iditer->rawId(), hallMobility))
895  edm::LogError("SiStripLorentzAngleGenerator") << " detid already exists" << std::endl;
896  }
897  }
898  }
899 
900  return LorentzAngle;
901 }
static constexpr auto TEC
unsigned int tibLayer(const DetId &id) const
unsigned int tecRing(const DetId &id) const
ring id
const TrackerTopology * tTopo
const DetIdContainer & detIds() const override
Returm a vector of all GeomDet DetIds (including those of GeomDetUnits)
static constexpr auto TOB
static constexpr auto TIB
std::vector< DetId > DetIdContainer
edm::ESHandle< TrackerGeometry > estracker
static constexpr auto TID
std::map< uint32_t, float > detid_la
unsigned int tobLayer(const DetId &id) const

Member Data Documentation

float SiStripCalibLorentzAngle::AsymmParam
private

Definition at line 67 of file SiStripCalibLorentzAngle.h.

int SiStripCalibLorentzAngle::badFit
private

Definition at line 68 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

bool SiStripCalibLorentzAngle::CalibByMC
private

Definition at line 75 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

edm::ParameterSet SiStripCalibLorentzAngle::conf_
private

Definition at line 88 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

std::map<uint32_t, float> SiStripCalibLorentzAngle::detid_la
private

Definition at line 87 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

edm::ESHandle<TrackerGeometry> SiStripCalibLorentzAngle::estracker
private

Definition at line 51 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

TDirectory* SiStripCalibLorentzAngle::FirstIT_GoodFit_Histos
private

Definition at line 84 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TF1* SiStripCalibLorentzAngle::fitfunc
private

Definition at line 65 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TF1 * SiStripCalibLorentzAngle::fitfunc2IT
private

Definition at line 65 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TF1 * SiStripCalibLorentzAngle::FitFunction
private

Definition at line 65 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TF1 * SiStripCalibLorentzAngle::FitFunction2IT
private

Definition at line 65 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

float SiStripCalibLorentzAngle::geta
private

Definition at line 67 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

float SiStripCalibLorentzAngle::globalX
private

Definition at line 67 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

float SiStripCalibLorentzAngle::globalY
private

Definition at line 67 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

float SiStripCalibLorentzAngle::globalZ
private

Definition at line 67 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

int SiStripCalibLorentzAngle::goodFit
private

Definition at line 68 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

int SiStripCalibLorentzAngle::goodFit1IT
private

Definition at line 68 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

float SiStripCalibLorentzAngle::gphi
private

Definition at line 67 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

const GlobalPoint SiStripCalibLorentzAngle::gposition
private

Definition at line 69 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

float SiStripCalibLorentzAngle::gR
private

Definition at line 67 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

float SiStripCalibLorentzAngle::gz
private

Definition at line 67 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

float SiStripCalibLorentzAngle::hallMobility
private

Definition at line 73 of file SiStripCalibLorentzAngle.h.

Referenced by getNewObject().

TFile* SiStripCalibLorentzAngle::hFile
private

Definition at line 80 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and ~SiStripCalibLorentzAngle().

float SiStripCalibLorentzAngle::histoEntries
private

Definition at line 67 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

std::vector<MonitorElement *> SiStripCalibLorentzAngle::histolist
private

Definition at line 63 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

int SiStripCalibLorentzAngle::Layer
private

Definition at line 68 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

bool SiStripCalibLorentzAngle::LayerDB
private

Definition at line 75 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

TDirectory* SiStripCalibLorentzAngle::LorentzAngle_Plots
private

Definition at line 82 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

edm::ESHandle<MagneticField> SiStripCalibLorentzAngle::magfield_
private

Definition at line 52 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

float SiStripCalibLorentzAngle::mean_TIB1
private

Definition at line 71 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

float SiStripCalibLorentzAngle::mean_TIB2
private

Definition at line 71 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

float SiStripCalibLorentzAngle::mean_TIB3
private

Definition at line 71 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

float SiStripCalibLorentzAngle::mean_TIB4
private

Definition at line 71 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

float SiStripCalibLorentzAngle::mean_TOB1
private

Definition at line 71 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

float SiStripCalibLorentzAngle::mean_TOB2
private

Definition at line 71 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

float SiStripCalibLorentzAngle::mean_TOB3
private

Definition at line 71 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

float SiStripCalibLorentzAngle::mean_TOB4
private

Definition at line 71 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

float SiStripCalibLorentzAngle::mean_TOB5
private

Definition at line 71 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

float SiStripCalibLorentzAngle::mean_TOB6
private

Definition at line 71 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

float SiStripCalibLorentzAngle::meanMobility_TIB
private

Definition at line 73 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

float SiStripCalibLorentzAngle::meanMobility_TOB
private

Definition at line 73 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().

TTree* SiStripCalibLorentzAngle::ModuleTree
private

Definition at line 79 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

int SiStripCalibLorentzAngle::MonoStereo
private

Definition at line 68 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

float SiStripCalibLorentzAngle::muH
private

Definition at line 67 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::MuH
private

Definition at line 82 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::MuH_vs_Eta
private

Definition at line 82 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::MuH_vs_Phi
private

Definition at line 82 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

ProfileMap SiStripCalibLorentzAngle::Profiles
private

Definition at line 58 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::Rootple
private

Definition at line 82 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::SecondIT_BadFit_Histos
private

Definition at line 84 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::SecondIT_GoodFit_Histos
private

Definition at line 84 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TH1Dmap SiStripCalibLorentzAngle::TH1Ds
private

Definition at line 60 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TH2Dmap SiStripCalibLorentzAngle::TH2Ds
private

Definition at line 62 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

float SiStripCalibLorentzAngle::theBfield
private

Definition at line 67 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

int SiStripCalibLorentzAngle::TIB
private

Definition at line 68 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::TIB_1IT_GoodFit
private

Definition at line 84 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::TIB_2IT_BadFit
private

Definition at line 84 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::TIB_2IT_GoodFit
private

Definition at line 84 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::TIB_Eta
private

Definition at line 82 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TGraphErrors* SiStripCalibLorentzAngle::TIB_graph
private

Definition at line 77 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::TIB_MuH
private

Definition at line 82 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::TIB_Phi
private

Definition at line 82 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

int SiStripCalibLorentzAngle::TOB
private

Definition at line 68 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::TOB_1IT_GoodFit
private

Definition at line 84 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::TOB_2IT_BadFit
private

Definition at line 84 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::TOB_2IT_GoodFit
private

Definition at line 84 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::TOB_Eta
private

Definition at line 82 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TGraphErrors * SiStripCalibLorentzAngle::TOB_graph
private

Definition at line 77 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::TOB_MuH
private

Definition at line 82 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

TDirectory * SiStripCalibLorentzAngle::TOB_Phi
private

Definition at line 82 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

const TrackerGeometry* SiStripCalibLorentzAngle::tracker
private

Definition at line 54 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob().

const TrackerTopology* SiStripCalibLorentzAngle::tTopo
private

Definition at line 55 of file SiStripCalibLorentzAngle.h.

Referenced by algoBeginJob(), and getNewObject().