CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
BeamFitter Class Reference

#include <BeamFitter.h>

Public Member Functions

 BeamFitter ()
 
 BeamFitter (const edm::ParameterSet &iConfig)
 
void dumpBWTxtFile (std::string &)
 
void dumpTxtFile (std::string &, bool)
 
reco::BeamSpot getBeamSpot ()
 
std::map< int, reco::BeamSpotgetBeamSpotMap ()
 
reco::BeamSpot getBeamWidth ()
 
std::vector< BSTrkParametersgetBSvector ()
 
TH1F * getCutFlow ()
 
int * getFitLSRange ()
 
int getNPVs ()
 
const std::map< int, int > & getNPVsperBX ()
 
int getNTracks ()
 
void readEvent (const edm::Event &iEvent)
 
void resetCutFlow ()
 
void resetLSRange ()
 
void resetPVFitter ()
 
void resetRefTime ()
 
void resetTotTrk ()
 
void resetTrkVector ()
 
void runAllFitter ()
 
bool runBeamWidthFitter ()
 
bool runFitter ()
 
bool runFitterNoTxt ()
 
bool runPVandTrkFitter ()
 
void setFitLSRange (int ls0, int ls1)
 
void setRefTime (std::time_t t0, std::time_t t1)
 
void setRun (int run)
 
void write2DB ()
 
virtual ~BeamFitter ()
 

Private Member Functions

const char * formatBTime (const std::time_t &)
 

Private Attributes

std::vector
< reco::TrackBase::TrackAlgorithm
algorithm_
 
bool appendRunTxt_
 
double convergence_
 
int countPass [9]
 
bool debug_
 
bool falgo
 
std::ofstream fasciiDIP
 
std::ofstream fasciiFile
 
reco::BeamSpot fbeamspot
 
reco::BeamSpot fbeamWidthFit
 
int fbeginLumiOfFit
 
char fbeginTimeOfFit [32]
 
std::map< int, reco::BeamSpotfbspotPVMap
 
std::vector< BSTrkParametersfBSvector
 
int fcharge
 
double fcov [7][7]
 
double fd0
 
double fd0bs
 
double fd0phi_chi2
 
double fd0phi_d0
 
double fdxdz
 
double fdxdzErr
 
double fdydz
 
double fdydzErr
 
int fendLumiOfFit
 
char fendTimeOfFit [32]
 
double feta
 
bool ffilename_changed
 
TFile * file_
 
bool fitted_
 
int flumi
 
BSFitterfmyalgo
 
double fnormchi2
 
int fnPixelLayerMeas
 
int fnPXBLayerMeas
 
int fnPXFLayerMeas
 
int fnStripLayerMeas
 
int fnTECLayerMeas
 
int fnTIBLayerMeas
 
int fnTIDLayerMeas
 
int fnTOBLayerMeas
 
int fnTotLayerMeas
 
double fphi0
 
double fpt
 
TTree * fPVTree_
 
bool fpvValid
 
double fpvx
 
double fpvy
 
double fpvz
 
bool fquality
 
std::time_t freftime [2]
 
int frun
 
int frunFit
 
double fsigmad0
 
double fsigmaZ
 
double fsigmaz0
 
double fsigmaZErr
 
double ftheta
 
int ftotal_tracks
 
TTree * ftree_
 
TTree * ftreeFit_
 
double fvx
 
double fvy
 
double fwidthX
 
double fwidthXErr
 
double fwidthY
 
double fwidthYErr
 
double fx
 
double fxErr
 
double fy
 
double fyErr
 
double fz
 
double fz0
 
double fzErr
 
TH1F * h1cutFlow
 
TH1F * h1ntrks
 
TH1F * h1vz_event
 
TH1F * h1z
 
double inputBeamWidth_
 
bool isMuon_
 
int min_Ntrks_
 
PVFitterMyPVFitter
 
std::string outputDIPTxt_
 
std::string outputfilename_
 
std::string outputTxt_
 
std::vector
< reco::TrackBase::TrackQuality
quality_
 
bool saveBeamFit_
 
bool saveNtuple_
 
bool savePVVertices_
 
edm::InputTag tracksLabel_
 
std::vector< std::string > trk_Algorithm_
 
double trk_MaxEta_
 
double trk_MaxIP_
 
double trk_MaxNormChi2_
 
double trk_MaxZ_
 
int trk_MinNPixLayers_
 
int trk_MinNTotLayers_
 
double trk_MinpT_
 
std::vector< std::string > trk_Quality_
 
edm::InputTag vertexLabel_
 
bool writeDIPTxt_
 
bool writeTxt_
 

Detailed Description


class: BeamFitter.h package: RecoVertex/BeamSpotProducer

author: Francisco Yumiceva, Fermilab (yumic.nosp@m.eva@.nosp@m.fnal..nosp@m.gov) Geng-Yuan Jeng, UC Riverside (Geng-.nosp@m.Yuan.nosp@m..Jeng.nosp@m.@cer.nosp@m.n.ch)

version

Id:
BeamFitter.h,v 1.41 2010/11/03 13:44:17 friis Exp

Definition at line 33 of file BeamFitter.h.

Constructor & Destructor Documentation

BeamFitter::BeamFitter ( )
inline

Definition at line 35 of file BeamFitter.h.

35 {}
BeamFitter::BeamFitter ( const edm::ParameterSet iConfig)

Definition at line 42 of file BeamFitter.cc.

References reco::TrackBase::algoByName(), algorithm_, appendRunTxt_, convergence_, debug_, falgo, fasciiDIP, fbeginLumiOfFit, fbeginTimeOfFit, fBSvector, fcharge, fcov, fd0, fd0bs, fdxdz, fdxdzErr, fdydz, fdydzErr, fendLumiOfFit, fendTimeOfFit, feta, ffilename_changed, file_, fitted_, flumi, fnormchi2, fnPixelLayerMeas, fnPXBLayerMeas, fnPXFLayerMeas, fnStripLayerMeas, fnTECLayerMeas, fnTIBLayerMeas, fnTIDLayerMeas, fnTOBLayerMeas, fnTotLayerMeas, fphi0, fpt, fPVTree_, fpvValid, fpvx, fpvy, fpvz, fquality, frun, frunFit, fsigmad0, fsigmaZ, fsigmaz0, fsigmaZErr, ftheta, ftotal_tracks, ftree_, ftreeFit_, fvx, fvy, fwidthX, fwidthXErr, fwidthY, fwidthYErr, fx, fxErr, fy, fyErr, fz, fz0, fzErr, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), h1cutFlow, h1ntrks, h1vz_event, inputBeamWidth_, isMuon_, j, min_Ntrks_, MyPVFitter, outputDIPTxt_, outputfilename_, outputTxt_, ExpressReco_HICollisions_FallBack::PVFitter, quality_, reco::TrackBase::qualityByName(), PVFitter::resetAll(), resetCutFlow(), resetRefTime(), saveBeamFit_, saveNtuple_, savePVVertices_, PVFitter::setTree(), tracksLabel_, trk_Algorithm_, trk_MaxEta_, trk_MaxIP_, trk_MaxNormChi2_, trk_MaxZ_, trk_MinNPixLayers_, trk_MinNTotLayers_, trk_MinpT_, trk_Quality_, vertexLabel_, writeDIPTxt_, and writeTxt_.

42  : fPVTree_(0)
43 {
44 
45  debug_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<bool>("Debug");
46  tracksLabel_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<edm::InputTag>("TrackCollection");
47  vertexLabel_ = iConfig.getUntrackedParameter<edm::InputTag>("primaryVertex", edm::InputTag("offlinePrimaryVertices"));
48  writeTxt_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<bool>("WriteAscii");
49  outputTxt_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<std::string>("AsciiFileName");
50  appendRunTxt_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<bool>("AppendRunToFileName");
51  writeDIPTxt_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<bool>("WriteDIPAscii");
52  outputDIPTxt_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<std::string>("DIPFileName");
53  saveNtuple_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<bool>("SaveNtuple");
54  saveBeamFit_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<bool>("SaveFitResults");
55  savePVVertices_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<bool>("SavePVVertices");
56  isMuon_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<bool>("IsMuonCollection");
57 
58  trk_MinpT_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<double>("MinimumPt");
59  trk_MaxEta_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<double>("MaximumEta");
60  trk_MaxIP_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<double>("MaximumImpactParameter");
61  trk_MaxZ_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<double>("MaximumZ");
62  trk_MinNTotLayers_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<int>("MinimumTotalLayers");
63  trk_MinNPixLayers_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<int>("MinimumPixelLayers");
64  trk_MaxNormChi2_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<double>("MaximumNormChi2");
65  trk_Algorithm_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<std::vector<std::string> >("TrackAlgorithm");
66  trk_Quality_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<std::vector<std::string> >("TrackQuality");
67  min_Ntrks_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<int>("MinimumInputTracks");
68  convergence_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<double>("FractionOfFittedTrks");
69  inputBeamWidth_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<double>("InputBeamWidth",-1.);
70 
71  for (unsigned int j=0;j<trk_Algorithm_.size();j++)
73  for (unsigned int j=0;j<trk_Quality_.size();j++)
75 
77  outputfilename_ = iConfig.getParameter<edm::ParameterSet>("BeamFitter").getUntrackedParameter<std::string>("OutputFileName");
78  file_ = TFile::Open(outputfilename_.c_str(),"RECREATE");
79  }
80  if (saveNtuple_) {
81  ftree_ = new TTree("mytree","mytree");
82  ftree_->AutoSave();
83 
84  ftree_->Branch("pt",&fpt,"fpt/D");
85  ftree_->Branch("d0",&fd0,"fd0/D");
86  ftree_->Branch("d0bs",&fd0bs,"fd0bs/D");
87  ftree_->Branch("sigmad0",&fsigmad0,"fsigmad0/D");
88  ftree_->Branch("phi0",&fphi0,"fphi0/D");
89  ftree_->Branch("z0",&fz0,"fz0/D");
90  ftree_->Branch("sigmaz0",&fsigmaz0,"fsigmaz0/D");
91  ftree_->Branch("theta",&ftheta,"ftheta/D");
92  ftree_->Branch("eta",&feta,"feta/D");
93  ftree_->Branch("charge",&fcharge,"fcharge/I");
94  ftree_->Branch("normchi2",&fnormchi2,"fnormchi2/D");
95  ftree_->Branch("nTotLayerMeas",&fnTotLayerMeas,"fnTotLayerMeas/i");
96  ftree_->Branch("nStripLayerMeas",&fnStripLayerMeas,"fnStripLayerMeas/i");
97  ftree_->Branch("nPixelLayerMeas",&fnPixelLayerMeas,"fnPixelLayerMeas/i");
98  ftree_->Branch("nTIBLayerMeas",&fnTIBLayerMeas,"fnTIBLayerMeas/i");
99  ftree_->Branch("nTOBLayerMeas",&fnTOBLayerMeas,"fnTOBLayerMeas/i");
100  ftree_->Branch("nTIDLayerMeas",&fnTIDLayerMeas,"fnTIDLayerMeas/i");
101  ftree_->Branch("nTECLayerMeas",&fnTECLayerMeas,"fnTECLayerMeas/i");
102  ftree_->Branch("nPXBLayerMeas",&fnPXBLayerMeas,"fnPXBLayerMeas/i");
103  ftree_->Branch("nPXFLayerMeas",&fnPXFLayerMeas,"fnPXFLayerMeas/i");
104  ftree_->Branch("cov",&fcov,"fcov[7][7]/D");
105  ftree_->Branch("vx",&fvx,"fvx/D");
106  ftree_->Branch("vy",&fvy,"fvy/D");
107  ftree_->Branch("quality",&fquality,"fquality/O");
108  ftree_->Branch("algo",&falgo,"falgo/O");
109  ftree_->Branch("run",&frun,"frun/i");
110  ftree_->Branch("lumi",&flumi,"flumi/i");
111  ftree_->Branch("pvValid",&fpvValid,"fpvValid/O");
112  ftree_->Branch("pvx", &fpvx, "fpvx/D");
113  ftree_->Branch("pvy", &fpvy, "fpvy/D");
114  ftree_->Branch("pvz", &fpvz, "fpvz/D");
115  }
116  if (saveBeamFit_){
117  ftreeFit_ = new TTree("fitResults","fitResults");
118  ftreeFit_->AutoSave();
119  ftreeFit_->Branch("run",&frunFit,"frunFit/i");
120  ftreeFit_->Branch("beginLumi",&fbeginLumiOfFit,"fbeginLumiOfFit/i");
121  ftreeFit_->Branch("endLumi",&fendLumiOfFit,"fendLumiOfFit/i");
122  ftreeFit_->Branch("beginTime",fbeginTimeOfFit,"fbeginTimeOfFit/C");
123  ftreeFit_->Branch("endTime",fendTimeOfFit,"fendTimeOfFit/C");
124  ftreeFit_->Branch("x",&fx,"fx/D");
125  ftreeFit_->Branch("y",&fy,"fy/D");
126  ftreeFit_->Branch("z",&fz,"fz/D");
127  ftreeFit_->Branch("sigmaZ",&fsigmaZ,"fsigmaZ/D");
128  ftreeFit_->Branch("dxdz",&fdxdz,"fdxdz/D");
129  ftreeFit_->Branch("dydz",&fdydz,"fdydz/D");
130  ftreeFit_->Branch("xErr",&fxErr,"fxErr/D");
131  ftreeFit_->Branch("yErr",&fyErr,"fyErr/D");
132  ftreeFit_->Branch("zErr",&fzErr,"fzErr/D");
133  ftreeFit_->Branch("sigmaZErr",&fsigmaZErr,"fsigmaZErr/D");
134  ftreeFit_->Branch("dxdzErr",&fdxdzErr,"fdxdzErr/D");
135  ftreeFit_->Branch("dydzErr",&fdydzErr,"fdydzErr/D");
136  ftreeFit_->Branch("widthX",&fwidthX,"fwidthX/D");
137  ftreeFit_->Branch("widthY",&fwidthY,"fwidthY/D");
138  ftreeFit_->Branch("widthXErr",&fwidthXErr,"fwidthXErr/D");
139  ftreeFit_->Branch("widthYErr",&fwidthYErr,"fwidthYErr/D");
140  }
141 
142  fBSvector.clear();
143  ftotal_tracks = 0;
146  frun = flumi = -1;
148  fquality = falgo = true;
149  fpvValid = true;
150  fpvx = fpvy = fpvz = 0;
151  fitted_ = false;
152  resetRefTime();
153 
154  //debug histograms
155  h1ntrks = new TH1F("h1ntrks","number of tracks per event",50,0,50);
156  h1vz_event = new TH1F("h1vz_event","track Vz", 50, -30, 30 );
157  h1cutFlow = new TH1F("h1cutFlow","Cut flow table of track selection", 9, 0, 9);
158  h1cutFlow->GetXaxis()->SetBinLabel(1,"No cut");
159  h1cutFlow->GetXaxis()->SetBinLabel(2,"Traker hits");
160  h1cutFlow->GetXaxis()->SetBinLabel(3,"Pixel hits");
161  h1cutFlow->GetXaxis()->SetBinLabel(4,"norm. #chi^{2}");
162  h1cutFlow->GetXaxis()->SetBinLabel(5,"algo");
163  h1cutFlow->GetXaxis()->SetBinLabel(6,"quality");
164  h1cutFlow->GetXaxis()->SetBinLabel(7,"d_{0}");
165  h1cutFlow->GetXaxis()->SetBinLabel(8,"z_{0}");
166  h1cutFlow->GetXaxis()->SetBinLabel(9,"p_{T}");
167  resetCutFlow();
168 
169  // Primary vertex fitter
170  MyPVFitter = new PVFitter(iConfig);
171  MyPVFitter->resetAll();
172  if (savePVVertices_){
173  fPVTree_ = new TTree("PrimaryVertices","PrimaryVertices");
175  }
176 
177  // check filename
178  ffilename_changed = false;
179  if (writeDIPTxt_)
180  fasciiDIP.open(outputDIPTxt_.c_str());
181 }
T getParameter(std::string const &) const
double trk_MaxZ_
Definition: BeamFitter.h:111
double trk_MaxEta_
Definition: BeamFitter.h:112
T getUntrackedParameter(std::string const &, T const &) const
double fwidthXErr
Definition: BeamFitter.h:191
double fwidthX
Definition: BeamFitter.h:189
std::vector< std::string > trk_Algorithm_
Definition: BeamFitter.h:117
edm::InputTag vertexLabel_
Definition: BeamFitter.h:105
void setTree(TTree *tree)
Definition: PVFitter.cc:188
int fendLumiOfFit
Definition: BeamFitter.h:174
double fwidthY
Definition: BeamFitter.h:190
bool isMuon_
Definition: BeamFitter.h:125
char fendTimeOfFit[32]
Definition: BeamFitter.h:176
double fdxdz
Definition: BeamFitter.h:181
double fx
Definition: BeamFitter.h:177
double fnormchi2
Definition: BeamFitter.h:141
bool ffilename_changed
Definition: BeamFitter.h:127
bool debug_
Definition: BeamFitter.h:102
int fnTOBLayerMeas
Definition: BeamFitter.h:153
double feta
Definition: BeamFitter.h:139
std::vector< std::string > trk_Quality_
Definition: BeamFitter.h:118
double convergence_
Definition: BeamFitter.h:122
double trk_MaxNormChi2_
Definition: BeamFitter.h:116
double fsigmaZErr
Definition: BeamFitter.h:186
TH1F * h1vz_event
Definition: BeamFitter.h:195
double fvy
Definition: BeamFitter.h:161
int fnPixelLayerMeas
Definition: BeamFitter.h:149
double fphi0
Definition: BeamFitter.h:142
std::ofstream fasciiDIP
Definition: BeamFitter.h:100
PVFitter * MyPVFitter
Definition: BeamFitter.h:199
std::vector< BSTrkParameters > fBSvector
Definition: BeamFitter.h:94
int fnTotLayerMeas
Definition: BeamFitter.h:148
std::string outputTxt_
Definition: BeamFitter.h:108
double fpvx
Definition: BeamFitter.h:167
double fdxdzErr
Definition: BeamFitter.h:187
double trk_MaxIP_
Definition: BeamFitter.h:113
TFile * file_
Definition: BeamFitter.h:135
TTree * ftree_
Definition: BeamFitter.h:136
double fyErr
Definition: BeamFitter.h:184
bool falgo
Definition: BeamFitter.h:165
int ftotal_tracks
Definition: BeamFitter.h:123
int min_Ntrks_
Definition: BeamFitter.h:124
edm::InputTag tracksLabel_
Definition: BeamFitter.h:104
TH1F * h1cutFlow
Definition: BeamFitter.h:196
double fdydz
Definition: BeamFitter.h:182
TTree * fPVTree_
Definition: BeamFitter.h:200
std::vector< reco::TrackBase::TrackAlgorithm > algorithm_
Definition: BeamFitter.h:120
TH1F * h1ntrks
Definition: BeamFitter.h:194
char fbeginTimeOfFit[32]
Definition: BeamFitter.h:175
double fpvz
Definition: BeamFitter.h:167
double fz0
Definition: BeamFitter.h:146
int j
Definition: DBlmapReader.cc:9
double ftheta
Definition: BeamFitter.h:137
double fd0
Definition: BeamFitter.h:143
bool fquality
Definition: BeamFitter.h:164
double fy
Definition: BeamFitter.h:178
int fnStripLayerMeas
Definition: BeamFitter.h:150
double fwidthYErr
Definition: BeamFitter.h:192
double fxErr
Definition: BeamFitter.h:183
bool appendRunTxt_
Definition: BeamFitter.h:103
int fnTIDLayerMeas
Definition: BeamFitter.h:152
bool saveNtuple_
Definition: BeamFitter.h:131
double fsigmaZ
Definition: BeamFitter.h:180
int fbeginLumiOfFit
Definition: BeamFitter.h:173
std::string outputfilename_
Definition: BeamFitter.h:134
bool writeTxt_
Definition: BeamFitter.h:106
double fsigmad0
Definition: BeamFitter.h:145
std::string outputDIPTxt_
Definition: BeamFitter.h:109
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:46
bool fpvValid
Definition: BeamFitter.h:166
double fdydzErr
Definition: BeamFitter.h:188
double inputBeamWidth_
Definition: BeamFitter.h:121
bool savePVVertices_
Definition: BeamFitter.h:133
void resetAll()
Definition: PVFitter.h:61
bool writeDIPTxt_
Definition: BeamFitter.h:107
double fvx
Definition: BeamFitter.h:160
double fpt
Definition: BeamFitter.h:138
double fcov[7][7]
Definition: BeamFitter.h:159
std::vector< reco::TrackBase::TrackQuality > quality_
Definition: BeamFitter.h:119
double fsigmaz0
Definition: BeamFitter.h:147
int trk_MinNPixLayers_
Definition: BeamFitter.h:115
int fnTIBLayerMeas
Definition: BeamFitter.h:151
TTree * ftreeFit_
Definition: BeamFitter.h:171
static TrackAlgorithm algoByName(const std::string &name)
Definition: TrackBase.cc:55
void resetCutFlow()
Definition: BeamFitter.h:64
double fd0bs
Definition: BeamFitter.h:144
double trk_MinpT_
Definition: BeamFitter.h:110
double fzErr
Definition: BeamFitter.h:185
int fnPXBLayerMeas
Definition: BeamFitter.h:155
double fpvy
Definition: BeamFitter.h:167
bool saveBeamFit_
Definition: BeamFitter.h:132
double fz
Definition: BeamFitter.h:179
bool fitted_
Definition: BeamFitter.h:126
int fnPXFLayerMeas
Definition: BeamFitter.h:156
int fnTECLayerMeas
Definition: BeamFitter.h:154
int trk_MinNTotLayers_
Definition: BeamFitter.h:114
void resetRefTime()
Definition: BeamFitter.h:51
BeamFitter::~BeamFitter ( )
virtual

Definition at line 183 of file BeamFitter.cc.

References file_, fitted_, fPVTree_, ftree_, ftreeFit_, h1cutFlow, h1ntrks, h1vz_event, h1z, MyPVFitter, saveBeamFit_, saveNtuple_, and savePVVertices_.

183  {
184 
185  if (saveNtuple_) {
186  file_->cd();
187  if (fitted_ && h1z) h1z->Write();
188  h1ntrks->Write();
189  h1vz_event->Write();
190  if (h1cutFlow) h1cutFlow->Write();
191  ftree_->Write();
192  }
193  if (saveBeamFit_){
194  file_->cd();
195  ftreeFit_->Write();
196  }
197  if (savePVVertices_){
198  file_->cd();
199  fPVTree_->Write();
200  }
201 
202 
204  file_->Close();
205  delete file_;
206  }
207  delete MyPVFitter;
208 }
TH1F * h1z
Definition: BeamFitter.h:130
TH1F * h1vz_event
Definition: BeamFitter.h:195
PVFitter * MyPVFitter
Definition: BeamFitter.h:199
TFile * file_
Definition: BeamFitter.h:135
TTree * ftree_
Definition: BeamFitter.h:136
TH1F * h1cutFlow
Definition: BeamFitter.h:196
TTree * fPVTree_
Definition: BeamFitter.h:200
TH1F * h1ntrks
Definition: BeamFitter.h:194
bool saveNtuple_
Definition: BeamFitter.h:131
bool savePVVertices_
Definition: BeamFitter.h:133
TTree * ftreeFit_
Definition: BeamFitter.h:171
bool saveBeamFit_
Definition: BeamFitter.h:132
bool fitted_
Definition: BeamFitter.h:126

Member Function Documentation

void BeamFitter::dumpBWTxtFile ( std::string &  fileName)

Definition at line 614 of file BeamFitter.cc.

References reco::BeamSpot::BeamWidthX(), reco::BeamSpot::BeamWidthXError(), and fbeamWidthFit.

Referenced by runBeamWidthFitter().

614  {
615  std::ofstream outFile;
616  outFile.open(fileName.c_str(),std::ios::app);
617  outFile<<"-------------------------------------------------------------------------------------------------------------------------------------------------------------"<<std::endl;
618  outFile<<"Beam width(in cm) from Log-likelihood fit (Here we assume a symmetric beam(SigmaX=SigmaY)!)"<<std::endl;
619  outFile<<" "<<std::endl;
620  outFile << "BeamWidth = " <<fbeamWidthFit.BeamWidthX() <<" +/- "<<fbeamWidthFit.BeamWidthXError() << std::endl;
621  outFile.close();
622 }
reco::BeamSpot fbeamWidthFit
Definition: BeamFitter.h:96
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:77
double BeamWidthXError() const
error on beam width X, assume error in X = Y
Definition: BeamSpot.h:94
void BeamFitter::dumpTxtFile ( std::string &  fileName,
bool  append 
)

Definition at line 624 of file BeamFitter.cc.

References appendRunTxt_, reco::BeamSpot::BeamWidthX(), reco::BeamSpot::BeamWidthY(), reco::BeamSpot::betaStar(), reco::BeamSpot::covariance(), reco::BeamSpot::dxdz(), reco::BeamSpot::dydz(), reco::BeamSpot::emittanceX(), reco::BeamSpot::emittanceY(), fbeamspot, fbeginLumiOfFit, fbeginTimeOfFit, fbspotPVMap, fendLumiOfFit, fendTimeOfFit, ffilename_changed, freftime, frun, i, getHLTprescales::index, PVFitter::IsFitPerBunchCrossing(), j, MyPVFitter, outputTxt_, reco::BeamSpot::sigmaZ(), reco::BeamSpot::type(), reco::BeamSpot::x0(), reco::BeamSpot::y0(), and reco::BeamSpot::z0().

Referenced by runFitter(), and runPVandTrkFitter().

624  {
625  std::ofstream outFile;
626 
627  std::string tmpname = outputTxt_;
628  char index[15];
629  if (appendRunTxt_ && !ffilename_changed ) {
630  sprintf(index,"%s%i","_Run", frun );
631  tmpname.insert(outputTxt_.length()-4,index);
632  fileName = tmpname;
633  ffilename_changed = true;
634  }
635 
636  if (!append)
637  outFile.open(fileName.c_str());
638  else
639  outFile.open(fileName.c_str(),std::ios::app);
640 
642 
643  for (std::map<int,reco::BeamSpot>::const_iterator abspot = fbspotPVMap.begin(); abspot!= fbspotPVMap.end(); ++abspot) {
644  reco::BeamSpot beamspottmp = abspot->second;
645  int bx = abspot->first;
646 
647  outFile << "Runnumber " << frun << " bx " << bx << std::endl;
648  outFile << "BeginTimeOfFit " << fbeginTimeOfFit << " " << freftime[0] << std::endl;
649  outFile << "EndTimeOfFit " << fendTimeOfFit << " " << freftime[1] << std::endl;
650  outFile << "LumiRange " << fbeginLumiOfFit << " - " << fendLumiOfFit << std::endl;
651  outFile << "Type " << beamspottmp.type() << std::endl;
652  outFile << "X0 " << beamspottmp.x0() << std::endl;
653  outFile << "Y0 " << beamspottmp.y0() << std::endl;
654  outFile << "Z0 " << beamspottmp.z0() << std::endl;
655  outFile << "sigmaZ0 " << beamspottmp.sigmaZ() << std::endl;
656  outFile << "dxdz " << beamspottmp.dxdz() << std::endl;
657  outFile << "dydz " << beamspottmp.dydz() << std::endl;
658  outFile << "BeamWidthX " << beamspottmp.BeamWidthX() << std::endl;
659  outFile << "BeamWidthY " << beamspottmp.BeamWidthY() << std::endl;
660  for (int i = 0; i<6; ++i) {
661  outFile << "Cov("<<i<<",j) ";
662  for (int j=0; j<7; ++j) {
663  outFile << beamspottmp.covariance(i,j) << " ";
664  }
665  outFile << std::endl;
666  }
667  outFile << "Cov(6,j) 0 0 0 0 0 0 " << beamspottmp.covariance(6,6) << std::endl;
668  //}
669  outFile << "EmittanceX " << beamspottmp.emittanceX() << std::endl;
670  outFile << "EmittanceY " << beamspottmp.emittanceY() << std::endl;
671  outFile << "BetaStar " << beamspottmp.betaStar() << std::endl;
672 
673  }
674  }
675  else {
676  outFile << "Runnumber " << frun << std::endl;
677  outFile << "BeginTimeOfFit " << fbeginTimeOfFit << " " << freftime[0] << std::endl;
678  outFile << "EndTimeOfFit " << fendTimeOfFit << " " << freftime[1] << std::endl;
679  outFile << "LumiRange " << fbeginLumiOfFit << " - " << fendLumiOfFit << std::endl;
680  outFile << "Type " << fbeamspot.type() << std::endl;
681  outFile << "X0 " << fbeamspot.x0() << std::endl;
682  outFile << "Y0 " << fbeamspot.y0() << std::endl;
683  outFile << "Z0 " << fbeamspot.z0() << std::endl;
684  outFile << "sigmaZ0 " << fbeamspot.sigmaZ() << std::endl;
685  outFile << "dxdz " << fbeamspot.dxdz() << std::endl;
686  outFile << "dydz " << fbeamspot.dydz() << std::endl;
687  // if (inputBeamWidth_ > 0 ) {
688  // outFile << "BeamWidthX " << inputBeamWidth_ << std::endl;
689  // outFile << "BeamWidthY " << inputBeamWidth_ << std::endl;
690  // } else {
691  outFile << "BeamWidthX " << fbeamspot.BeamWidthX() << std::endl;
692  outFile << "BeamWidthY " << fbeamspot.BeamWidthY() << std::endl;
693  // }
694 
695  for (int i = 0; i<6; ++i) {
696  outFile << "Cov("<<i<<",j) ";
697  for (int j=0; j<7; ++j) {
698  outFile << fbeamspot.covariance(i,j) << " ";
699  }
700  outFile << std::endl;
701  }
702 
703  // beam width error
704  //if (inputBeamWidth_ > 0 ) {
705  // outFile << "Cov(6,j) 0 0 0 0 0 0 " << "1e-4" << std::endl;
706  //} else {
707  outFile << "Cov(6,j) 0 0 0 0 0 0 " << fbeamspot.covariance(6,6) << std::endl;
708  //}
709  outFile << "EmittanceX " << fbeamspot.emittanceX() << std::endl;
710  outFile << "EmittanceY " << fbeamspot.emittanceY() << std::endl;
711  outFile << "BetaStar " << fbeamspot.betaStar() << std::endl;
712  }
713  outFile.close();
714 }
reco::BeamSpot fbeamspot
Definition: BeamFitter.h:95
double z0() const
z coordinate
Definition: BeamSpot.h:69
int i
Definition: DBlmapReader.cc:9
int fendLumiOfFit
Definition: BeamFitter.h:174
char fendTimeOfFit[32]
Definition: BeamFitter.h:176
bool ffilename_changed
Definition: BeamFitter.h:127
double emittanceX() const
additional information
Definition: BeamSpot.h:127
std::time_t freftime[2]
Definition: BeamFitter.h:168
PVFitter * MyPVFitter
Definition: BeamFitter.h:199
double betaStar() const
Definition: BeamSpot.h:129
double dydz() const
dydz slope
Definition: BeamSpot.h:75
std::string outputTxt_
Definition: BeamFitter.h:108
double emittanceY() const
Definition: BeamSpot.h:128
char fbeginTimeOfFit[32]
Definition: BeamFitter.h:175
int j
Definition: DBlmapReader.cc:9
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:77
bool appendRunTxt_
Definition: BeamFitter.h:103
double dxdz() const
dxdz slope
Definition: BeamSpot.h:73
int fbeginLumiOfFit
Definition: BeamFitter.h:173
double sigmaZ() const
sigma z
Definition: BeamSpot.h:71
double BeamWidthY() const
beam width Y
Definition: BeamSpot.h:79
std::map< int, reco::BeamSpot > fbspotPVMap
Definition: BeamFitter.h:97
double covariance(int i, int j) const
(i,j)-th element of error matrix
Definition: BeamSpot.h:103
double y0() const
y coordinate
Definition: BeamSpot.h:67
bool IsFitPerBunchCrossing()
Definition: PVFitter.h:74
BeamType type() const
return beam type
Definition: BeamSpot.h:120
double x0() const
x coordinate
Definition: BeamSpot.h:65
const char * BeamFitter::formatBTime ( const std::time_t &  t)
private

class: BeamFitter.cc package: RecoVertex/BeamSpotProducer

author: Francisco Yumiceva, Fermilab (yumic.nosp@m.eva@.nosp@m.fnal..nosp@m.gov) Geng-Yuan Jeng, UC Riverside (Geng-.nosp@m.Yuan.nosp@m..Jeng.nosp@m.@cer.nosp@m.n.ch)

version

Id:
BeamFitter.cc,v 1.72 2010/11/03 13:44:17 friis Exp

Definition at line 34 of file BeamFitter.cc.

References plotBeamSpotDB::ptm.

Referenced by runFitterNoTxt(), and runPVandTrkFitter().

34  {
35  struct std::tm * ptm;
36  ptm = gmtime(&t);
37  static char ts[] = "yyyy.mn.dd hh:mm:ss zzz ";
38  strftime(ts,sizeof(ts),"%Y.%m.%d %H:%M:%S %Z",ptm);
39  return ts;
40 }
reco::BeamSpot BeamFitter::getBeamSpot ( )
inline
std::map<int, reco::BeamSpot> BeamFitter::getBeamSpotMap ( )
inline

Definition at line 61 of file BeamFitter.h.

References fbspotPVMap.

Referenced by BeamMonitorBx::FitAndFill().

61 { return fbspotPVMap; }
std::map< int, reco::BeamSpot > fbspotPVMap
Definition: BeamFitter.h:97
reco::BeamSpot BeamFitter::getBeamWidth ( )
inline

Definition at line 46 of file BeamFitter.h.

References fbeamWidthFit.

Referenced by BeamSpotAnalyzer::endJob().

46 { return fbeamWidthFit; }
reco::BeamSpot fbeamWidthFit
Definition: BeamFitter.h:96
std::vector<BSTrkParameters> BeamFitter::getBSvector ( )
inline

Definition at line 62 of file BeamFitter.h.

References fBSvector.

Referenced by AlcaBeamSpotProducer::endLuminosityBlock(), BeamSpotAnalyzer::endLuminosityBlock(), and BeamMonitor::FitAndFill().

62 { return fBSvector; }
std::vector< BSTrkParameters > fBSvector
Definition: BeamFitter.h:94
TH1F* BeamFitter::getCutFlow ( )
inline

Definition at line 63 of file BeamFitter.h.

References h1cutFlow.

Referenced by BeamMonitor::analyze().

63 { return h1cutFlow; }
TH1F * h1cutFlow
Definition: BeamFitter.h:196
int* BeamFitter::getFitLSRange ( )
inline

Definition at line 70 of file BeamFitter.h.

References fbeginLumiOfFit, fendLumiOfFit, and tmp.

Referenced by BeamSpotAnalyzer::endJob(), AlcaBeamSpotProducer::endLuminosityBlock(), BeamSpotAnalyzer::endLuminosityBlock(), BeamMonitor::FitAndFill(), and BeamMonitorBx::FitAndFill().

70  {
71  int *tmp=new int[2];
72  tmp[0] = fbeginLumiOfFit;
73  tmp[1] = fendLumiOfFit;
74  return tmp;
75  }
int fendLumiOfFit
Definition: BeamFitter.h:174
int fbeginLumiOfFit
Definition: BeamFitter.h:173
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
int BeamFitter::getNPVs ( )
inline

Definition at line 85 of file BeamFitter.h.

References PVFitter::getNPVs(), and MyPVFitter.

Referenced by BeamSpotAnalyzer::endLuminosityBlock().

85  {
86  return MyPVFitter->getNPVs();
87  }
PVFitter * MyPVFitter
Definition: BeamFitter.h:199
int getNPVs()
Definition: PVFitter.h:87
const std::map<int, int>& BeamFitter::getNPVsperBX ( )
inline

Definition at line 88 of file BeamFitter.h.

References PVFitter::getNPVsperBX(), and MyPVFitter.

Referenced by BeamMonitorBx::FitAndFill().

88  {
89  return MyPVFitter->getNPVsperBX();
90  }
const std::map< int, int > & getNPVsperBX()
Definition: PVFitter.h:89
PVFitter * MyPVFitter
Definition: BeamFitter.h:199
int BeamFitter::getNTracks ( )
inline

Definition at line 82 of file BeamFitter.h.

References fBSvector.

Referenced by BeamSpotAnalyzer::endLuminosityBlock().

82  {
83  return fBSvector.size();
84  }
std::vector< BSTrkParameters > fBSvector
Definition: BeamFitter.h:94
void BeamFitter::readEvent ( const edm::Event iEvent)

Definition at line 211 of file BeamFitter.cc.

References abs, algorithm_, countPass, debug_, falgo, fbeginLumiOfFit, fBSvector, fcharge, fcov, fd0, fd0bs, fendLumiOfFit, feta, spr::find(), flumi, fnormchi2, fnPixelLayerMeas, fnPXBLayerMeas, fnPXFLayerMeas, fnStripLayerMeas, fnTECLayerMeas, fnTIBLayerMeas, fnTIDLayerMeas, fnTOBLayerMeas, fnTotLayerMeas, fphi0, fpt, fpvValid, fpvx, fpvy, fpvz, fquality, freftime, frun, frunFit, fsigmad0, fsigmaz0, ftheta, ftotal_tracks, ftree_, fvx, fvy, fz0, edm::Event::getByLabel(), h1cutFlow, h1ntrks, h1vz_event, i, edm::EventBase::id(), isMuon_, j, edm::EventBase::luminosityBlock(), MyPVFitter, reco::HitPattern::pixelBarrelLayersWithMeasurement(), reco::HitPattern::pixelEndcapLayersWithMeasurement(), reco::HitPattern::pixelLayersWithMeasurement(), reco::BeamSpot::position(), edm::Handle< T >::product(), quality_, PVFitter::readEvent(), edm::EventID::run(), saveNtuple_, BSTrkParameters::setVx(), BSTrkParameters::setVy(), edm::View< T >::size(), reco::HitPattern::stripLayersWithMeasurement(), reco::HitPattern::stripTECLayersWithMeasurement(), reco::HitPattern::stripTIBLayersWithMeasurement(), reco::HitPattern::stripTIDLayersWithMeasurement(), reco::HitPattern::stripTOBLayersWithMeasurement(), edm::EventBase::time(), ExpressReco_HICollisions_FallBack::track, reco::HitPattern::trackerLayersWithMeasurement(), testEve_cfg::tracks, tracksLabel_, trk_MaxEta_, trk_MaxIP_, trk_MaxNormChi2_, trk_MaxZ_, trk_MinNPixLayers_, trk_MinNTotLayers_, trk_MinpT_, edm::Timestamp::value(), and vertexLabel_.

Referenced by BeamSpotAnalyzer::analyze(), AlcaBeamMonitor::analyze(), BeamMonitor::analyze(), BeamMonitorBx::analyze(), and AlcaBeamSpotProducer::produce().

212 {
213 
214 
215  frun = iEvent.id().run();
216  const edm::TimeValue_t ftimestamp = iEvent.time().value();
217  const std::time_t ftmptime = ftimestamp >> 32;
218 
219  if (fbeginLumiOfFit == -1) freftime[0] = freftime[1] = ftmptime;
220  if (freftime[0] == 0 || ftmptime < freftime[0]) freftime[0] = ftmptime;
221  if (freftime[1] == 0 || ftmptime > freftime[1]) freftime[1] = ftmptime;
222  flumi = iEvent.luminosityBlock();
223  frunFit = frun;
226 
228  iEvent.getByLabel(tracksLabel_, TrackCollection);
229 
230  //------ Primary Vertices
232  bool hasPVs = false;
234  if ( iEvent.getByLabel(vertexLabel_, PVCollection ) ) {
235  pv = *PVCollection;
236  hasPVs = true;
237  }
238  //------
239 
240  //------ Beam Spot in current event
241  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
242  const reco::BeamSpot *refBS = 0;
243  if ( iEvent.getByLabel("offlineBeamSpot",recoBeamSpotHandle) )
244  refBS = recoBeamSpotHandle.product();
245  //-------
246 
247  const reco::TrackCollection *tracks = TrackCollection.product();
248 
249  double eventZ = 0;
250  double averageZ = 0;
251 
252  for ( reco::TrackCollection::const_iterator track = tracks->begin();
253  track != tracks->end();
254  ++track ) {
255 
256  if ( ! isMuon_) {
257 
258  const reco::HitPattern& trkHP = track->hitPattern();
259 
269  } else {
270 
271  fnTotLayerMeas = track->numberOfValidHits();
272 
273  }
274 
275  fpt = track->pt();
276  feta = track->eta();
277  fphi0 = track->phi();
278  fcharge = track->charge();
279  fnormchi2 = track->normalizedChi2();
280  fd0 = track->d0();
281  if (refBS) fd0bs = -1*track->dxy(refBS->position());
282  else fd0bs = 0.;
283 
284  fsigmad0 = track->d0Error();
285  fz0 = track->dz();
286  fsigmaz0 = track->dzError();
287  ftheta = track->theta();
288  fvx = track->vx();
289  fvy = track->vy();
290 
291  for (int i=0; i<5; ++i) {
292  for (int j=0; j<5; ++j) {
293  fcov[i][j] = track->covariance(i,j);
294  }
295  }
296 
297  fquality = true;
298  falgo = true;
299 
300  if (! isMuon_ ) {
301  if (quality_.size()!=0) {
302  fquality = false;
303  for (unsigned int i = 0; i<quality_.size();++i) {
304  if(debug_) edm::LogInfo("BeamFitter") << "quality_[" << i << "] = " << track->qualityName(quality_[i]) << std::endl;
305  if (track->quality(quality_[i])) {
306  fquality = true;
307  break;
308  }
309  }
310  }
311 
312 
313  // Track algorithm
314 
315  if (algorithm_.size()!=0) {
316  if (std::find(algorithm_.begin(),algorithm_.end(),track->algo())==algorithm_.end())
317  falgo = false;
318  }
319 
320  }
321 
322  // check if we have a valid PV
323  fpvValid = false;
324 
325  if ( hasPVs ) {
326 
327  for ( size_t ipv=0; ipv != pv.size(); ++ipv ) {
328 
329  if (! pv[ipv].isFake() ) fpvValid = true;
330 
331  if ( ipv==0 && !pv[0].isFake() ) { fpvx = pv[0].x(); fpvy = pv[0].y(); fpvz = pv[0].z(); } // fix this later
332 
333 
334  }
335 
336  }
337 
338 
339  if (saveNtuple_) ftree_->Fill();
340  ftotal_tracks++;
341 
343  // Track selection
344  if (fnTotLayerMeas >= trk_MinNTotLayers_) { countPass[1] += 1;
346  if (fnormchi2 < trk_MaxNormChi2_) { countPass[3] += 1;
347  if (falgo) {countPass[4] += 1;
348  if (fquality) { countPass[5] += 1;
349  if (std::abs( fd0 ) < trk_MaxIP_) { countPass[6] += 1;
350  if (std::abs( fz0 ) < trk_MaxZ_){ countPass[7] += 1;
351  if (fpt > trk_MinpT_) {
352  countPass[8] += 1;
353  if (std::abs( feta ) < trk_MaxEta_
354  //&& fpvValid
355  ) {
356  if (debug_) {
357  edm::LogInfo("BeamFitter") << "Selected track quality = " << track->qualityMask()
358  << "; track algorithm = " << track->algoName() << "= TrackAlgorithm: " << track->algo() << std::endl;
359  }
361  BSTrk.setVx(fvx);
362  BSTrk.setVy(fvy);
363  fBSvector.push_back(BSTrk);
364  averageZ += fz0;
365  }
366  }
367  }
368  }
369  }
370  }
371  }
372  }
373  }// track selection
374 
375  }// tracks
376 
377  averageZ = averageZ/(float)(fBSvector.size());
378 
379  for( std::vector<BSTrkParameters>::const_iterator iparam = fBSvector.begin(); iparam != fBSvector.end(); ++iparam) {
380 
381  eventZ += fabs( iparam->z0() - averageZ );
382 
383  }
384 
385  h1ntrks->Fill( fBSvector.size() );
386  h1vz_event->Fill( eventZ/(float)(fBSvector.size() ) ) ;
387  for (unsigned int i=0; i < sizeof(countPass)/sizeof(countPass[0]); i++)
388  h1cutFlow->SetBinContent(i+1,countPass[i]);
389 
390  MyPVFitter->readEvent(iEvent);
391 
392 }
RunNumber_t run() const
Definition: EventID.h:42
int stripTOBLayersWithMeasurement() const
Definition: HitPattern.cc:913
double trk_MaxZ_
Definition: BeamFitter.h:111
double trk_MaxEta_
Definition: BeamFitter.h:112
int i
Definition: DBlmapReader.cc:9
edm::InputTag vertexLabel_
Definition: BeamFitter.h:105
int fendLumiOfFit
Definition: BeamFitter.h:174
int countPass[9]
Definition: BeamFitter.h:197
bool isMuon_
Definition: BeamFitter.h:125
int stripTIBLayersWithMeasurement() const
Definition: HitPattern.cc:895
double fnormchi2
Definition: BeamFitter.h:141
bool debug_
Definition: BeamFitter.h:102
int fnTOBLayerMeas
Definition: BeamFitter.h:153
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:10
double feta
Definition: BeamFitter.h:139
#define abs(x)
Definition: mlp_lapack.h:159
double trk_MaxNormChi2_
Definition: BeamFitter.h:116
edm::LuminosityBlockNumber_t luminosityBlock() const
Definition: EventBase.h:59
TH1F * h1vz_event
Definition: BeamFitter.h:195
double fvy
Definition: BeamFitter.h:161
int pixelLayersWithMeasurement() const
Definition: HitPattern.cc:865
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
int fnPixelLayerMeas
Definition: BeamFitter.h:149
int trackerLayersWithMeasurement() const
Definition: HitPattern.cc:860
int pixelEndcapLayersWithMeasurement() const
Definition: HitPattern.cc:886
double fphi0
Definition: BeamFitter.h:142
std::time_t freftime[2]
Definition: BeamFitter.h:168
PVFitter * MyPVFitter
Definition: BeamFitter.h:199
std::vector< BSTrkParameters > fBSvector
Definition: BeamFitter.h:94
int fnTotLayerMeas
Definition: BeamFitter.h:148
double fpvx
Definition: BeamFitter.h:167
double trk_MaxIP_
Definition: BeamFitter.h:113
void readEvent(const edm::Event &iEvent)
Definition: PVFitter.cc:83
TTree * ftree_
Definition: BeamFitter.h:136
bool falgo
Definition: BeamFitter.h:165
int ftotal_tracks
Definition: BeamFitter.h:123
edm::InputTag tracksLabel_
Definition: BeamFitter.h:104
int stripTIDLayersWithMeasurement() const
Definition: HitPattern.cc:904
TH1F * h1cutFlow
Definition: BeamFitter.h:196
std::vector< reco::TrackBase::TrackAlgorithm > algorithm_
Definition: BeamFitter.h:120
TH1F * h1ntrks
Definition: BeamFitter.h:194
double fpvz
Definition: BeamFitter.h:167
double fz0
Definition: BeamFitter.h:146
int j
Definition: DBlmapReader.cc:9
double ftheta
Definition: BeamFitter.h:137
double fd0
Definition: BeamFitter.h:143
bool fquality
Definition: BeamFitter.h:164
int fnStripLayerMeas
Definition: BeamFitter.h:150
unsigned long long TimeValue_t
Definition: Timestamp.h:27
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:359
int fnTIDLayerMeas
Definition: BeamFitter.h:152
bool saveNtuple_
Definition: BeamFitter.h:131
int fbeginLumiOfFit
Definition: BeamFitter.h:173
double fsigmad0
Definition: BeamFitter.h:145
TimeValue_t value() const
Definition: Timestamp.cc:72
bool fpvValid
Definition: BeamFitter.h:166
tuple tracks
Definition: testEve_cfg.py:39
int pixelBarrelLayersWithMeasurement() const
Definition: HitPattern.cc:877
size_type size() const
double fvx
Definition: BeamFitter.h:160
T const * product() const
Definition: Handle.h:74
double fpt
Definition: BeamFitter.h:138
int stripLayersWithMeasurement() const
Definition: HitPattern.cc:870
edm::EventID id() const
Definition: EventBase.h:56
double fcov[7][7]
Definition: BeamFitter.h:159
std::vector< reco::TrackBase::TrackQuality > quality_
Definition: BeamFitter.h:119
double fsigmaz0
Definition: BeamFitter.h:147
int trk_MinNPixLayers_
Definition: BeamFitter.h:115
int fnTIBLayerMeas
Definition: BeamFitter.h:151
int stripTECLayersWithMeasurement() const
Definition: HitPattern.cc:922
double fd0bs
Definition: BeamFitter.h:144
const Point & position() const
position
Definition: BeamSpot.h:63
double trk_MinpT_
Definition: BeamFitter.h:110
int fnPXBLayerMeas
Definition: BeamFitter.h:155
edm::Timestamp time() const
Definition: EventBase.h:57
double fpvy
Definition: BeamFitter.h:167
int fnPXFLayerMeas
Definition: BeamFitter.h:156
int fnTECLayerMeas
Definition: BeamFitter.h:154
int trk_MinNTotLayers_
Definition: BeamFitter.h:114
void BeamFitter::resetCutFlow ( )
inline
void BeamFitter::resetLSRange ( )
inline
void BeamFitter::resetPVFitter ( )
inline
void BeamFitter::resetRefTime ( )
inline
void BeamFitter::resetTotTrk ( )
inline

Definition at line 49 of file BeamFitter.h.

References ftotal_tracks.

49 { ftotal_tracks=0; }
int ftotal_tracks
Definition: BeamFitter.h:123
void BeamFitter::resetTrkVector ( )
inline
void BeamFitter::runAllFitter ( )

Definition at line 756 of file BeamFitter.cc.

References gather_cfg::cout, debug_, fbeamspot, fBSvector, BSFitter::Fit(), BSFitter::Fit_d0phi(), BSFitter::Fit_ited0phi(), BSFitter::Setd0Cut_d0phi(), BSFitter::SetFitType(), and BSFitter::SetFitVariable().

Referenced by BeamSpotAnalyzer::endJob().

756  {
757  if(fBSvector.size()!=0){
758  BSFitter *myalgo = new BSFitter( fBSvector );
759  fbeamspot = myalgo->Fit_d0phi();
760 
761  // iterative
762  if(debug_)
763  std::cout << " d0-phi Iterative:" << std::endl;
764  BSFitter *myitealgo = new BSFitter( fBSvector );
765  myitealgo->Setd0Cut_d0phi(4.0);
766  reco::BeamSpot beam_ite = myitealgo->Fit_ited0phi();
767  if (debug_){
768  std::cout << beam_ite << std::endl;
769  std::cout << "\n Now run tests of the different fits\n";
770  }
771  // from here are just tests
772  std::string fit_type = "chi2";
773  myalgo->SetFitVariable(std::string("z"));
774  myalgo->SetFitType(std::string("chi2"));
775  reco::BeamSpot beam_fit_z_chi2 = myalgo->Fit();
776  if (debug_){
777  std::cout << " z Chi2 Fit ONLY:" << std::endl;
778  std::cout << beam_fit_z_chi2 << std::endl;
779  }
780 
781  fit_type = "combined";
782  myalgo->SetFitVariable("z");
783  myalgo->SetFitType("combined");
784  reco::BeamSpot beam_fit_z_lh = myalgo->Fit();
785  if (debug_){
786  std::cout << " z Log-Likelihood Fit ONLY:" << std::endl;
787  std::cout << beam_fit_z_lh << std::endl;
788  }
789 
790  myalgo->SetFitVariable("d");
791  myalgo->SetFitType("d0phi");
792  reco::BeamSpot beam_fit_dphi = myalgo->Fit();
793  if (debug_){
794  std::cout << " d0-phi0 Fit ONLY:" << std::endl;
795  std::cout << beam_fit_dphi << std::endl;
796  }
797  /*
798  myalgo->SetFitVariable(std::string("d*z"));
799  myalgo->SetFitType(std::string("likelihood"));
800  reco::BeamSpot beam_fit_dz_lh = myalgo->Fit();
801  if (debug_){
802  std::cout << " Log-Likelihood Fit:" << std::endl;
803  std::cout << beam_fit_dz_lh << std::endl;
804  }
805 
806  myalgo->SetFitVariable(std::string("d*z"));
807  myalgo->SetFitType(std::string("resolution"));
808  reco::BeamSpot beam_fit_dresz_lh = myalgo->Fit();
809  if(debug_){
810  std::cout << " IP Resolution Fit" << std::endl;
811  std::cout << beam_fit_dresz_lh << std::endl;
812 
813  std::cout << "c0 = " << myalgo->GetResPar0() << " +- " << myalgo->GetResPar0Err() << std::endl;
814  std::cout << "c1 = " << myalgo->GetResPar1() << " +- " << myalgo->GetResPar1Err() << std::endl;
815  }
816  */
817  }
818  else
819  if (debug_) std::cout << "No good track selected! No beam fit!" << std::endl;
820 }
reco::BeamSpot fbeamspot
Definition: BeamFitter.h:95
reco::BeamSpot Fit()
Definition: BSFitter.cc:100
bool debug_
Definition: BeamFitter.h:102
std::vector< BSTrkParameters > fBSvector
Definition: BeamFitter.h:94
reco::BeamSpot Fit_ited0phi()
Definition: BSFitter.cc:391
void SetFitVariable(std::string name)
Definition: BSFitter.h:46
void Setd0Cut_d0phi(double d0cut)
Definition: BSFitter.cc:623
tuple cout
Definition: gather_cfg.py:41
reco::BeamSpot Fit_d0phi()
Definition: BSFitter.cc:447
void SetFitType(std::string type)
Definition: BSFitter.h:42
bool BeamFitter::runBeamWidthFitter ( )

Definition at line 579 of file BeamFitter.cc.

References convergence_, dumpBWTxtFile(), reco::BeamSpot::Fake, fbeamspot, fbeamWidthFit, fBSvector, BSFitter::Fit(), ftotal_tracks, inputBeamWidth_, min_Ntrks_, outputTxt_, BSFitter::SetConvergence(), BSFitter::SetFitType(), BSFitter::SetFitVariable(), BSFitter::SetInputBeamWidth(), BSFitter::SetMaximumZ(), BSFitter::SetMinimumNTrks(), reco::BeamSpot::setType(), trk_MaxZ_, reco::BeamSpot::type(), and writeTxt_.

Referenced by BeamSpotAnalyzer::endJob().

579  {
580  bool widthfit_ok = false;
581  // default fit to extract beam spot info
582  if(fBSvector.size() > 1 ){
583 
584  edm::LogInfo("BeamFitter") << "Calculating beam spot positions('d0-phi0' method) and width using llh Fit"<< std::endl
585  << "We will use " << fBSvector.size() << " good tracks out of " << ftotal_tracks << std::endl;
586 
587  BSFitter *myalgo = new BSFitter( fBSvector );
588  myalgo->SetMaximumZ( trk_MaxZ_ );
589  myalgo->SetConvergence( convergence_ );
590  myalgo->SetMinimumNTrks(min_Ntrks_);
592 
593 
594  myalgo->SetFitVariable(std::string("d*z"));
595  myalgo->SetFitType(std::string("likelihood"));
596  fbeamWidthFit = myalgo->Fit();
597 
598  //Add to .txt file
600 
601  delete myalgo;
602 
603  // not fake
604  if ( fbeamspot.type() != 0 )
605  widthfit_ok = true;
606  }
607  else{
609  edm::LogWarning("BeamFitter") << "Not enough good tracks selected! No beam fit!" << std::endl;
610  }
611  return widthfit_ok;
612 }
double trk_MaxZ_
Definition: BeamFitter.h:111
reco::BeamSpot fbeamspot
Definition: BeamFitter.h:95
reco::BeamSpot Fit()
Definition: BSFitter.cc:100
void SetMaximumZ(double z)
Definition: BSFitter.h:62
double convergence_
Definition: BeamFitter.h:122
void dumpBWTxtFile(std::string &)
Definition: BeamFitter.cc:614
void SetInputBeamWidth(double val)
Definition: BSFitter.h:67
void setType(BeamType type)
set beam type
Definition: BeamSpot.h:122
reco::BeamSpot fbeamWidthFit
Definition: BeamFitter.h:96
std::vector< BSTrkParameters > fBSvector
Definition: BeamFitter.h:94
std::string outputTxt_
Definition: BeamFitter.h:108
int ftotal_tracks
Definition: BeamFitter.h:123
int min_Ntrks_
Definition: BeamFitter.h:124
bool writeTxt_
Definition: BeamFitter.h:106
double inputBeamWidth_
Definition: BeamFitter.h:121
void SetFitVariable(std::string name)
Definition: BSFitter.h:46
void SetMinimumNTrks(int n)
Definition: BSFitter.h:64
void SetConvergence(double val)
Definition: BSFitter.h:63
BeamType type() const
return beam type
Definition: BeamSpot.h:120
void SetFitType(std::string type)
Definition: BSFitter.h:42
bool BeamFitter::runFitter ( )

Definition at line 569 of file BeamFitter.cc.

References dumpTxtFile(), outputDIPTxt_, outputTxt_, runFitterNoTxt(), writeDIPTxt_, and writeTxt_.

569  {
570 
571  bool fit_ok = runFitterNoTxt();
572 
573  if(writeTxt_ ) dumpTxtFile(outputTxt_,true); // all reaults
574  if(writeDIPTxt_) dumpTxtFile(outputDIPTxt_,false); // for DQM/DIP
575 
576  return fit_ok;
577 }
std::string outputTxt_
Definition: BeamFitter.h:108
bool runFitterNoTxt()
Definition: BeamFitter.cc:496
bool writeTxt_
Definition: BeamFitter.h:106
std::string outputDIPTxt_
Definition: BeamFitter.h:109
void dumpTxtFile(std::string &, bool)
Definition: BeamFitter.cc:624
bool writeDIPTxt_
Definition: BeamFitter.h:107
bool BeamFitter::runFitterNoTxt ( )

Definition at line 496 of file BeamFitter.cc.

References reco::BeamSpot::BeamWidthX(), reco::BeamSpot::BeamWidthXError(), reco::BeamSpot::BeamWidthY(), reco::BeamSpot::BeamWidthYError(), convergence_, reco::BeamSpot::dxdz(), reco::BeamSpot::dxdzError(), reco::BeamSpot::dydz(), reco::BeamSpot::dydzError(), reco::BeamSpot::Fake, fbeamspot, fbeginLumiOfFit, fbeginTimeOfFit, fBSvector, fdxdz, fdxdzErr, fdydz, fdydzErr, fendLumiOfFit, fendTimeOfFit, BSFitter::Fit(), fitted_, formatBTime(), freftime, fsigmaZ, fsigmaZErr, ftotal_tracks, ftreeFit_, fwidthX, fwidthXErr, fwidthY, fwidthYErr, fx, fxErr, fy, fyErr, fz, fzErr, BSFitter::GetVzHisto(), h1z, inputBeamWidth_, min_Ntrks_, saveBeamFit_, BSFitter::SetConvergence(), BSFitter::SetInputBeamWidth(), BSFitter::SetMaximumZ(), BSFitter::SetMinimumNTrks(), reco::BeamSpot::setType(), reco::BeamSpot::sigmaZ(), reco::BeamSpot::sigmaZ0Error(), trk_MaxZ_, reco::BeamSpot::type(), reco::BeamSpot::x0(), reco::BeamSpot::x0Error(), reco::BeamSpot::y0(), reco::BeamSpot::y0Error(), reco::BeamSpot::z0(), and reco::BeamSpot::z0Error().

Referenced by runFitter(), and runPVandTrkFitter().

496  {
497  const char* fbeginTime = formatBTime(freftime[0]);
498  sprintf(fbeginTimeOfFit,"%s",fbeginTime);
499  const char* fendTime = formatBTime(freftime[1]);
500  sprintf(fendTimeOfFit,"%s",fendTime);
501 
502  edm::LogInfo("BeamFitter") << " [BeamFitterDebugTime] freftime[0] = " << freftime[0]
503  << "; address = " << &freftime[0]
504  << " = " << fbeginTimeOfFit << std::endl;
505  edm::LogInfo("BeamFitter") << " [BeamFitterDebugTime] freftime[1] = " << freftime[1]
506  << "; address = " << &freftime[1]
507  << " = " << fendTimeOfFit << std::endl;
508 
509  if (fbeginLumiOfFit == -1 || fendLumiOfFit == -1) {
510  edm::LogWarning("BeamFitter") << "No event read! No Fitting!" << std::endl;
511  return false;
512  }
513 
514  bool fit_ok = false;
515  // default fit to extract beam spot info
516  if(fBSvector.size() > 1 ){
517 
518  edm::LogInfo("BeamFitter") << "Calculating beam spot..." << std::endl
519  << "We will use " << fBSvector.size() << " good tracks out of " << ftotal_tracks << std::endl;
520 
521  BSFitter *myalgo = new BSFitter( fBSvector );
522  myalgo->SetMaximumZ( trk_MaxZ_ );
523  myalgo->SetConvergence( convergence_ );
524  myalgo->SetMinimumNTrks( min_Ntrks_ );
526 
527  fbeamspot = myalgo->Fit();
528 
529 
530  // retrieve histogram for Vz
531  h1z = (TH1F*) myalgo->GetVzHisto();
532 
533  delete myalgo;
534  if ( fbeamspot.type() != 0 ) {// save all results except for Fake (all 0.)
535  fit_ok = true;
536  if (saveBeamFit_){
537  fx = fbeamspot.x0();
538  fy = fbeamspot.y0();
539  fz = fbeamspot.z0();
541  fdxdz = fbeamspot.dxdz();
542  fdydz = fbeamspot.dydz();
545  fxErr = fbeamspot.x0Error();
546  fyErr = fbeamspot.y0Error();
547  fzErr = fbeamspot.z0Error();
553  ftreeFit_->Fill();
554  }
555  }
556  }
557  else{ // tracks <= 1
558  reco::BeamSpot tmpbs;
559  fbeamspot = tmpbs;
561  edm::LogInfo("BeamFitter") << "Not enough good tracks selected! No beam fit!" << std::endl;
562 
563  }
564  fitted_ = true;
565  return fit_ok;
566 
567 }
double trk_MaxZ_
Definition: BeamFitter.h:111
reco::BeamSpot fbeamspot
Definition: BeamFitter.h:95
double z0() const
z coordinate
Definition: BeamSpot.h:69
double fwidthXErr
Definition: BeamFitter.h:191
double fwidthX
Definition: BeamFitter.h:189
double sigmaZ0Error() const
error on sigma z
Definition: BeamSpot.h:87
int fendLumiOfFit
Definition: BeamFitter.h:174
double fwidthY
Definition: BeamFitter.h:190
reco::BeamSpot Fit()
Definition: BSFitter.cc:100
char fendTimeOfFit[32]
Definition: BeamFitter.h:176
double dydzError() const
error on dydz
Definition: BeamSpot.h:91
double fdxdz
Definition: BeamFitter.h:181
double fx
Definition: BeamFitter.h:177
TH1F * h1z
Definition: BeamFitter.h:130
void SetMaximumZ(double z)
Definition: BSFitter.h:62
double convergence_
Definition: BeamFitter.h:122
double fsigmaZErr
Definition: BeamFitter.h:186
const char * formatBTime(const std::time_t &)
Definition: BeamFitter.cc:34
void SetInputBeamWidth(double val)
Definition: BSFitter.h:67
void setType(BeamType type)
set beam type
Definition: BeamSpot.h:122
std::time_t freftime[2]
Definition: BeamFitter.h:168
std::vector< BSTrkParameters > fBSvector
Definition: BeamFitter.h:94
double dydz() const
dydz slope
Definition: BeamSpot.h:75
double fdxdzErr
Definition: BeamFitter.h:187
double dxdzError() const
error on dxdz
Definition: BeamSpot.h:89
double fyErr
Definition: BeamFitter.h:184
int ftotal_tracks
Definition: BeamFitter.h:123
int min_Ntrks_
Definition: BeamFitter.h:124
double fdydz
Definition: BeamFitter.h:182
char fbeginTimeOfFit[32]
Definition: BeamFitter.h:175
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:77
double fy
Definition: BeamFitter.h:178
double BeamWidthYError() const
error on beam width Y, assume error in X = Y
Definition: BeamSpot.h:96
double BeamWidthXError() const
error on beam width X, assume error in X = Y
Definition: BeamSpot.h:94
double z0Error() const
error on z
Definition: BeamSpot.h:85
double fwidthYErr
Definition: BeamFitter.h:192
double fxErr
Definition: BeamFitter.h:183
double dxdz() const
dxdz slope
Definition: BeamSpot.h:73
double x0Error() const
error on x
Definition: BeamSpot.h:81
double y0Error() const
error on y
Definition: BeamSpot.h:83
double fsigmaZ
Definition: BeamFitter.h:180
int fbeginLumiOfFit
Definition: BeamFitter.h:173
double fdydzErr
Definition: BeamFitter.h:188
double inputBeamWidth_
Definition: BeamFitter.h:121
double sigmaZ() const
sigma z
Definition: BeamSpot.h:71
double BeamWidthY() const
beam width Y
Definition: BeamSpot.h:79
void SetMinimumNTrks(int n)
Definition: BSFitter.h:64
TH1F * GetVzHisto()
Definition: BSFitter.h:106
TTree * ftreeFit_
Definition: BeamFitter.h:171
double y0() const
y coordinate
Definition: BeamSpot.h:67
void SetConvergence(double val)
Definition: BSFitter.h:63
double fzErr
Definition: BeamFitter.h:185
bool saveBeamFit_
Definition: BeamFitter.h:132
double fz
Definition: BeamFitter.h:179
bool fitted_
Definition: BeamFitter.h:126
BeamType type() const
return beam type
Definition: BeamSpot.h:120
double x0() const
x coordinate
Definition: BeamSpot.h:65
bool BeamFitter::runPVandTrkFitter ( )

Definition at line 394 of file BeamFitter.cc.

References reco::BeamSpot::BeamWidthX(), reco::BeamSpot::BeamWidthY(), reco::BeamSpot::covariance(), dumpTxtFile(), reco::BeamSpot::dxdz(), reco::BeamSpot::dydz(), reco::BeamSpot::Fake, fbeamspot, fbeginTimeOfFit, fbspotPVMap, fendTimeOfFit, formatBTime(), freftime, PVFitter::getBeamSpot(), PVFitter::getBeamSpotMap(), PVFitter::getWidthXerr(), inputBeamWidth_, PVFitter::IsFitPerBunchCrossing(), j, gen::k, MyPVFitter, outputDIPTxt_, outputTxt_, funct::pow(), PVFitter::runBXFitter(), PVFitter::runFitter(), runFitterNoTxt(), reco::BeamSpot::setBeamWidthY(), reco::BeamSpot::setType(), reco::BeamSpot::sigmaZ(), mathSSE::sqrt(), reco::BeamSpot::type(), reco::BeamSpot::Unknown, writeDIPTxt_, writeTxt_, reco::BeamSpot::x0(), reco::BeamSpot::y0(), and reco::BeamSpot::z0().

Referenced by BeamSpotAnalyzer::endJob(), AlcaBeamSpotProducer::endLuminosityBlock(), BeamSpotAnalyzer::endLuminosityBlock(), AlcaBeamMonitor::endLuminosityBlock(), BeamMonitor::FitAndFill(), and BeamMonitorBx::FitAndFill().

394  {
395 // run both PV and track fitters
396  bool fit_ok = false;
397  bool pv_fit_ok = false;
398  reco::BeamSpot bspotPV;
399  reco::BeamSpot bspotTrk;
400 
401  // First run PV fitter
403  const char* fbeginTime = formatBTime(freftime[0]);
404  sprintf(fbeginTimeOfFit,"%s",fbeginTime);
405  const char* fendTime = formatBTime(freftime[1]);
406  sprintf(fendTimeOfFit,"%s",fendTime);
407 
408  edm::LogInfo("BeamFitter") << " [BeamFitterBxDebugTime] freftime[0] = " << freftime[0]
409  << "; address = " << &freftime[0]
410  << " = " << fbeginTimeOfFit << std::endl;
411  edm::LogInfo("BeamFitter") << " [BeamFitterBxDebugTime] freftime[1] = " << freftime[1]
412  << "; address = " << &freftime[1]
413  << " = " << fendTimeOfFit << std::endl;
414 
415  if ( MyPVFitter->runBXFitter() ) {
417  pv_fit_ok = true;
418  }
419  if(writeTxt_ ) dumpTxtFile(outputTxt_,true); // all reaults
420  if(writeDIPTxt_) dumpTxtFile(outputDIPTxt_,false); // for DQM/DIP
421  return pv_fit_ok;
422  }
423 
424  if ( MyPVFitter->runFitter() ) {
425 
426  bspotPV = MyPVFitter->getBeamSpot();
427 
428  // take beam width from PV fit and pass it to track fitter
429  // assume circular transverse beam width
430  inputBeamWidth_ = sqrt( pow(bspotPV.BeamWidthX(),2) + pow(bspotPV.BeamWidthY(),2) )/sqrt(2);
431  pv_fit_ok = true;
432 
433  } else {
434  // problems with PV fit
436  bspotTrk.setType(reco::BeamSpot::Unknown); //propagate error to trk beam spot
437  }
438 
439  if ( runFitterNoTxt() ) {
440 
441  bspotTrk = fbeamspot;
442  fit_ok = true;
443  } else {
444  // beamfit failed, flagged as empty beam spot
445  bspotTrk.setType(reco::BeamSpot::Fake);
446  fit_ok = false;
447  }
448 
449  // combined results into one single beam spot
450 
451  // to pass errors I have to create another beam spot object
453  for (int j = 0 ; j < 7 ; ++j) {
454  for(int k = j ; k < 7 ; ++k) {
455  matrix(j,k) = bspotTrk.covariance(j,k);
456  }
457  }
458  // change beam width error to one from PV
459  if (pv_fit_ok && fit_ok ) {
460  matrix(6,6) = MyPVFitter->getWidthXerr() * MyPVFitter->getWidthXerr();
461 
462  // get Z and sigmaZ from PV fit
463  matrix(2,2) = bspotPV.covariance(2,2);
464  matrix(3,3) = bspotPV.covariance(3,3);
465  reco::BeamSpot tmpbs(reco::BeamSpot::Point(bspotTrk.x0(), bspotTrk.y0(),
466  bspotPV.z0() ),
467  bspotPV.sigmaZ() ,
468  bspotTrk.dxdz(),
469  bspotTrk.dydz(),
470  bspotPV.BeamWidthX(),
471  matrix,
472  bspotPV.type() );
473  tmpbs.setBeamWidthY( bspotPV.BeamWidthY() );
474  // overwrite beam spot result
475  fbeamspot = tmpbs;
476  }
477  if (pv_fit_ok && fit_ok) {
478  fbeamspot.setType(bspotPV.type());
479  }
480  else if(!pv_fit_ok && fit_ok){
482  }
483  else if(pv_fit_ok && !fit_ok){
485  }
486  else if(!pv_fit_ok && !fit_ok){
488  }
489 
490  if(writeTxt_ ) dumpTxtFile(outputTxt_,true); // all reaults
491  if(writeDIPTxt_) dumpTxtFile(outputDIPTxt_,false); // for DQM/DIP
492 
493  return fit_ok && pv_fit_ok;
494 }
math::Error< dimension >::type CovarianceMatrix
Definition: BeamSpot.h:32
reco::BeamSpot fbeamspot
Definition: BeamFitter.h:95
double z0() const
z coordinate
Definition: BeamSpot.h:69
char fendTimeOfFit[32]
Definition: BeamFitter.h:176
std::map< int, reco::BeamSpot > getBeamSpotMap()
Definition: PVFitter.h:73
math::XYZPoint Point
point in the space
Definition: BeamSpot.h:30
const char * formatBTime(const std::time_t &)
Definition: BeamFitter.cc:34
void setType(BeamType type)
set beam type
Definition: BeamSpot.h:122
std::time_t freftime[2]
Definition: BeamFitter.h:168
PVFitter * MyPVFitter
Definition: BeamFitter.h:199
double dydz() const
dydz slope
Definition: BeamSpot.h:75
std::string outputTxt_
Definition: BeamFitter.h:108
void setBeamWidthY(double v)
Definition: BeamSpot.h:100
bool runFitterNoTxt()
Definition: BeamFitter.cc:496
T sqrt(T t)
Definition: SSEVec.h:28
char fbeginTimeOfFit[32]
Definition: BeamFitter.h:175
int j
Definition: DBlmapReader.cc:9
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:77
double dxdz() const
dxdz slope
Definition: BeamSpot.h:73
int k[5][pyjets_maxn]
bool writeTxt_
Definition: BeamFitter.h:106
std::string outputDIPTxt_
Definition: BeamFitter.h:109
void dumpTxtFile(std::string &, bool)
Definition: BeamFitter.cc:624
double inputBeamWidth_
Definition: BeamFitter.h:121
bool runFitter()
Definition: PVFitter.cc:327
double sigmaZ() const
sigma z
Definition: BeamSpot.h:71
double BeamWidthY() const
beam width Y
Definition: BeamSpot.h:79
bool writeDIPTxt_
Definition: BeamFitter.h:107
bool runBXFitter()
Definition: PVFitter.cc:193
std::map< int, reco::BeamSpot > fbspotPVMap
Definition: BeamFitter.h:97
double covariance(int i, int j) const
(i,j)-th element of error matrix
Definition: BeamSpot.h:103
double y0() const
y coordinate
Definition: BeamSpot.h:67
reco::BeamSpot getBeamSpot()
Definition: PVFitter.h:72
bool IsFitPerBunchCrossing()
Definition: PVFitter.h:74
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
double getWidthXerr()
Definition: PVFitter.h:51
BeamType type() const
return beam type
Definition: BeamSpot.h:120
double x0() const
x coordinate
Definition: BeamSpot.h:65
void BeamFitter::setFitLSRange ( int  ls0,
int  ls1 
)
inline

Definition at line 76 of file BeamFitter.h.

References fbeginLumiOfFit, and fendLumiOfFit.

Referenced by AlcaBeamSpotProducer::endLuminosityBlock(), BeamSpotAnalyzer::endLuminosityBlock(), and BeamMonitor::FitAndFill().

76  {
77  fbeginLumiOfFit = ls0;
78  fendLumiOfFit = ls1;
79  }
int fendLumiOfFit
Definition: BeamFitter.h:174
int fbeginLumiOfFit
Definition: BeamFitter.h:173
void BeamFitter::setRefTime ( std::time_t  t0,
std::time_t  t1 
)
inline

Definition at line 52 of file BeamFitter.h.

References freftime.

Referenced by AlcaBeamSpotProducer::endLuminosityBlock(), BeamSpotAnalyzer::endLuminosityBlock(), and BeamMonitor::FitAndFill().

52  {
53  freftime[0] = t0;
54  freftime[1] = t1;
55  }
std::time_t freftime[2]
Definition: BeamFitter.h:168
void BeamFitter::setRun ( int  run)
inline

Definition at line 80 of file BeamFitter.h.

References frun, and CrabTask::run.

Referenced by AlcaBeamSpotProducer::endLuminosityBlock(), and BeamSpotAnalyzer::endLuminosityBlock().

80 { frun = run; }
void BeamFitter::write2DB ( )

Definition at line 716 of file BeamFitter.cc.

References cond::service::PoolDBOutputService::appendSinceTime(), reco::BeamSpot::BeamWidthX(), reco::BeamSpot::BeamWidthY(), cond::service::PoolDBOutputService::beginOfTime(), gather_cfg::cout, reco::BeamSpot::covariance(), cond::service::PoolDBOutputService::createNewIOV(), cond::service::PoolDBOutputService::currentTime(), reco::BeamSpot::dxdz(), reco::BeamSpot::dydz(), cond::service::PoolDBOutputService::endOfTime(), fbeamspot, i, edm::Service< T >::isAvailable(), cond::service::PoolDBOutputService::isNewTagRequest(), j, reco::BeamSpot::position(), BeamSpotObjects::SetBeamWidthX(), BeamSpotObjects::SetBeamWidthY(), BeamSpotObjects::SetCovariance(), BeamSpotObjects::Setdxdz(), BeamSpotObjects::Setdydz(), BeamSpotObjects::SetPosition(), BeamSpotObjects::SetSigmaZ(), and reco::BeamSpot::sigmaZ().

Referenced by BeamSpotAnalyzer::endJob().

716  {
717  BeamSpotObjects *pBSObjects = new BeamSpotObjects();
718 
719  pBSObjects->SetPosition(fbeamspot.position().X(),fbeamspot.position().Y(),fbeamspot.position().Z());
720  //std::cout << " wrote: x= " << fbeamspot.position().X() << " y= "<< fbeamspot.position().Y() << " z= " << fbeamspot.position().Z() << std::endl;
721  pBSObjects->SetSigmaZ(fbeamspot.sigmaZ());
722  pBSObjects->Setdxdz(fbeamspot.dxdz());
723  pBSObjects->Setdydz(fbeamspot.dydz());
724  //if (inputBeamWidth_ > 0 ) {
725  // std::cout << " beam width value forced to be " << inputBeamWidth_ << std::endl;
726  // pBSObjects->SetBeamWidthX(inputBeamWidth_);
727  // pBSObjects->SetBeamWidthY(inputBeamWidth_);
728  //} else {
729  // need to fix this
730  //std::cout << " using default value, 15e-4, for beam width!!!"<<std::endl;
731  pBSObjects->SetBeamWidthX(fbeamspot.BeamWidthX() );
732  pBSObjects->SetBeamWidthY(fbeamspot.BeamWidthY() );
733  //}
734 
735  for (int i = 0; i<7; ++i) {
736  for (int j=0; j<7; ++j) {
737  pBSObjects->SetCovariance(i,j,fbeamspot.covariance(i,j));
738  }
739  }
741  if( poolDbService.isAvailable() ) {
742  std::cout << "poolDBService available"<<std::endl;
743  if ( poolDbService->isNewTagRequest( "BeamSpotObjectsRcd" ) ) {
744  std::cout << "new tag requested" << std::endl;
745  poolDbService->createNewIOV<BeamSpotObjects>( pBSObjects, poolDbService->beginOfTime(),poolDbService->endOfTime(),
746  "BeamSpotObjectsRcd" );
747  }
748  else {
749  std::cout << "no new tag requested" << std::endl;
750  poolDbService->appendSinceTime<BeamSpotObjects>( pBSObjects, poolDbService->currentTime(),
751  "BeamSpotObjectsRcd" );
752  }
753  }
754 }
reco::BeamSpot fbeamspot
Definition: BeamFitter.h:95
int i
Definition: DBlmapReader.cc:9
void SetSigmaZ(double val)
set sigma Z, RMS bunch length
void SetCovariance(int i, int j, double val)
set i,j element of the full covariance matrix 7x7
void Setdydz(double val)
set dydz slope, crossing angle in XZ
double dydz() const
dydz slope
Definition: BeamSpot.h:75
void appendSinceTime(T *payloadObj, cond::Time_t sinceTime, const std::string &recordName, bool withlogging=false)
bool isNewTagRequest(const std::string &recordName)
bool isAvailable() const
Definition: Service.h:47
int j
Definition: DBlmapReader.cc:9
double BeamWidthX() const
beam width X
Definition: BeamSpot.h:77
void Setdxdz(double val)
set dxdz slope, crossing angle
void createNewIOV(T *firstPayloadObj, cond::Time_t firstSinceTime, cond::Time_t firstTillTime, const std::string &recordName, bool withlogging=false)
double dxdz() const
dxdz slope
Definition: BeamSpot.h:73
double sigmaZ() const
sigma z
Definition: BeamSpot.h:71
double BeamWidthY() const
beam width Y
Definition: BeamSpot.h:79
void SetBeamWidthX(double val)
set average transverse beam width X
void SetBeamWidthY(double val)
set average transverse beam width Y
double covariance(int i, int j) const
(i,j)-th element of error matrix
Definition: BeamSpot.h:103
tuple cout
Definition: gather_cfg.py:41
const Point & position() const
position
Definition: BeamSpot.h:63
void SetPosition(double x, double y, double z)
set XYZ position

Member Data Documentation

std::vector<reco::TrackBase::TrackAlgorithm> BeamFitter::algorithm_
private

Definition at line 120 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

bool BeamFitter::appendRunTxt_
private

Definition at line 103 of file BeamFitter.h.

Referenced by BeamFitter(), and dumpTxtFile().

double BeamFitter::convergence_
private

Definition at line 122 of file BeamFitter.h.

Referenced by BeamFitter(), runBeamWidthFitter(), and runFitterNoTxt().

int BeamFitter::countPass[9]
private

Definition at line 197 of file BeamFitter.h.

Referenced by readEvent(), and resetCutFlow().

bool BeamFitter::debug_
private

Definition at line 102 of file BeamFitter.h.

Referenced by BeamFitter(), readEvent(), and runAllFitter().

bool BeamFitter::falgo
private

Definition at line 165 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

std::ofstream BeamFitter::fasciiDIP
private

Definition at line 100 of file BeamFitter.h.

Referenced by BeamFitter().

std::ofstream BeamFitter::fasciiFile
private

Definition at line 99 of file BeamFitter.h.

reco::BeamSpot BeamFitter::fbeamspot
private
reco::BeamSpot BeamFitter::fbeamWidthFit
private

Definition at line 96 of file BeamFitter.h.

Referenced by dumpBWTxtFile(), getBeamWidth(), and runBeamWidthFitter().

int BeamFitter::fbeginLumiOfFit
private
char BeamFitter::fbeginTimeOfFit[32]
private

Definition at line 175 of file BeamFitter.h.

Referenced by BeamFitter(), dumpTxtFile(), runFitterNoTxt(), and runPVandTrkFitter().

std::map< int, reco::BeamSpot> BeamFitter::fbspotPVMap
private

Definition at line 97 of file BeamFitter.h.

Referenced by dumpTxtFile(), getBeamSpotMap(), and runPVandTrkFitter().

std::vector<BSTrkParameters> BeamFitter::fBSvector
private
int BeamFitter::fcharge
private

Definition at line 140 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fcov[7][7]
private

Definition at line 159 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fd0
private

Definition at line 143 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fd0bs
private

Definition at line 144 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fd0phi_chi2
private

Definition at line 157 of file BeamFitter.h.

double BeamFitter::fd0phi_d0
private

Definition at line 158 of file BeamFitter.h.

double BeamFitter::fdxdz
private

Definition at line 181 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

double BeamFitter::fdxdzErr
private

Definition at line 187 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

double BeamFitter::fdydz
private

Definition at line 182 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

double BeamFitter::fdydzErr
private

Definition at line 188 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

int BeamFitter::fendLumiOfFit
private
char BeamFitter::fendTimeOfFit[32]
private

Definition at line 176 of file BeamFitter.h.

Referenced by BeamFitter(), dumpTxtFile(), runFitterNoTxt(), and runPVandTrkFitter().

double BeamFitter::feta
private

Definition at line 139 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

bool BeamFitter::ffilename_changed
private

Definition at line 127 of file BeamFitter.h.

Referenced by BeamFitter(), and dumpTxtFile().

TFile* BeamFitter::file_
private

Definition at line 135 of file BeamFitter.h.

Referenced by BeamFitter(), and ~BeamFitter().

bool BeamFitter::fitted_
private

Definition at line 126 of file BeamFitter.h.

Referenced by BeamFitter(), runFitterNoTxt(), and ~BeamFitter().

int BeamFitter::flumi
private

Definition at line 163 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

BSFitter* BeamFitter::fmyalgo
private

Definition at line 98 of file BeamFitter.h.

double BeamFitter::fnormchi2
private

Definition at line 141 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

int BeamFitter::fnPixelLayerMeas
private

Definition at line 149 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

int BeamFitter::fnPXBLayerMeas
private

Definition at line 155 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

int BeamFitter::fnPXFLayerMeas
private

Definition at line 156 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

int BeamFitter::fnStripLayerMeas
private

Definition at line 150 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

int BeamFitter::fnTECLayerMeas
private

Definition at line 154 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

int BeamFitter::fnTIBLayerMeas
private

Definition at line 151 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

int BeamFitter::fnTIDLayerMeas
private

Definition at line 152 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

int BeamFitter::fnTOBLayerMeas
private

Definition at line 153 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

int BeamFitter::fnTotLayerMeas
private

Definition at line 148 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fphi0
private

Definition at line 142 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fpt
private

Definition at line 138 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

TTree* BeamFitter::fPVTree_
private

Definition at line 200 of file BeamFitter.h.

Referenced by BeamFitter(), and ~BeamFitter().

bool BeamFitter::fpvValid
private

Definition at line 166 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fpvx
private

Definition at line 167 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fpvy
private

Definition at line 167 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fpvz
private

Definition at line 167 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

bool BeamFitter::fquality
private

Definition at line 164 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

std::time_t BeamFitter::freftime[2]
private
int BeamFitter::frun
private

Definition at line 162 of file BeamFitter.h.

Referenced by BeamFitter(), dumpTxtFile(), readEvent(), and setRun().

int BeamFitter::frunFit
private

Definition at line 172 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fsigmad0
private

Definition at line 145 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fsigmaZ
private

Definition at line 180 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

double BeamFitter::fsigmaz0
private

Definition at line 147 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fsigmaZErr
private

Definition at line 186 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

double BeamFitter::ftheta
private

Definition at line 137 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

int BeamFitter::ftotal_tracks
private
TTree* BeamFitter::ftree_
private

Definition at line 136 of file BeamFitter.h.

Referenced by BeamFitter(), readEvent(), and ~BeamFitter().

TTree* BeamFitter::ftreeFit_
private

Definition at line 171 of file BeamFitter.h.

Referenced by BeamFitter(), runFitterNoTxt(), and ~BeamFitter().

double BeamFitter::fvx
private

Definition at line 160 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fvy
private

Definition at line 161 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fwidthX
private

Definition at line 189 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

double BeamFitter::fwidthXErr
private

Definition at line 191 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

double BeamFitter::fwidthY
private

Definition at line 190 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

double BeamFitter::fwidthYErr
private

Definition at line 192 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

double BeamFitter::fx
private

Definition at line 177 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

double BeamFitter::fxErr
private

Definition at line 183 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

double BeamFitter::fy
private

Definition at line 178 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

double BeamFitter::fyErr
private

Definition at line 184 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

double BeamFitter::fz
private

Definition at line 179 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

double BeamFitter::fz0
private

Definition at line 146 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::fzErr
private

Definition at line 185 of file BeamFitter.h.

Referenced by BeamFitter(), and runFitterNoTxt().

TH1F* BeamFitter::h1cutFlow
private

Definition at line 196 of file BeamFitter.h.

Referenced by BeamFitter(), getCutFlow(), readEvent(), resetCutFlow(), and ~BeamFitter().

TH1F* BeamFitter::h1ntrks
private

Definition at line 194 of file BeamFitter.h.

Referenced by BeamFitter(), readEvent(), and ~BeamFitter().

TH1F* BeamFitter::h1vz_event
private

Definition at line 195 of file BeamFitter.h.

Referenced by BeamFitter(), readEvent(), and ~BeamFitter().

TH1F* BeamFitter::h1z
private

Definition at line 130 of file BeamFitter.h.

Referenced by runFitterNoTxt(), and ~BeamFitter().

double BeamFitter::inputBeamWidth_
private

Definition at line 121 of file BeamFitter.h.

Referenced by BeamFitter(), runBeamWidthFitter(), runFitterNoTxt(), and runPVandTrkFitter().

bool BeamFitter::isMuon_
private

Definition at line 125 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

int BeamFitter::min_Ntrks_
private

Definition at line 124 of file BeamFitter.h.

Referenced by BeamFitter(), runBeamWidthFitter(), and runFitterNoTxt().

PVFitter* BeamFitter::MyPVFitter
private
std::string BeamFitter::outputDIPTxt_
private

Definition at line 109 of file BeamFitter.h.

Referenced by BeamFitter(), runFitter(), and runPVandTrkFitter().

std::string BeamFitter::outputfilename_
private

Definition at line 134 of file BeamFitter.h.

Referenced by BeamFitter().

std::string BeamFitter::outputTxt_
private
std::vector<reco::TrackBase::TrackQuality> BeamFitter::quality_
private

Definition at line 119 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

bool BeamFitter::saveBeamFit_
private

Definition at line 132 of file BeamFitter.h.

Referenced by BeamFitter(), runFitterNoTxt(), and ~BeamFitter().

bool BeamFitter::saveNtuple_
private

Definition at line 131 of file BeamFitter.h.

Referenced by BeamFitter(), readEvent(), and ~BeamFitter().

bool BeamFitter::savePVVertices_
private

Definition at line 133 of file BeamFitter.h.

Referenced by BeamFitter(), and ~BeamFitter().

edm::InputTag BeamFitter::tracksLabel_
private

Definition at line 104 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

std::vector<std::string> BeamFitter::trk_Algorithm_
private

Definition at line 117 of file BeamFitter.h.

Referenced by BeamFitter().

double BeamFitter::trk_MaxEta_
private

Definition at line 112 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::trk_MaxIP_
private

Definition at line 113 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::trk_MaxNormChi2_
private

Definition at line 116 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::trk_MaxZ_
private

Definition at line 111 of file BeamFitter.h.

Referenced by BeamFitter(), readEvent(), runBeamWidthFitter(), and runFitterNoTxt().

int BeamFitter::trk_MinNPixLayers_
private

Definition at line 115 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

int BeamFitter::trk_MinNTotLayers_
private

Definition at line 114 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

double BeamFitter::trk_MinpT_
private

Definition at line 110 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

std::vector<std::string> BeamFitter::trk_Quality_
private

Definition at line 118 of file BeamFitter.h.

Referenced by BeamFitter().

edm::InputTag BeamFitter::vertexLabel_
private

Definition at line 105 of file BeamFitter.h.

Referenced by BeamFitter(), and readEvent().

bool BeamFitter::writeDIPTxt_
private

Definition at line 107 of file BeamFitter.h.

Referenced by BeamFitter(), runFitter(), and runPVandTrkFitter().

bool BeamFitter::writeTxt_
private

Definition at line 106 of file BeamFitter.h.

Referenced by BeamFitter(), runBeamWidthFitter(), runFitter(), and runPVandTrkFitter().