CMS 3D CMS Logo

BeamFitter.h
Go to the documentation of this file.
1 #ifndef BeamFitter_H
2 #define BeamFitter_H
3 
28 
29 // ROOT
30 #include "TFile.h"
31 #include "TTree.h"
32 #include "TH1F.h"
33 
34 #include <fstream>
35 
36 namespace edm {
37  class ConsumesCollector;
38 }
39 
40 class BeamFitter {
41 public:
43  BeamFitter(const edm::ParameterSet &iConfig, edm::ConsumesCollector &&iColl);
44  virtual ~BeamFitter();
45 
46  void readEvent(const edm::Event &iEvent);
47 
48  bool runFitter();
49  bool runBeamWidthFitter();
50  bool runPVandTrkFitter();
51  bool runFitterNoTxt();
52 
54  void runAllFitter();
55  void resetTrkVector() { fBSvector.clear(); }
56  void resetTotTrk() { ftotal_tracks = 0; }
58  void resetRefTime() { freftime[0] = freftime[1] = 0; }
59  void setRefTime(time_t t0, time_t t1) {
60  freftime[0] = t0;
61  freftime[1] = t1;
62  // Make sure the string representation of the time
63  // is up-to-date
64  updateBTime();
65  }
66 
67  std::pair<time_t, time_t> getRefTime() { return std::make_pair(freftime[0], freftime[1]); }
68 
70 
71  //---these are added to fasciliate BeamMonitor stuff for DIP
72  std::size_t getPVvectorSize() { return (MyPVFitter->getpvStore()).size(); }
73  //sc
74  void resizeBSvector(unsigned int nsize) { fBSvector.erase(fBSvector.begin(), fBSvector.begin() + nsize); }
75 
76  //ssc
77  void resizePVvector(unsigned int npvsize) { MyPVFitter->resizepvStore(npvsize); }
78 
79  //ssc
80  void SetPVInfo(const std::vector<float> &v1_) {
81  ForDIPPV_.clear();
82  ForDIPPV_.assign(v1_.begin(), v1_.end());
83  }
84 
85  //----------------
86 
87  void dumpTxtFile(std::string &, bool);
88  void dumpBWTxtFile(std::string &);
89  void write2DB();
91  std::map<int, reco::BeamSpot> getBeamSpotMap() { return fbspotPVMap; }
92  std::vector<BSTrkParameters> getBSvector() { return fBSvector; }
93  TH1F *getCutFlow() { return h1cutFlow; }
94  void subtractFromCutFlow(const TH1F *toSubtract) {
95  h1cutFlow->Add(toSubtract, -1.0);
96  for (unsigned int i = 0; i < sizeof(countPass) / sizeof(countPass[0]); i++) {
97  countPass[i] = h1cutFlow->GetBinContent(i + 1);
98  }
99  }
100 
101  void resetCutFlow() {
102  h1cutFlow->Reset();
103  ftotal_tracks = 0;
104  for (unsigned int i = 0; i < sizeof(countPass) / sizeof(countPass[0]); i++)
105  countPass[i] = 0;
106  }
107 
108  //ssc
109  int getRunNumber() { return frun; }
110 
111  std::pair<int, int> getFitLSRange() { return std::make_pair(fbeginLumiOfFit, fendLumiOfFit); }
112  void setFitLSRange(int ls0, int ls1) {
113  fbeginLumiOfFit = ls0;
114  fendLumiOfFit = ls1;
115  }
116  void setRun(int run) { frun = run; }
117 
118  int getNTracks() { return fBSvector.size(); }
119  int getNPVs() { return MyPVFitter->getNPVs(); }
120  const std::map<int, int> &getNPVsperBX() { return MyPVFitter->getNPVsperBX(); }
121 
122 private:
123  // Update the fbeginTimeOfFit etc from the refTime
124  void updateBTime();
125  std::vector<BSTrkParameters> fBSvector;
128  std::map<int, reco::BeamSpot> fbspotPVMap;
129  // BSFitter *fmyalgo;
130  std::ofstream fasciiFile;
131  std::ofstream fasciiDIP;
132 
133  bool debug_;
138  bool writeTxt_;
143  double trk_MinpT_;
144  double trk_MaxZ_;
145  double trk_MaxEta_;
146  double trk_MaxIP_;
150  std::vector<std::string> trk_Algorithm_;
151  std::vector<std::string> trk_Quality_;
152  std::vector<reco::TrackBase::TrackQuality> quality_;
153  std::vector<reco::TrackBase::TrackAlgorithm> algorithm_;
155  double convergence_;
158  bool isMuon_;
159  bool fitted_;
161 
162  //ssc
163  std::vector<float> ForDIPPV_;
164 
165  // ntuple
166  TH1F *h1z;
171  TFile *file_;
172  TTree *ftree_;
173  double ftheta;
174  double fpt;
175  double feta;
176  int fcharge;
177  double fnormchi2;
178  double fphi0;
179  double fd0;
180  double fd0bs;
181  double fsigmad0;
182  double fz0;
183  double fsigmaz0;
193  // double fd0phi_chi2;
194  // double fd0phi_d0;
195  double fcov[7][7];
196  double fvx;
197  double fvy;
198  int frun;
199  int flumi;
200  bool fquality;
201  bool falgo;
202  bool fpvValid;
203  double fpvx, fpvy, fpvz;
204  std::time_t freftime[2];
205 
206  //beam fit results
207  TTree *ftreeFit_;
208  int frunFit;
211  char fbeginTimeOfFit[32];
212  char fendTimeOfFit[32];
213  double fx;
214  double fy;
215  double fz;
216  double fsigmaZ;
217  double fdxdz;
218  double fdydz;
219  double fxErr;
220  double fyErr;
221  double fzErr;
222  double fsigmaZErr;
223  double fdxdzErr;
224  double fdydzErr;
225  double fwidthX;
226  double fwidthY;
227  double fwidthXErr;
228  double fwidthYErr;
229 
230  TH1F *h1ntrks;
231  TH1F *h1vz_event;
232  TH1F *h1cutFlow;
233  int countPass[9];
234 
236  TTree *fPVTree_;
237 };
238 
239 #endif
PVFitter.h
BeamFitter::beamSpotToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
Definition: BeamFitter.h:137
BeamFitter::fd0bs
double fd0bs
Definition: BeamFitter.h:180
PVFitter::resizepvStore
void resizepvStore(unsigned int rmSize)
Definition: PVFitter.h:109
BeamFitter::frunFit
int frunFit
Definition: BeamFitter.h:208
BeamFitter::getNPVs
int getNPVs()
Definition: BeamFitter.h:119
BeamFitter::runPVandTrkFitter
bool runPVandTrkFitter()
Definition: BeamFitter.cc:412
BeamFitter::fnTotLayerMeas
int fnTotLayerMeas
Definition: BeamFitter.h:184
BeamFitter::resetRefTime
void resetRefTime()
Definition: BeamFitter.h:58
BeamFitter::fwidthY
double fwidthY
Definition: BeamFitter.h:226
BeamFitter::trk_MaxIP_
double trk_MaxIP_
Definition: BeamFitter.h:146
mps_fire.i
i
Definition: mps_fire.py:355
BeamFitter::fasciiFile
std::ofstream fasciiFile
Definition: BeamFitter.h:130
BeamFitter::resetPVFitter
void resetPVFitter()
Definition: BeamFitter.h:69
BeamFitter::getBeamWidth
reco::BeamSpot getBeamWidth()
Definition: BeamFitter.h:53
BeamFitter::resetTrkVector
void resetTrkVector()
Definition: BeamFitter.h:55
BeamFitter::quality_
std::vector< reco::TrackBase::TrackQuality > quality_
Definition: BeamFitter.h:152
BeamFitter::fz0
double fz0
Definition: BeamFitter.h:182
BeamFitter::updateBTime
void updateBTime()
Definition: BeamFitter.cc:29
BeamFitter::fyErr
double fyErr
Definition: BeamFitter.h:220
BeamFitter::trk_MaxEta_
double trk_MaxEta_
Definition: BeamFitter.h:145
TrackCandidateCollection.h
BeamFitter::ftotal_tracks
int ftotal_tracks
Definition: BeamFitter.h:156
BeamFitter::subtractFromCutFlow
void subtractFromCutFlow(const TH1F *toSubtract)
Definition: BeamFitter.h:94
BeamFitter::vertexToken_
edm::EDGetTokenT< edm::View< reco::Vertex > > vertexToken_
Definition: BeamFitter.h:136
edm::EDGetTokenT< reco::TrackCollection >
TrackBase.h
edm
HLT enums.
Definition: AlignableModifier.h:19
PVFitter::resetAll
void resetAll()
Definition: PVFitter.h:80
BeamFitter::fzErr
double fzErr
Definition: BeamFitter.h:221
BeamFitter::feta
double feta
Definition: BeamFitter.h:175
BeamFitter::fsigmaZ
double fsigmaZ
Definition: BeamFitter.h:216
BeamFitter::writeTxt_
bool writeTxt_
Definition: BeamFitter.h:138
BeamFitter::fasciiDIP
std::ofstream fasciiDIP
Definition: BeamFitter.h:131
BeamFitter::saveBeamFit_
bool saveBeamFit_
Definition: BeamFitter.h:168
BeamFitter::fpvx
double fpvx
Definition: BeamFitter.h:203
BeamFitter::readEvent
void readEvent(const edm::Event &iEvent)
Definition: BeamFitter.cc:224
BeamFitter::getRefTime
std::pair< time_t, time_t > getRefTime()
Definition: BeamFitter.h:67
BeamFitter::fBSvector
std::vector< BSTrkParameters > fBSvector
Definition: BeamFitter.h:125
BeamFitter::fpt
double fpt
Definition: BeamFitter.h:174
BeamFitter::frun
int frun
Definition: BeamFitter.h:198
BSTrkParameters.h
BeamFitter::fxErr
double fxErr
Definition: BeamFitter.h:219
BeamFitter::h1vz_event
TH1F * h1vz_event
Definition: BeamFitter.h:231
BeamFitter::min_Ntrks_
int min_Ntrks_
Definition: BeamFitter.h:157
BeamFitter::falgo
bool falgo
Definition: BeamFitter.h:201
BeamFitter::fbeamWidthFit
reco::BeamSpot fbeamWidthFit
Definition: BeamFitter.h:127
BeamFitter::fdydz
double fdydz
Definition: BeamFitter.h:218
BeamFitter::trk_MinNTotLayers_
int trk_MinNTotLayers_
Definition: BeamFitter.h:147
BeamFitter::fphi0
double fphi0
Definition: BeamFitter.h:178
BeamFitter::outputfilename_
std::string outputfilename_
Definition: BeamFitter.h:170
BeamFitter::fbeginLumiOfFit
int fbeginLumiOfFit
Definition: BeamFitter.h:209
BeamFitter::fbeginTimeOfFit
char fbeginTimeOfFit[32]
Definition: BeamFitter.h:211
BeamFitter::flumi
int flumi
Definition: BeamFitter.h:199
BeamFitter::runFitter
bool runFitter()
Definition: BeamFitter.cc:572
BeamFitter::ftree_
TTree * ftree_
Definition: BeamFitter.h:172
PVFitter::getNPVsperBX
const std::map< int, int > & getNPVsperBX()
Definition: PVFitter.h:119
BeamFitter::countPass
int countPass[9]
Definition: BeamFitter.h:233
PVFitter::getpvStore
std::vector< BeamSpotFitPVData > getpvStore()
Definition: PVFitter.h:62
BeamFitter::MyPVFitter
PVFitter * MyPVFitter
Definition: BeamFitter.h:235
BeamFitter::outputTxt_
std::string outputTxt_
Definition: BeamFitter.h:141
RandomServiceHelper.t1
t1
Definition: RandomServiceHelper.py:256
BeamFitter::file_
TFile * file_
Definition: BeamFitter.h:171
Track.h
BeamFitter::dumpBWTxtFile
void dumpBWTxtFile(std::string &)
Definition: BeamFitter.cc:619
TrackFwd.h
BeamSpot.h
BeamFitter::saveNtuple_
bool saveNtuple_
Definition: BeamFitter.h:167
BeamFitter::convergence_
double convergence_
Definition: BeamFitter.h:155
FrontierCondition_GT_autoExpress_cfi.t0
t0
Definition: FrontierCondition_GT_autoExpress_cfi.py:148
BeamFitter::fbeamspot
reco::BeamSpot fbeamspot
Definition: BeamFitter.h:126
BeamFitter::ffilename_changed
bool ffilename_changed
Definition: BeamFitter.h:160
BeamFitter::fd0
double fd0
Definition: BeamFitter.h:179
reco::BeamSpot
Definition: BeamSpot.h:21
BeamFitter::fcharge
int fcharge
Definition: BeamFitter.h:176
BeamFitter::resizeBSvector
void resizeBSvector(unsigned int nsize)
Definition: BeamFitter.h:74
BeamFitter::fquality
bool fquality
Definition: BeamFitter.h:200
BeamFitter::fvy
double fvy
Definition: BeamFitter.h:197
BeamFitter::h1z
TH1F * h1z
Definition: BeamFitter.h:166
BeamFitter::trk_Quality_
std::vector< std::string > trk_Quality_
Definition: BeamFitter.h:151
BeamFitter::savePVVertices_
bool savePVVertices_
Definition: BeamFitter.h:169
BeamFitter::runBeamWidthFitter
bool runBeamWidthFitter()
Definition: BeamFitter.cc:583
BeamFitter::resetTotTrk
void resetTotTrk()
Definition: BeamFitter.h:56
BeamFitter
Definition: BeamFitter.h:40
BeamFitter::fnPXBLayerMeas
int fnPXBLayerMeas
Definition: BeamFitter.h:191
BeamFitter::outputDIPTxt_
std::string outputDIPTxt_
Definition: BeamFitter.h:142
BeamFitter::getBeamSpot
reco::BeamSpot getBeamSpot()
Definition: BeamFitter.h:90
BeamFitter::setRun
void setRun(int run)
Definition: BeamFitter.h:116
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
BeamFitter::setRefTime
void setRefTime(time_t t0, time_t t1)
Definition: BeamFitter.h:59
BeamFitter::getBeamSpotMap
std::map< int, reco::BeamSpot > getBeamSpotMap()
Definition: BeamFitter.h:91
BeamFitter::fx
double fx
Definition: BeamFitter.h:213
BeamFitter::appendRunTxt_
bool appendRunTxt_
Definition: BeamFitter.h:134
BeamFitter::fitted_
bool fitted_
Definition: BeamFitter.h:159
BeamFitter::fnStripLayerMeas
int fnStripLayerMeas
Definition: BeamFitter.h:186
BeamFitter::writeDIPTxt_
bool writeDIPTxt_
Definition: BeamFitter.h:139
BeamFitter::~BeamFitter
virtual ~BeamFitter()
Definition: BeamFitter.cc:197
BeamFitter::h1ntrks
TH1F * h1ntrks
Definition: BeamFitter.h:230
edm::ParameterSet
Definition: ParameterSet.h:36
Timestamp.h
BeamFitter::fdydzErr
double fdydzErr
Definition: BeamFitter.h:224
PVFitter::getNPVs
int getNPVs()
Definition: PVFitter.h:117
Event.h
BeamFitter::fPVTree_
TTree * fPVTree_
Definition: BeamFitter.h:236
BeamFitter::fpvy
double fpvy
Definition: BeamFitter.h:203
BeamFitter::trk_MaxNormChi2_
double trk_MaxNormChi2_
Definition: BeamFitter.h:149
BeamFitter::fsigmaZErr
double fsigmaZErr
Definition: BeamFitter.h:222
BeamFitter::fwidthX
double fwidthX
Definition: BeamFitter.h:225
BeamFitter::fz
double fz
Definition: BeamFitter.h:215
BeamFitter::fdxdz
double fdxdz
Definition: BeamFitter.h:217
BeamFitter::freftime
std::time_t freftime[2]
Definition: BeamFitter.h:204
iEvent
int iEvent
Definition: GenABIO.cc:224
BeamFitter::algorithm_
std::vector< reco::TrackBase::TrackAlgorithm > algorithm_
Definition: BeamFitter.h:153
PVFitter
Definition: PVFitter.h:44
BeamFitter::resetLSRange
void resetLSRange()
Definition: BeamFitter.h:57
BeamFitter::getNTracks
int getNTracks()
Definition: BeamFitter.h:118
BeamFitter::runFitterNoTxt
bool runFitterNoTxt()
Definition: BeamFitter.cc:509
BeamFitter::write2DB
void write2DB()
Definition: BeamFitter.cc:709
BeamFitter::dumpTxtFile
void dumpTxtFile(std::string &, bool)
Definition: BeamFitter.cc:631
BeamFitter::fnTIDLayerMeas
int fnTIDLayerMeas
Definition: BeamFitter.h:188
BeamFitter::resetCutFlow
void resetCutFlow()
Definition: BeamFitter.h:101
BeamFitter::tracksToken_
edm::EDGetTokenT< reco::TrackCollection > tracksToken_
Definition: BeamFitter.h:135
BeamFitter::trk_Algorithm_
std::vector< std::string > trk_Algorithm_
Definition: BeamFitter.h:150
BeamFitter::fsigmad0
double fsigmad0
Definition: BeamFitter.h:181
BeamFitter::fnTIBLayerMeas
int fnTIBLayerMeas
Definition: BeamFitter.h:187
BeamFitter::fnormchi2
double fnormchi2
Definition: BeamFitter.h:177
BeamFitter::fy
double fy
Definition: BeamFitter.h:214
BeamFitter::h1cutFlow
TH1F * h1cutFlow
Definition: BeamFitter.h:232
BeamFitter::debug_
bool debug_
Definition: BeamFitter.h:133
BeamFitter::ftheta
double ftheta
Definition: BeamFitter.h:173
BeamFitter::fpvValid
bool fpvValid
Definition: BeamFitter.h:202
BeamFitter::fnPixelLayerMeas
int fnPixelLayerMeas
Definition: BeamFitter.h:185
BeamFitter::isMuon_
bool isMuon_
Definition: BeamFitter.h:158
BeamFitter::getPVvectorSize
std::size_t getPVvectorSize()
Definition: BeamFitter.h:72
BeamFitter::setFitLSRange
void setFitLSRange(int ls0, int ls1)
Definition: BeamFitter.h:112
BeamFitter::fnTOBLayerMeas
int fnTOBLayerMeas
Definition: BeamFitter.h:189
writedatasetfile.run
run
Definition: writedatasetfile.py:27
BeamFitter::fvx
double fvx
Definition: BeamFitter.h:196
BeamFitter::fcov
double fcov[7][7]
Definition: BeamFitter.h:195
BeamFitter::fsigmaz0
double fsigmaz0
Definition: BeamFitter.h:183
BeamFitter::getCutFlow
TH1F * getCutFlow()
Definition: BeamFitter.h:93
BeamFitter::trk_MaxZ_
double trk_MaxZ_
Definition: BeamFitter.h:144
BeamFitter::SetPVInfo
void SetPVInfo(const std::vector< float > &v1_)
Definition: BeamFitter.h:80
BeamFitter::fendTimeOfFit
char fendTimeOfFit[32]
Definition: BeamFitter.h:212
BeamFitter::getFitLSRange
std::pair< int, int > getFitLSRange()
Definition: BeamFitter.h:111
BeamFitter::resizePVvector
void resizePVvector(unsigned int npvsize)
Definition: BeamFitter.h:77
BeamFitter::trk_MinNPixLayers_
int trk_MinNPixLayers_
Definition: BeamFitter.h:148
BeamFitter::fnPXFLayerMeas
int fnPXFLayerMeas
Definition: BeamFitter.h:192
BeamFitter::getRunNumber
int getRunNumber()
Definition: BeamFitter.h:109
BeamFitter::fnTECLayerMeas
int fnTECLayerMeas
Definition: BeamFitter.h:190
BeamFitter::ForDIPPV_
std::vector< float > ForDIPPV_
Definition: BeamFitter.h:163
BeamFitter::fwidthYErr
double fwidthYErr
Definition: BeamFitter.h:228
BeamFitter::fdxdzErr
double fdxdzErr
Definition: BeamFitter.h:223
ParameterSet.h
BeamFitter::BeamFitter
BeamFitter()
Definition: BeamFitter.h:42
TrackCandidate.h
BeamFitter::trk_MinpT_
double trk_MinpT_
Definition: BeamFitter.h:143
BSFitter.h
BeamFitter::getNPVsperBX
const std::map< int, int > & getNPVsperBX()
Definition: BeamFitter.h:120
BeamFitter::fbspotPVMap
std::map< int, reco::BeamSpot > fbspotPVMap
Definition: BeamFitter.h:128
edm::Event
Definition: Event.h:73
BeamFitter::getBSvector
std::vector< BSTrkParameters > getBSvector()
Definition: BeamFitter.h:92
BeamFitter::fendLumiOfFit
int fendLumiOfFit
Definition: BeamFitter.h:210
BeamFitter::inputBeamWidth_
double inputBeamWidth_
Definition: BeamFitter.h:154
edm::ConsumesCollector
Definition: ConsumesCollector.h:39
BeamFitter::fwidthXErr
double fwidthXErr
Definition: BeamFitter.h:227
BeamFitter::fpvz
double fpvz
Definition: BeamFitter.h:203
BeamFitter::ftreeFit_
TTree * ftreeFit_
Definition: BeamFitter.h:207
BeamFitter::writeDIPBadFit_
bool writeDIPBadFit_
Definition: BeamFitter.h:140
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
BeamFitter::runAllFitter
void runAllFitter()
Definition: BeamFitter.cc:747