CMS 3D CMS Logo

DTVDriftCalibration Class Reference

No description available. More...

#include <CalibMuon/DTCalibration/plugins/DTVDriftCalibration.h>

Inheritance diagram for DTVDriftCalibration:

edm::EDAnalyzer

List of all members.

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
h2DSegmh2DSegmRPhi
h2DSegmh2DSegmRZ
h4DSegmh4DSegmAllCh
std::string theCalibChamber
edm::ParameterSet theCalibFilePar
TFile * theFile
DTMeanTimerFittertheFitter
TMaxGranularity theGranularity
double theMaxChi2
double theMaxPhiAngle
double theMaxZAngle
std::string theRecHits4DLabel
DTTTrigBaseSynctheSync
std::string theVDriftOutputFile
std::map< DTWireId, cellInfo * > theWireIdAndCellMap

Classes

class  cellInfo


Detailed Description

No description available.

Date
2008/08/04 16:27:49
Revision
1.3
Author:
M. Giunta

Definition at line 34 of file DTVDriftCalibration.h.


Member Typedef Documentation

typedef DTTMax::TMax DTVDriftCalibration::TMax [private]

Definition at line 53 of file DTVDriftCalibration.h.


Member Enumeration Documentation

enum DTVDriftCalibration::TMaxGranularity [private]

Enumerator:
byChamber 
bySL 
byPartition 

Definition at line 86 of file DTVDriftCalibration.h.


Constructor & Destructor Documentation

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 }


Member Function Documentation

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 }

void DTVDriftCalibration::endJob ( void   )  [virtual]

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 }


Member Data Documentation

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().

edm::ParameterSet DTVDriftCalibration::theCalibFilePar [private]

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().

TMaxGranularity DTVDriftCalibration::theGranularity [private]

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]

Definition at line 112 of file DTVDriftCalibration.h.

Referenced by analyze(), and endJob().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:19:13 2009 for CMSSW by  doxygen 1.5.4