![]() |
![]() |
#include <CalibMuon/DTCalibration/plugins/DTVDriftCalibration.h>
Public Member Functions | |
void | analyze (const edm::Event &event, const edm::EventSetup &eventSetup) |
DTVDriftCalibration (const edm::ParameterSet &pset) | |
Constructor. | |
void | endJob () |
virtual | ~DTVDriftCalibration () |
Destructor. | |
Private Types | |
typedef DTTMax::TMax | TMax |
enum | TMaxGranularity { byChamber, bySL, byPartition } |
Private Attributes | |
bool | checkNoisyChannels |
bool | debug |
std::string | digiLabel |
bool | findVDriftAndT0 |
h2DSegm * | h2DSegmRPhi |
h2DSegm * | h2DSegmRZ |
h4DSegm * | h4DSegmAllCh |
std::string | theCalibChamber |
edm::ParameterSet | theCalibFilePar |
TFile * | theFile |
DTMeanTimerFitter * | theFitter |
TMaxGranularity | theGranularity |
double | theMaxChi2 |
double | theMaxPhiAngle |
double | theMaxZAngle |
std::string | theRecHits4DLabel |
DTTTrigBaseSync * | theSync |
std::string | theVDriftOutputFile |
std::map< DTWireId, cellInfo * > | theWireIdAndCellMap |
Classes | |
class | cellInfo |
Definition at line 34 of file DTVDriftCalibration.h.
typedef DTTMax::TMax DTVDriftCalibration::TMax [private] |
Definition at line 53 of file DTVDriftCalibration.h.
enum DTVDriftCalibration::TMaxGranularity [private] |
DTVDriftCalibration::DTVDriftCalibration | ( | const edm::ParameterSet & | pset | ) |
Constructor.
Definition at line 49 of file DTVDriftCalibration.cc.
References bookHistos(), byChamber, byPartition, bySL, checkNoisyChannels, GenMuonPlsPt100GeV_cfg::cout, debug, lat::endl(), findVDriftAndT0, DBSPlugin::get(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), h2DSegmRPhi, h2DSegmRZ, h4DSegmAllCh, hChi2, theCalibChamber, theCalibFilePar, theFile, theFitter, theGranularity, theMaxChi2, theMaxPhiAngle, theMaxZAngle, theRecHits4DLabel, theSync, and theVDriftOutputFile.
00049 { 00050 // the root file which will contain the histos 00051 string rootFileName = pset.getUntrackedParameter<string>("rootFileName"); 00052 theFile = new TFile(rootFileName.c_str(), "RECREATE"); 00053 theFile->cd(); 00054 00055 debug = pset.getUntrackedParameter<bool>("debug", "false"); 00056 00057 theFitter = new DTMeanTimerFitter(theFile); 00058 if(debug) 00059 theFitter->setVerbosity(1); 00060 00061 hChi2 = new TH1F("hChi2","Chi squared tracks",100,0,100); 00062 h2DSegmRPhi = new h2DSegm("SLRPhi"); 00063 h2DSegmRZ = new h2DSegm("SLRZ"); 00064 h4DSegmAllCh = new h4DSegm("AllCh"); 00065 bookHistos(); 00066 00067 findVDriftAndT0 = pset.getUntrackedParameter<bool>("fitAndWrite", "false"); 00068 00069 // Chamber/s to calibrate 00070 theCalibChamber = pset.getUntrackedParameter<string>("calibChamber", "All"); 00071 00072 // the name of the 4D rec hits collection 00073 theRecHits4DLabel = pset.getUntrackedParameter<string>("recHits4DLabel"); 00074 00075 // the txt file which will contain the calibrated constants 00076 theVDriftOutputFile = pset.getUntrackedParameter<string>("vDriftFileName"); 00077 00078 //get the switch to check the noisy channels 00079 checkNoisyChannels = pset.getUntrackedParameter<bool>("checkNoisyChannels","false"); 00080 00081 // Get the synchronizer 00082 theSync = DTTTrigSyncFactory::get()->create(pset.getUntrackedParameter<string>("tTrigMode"), 00083 pset.getUntrackedParameter<ParameterSet>("tTrigModeConfig")); 00084 00085 // get parameter set for DTCalibrationMap constructor 00086 theCalibFilePar = pset.getUntrackedParameter<ParameterSet>("calibFileConfig"); 00087 00088 // get maximum chi2 value 00089 theMaxChi2 = pset.getParameter<double>("maxChi2"); 00090 00091 // Maximum incidence angle for Phi SL 00092 theMaxPhiAngle = pset.getParameter<double>("maxAnglePhi"); 00093 00094 // Maximum incidence angle for Theta SL 00095 theMaxZAngle = pset.getParameter<double>("maxAngleZ"); 00096 00097 // the granularity to be used for tMax 00098 string tMaxGranularity = pset.getUntrackedParameter<string>("tMaxGranularity","bySL"); 00099 00100 // Initialize correctly the enum which specify the granularity for the calibration 00101 if(tMaxGranularity == "bySL") { 00102 theGranularity = bySL; 00103 } else if(tMaxGranularity == "byChamber"){ 00104 theGranularity = byChamber; 00105 } else if(tMaxGranularity== "byPartition") { 00106 theGranularity = byPartition; 00107 } else { 00108 cout << "[DTVDriftCalibration]###Warning: Check parameter tMaxGranularity: " 00109 << tMaxGranularity << " options not available!" << endl; 00110 } 00111 00112 if(debug) 00113 cout << "[DTVDriftCalibration]Constructor called!" << endl; 00114 }
DTVDriftCalibration::~DTVDriftCalibration | ( | ) | [virtual] |
Destructor.
Definition at line 116 of file DTVDriftCalibration.cc.
References GenMuonPlsPt100GeV_cfg::cout, debug, lat::endl(), theFile, and theFitter.
00116 { 00117 theFile->Close(); 00118 delete theFitter; 00119 if(debug) 00120 cout << "[DTVDriftCalibration]Destructor called!" << endl; 00121 }
void DTVDriftCalibration::analyze | ( | const edm::Event & | event, | |
const edm::EventSetup & | eventSetup | |||
) | [virtual] |
Implements edm::EDAnalyzer.
Definition at line 125 of file DTVDriftCalibration.cc.
References DTVDriftCalibration::cellInfo::add(), bySL, checkNoisyChannels, GenMuonPlsPt100GeV_cfg::cout, debug, lat::endl(), h4DSegm::Fill(), h2DSegm::Fill(), edm::EventSetup::get(), DTTMax::getTMax(), h2DSegmRPhi, h2DSegmRZ, h4DSegmAllCh, hChi2, DTRecSegment2D::localDirection(), DTRecSegment2D::localPosition(), name, Geom::pi(), range, DTChamberId::sector(), DTTTrigBaseSync::setES(), sl, DTRecSegment2D::specificRecHits(), DTChamberId::station(), DTSuperLayerId::superLayer(), DTChamber::superLayer(), DTSLRecSegment2D::superLayerId(), DTLayerId::superlayerId(), theCalibChamber, theFile, theGranularity, theMaxChi2, theMaxPhiAngle, theMaxZAngle, theRecHits4DLabel, theSync, PV3DBase< T, PVType, FrameType >::theta(), theWireIdAndCellMap, GeomDet::toGlobal(), GeomDet::toLocal(), DTVDriftCalibration::cellInfo::update(), DTChamberId::wheel(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
00125 { 00126 cout << endl<<"--- [DTVDriftCalibration] Event analysed #Run: " << event.id().run() 00127 << " #Event: " << event.id().event() << endl; 00128 theFile->cd(); 00129 DTChamberId chosenChamberId; 00130 00131 if(theCalibChamber != "All") { 00132 stringstream linestr; 00133 int selWheel, selStation, selSector; 00134 linestr << theCalibChamber; 00135 linestr >> selWheel >> selStation >> selSector; 00136 chosenChamberId = DTChamberId(selWheel, selStation, selSector); 00137 cout << "chosen chamber " << chosenChamberId << endl; 00138 } 00139 00140 // Get the DT Geometry 00141 ESHandle<DTGeometry> dtGeom; 00142 eventSetup.get<MuonGeometryRecord>().get(dtGeom); 00143 00144 // Get the rechit collection from the event 00145 Handle<DTRecSegment4DCollection> all4DSegments; 00146 event.getByLabel(theRecHits4DLabel, all4DSegments); 00147 00148 // Get the map of noisy channels 00149 ESHandle<DTStatusFlag> statusMap; 00150 if(checkNoisyChannels) { 00151 eventSetup.get<DTStatusFlagRcd>().get(statusMap); 00152 } 00153 00154 // Set the event setup in the Synchronizer 00155 theSync->setES(eventSetup); 00156 00157 // Loop over segments by chamber 00158 DTRecSegment4DCollection::id_iterator chamberIdIt; 00159 for (chamberIdIt = all4DSegments->id_begin(); 00160 chamberIdIt != all4DSegments->id_end(); 00161 ++chamberIdIt){ 00162 00163 // Get the chamber from the setup 00164 const DTChamber* chamber = dtGeom->chamber(*chamberIdIt); 00165 if(debug) 00166 cout << "Chamber Id: " << *chamberIdIt << endl; 00167 00168 00169 // Calibrate just the chosen chamber/s 00170 if((theCalibChamber != "All") && ((*chamberIdIt) != chosenChamberId)) 00171 continue; 00172 00173 // Get the range for the corresponding ChamberId 00174 DTRecSegment4DCollection::range range = all4DSegments->get((*chamberIdIt)); 00175 00176 // Loop over the rechits of this DetUnit 00177 for (DTRecSegment4DCollection::const_iterator segment = range.first; 00178 segment!=range.second; ++segment){ 00179 00180 if(debug) { 00181 cout << "Segment local pos (in chamber RF): " << (*segment).localPosition() << endl; 00182 cout << "Segment global pos: " << chamber->toGlobal((*segment).localPosition()) << endl;; 00183 } 00184 00185 //get the segment chi2 00186 double chiSquare = ((*segment).chi2()/(*segment).degreesOfFreedom()); 00187 // cut on the segment chi2 00188 if(chiSquare > theMaxChi2) continue; 00189 00190 // get the Phi 2D segment and plot the angle in the chamber RF 00191 if(!((*segment).phiSegment())){ 00192 cout<<"No phi segment"<<endl; 00193 } 00194 LocalPoint phiSeg2DPosInCham; 00195 LocalVector phiSeg2DDirInCham; 00196 00197 bool segmNoisy = false; 00198 map<DTSuperLayerId,vector<DTRecHit1D> > hitsBySLMap; 00199 00200 if((*segment).hasPhi()){ 00201 const DTChamberRecSegment2D* phiSeg = (*segment).phiSegment(); // phiSeg lives in the chamber RF 00202 phiSeg2DPosInCham = phiSeg->localPosition(); 00203 phiSeg2DDirInCham = phiSeg->localDirection(); 00204 00205 vector<DTRecHit1D> phiHits = phiSeg->specificRecHits(); 00206 for(vector<DTRecHit1D>::const_iterator hit = phiHits.begin(); 00207 hit != phiHits.end(); ++hit) { 00208 DTWireId wireId = (*hit).wireId(); 00209 DTSuperLayerId slId = wireId.superlayerId(); 00210 hitsBySLMap[slId].push_back(*hit); 00211 00212 // Check for noisy channels to skip them 00213 if(checkNoisyChannels) { 00214 bool isNoisy = false; 00215 bool isFEMasked = false; 00216 bool isTDCMasked = false; 00217 bool isTrigMask = false; 00218 bool isDead = false; 00219 bool isNohv = false; 00220 statusMap->cellStatus(wireId, isNoisy, isFEMasked, isTDCMasked, isTrigMask, isDead, isNohv); 00221 if(isNoisy) { 00222 if(debug) 00223 cout << "Wire: " << wireId << " is noisy, skipping!" << endl; 00224 segmNoisy = true; 00225 } 00226 } 00227 } 00228 } 00229 00230 // get the Theta 2D segment and plot the angle in the chamber RF 00231 LocalVector zSeg2DDirInCham; 00232 LocalPoint zSeg2DPosInCham; 00233 if((*segment).hasZed()) { 00234 const DTSLRecSegment2D* zSeg = (*segment).zSegment(); // zSeg lives in the SL RF 00235 const DTSuperLayer* sl = chamber->superLayer(zSeg->superLayerId()); 00236 zSeg2DPosInCham = chamber->toLocal(sl->toGlobal((*zSeg).localPosition())); 00237 zSeg2DDirInCham = chamber->toLocal(sl->toGlobal((*zSeg).localDirection())); 00238 hitsBySLMap[zSeg->superLayerId()] = zSeg->specificRecHits(); 00239 00240 // Check for noisy channels to skip them 00241 vector<DTRecHit1D> zHits = zSeg->specificRecHits(); 00242 for(vector<DTRecHit1D>::const_iterator hit = zHits.begin(); 00243 hit != zHits.end(); ++hit) { 00244 DTWireId wireId = (*hit).wireId(); 00245 if(checkNoisyChannels) { 00246 bool isNoisy = false; 00247 bool isFEMasked = false; 00248 bool isTDCMasked = false; 00249 bool isTrigMask = false; 00250 bool isDead = false; 00251 bool isNohv = false; 00252 statusMap->cellStatus(wireId, isNoisy, isFEMasked, isTDCMasked, isTrigMask, isDead, isNohv); 00253 if(isNoisy) { 00254 if(debug) 00255 cout << "Wire: " << wireId << " is noisy, skipping!" << endl; 00256 segmNoisy = true; 00257 } 00258 } 00259 } 00260 } 00261 00262 if (segmNoisy) continue; 00263 00264 LocalPoint segment4DLocalPos = (*segment).localPosition(); 00265 LocalVector segment4DLocalDir = (*segment).localDirection(); 00266 if(fabs(atan(segment4DLocalDir.y()/segment4DLocalDir.z())* 180./Geom::pi()) > theMaxZAngle) continue; // cut on the angle 00267 if(fabs(atan(segment4DLocalDir.x()/segment4DLocalDir.z())* 180./Geom::pi()) > theMaxPhiAngle) continue; // cut on the angle 00268 00269 hChi2->Fill(chiSquare); 00270 if((*segment).hasPhi()) 00271 h2DSegmRPhi->Fill(phiSeg2DPosInCham.x(), phiSeg2DDirInCham.x()/phiSeg2DDirInCham.z()); 00272 if((*segment).hasZed()) 00273 h2DSegmRZ->Fill(zSeg2DPosInCham.y(), zSeg2DDirInCham.y()/zSeg2DDirInCham.z()); 00274 00275 if((*segment).hasZed() && (*segment).hasPhi()) 00276 h4DSegmAllCh->Fill(segment4DLocalPos.x(), 00277 segment4DLocalPos.y(), 00278 atan(segment4DLocalDir.x()/segment4DLocalDir.z())* 180./Geom::pi(), 00279 atan(segment4DLocalDir.y()/segment4DLocalDir.z())* 180./Geom::pi(), 00280 180 - segment4DLocalDir.theta()* 180./Geom::pi()); 00281 else if((*segment).hasPhi()) 00282 h4DSegmAllCh->Fill(segment4DLocalPos.x(), 00283 atan(segment4DLocalDir.x()/segment4DLocalDir.z())* 180./Geom::pi()); 00284 else if((*segment).hasZed()) 00285 cout<<"4d segment with only Z"<<endl; 00286 else{ 00287 cout<<"ERROR: 4D segment without Z and Phi. Aborting!"<<endl; 00288 abort(); 00289 } 00290 00291 //loop over the segments 00292 for(map<DTSuperLayerId,vector<DTRecHit1D> >::const_iterator slIdAndHits = hitsBySLMap.begin(); slIdAndHits != hitsBySLMap.end(); ++slIdAndHits) { 00293 if (slIdAndHits->second.size() < 3) continue; 00294 DTSuperLayerId slId = slIdAndHits->first; 00295 00296 // Create the DTTMax, that computes the 4 TMax 00297 DTTMax slSeg(slIdAndHits->second, *(chamber->superLayer(slIdAndHits->first)),chamber->toGlobal((*segment).localDirection()), chamber->toGlobal((*segment).localPosition()), theSync); 00298 00299 if(theGranularity == bySL) { 00300 vector<const TMax*> tMaxes = slSeg.getTMax(slId); 00301 DTWireId wireId(slId, 0, 0); 00302 theFile->cd(); 00303 cellInfo* cell = theWireIdAndCellMap[wireId]; 00304 if (cell==0) { 00305 TString name = (((((TString) "TMax"+(long) slId.wheel()) +(long) slId.station()) 00306 +(long) slId.sector())+(long) slId.superLayer()); 00307 cell = new cellInfo(name); 00308 theWireIdAndCellMap[wireId] = cell; 00309 } 00310 cell->add(tMaxes); 00311 cell->update(); // FIXME to reset the counter to avoid triple counting, which actually is not used... 00312 } 00313 else { 00314 cout << "[DTVDriftCalibration]###Warning: the chosen granularity is not implemented yet, only bySL available!" << endl; 00315 } 00316 // to be implemented: granularity different from bySL 00317 00318 // else if (theGranularity == byPartition) { 00319 // // Use the custom granularity defined by partition(); 00320 // // in this case, add() should be called once for each Tmax of each layer 00321 // // and triple counting should be avoided within add() 00322 // vector<cellInfo*> cells; 00323 // for (int i=1; i<=4; i++) { 00324 // const DTTMax::InfoLayer* iLayer = slSeg.getInfoLayer(i); 00325 // if(iLayer == 0) continue; 00326 // cellInfo * cell = partition(iLayer->idWire); 00327 // cells.push_back(cell); 00328 // vector<const TMax*> tMaxes = slSeg.getTMax(iLayer->idWire); 00329 // cell->add(tMaxes); 00330 // } 00331 // //reset the counter to avoid triple counting 00332 // for (vector<cellInfo*>::const_iterator i = cells.begin(); 00333 // i!= cells.end(); i++) { 00334 // (*i)->update(); 00335 // } 00336 // } 00337 } 00338 } 00339 } 00340 }
Reimplemented from edm::EDAnalyzer.
Definition at line 342 of file DTVDriftCalibration.cc.
References DTCalibrationMap::addCell(), bySL, GenMuonPlsPt100GeV_cfg::cout, debug, lat::endl(), DTMeanTimerFitter::evaluateVDriftAndReso(), findVDriftAndT0, DTCalibrationMap::getConsts(), DTVDriftCalibration::cellInfo::getHists(), DTCalibrationMap::getKey(), h2DSegmRPhi, h2DSegmRZ, h4DSegmAllCh, hChi2, DTWireId::layerId(), N, DTTimeUnits::ns, ecalRecalibSequence_cff::record, DTChamberId::sector(), DTMtime::set(), DTChamberId::station(), DTSuperLayerId::superLayer(), theCalibFilePar, theFile, theFitter, theGranularity, theVDriftOutputFile, theWireIdAndCellMap, DTChamberId::wheel(), hTMaxCell::Write(), h2DSegm::Write(), h4DSegm::Write(), and DTCalibrationMap::writeConsts().
00342 { 00343 theFile->cd(); 00344 gROOT->GetList()->Write(); 00345 h2DSegmRPhi->Write(); 00346 h2DSegmRZ->Write(); 00347 h4DSegmAllCh->Write(); 00348 hChi2->Write(); 00349 // Instantiate a DTCalibrationMap object if you want to calculate the calibration constants 00350 DTCalibrationMap calibValuesFile(theCalibFilePar); 00351 // Create the object to be written to DB 00352 DTMtime* mTime = new DTMtime(); 00353 00354 // write the TMax histograms of each SL to the root file 00355 if(theGranularity == bySL) { 00356 for(map<DTWireId, cellInfo*>::const_iterator wireCell = theWireIdAndCellMap.begin(); 00357 wireCell != theWireIdAndCellMap.end(); wireCell++) { 00358 cellInfo* cell= theWireIdAndCellMap[(*wireCell).first]; 00359 hTMaxCell* cellHists = cell->getHists(); 00360 theFile->cd(); 00361 cellHists->Write(); 00362 if(findVDriftAndT0) { // if TRUE: evaluate calibration constants from TMax hists filled in this job 00363 // evaluate v_drift and sigma from the TMax histograms 00364 DTWireId wireId = (*wireCell).first; 00365 vector<float> newConstants; 00366 TString N=(((((TString) "TMax"+(long) wireId.wheel()) +(long) wireId.station()) 00367 +(long) wireId.sector())+(long) wireId.superLayer()); 00368 vector<float> vDriftAndReso = theFitter->evaluateVDriftAndReso(N); 00369 00370 // Don't write the constants for the SL if the vdrift was not computed 00371 if(vDriftAndReso.front() == -1) 00372 continue; 00373 const DTCalibrationMap::CalibConsts* oldConstants = calibValuesFile.getConsts(wireId); 00374 if(oldConstants != 0) { 00375 newConstants.push_back((*oldConstants)[0]); 00376 newConstants.push_back((*oldConstants)[1]); 00377 } else { 00378 newConstants.push_back(-1); 00379 newConstants.push_back(-1); 00380 } 00381 for(int ivd=0; ivd<=5;ivd++) { 00382 // 0=vdrift, 1=reso, 2=(3deltat0-2deltat0), 3=(2deltat0-1deltat0), 00383 // 4=(1deltat0-0deltat0), 5=deltat0 from hists with max entries, 00384 newConstants.push_back(vDriftAndReso[ivd]); 00385 } 00386 00387 calibValuesFile.addCell(calibValuesFile.getKey(wireId), newConstants); 00388 00389 mTime->set((wireId.layerId()).superlayerId(), 00390 vDriftAndReso[0], 00391 vDriftAndReso[1], 00392 DTTimeUnits::ns); 00393 if(debug) { 00394 cout << " SL: " << (wireId.layerId()).superlayerId() 00395 << " vDrift = " << vDriftAndReso[0] 00396 << " reso = " << vDriftAndReso[1] << endl; 00397 } 00398 } 00399 } 00400 } 00401 00402 // to be implemented: granularity different from bySL 00403 00404 // if(theGranularity == "byChamber") { 00405 // const vector<DTChamber*> chambers = dMap.chambers(); 00406 00407 // // Loop over all chambers 00408 // for(vector<MuBarChamber*>::const_iterator chamber = chambers.begin(); 00409 // chamber != chambers.end(); chamber ++) { 00410 // MuBarChamberId chamber_id = (*chamber)->id(); 00411 // MuBarDigiParameters::Key wire_id(chamber_id, 0, 0, 0); 00412 // vector<float> newConstants; 00413 // vector<float> vDriftAndReso = evaluateVDriftAndReso(wire_id, f); 00414 // const CalibConsts* oldConstants = digiParams.getConsts(wire_id); 00415 // if(oldConstants !=0) { 00416 // newConstants = *oldConstants; 00417 // newConstants.push_back(vDriftAndReso[0]); 00418 // newConstants.push_back(vDriftAndReso[1]); 00419 // newConstants.push_back(vDriftAndReso[2]); 00420 // newConstants.push_back(vDriftAndReso[3]); 00421 // } else { 00422 // newConstants.push_back(-1); 00423 // newConstants.push_back(-1); 00424 // newConstants.push_back(vDriftAndReso[0]); 00425 // newConstants.push_back(vDriftAndReso[1]); 00426 // newConstants.push_back(vDriftAndReso[2]); 00427 // newConstants.push_back(vDriftAndReso[3]); 00428 // } 00429 // digiParams.addCell(wire_id, newConstants); 00430 // } 00431 // } 00432 00433 //write values to a table 00434 calibValuesFile.writeConsts(theVDriftOutputFile); 00435 00436 if(debug) 00437 cout << "[DTVDriftCalibration]Writing vdrift object to DB!" << endl; 00438 00439 // Write the vdrift object to DB 00440 string record = "DTMtimeRcd"; 00441 DTCalibDBUtils::writeToDB<DTMtime>(record, mTime); 00442 00443 }
bool DTVDriftCalibration::checkNoisyChannels [private] |
Definition at line 115 of file DTVDriftCalibration.h.
Referenced by analyze(), and DTVDriftCalibration().
bool DTVDriftCalibration::debug [private] |
Definition at line 93 of file DTVDriftCalibration.h.
Referenced by analyze(), DTVDriftCalibration(), endJob(), and ~DTVDriftCalibration().
std::string DTVDriftCalibration::digiLabel [private] |
Definition at line 96 of file DTVDriftCalibration.h.
bool DTVDriftCalibration::findVDriftAndT0 [private] |
Definition at line 106 of file DTVDriftCalibration.h.
Referenced by DTVDriftCalibration(), and endJob().
h2DSegm* DTVDriftCalibration::h2DSegmRPhi [private] |
Definition at line 79 of file DTVDriftCalibration.h.
Referenced by analyze(), DTVDriftCalibration(), and endJob().
h2DSegm* DTVDriftCalibration::h2DSegmRZ [private] |
Definition at line 78 of file DTVDriftCalibration.h.
Referenced by analyze(), DTVDriftCalibration(), and endJob().
h4DSegm* DTVDriftCalibration::h4DSegmAllCh [private] |
Definition at line 80 of file DTVDriftCalibration.h.
Referenced by analyze(), DTVDriftCalibration(), and endJob().
std::string DTVDriftCalibration::theCalibChamber [private] |
Definition at line 133 of file DTVDriftCalibration.h.
Referenced by analyze(), and DTVDriftCalibration().
Definition at line 121 of file DTVDriftCalibration.h.
Referenced by DTVDriftCalibration(), and endJob().
TFile* DTVDriftCalibration::theFile [private] |
Definition at line 99 of file DTVDriftCalibration.h.
Referenced by analyze(), DTVDriftCalibration(), endJob(), and ~DTVDriftCalibration().
DTMeanTimerFitter* DTVDriftCalibration::theFitter [private] |
Definition at line 102 of file DTVDriftCalibration.h.
Referenced by DTVDriftCalibration(), endJob(), and ~DTVDriftCalibration().
Definition at line 87 of file DTVDriftCalibration.h.
Referenced by analyze(), DTVDriftCalibration(), and endJob().
double DTVDriftCalibration::theMaxChi2 [private] |
Definition at line 124 of file DTVDriftCalibration.h.
Referenced by analyze(), and DTVDriftCalibration().
double DTVDriftCalibration::theMaxPhiAngle [private] |
Definition at line 127 of file DTVDriftCalibration.h.
Referenced by analyze(), and DTVDriftCalibration().
double DTVDriftCalibration::theMaxZAngle [private] |
Definition at line 130 of file DTVDriftCalibration.h.
Referenced by analyze(), and DTVDriftCalibration().
std::string DTVDriftCalibration::theRecHits4DLabel [private] |
Definition at line 90 of file DTVDriftCalibration.h.
Referenced by analyze(), and DTVDriftCalibration().
DTTTrigBaseSync* DTVDriftCalibration::theSync [private] |
Definition at line 118 of file DTVDriftCalibration.h.
Referenced by analyze(), and DTVDriftCalibration().
std::string DTVDriftCalibration::theVDriftOutputFile [private] |
Definition at line 109 of file DTVDriftCalibration.h.
Referenced by DTVDriftCalibration(), and endJob().
std::map<DTWireId, cellInfo*> DTVDriftCalibration::theWireIdAndCellMap [private] |