QwAnalysis
QwDriftChamber Class Referenceabstract

#include <QwDriftChamber.h>

+ Inheritance diagram for QwDriftChamber:
+ Collaboration diagram for QwDriftChamber:

Public Member Functions

 QwDriftChamber (const TString &region_tmp)
 Constructor with name. More...
 
 QwDriftChamber (const TString &region_tmp, std::vector< QwHit > &fWireHits_TEMP)
 Constructor with name and hit list. More...
 
virtual ~QwDriftChamber ()
 Virtual destructor. More...
 
virtual Int_t LoadInputParameters (TString mapfile)
 Mandatory parameter file definition. More...
 
Int_t ProcessEvBuffer (const UInt_t roc_id, const UInt_t bank_id, UInt_t *buffer, UInt_t num_words)
 TODO: The non-event-type-aware ProcessEvBuffer routine should be replaced with the event-type-aware version. More...
 
Int_t ProcessConfigurationBuffer (const UInt_t roc_id, const UInt_t bank_id, UInt_t *buffer, UInt_t num_words)
 
void PrintConfigurationBuffer (UInt_t *buffer, UInt_t num_words)
 
void ReportConfiguration ()
 
virtual void SubtractReferenceTimes ()=0
 
virtual void ProcessEvent ()=0
 
virtual void ClearEventData ()=0
 
void FillDriftDistanceToHits ()
 
void FillHardwareErrorSummary ()
 Hardware error summary. More...
 
virtual void GetHitList (QwHitContainer &grandHitContainer)
 Get the hit list. More...
 
void GetTDCHitList (QwHitContainer &grandHitContainer)
 
- Public Member Functions inherited from VQwSubsystemTracking
 VQwSubsystemTracking (TString name)
 Constructor with name. More...
 
virtual ~VQwSubsystemTracking ()
 Default destructor. More...
 
Int_t LoadGeometryDefinition (TString mapfile)
 Load geometry definition for tracking subsystems. More...
 
Int_t LoadCrosstalkDefinition (TString mapfile)
 Load crosstalk definition for tracking subsystems. More...
 
const QwGeometryGetDetectorInfo () const
 Get the detector geometry information. More...
 
virtual void ConstructBranchAndVector (TTree *tree, TString &prefix, std::vector< Double_t > &values)
 Construct the branch and tree vector. More...
 
virtual void ConstructBranch (TTree *tree, TString &prefix)
 Construct the branch and tree vector. More...
 
virtual void ConstructBranch (TTree *tree, TString &prefix, QwParameterFile &trim_file)
 Construct the branch and tree vector based on the trim file. More...
 
virtual void FillTreeVector (std::vector< Double_t > &values) const
 Fill the tree vector. More...
 
- Public Member Functions inherited from VQwSubsystem
 VQwSubsystem (const TString &name)
 Constructor with name. More...
 
 VQwSubsystem (const VQwSubsystem &orig)
 Copy constructor by object. More...
 
virtual ~VQwSubsystem ()
 Default destructor. More...
 
virtual void ProcessOptions (QwOptions &options)
 Process the command line options. More...
 
TString GetSubsystemName () const
 
Bool_t HasDataLoaded () const
 
void SetParent (QwSubsystemArray *parent)
 Set the parent of this subsystem to the specified array. More...
 
QwSubsystemArrayGetParent (const unsigned int parent=0) const
 Get the parent of this subsystem. More...
 
VQwSubsystemGetSibling (const std::string &name) const
 Get the sibling with specified name. More...
 
Bool_t PublishInternalValue (const TString &name, const TString &desc, const VQwHardwareChannel *value) const
 Publish a variable name to the parent subsystem array. More...
 
virtual Bool_t PublishInternalValues () const
 Publish all variables of the subsystem. More...
 
virtual Bool_t PublishByRequest (TString device_name)
 Try to publish an internal variable matching the submitted name. More...
 
Bool_t RequestExternalValue (const TString &name, VQwHardwareChannel *value) const
 Request a named value which is owned by an external subsystem; the request will be handled by the parent subsystem array. More...
 
virtual const VQwHardwareChannelReturnInternalValue (const TString &name) const
 Return a pointer to a varialbe to the parent subsystem array to be delivered to a different subsystem. More...
 
virtual Bool_t ReturnInternalValue (const TString &name, VQwHardwareChannel *value) const
 Return a named value to the parent subsystem array to be delivered to a different subsystem. More...
 
virtual std::vector< TString > GetParamFileNameList ()
 
virtual std::map< TString,
TString > 
GetDetectorMaps ()
 
virtual Int_t LoadDetectorMaps (QwParameterFile &file)
 Parse parameter file to find the map files. More...
 
virtual Int_t LoadChannelMap (TString mapfile)=0
 Mandatory map file definition. More...
 
virtual Int_t LoadEventCuts (TString mapfile)
 Optional event cut file. More...
 
void SetEventTypeMask (const UInt_t mask)
 Set event type mask. More...
 
UInt_t GetEventTypeMask () const
 Get event type mask. More...
 
virtual Int_t ProcessEvBuffer (const UInt_t event_type, const UInt_t roc_id, const UInt_t bank_id, UInt_t *buffer, UInt_t num_words)
 
virtual void ExchangeProcessedData ()
 Request processed data from other subsystems for internal use in the second event processing stage. Not all derived classes will require data from other subsystems. More...
 
virtual void ProcessEvent_2 ()
 Process the event data again, including data from other subsystems. Not all derived classes will require a second stage of event data processing. More...
 
virtual void AtEndOfEventLoop ()
 Perform actions at the end of the event loop. More...
 
virtual void RandomizeEventData (int helicity=0, double time=0.0)
 
virtual void EncodeEventData (std::vector< UInt_t > &buffer)
 
virtual void PrintInfo () const
 Print some information about the subsystem. More...
 
virtual VQwSubsystemoperator= (VQwSubsystem *value)
 Assignment Note: Must be called at the beginning of all subsystems routine call to operator=(VQwSubsystem *value) by VQwSubsystem::operator=(value) More...
 
virtual void PrintDetectorMaps (Bool_t status) const
 
virtual void ConstructHistograms ()
 Construct the histograms for this subsystem. More...
 
virtual void ConstructHistograms (TDirectory *folder)
 Construct the histograms for this subsystem in a folder. More...
 
virtual void ConstructHistograms (TString &prefix)
 Construct the histograms for this subsystem with a prefix. More...
 
virtual void ConstructBranchAndVector (TTree *tree, std::vector< Double_t > &values)
 Construct the branch and tree vector. More...
 
virtual void ConstructTree ()
 Construct the tree for this subsystem. More...
 
virtual void ConstructTree (TDirectory *folder)
 Construct the tree for this subsystem in a folder. More...
 
virtual void ConstructTree (TString &prefix)
 Construct the tree for this subsystem with a prefix. More...
 
virtual void ConstructTree (TDirectory *folder, TString &prefix)
 Construct the tree for this subsystem in a folder with a prefix. More...
 
virtual void FillTree ()
 Fill the tree for this subsystem. More...
 
virtual void DeleteTree ()
 Delete the tree for this subsystem. More...
 
- Public Member Functions inherited from MQwHistograms
void ShareHistograms (const MQwHistograms *source)
 Share histogram pointers between objects. More...
 

Static Public Member Functions

static void DefineOptions (QwOptions &options)
 Define options. More...
 
- Static Public Member Functions inherited from VQwSubsystem
static void DefineOptions ()
 Define options function (note: no virtual static functions in C++) More...
 

Protected Member Functions

virtual void FillRawTDCWord (Int_t bank_index, Int_t slot_num, Int_t chan, UInt_t data)=0
 
virtual Int_t AddChannelDefinition ()=0
 
virtual Int_t BuildWireDataStructure (const UInt_t chan, const EQwDetectorPackage package, const Int_t octant, const Int_t plane, const Int_t wire)=0
 
virtual Double_t CalculateDriftDistance (Double_t drifttime, QwDetectorID detector)=0
 
virtual void ConstructHistograms (TDirectory *folder, TString &prefix)=0
 Construct the histograms for this subsystem in a folder with a prefix. More...
 
virtual void FillHistograms ()=0
 Fill the histograms for this subsystem. More...
 
virtual Int_t LoadTimeWireOffset (TString t0_map)=0
 
virtual void SubtractWireTimeOffset ()=0
 
Int_t LinkReferenceChannel (const UInt_t chan, const Int_t plane, const Int_t wire)
 
void ClearAllBankRegistrations ()
 
Int_t RegisterROCNumber (const UInt_t roc_id, const UInt_t bank_id)
 Tell the object that it will decode data from this ROC and sub-bank. More...
 
Int_t RegisterSubbank (const UInt_t bank_id)
 
Int_t RegisterSlotNumber (const UInt_t slot_id)
 
Int_t GetTDCIndex (size_t bank_index, size_t slot_num) const
 
Bool_t IsSlotRegistered (Int_t bank_index, Int_t slot_num) const
 
void InitHistogramPointers ()
 
- Protected Member Functions inherited from VQwSubsystem
void UpdatePublishedValue (const TString &name, VQwHardwareChannel *data_channel)
 
void ClearAllBankRegistrations ()
 Clear all registration of ROC and Bank IDs for this subsystem. More...
 
Int_t RegisterSubbank (const UInt_t bank_id)
 Tell the object that it will decode data from this sub-bank in the ROC currently open for registration. More...
 
Int_t GetSubbankIndex () const
 
Int_t GetSubbankIndex (const UInt_t roc_id, const UInt_t bank_id) const
 
void SetDataLoaded (Bool_t flag)
 
Int_t FindIndex (const std::vector< UInt_t > &myvec, const UInt_t value) const
 
Bool_t Compare (VQwSubsystem *source)
 
- Protected Member Functions inherited from MQwHistograms
 MQwHistograms ()
 Default constructor. More...
 
 MQwHistograms (const MQwHistograms &source)
 Copy constructor. More...
 
virtual ~MQwHistograms ()
 Virtual destructor. More...
 
virtual MQwHistogramsoperator= (const MQwHistograms &value)
 
void Fill_Pointer (TH1_ptr hist_ptr, Double_t value)
 
void AddHistogram (TH1 *h)
 Register a histogram. More...
 

Protected Attributes

TString fRegion
 
size_t fCurrentBankIndex
 Name of this subsystem (the region). More...
 
Int_t fCurrentSlot
 
Int_t fCurrentTDCIndex
 
UInt_t kMaxNumberOfChannelsPerTDC
 
Int_t fNumberOfTDCs
 
std::vector< std::vector< Int_t > > fTDC_Index
 
std::vector< std::pair< Int_t,
Int_t > > 
fReferenceChannels
 
std::vector< std::vector
< Double_t > > 
fReferenceData
 
std::vector< std::vector
< Double_t > > 
fReferenceMaster
 
std::vector< QwHitfTDCHits
 
std::vector< QwHit > & fWireHits
 
std::vector< Int_t > fWiresPerPlane
 
MQwF1TDC fF1TDCDecoder
 
QwF1TDContainerfF1TDContainer
 
F1TDCReferenceContainerfF1RefContainer
 
std::vector< TH1F * > TotHits
 
std::vector< TH1F * > TOFP
 
std::vector< TH1F * > TOFP_raw
 
std::vector< TH1F * > WiresHit
 
std::vector< TH2F * > TOFW
 
std::vector< TH2F * > TOFW_raw
 
std::vector< TH2F * > HitsWire
 
std::vector< std::vector
< QwDetectorID > > 
fTDCPtrs
 
std::vector< std::vector
< QwDetectorInfo > > 
fWireData
 
std::vector< std::vector
< UInt_t > > 
fDirectionData
 
- Protected Attributes inherited from VQwSubsystemTracking
QwGeometry fDetectorInfo
 Geometry information of this subsystem. More...
 
size_t fTreeArrayIndex
 Tree indices. More...
 
size_t fTreeArrayNumEntries
 
Double_t fF1TDCResolutionNS
 
- Protected Attributes inherited from VQwSubsystem
std::map< TString,
VQwHardwareChannel * > 
fPublishedInternalValues
 Map of published internal values. More...
 
std::vector< std::vector
< TString > > 
fPublishList
 List of parameters to be published (loaded at the channel map) More...
 
TString fSystemName
 Name of this subsystem. More...
 
UInt_t fEventTypeMask
 Mask of event types. More...
 
Bool_t fIsDataLoaded
 Has this subsystem gotten data to be processed? More...
 
std::vector< TString > fDetectorMapsNames
 
std::map< TString, TString > fDetectorMaps
 
Int_t fCurrentROC_ID
 ROC ID that is currently being processed. More...
 
Int_t fCurrentBank_ID
 Bank ID that is currently being processed. More...
 
std::vector< UInt_t > fROC_IDs
 Vector of ROC IDs associated with this subsystem. More...
 
std::vector< std::vector
< UInt_t > > 
fBank_IDs
 Vector of Bank IDs per ROC ID associated with this subsystem. More...
 
std::vector< QwSubsystemArray * > fArrays
 Vector of pointers to subsystem arrays that contain this subsystem. More...
 
- Protected Attributes inherited from MQwHistograms
std::vector< TH1_ptrfHistograms
 Histograms associated with this data element. More...
 

Static Protected Attributes

static bool fPrintF1TDCConfiguration = true
 
static const UInt_t kMaxNumberOfSlotsPerROC = 21
 
static const Int_t kReferenceChannelPlaneNumber = 99
 
static const Int_t kCodaMasterPlaneNumber = 98
 

Private Member Functions

 QwDriftChamber ()
 Private default constructor (not implemented, will throw linker error on use) More...
 

Detailed Description

Definition at line 35 of file QwDriftChamber.h.

Constructor & Destructor Documentation

QwDriftChamber::QwDriftChamber ( )
private

Private default constructor (not implemented, will throw linker error on use)

QwDriftChamber::QwDriftChamber ( const TString &  region_tmp)

Constructor with name.

Definition at line 39 of file QwDriftChamber.cc.

References ClearAllBankRegistrations(), fF1RefContainer, fF1TDCDecoder, fF1TDContainer, fNumberOfTDCs, QwF1TDContainer::GetF1TDCDecoder(), MQwF1TDC::GetTDCMaxChannels(), InitHistogramPointers(), and kMaxNumberOfChannelsPerTDC.

40  :VQwSubsystem(name),
43 {
44  fNumberOfTDCs = 0;
47 
52 }
F1TDCs configuration and reference siganls container.
const UInt_t & GetTDCMaxChannels() const
Definition: MQwF1TDC.h:50
void InitHistogramPointers()
void ClearAllBankRegistrations()
UInt_t kMaxNumberOfChannelsPerTDC
QwF1TDContainer * fF1TDContainer
const MQwF1TDC GetF1TDCDecoder() const
VQwSubsystemTracking()
Private default constructor (not implemented, will throw linker error on use)
std::vector< QwHit > & fWireHits
MQwF1TDC fF1TDCDecoder
std::vector< QwHit > fTDCHits
F1TDCReferenceContainer * fF1RefContainer

+ Here is the call graph for this function:

QwDriftChamber::QwDriftChamber ( const TString &  region_tmp,
std::vector< QwHit > &  fWireHits_TEMP 
)

Constructor with name and hit list.

Definition at line 54 of file QwDriftChamber.cc.

References ClearAllBankRegistrations(), fF1RefContainer, fF1TDCDecoder, fF1TDContainer, fNumberOfTDCs, QwF1TDContainer::GetF1TDCDecoder(), MQwF1TDC::GetTDCMaxChannels(), InitHistogramPointers(), and kMaxNumberOfChannelsPerTDC.

55  :VQwSubsystem(name),
57  fWireHits(fWireHits_TEMP)
58 {
59  fNumberOfTDCs = 0;
62 
67 }
F1TDCs configuration and reference siganls container.
const UInt_t & GetTDCMaxChannels() const
Definition: MQwF1TDC.h:50
void InitHistogramPointers()
void ClearAllBankRegistrations()
UInt_t kMaxNumberOfChannelsPerTDC
QwF1TDContainer * fF1TDContainer
const MQwF1TDC GetF1TDCDecoder() const
VQwSubsystemTracking()
Private default constructor (not implemented, will throw linker error on use)
std::vector< QwHit > & fWireHits
MQwF1TDC fF1TDCDecoder
F1TDCReferenceContainer * fF1RefContainer

+ Here is the call graph for this function:

QwDriftChamber::~QwDriftChamber ( )
virtual

Virtual destructor.

Definition at line 69 of file QwDriftChamber.cc.

References fF1RefContainer, and fF1TDContainer.

70 {
71  delete fF1TDContainer;
72  delete fF1RefContainer;
73 }
QwF1TDContainer * fF1TDContainer
F1TDCReferenceContainer * fF1RefContainer

Member Function Documentation

virtual Int_t QwDriftChamber::AddChannelDefinition ( )
protectedpure virtual

Implemented in QwDriftChamberVDC, and QwDriftChamberHDC.

virtual Int_t QwDriftChamber::BuildWireDataStructure ( const UInt_t  chan,
const EQwDetectorPackage  package,
const Int_t  octant,
const Int_t  plane,
const Int_t  wire 
)
protectedpure virtual

Implemented in QwDriftChamberVDC, and QwDriftChamberHDC.

virtual Double_t QwDriftChamber::CalculateDriftDistance ( Double_t  drifttime,
QwDetectorID  detector 
)
protectedpure virtual

Implemented in QwDriftChamberVDC, and QwDriftChamberHDC.

Referenced by FillDriftDistanceToHits().

+ Here is the caller graph for this function:

void QwDriftChamber::ClearAllBankRegistrations ( )
protected

Definition at line 202 of file QwDriftChamber.cc.

References VQwSubsystem::ClearAllBankRegistrations(), fNumberOfTDCs, fTDC_Index, fTDCPtrs, and fWireData.

Referenced by QwDriftChamber().

203 {
205  std::size_t i = 0;
206  for ( i=0; i<fTDC_Index.size(); i++){
207  fTDC_Index.at(i).clear();
208  }
209  fTDC_Index.clear();
210 
211  fTDCPtrs.clear();
212  fWireData.clear();
213  fNumberOfTDCs = 0;
214  return;
215 }
std::vector< std::vector< Int_t > > fTDC_Index
std::vector< std::vector< QwDetectorID > > fTDCPtrs
void ClearAllBankRegistrations()
Clear all registration of ROC and Bank IDs for this subsystem.
std::vector< std::vector< QwDetectorInfo > > fWireData

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

virtual void QwDriftChamber::ClearEventData ( )
pure virtual

Implements VQwSubsystem.

Implemented in QwDriftChamberVDC, and QwDriftChamberHDC.

virtual void QwDriftChamber::ConstructHistograms ( TDirectory *  folder,
TString &  prefix 
)
protectedpure virtual

Construct the histograms for this subsystem in a folder with a prefix.

Implements VQwSubsystem.

Implemented in QwDriftChamberVDC, and QwDriftChamberHDC.

static void QwDriftChamber::DefineOptions ( QwOptions options)
inlinestatic

Define options.

Definition at line 54 of file QwDriftChamber.h.

References QwOptions::AddOptions(), default_bool_value, and fPrintF1TDCConfiguration.

54  {
55  options.AddOptions("Tracking options")("QwDriftChamber.print-f1tdc-configuration",
56  po::value<bool>(&fPrintF1TDCConfiguration)->default_bool_value(false),
57  "print F1TDC configuration");
58  }
#define default_bool_value(b)
Definition: QwOptions.h:51
po::options_description_easy_init AddOptions(const std::string &blockname="Specialized options")
Add an option to a named block or create new block.
Definition: QwOptions.h:164
static bool fPrintF1TDCConfiguration

+ Here is the call graph for this function:

void QwDriftChamber::FillDriftDistanceToHits ( )

Definition at line 75 of file QwDriftChamber.cc.

References CalculateDriftDistance(), and fWireHits.

Referenced by QwDriftChamberHDC::ProcessEvent(), and QwDriftChamberVDC::ProcessEvent().

76 {
77 //Currently This routine is not in use the drift distance calculation is done at ProcessEvent() on each sub-class
78 // std::cout << "size: " << fWireHits.size() << std::endl;
79 
80  for (std::vector<QwHit>::iterator hit1=fWireHits.begin(); hit1!=fWireHits.end(); hit1++)
81  {
82  hit1->SetDriftDistance(
83  CalculateDriftDistance( hit1->GetTimeNs(), hit1->GetDetectorID() )
84  );
85  }
86  return;
87 }
virtual Double_t CalculateDriftDistance(Double_t drifttime, QwDetectorID detector)=0
std::vector< QwHit > & fWireHits

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void QwDriftChamber::FillHardwareErrorSummary ( )
virtual

Hardware error summary.

Reimplemented from VQwSubsystemTracking.

Definition at line 541 of file QwDriftChamber.cc.

References fF1RefContainer, and fF1TDContainer.

542 {
543  fF1RefContainer -> PrintCounters();
544  fF1TDContainer -> PrintErrorSummary();
545  fF1TDContainer -> WriteErrorSummary();
546  return;
547 };
QwF1TDContainer * fF1TDContainer
F1TDCReferenceContainer * fF1RefContainer
virtual void QwDriftChamber::FillHistograms ( )
protectedpure virtual

Fill the histograms for this subsystem.

Implements VQwSubsystem.

Implemented in QwDriftChamberVDC, and QwDriftChamberHDC.

virtual void QwDriftChamber::FillRawTDCWord ( Int_t  bank_index,
Int_t  slot_num,
Int_t  chan,
UInt_t  data 
)
protectedpure virtual

Implemented in QwDriftChamberVDC, and QwDriftChamberHDC.

Referenced by ProcessEvBuffer().

+ Here is the caller graph for this function:

virtual void QwDriftChamber::GetHitList ( QwHitContainer grandHitContainer)
inlinevirtual

Get the hit list.

Implements VQwSubsystemTracking.

Reimplemented in QwDriftChamberVDC.

Definition at line 90 of file QwDriftChamber.h.

References QwHitContainer::Append(), and fWireHits.

91  {
92  grandHitContainer.Append(fWireHits);
93  };
std::vector< QwHit > & fWireHits
void Append(const QwHitContainer &mylist)

+ Here is the call graph for this function:

void QwDriftChamber::GetTDCHitList ( QwHitContainer grandHitContainer)
inline

Definition at line 95 of file QwDriftChamber.h.

References QwHitContainer::Append(), and fTDCHits.

96  {
97  grandHitContainer.Append(fTDCHits);
98  };
std::vector< QwHit > fTDCHits
void Append(const QwHitContainer &mylist)

+ Here is the call graph for this function:

Int_t QwDriftChamber::GetTDCIndex ( size_t  bank_index,
size_t  slot_num 
) const
protected

Definition at line 270 of file QwDriftChamber.cc.

References fTDC_Index.

Referenced by QwDriftChamberHDC::FillRawTDCWord(), QwDriftChamberVDC::FillRawTDCWord(), IsSlotRegistered(), ProcessConfigurationBuffer(), ProcessEvBuffer(), and ReportConfiguration().

271 {
272  Int_t tdcindex = -1;
273  // bank_index and slot_num are unsigned int and always positive
274  if (/* bank_index >= 0 && */ bank_index < fTDC_Index.size()) {
275  if (/* slot_num >= 0 && */ slot_num < fTDC_Index.at(bank_index).size()) {
276  tdcindex = fTDC_Index.at(bank_index).at(slot_num);
277  }
278  }
279  return tdcindex;
280 }
std::vector< std::vector< Int_t > > fTDC_Index

+ Here is the caller graph for this function:

void QwDriftChamber::InitHistogramPointers ( )
inlineprotected

Definition at line 186 of file QwDriftChamber.h.

References HitsWire, TOFP, TOFP_raw, TOFW, TOFW_raw, TotHits, and WiresHit.

Referenced by QwDriftChamber().

186  {
187  TotHits.clear();
188  TOFP.clear();
189  TOFP_raw.clear();
190  WiresHit.clear();
191  TOFW.clear();
192  TOFW_raw.clear();
193  HitsWire.clear();
194  }
std::vector< TH1F * > TOFP
std::vector< TH1F * > WiresHit
std::vector< TH2F * > HitsWire
std::vector< TH2F * > TOFW_raw
std::vector< TH2F * > TOFW
std::vector< TH1F * > TOFP_raw
std::vector< TH1F * > TotHits

+ Here is the caller graph for this function:

Bool_t QwDriftChamber::IsSlotRegistered ( Int_t  bank_index,
Int_t  slot_num 
) const
inlineprotected

Definition at line 124 of file QwDriftChamber.h.

References GetTDCIndex().

Referenced by ProcessEvBuffer().

125  {
126  return (GetTDCIndex(bank_index,slot_num) != -1);
127  };
Int_t GetTDCIndex(size_t bank_index, size_t slot_num) const

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Int_t QwDriftChamber::LinkReferenceChannel ( const UInt_t  chan,
const Int_t  plane,
const Int_t  wire 
)
protected

Definition at line 283 of file QwDriftChamber.cc.

References fCurrentBankIndex, fCurrentTDCIndex, fReferenceChannels, fTDCPtrs, kPackageNull, and OK.

Referenced by QwDriftChamberHDC::BuildWireDataStructure(), and QwDriftChamberVDC::LoadChannelMap().

284 {
286  fReferenceChannels.at ( fCurrentBankIndex ).second = chan;
287  // Register a reference channel with the wire equal to the bank index.
288  fTDCPtrs.at ( fCurrentTDCIndex ).at ( chan ).fPackage = kPackageNull; //Should be OK?
289  fTDCPtrs.at ( fCurrentTDCIndex ).at ( chan ).fPlane = plane;
290  fTDCPtrs.at ( fCurrentTDCIndex ).at ( chan ).fElement = fCurrentBankIndex;
291  return OK;
292 }
size_t fCurrentBankIndex
Name of this subsystem (the region).
std::vector< std::vector< QwDetectorID > > fTDCPtrs
std::vector< std::pair< Int_t, Int_t > > fReferenceChannels
#define OK

+ Here is the caller graph for this function:

virtual Int_t QwDriftChamber::LoadInputParameters ( TString  mapfile)
inlinevirtual

Mandatory parameter file definition.

Implements VQwSubsystem.

Definition at line 62 of file QwDriftChamber.h.

62 {return 0;};
virtual Int_t QwDriftChamber::LoadTimeWireOffset ( TString  t0_map)
protectedpure virtual

Implemented in QwDriftChamberVDC, and QwDriftChamberHDC.

void QwDriftChamber::PrintConfigurationBuffer ( UInt_t *  buffer,
UInt_t  num_words 
)

Definition at line 383 of file QwDriftChamber.cc.

384 {
385  UInt_t ipt = 0;
386  UInt_t j = 0;
387  UInt_t k = 0;
388 
389  for ( j=0; j<(num_words/5); j++ )
390  {
391  printf ( "buffer[%5d] = 0x:", ipt );
392  for ( k=j; k<j+5; k++ ) {
393  printf ( "%12x", buffer[ipt++] );
394  }
395  printf ( "\n" );
396  }
397 
398  if ( ipt<num_words ) {
399  printf ( "buffer[%5d] = 0x:", ipt );
400  for ( k=ipt; k<num_words; k++ )
401  {
402  printf ( "%12x", buffer[ipt++] );
403  }
404  printf ( "\n" );
405  }
406  printf ( "\n" );
407 
408  return;
409 }
Int_t QwDriftChamber::ProcessConfigurationBuffer ( const UInt_t  roc_id,
const UInt_t  bank_id,
UInt_t *  buffer,
UInt_t  num_words 
)
virtual

local_f1tdc = 0;

Implements VQwSubsystem.

Definition at line 413 of file QwDriftChamber.cc.

References QwF1TDContainer::AddQwF1TDC(), QwF1TDContainer::DoneF1TDCsConfiguration(), fF1RefContainer, fF1TDContainer, VQwSubsystemTracking::fF1TDCResolutionNS, fPrintF1TDCConfiguration, VQwSubsystem::GetSubbankIndex(), VQwSubsystem::GetSubsystemName(), GetTDCIndex(), kMaxNumberOfSlotsPerROC, OK, QwF1TDContainer::Print(), QwF1TDC::SetF1BankIndex(), QwF1TDC::SetF1SystemName(), QwF1TDC::SetF1TDCBuffer(), and QwF1TDC::SetF1TDCIndex().

417 {
418 
419  TString subsystem_name;
420 
421  Int_t bank_index = 0;
422  Int_t tdc_index = 0;
423  UInt_t slot_id = 0;
424  UInt_t vme_slot_num = 0;
425 
426  QwF1TDC *local_f1tdc = NULL;
427 
428  bank_index = GetSubbankIndex(roc_id, bank_id);
429 
430  if(bank_index >=0) {
432  std::cout << "fF1TDContainer " << fF1TDContainer
433  <<" local_f1tdc " << local_f1tdc << "\n";
434  }
435  subsystem_name = this->GetSubsystemName();
436  fF1TDContainer -> SetSystemName(subsystem_name);
437  fF1RefContainer-> SetSystemName(subsystem_name);
438 
440  std::cout << "-----------------------------------------------------" << std::endl;
441 
442  std::cout << "\nQwDriftChamber : "
443  << subsystem_name
444  << ", "
445  << "ProcessConfigurationBuffer"
446  << std::endl;
447  std::cout << "ROC "
448  << std::setw(2) << roc_id
449  << " Bank [index,id]["
450  << bank_index
451  << ","
452  << bank_id
453  << "]"
454  << std::endl;
455  }
456  for ( slot_id=0; slot_id<kMaxNumberOfSlotsPerROC; slot_id++ )
457  {
458  // slot id starts from 2, because 0 is one offset (1) difference between QwAnalyzer and VME definition,
459  // and 1 and 2 are used for CPU and TI. Tuesday, August 31 10:57:07 EDT 2010, jhlee
460 
461  tdc_index = GetTDCIndex(bank_index, slot_id);
462  vme_slot_num = slot_id;
464  std::cout << " "
465  << "Slot [id, VME num] ["
466  << std::setw(2) << slot_id
467  << ","
468  << std::setw(2) << vme_slot_num
469  << "]";
470  std::cout << " ";
471  }
472  local_f1tdc = NULL;
473 
474  if(slot_id > 2) { // save time
475 
476  if (tdc_index not_eq -1) {
477 
478  if(local_f1tdc) delete local_f1tdc; local_f1tdc = NULL;
479 
480  local_f1tdc = new QwF1TDC(roc_id, vme_slot_num);
481 
482  local_f1tdc->SetF1BankIndex(bank_index);
483  local_f1tdc->SetF1TDCIndex(tdc_index);
484  local_f1tdc->SetF1TDCBuffer(buffer, num_words);
485  local_f1tdc->SetF1SystemName(subsystem_name);
486 
487  fF1TDContainer->AddQwF1TDC(local_f1tdc);
489  std::cout << "F1TDC index "
490  << std::setw(2)
491  << tdc_index
492  << std::setw(16)
493  << " local_f1tdc "
494  << *local_f1tdc
495  << " at "
496  << local_f1tdc;
497  }
498  }
499  else {
501  std::cout << "Unused in "
502  << std::setw(4)
503  << subsystem_name
504  << std::setw(16)
505  << " local_f1tdc at "
506  << local_f1tdc;
507  }
508  }
509 
510  }
511  else { // slot_id == only 0, 1, & 2
513  if (slot_id == 0) std::cout << " ";
514  else if (slot_id == 1) std::cout << "MVME CPU ";
515  else std::cout << "Trigger Interface"; // slot_id == 2;
516  }
517  }
519  std::cout << std::endl;
520  }
521  }
522 
524 
526  std::cout << "-----------------------------------------------------" << std::endl;
527 
528 
529  // kMaxNumberOfChannelsPerTDC = fF1TDContainer->GetF1TDCChannelNumber();
530 
531  return OK;
532  }
533  else {
534  /// local_f1tdc = 0;
535  return -1;
536  }
537 }
Int_t GetSubbankIndex() const
Definition: VQwSubsystem.h:303
void AddQwF1TDC(QwF1TDC *in)
void SetF1TDCBuffer(UInt_t *buffer, UInt_t num_words)
static const UInt_t kMaxNumberOfSlotsPerROC
one F1TDC configuration and reference signal(s) holder
static bool fPrintF1TDCConfiguration
Double_t DoneF1TDCsConfiguration()
QwF1TDContainer * fF1TDContainer
#define OK
void SetF1BankIndex(const Int_t bank_index)
void SetF1SystemName(const TString name)
Int_t GetTDCIndex(size_t bank_index, size_t slot_num) const
void SetF1TDCIndex(const Int_t tdc_index)
void Print(const Option_t *options=0) const
TString GetSubsystemName() const
Definition: VQwSubsystem.h:93
F1TDCReferenceContainer * fF1RefContainer

+ Here is the call graph for this function:

Int_t QwDriftChamber::ProcessEvBuffer ( const UInt_t  roc_id,
const UInt_t  bank_id,
UInt_t *  buffer,
UInt_t  num_words 
)
virtual

TODO: The non-event-type-aware ProcessEvBuffer routine should be replaced with the event-type-aware version.

Implements VQwSubsystem.

Definition at line 90 of file QwDriftChamber.cc.

References QwF1TDContainer::CheckDataIntegrity(), MQwF1TDC::DecodeTDCWord(), Qw::e, fF1TDCDecoder, fF1TDContainer, FillRawTDCWord(), fTDCPtrs, VQwSubsystem::GetSubbankIndex(), VQwSubsystem::GetSubsystemName(), MQwF1TDC::GetTDCChannelNumber(), MQwF1TDC::GetTDCData(), GetTDCIndex(), MQwF1TDC::GetTDCSlotNumber(), IsSlotRegistered(), MQwF1TDC::IsValidDataword(), OK, and VQwSubsystem::SetDataLoaded().

94 {
95 
96  Int_t bank_index = 0;
97  UInt_t tdc_data = 0;
98 
99  Bool_t data_integrity_flag = false;
100  Bool_t temp_print_flag = false;
101  // Int_t tdcindex = 0;
102 
103  bank_index = GetSubbankIndex(roc_id, bank_id);
104 
105 
106 
107 
108  if (bank_index>=0 && num_words>0) {
109  // We want to process this ROC. Begin looping through the data.
110  SetDataLoaded(kTRUE);
111 
112 
113  if (temp_print_flag ) {
114  std::cout << "QwDriftChamber::ProcessEvBuffer: "
115  << "Begin processing ROC"
116  << std::setw(2)
117  << roc_id
118  << " bank id "
119  << bank_id
120  << " Subbbank Index "
121  << bank_index
122  << " Region "
123  << GetSubsystemName()
124  << std::endl;
125  }
126 
127  //
128  // CheckDataIntegrity() do "counter" whatever errors in each F1TDC
129  // and check whether data is OK or not.
130 
131  data_integrity_flag = fF1TDContainer->CheckDataIntegrity(roc_id, buffer, num_words);
132  // if it is false (TFO, EMM, and SYN), the whole buffer is excluded for
133  // the further process, because of multiblock data transfer.
134 
135  if (data_integrity_flag) {
136 
137  for (UInt_t i=0; i<num_words ; i++) {
138 
139  // Decode this word as a F1TDC word.
140  fF1TDCDecoder.DecodeTDCWord(buffer[i], roc_id); // MQwF1TDC or MQwV775TDC
141 
142  // For MQwF1TDC, roc_id is needed to print out some warning messages.
143  // For MQwV775TDC, roc_id isn't necessary, thus I set roc_id=0 in
144  // MQwV775TDC.h (Mon May 3 12:32:06 EDT 2010 jhlee)
145 
146  Int_t tdc_slot_number = fF1TDCDecoder.GetTDCSlotNumber();
147  Int_t tdc_chan_number = fF1TDCDecoder.GetTDCChannelNumber();
148  Int_t tdcindex = GetTDCIndex(bank_index, tdc_slot_number);
149 
150  if ( tdc_slot_number == 31) {
151  // This is a custom word which is not defined in
152  // the F1TDC, so we can use it as a marker for
153  // other data; it may be useful for something.
154  }
155 
156  // Each subsystem has its own interesting slot(s), thus
157  // here, if this slot isn't in its slot(s) (subsystem map file)
158  // we skip this buffer to do the further process
159 
160  if (not IsSlotRegistered(bank_index, tdc_slot_number) ) continue;
161 
162  if(temp_print_flag) std::cout << fF1TDCDecoder << std::endl;
163 
164  if ( fF1TDCDecoder.IsValidDataword() ) {//;;
165  // if decoded F1TDC data has a valid slot, resolution locked, data word, no overflow (0xFFFF), and no fake data
166  // try get time and fill it into raw QwHit.. FillRawTDCWord function is in each subsystem.
167 
168  try {
169  tdc_data = fF1TDCDecoder.GetTDCData();
170  FillRawTDCWord(bank_index, tdc_slot_number, tdc_chan_number, tdc_data);
171  }
172  catch (std::exception& e) {
173  std::cerr << "Standard exception from QwDriftChamber::FillRawTDCWord: "
174  << e.what() << std::endl;
175  std::cerr << " Parameters: index==" <<bank_index
176  << "; GetF1SlotNumber()==" <<tdc_slot_number
177  << "; GetF1ChannelNumber()=="<<tdc_chan_number
178  << "; GetF1Data()==" <<tdc_data
179  << std::endl;
180  // Int_t tdcindex = GetTDCIndex(bank_index, tdc_slot_number);
181  std::cerr << " GetTDCIndex()=="<<tdcindex
182  << "; fTDCPtrs.at(tdcindex).size()=="
183  << fTDCPtrs.at(tdcindex).size()
184  << "; fTDCPtrs.at(tdcindex).at(chan).fPlane=="
185  << fTDCPtrs.at(tdcindex).at(tdc_chan_number).fPlane
186  << "; fTDCPtrs.at(tdcindex).at(chan).fElement=="
187  << fTDCPtrs.at(tdcindex).at(tdc_chan_number).fElement
188  << std::endl;
189  }
190  }//;;
191  } // for (UInt_t i=0; i<num_words ; i++) {
192  }
193 
194  }
195 
196  // fF1TDContainer-> PrintErrorSummary();
197  return OK;
198 }
Int_t GetSubbankIndex() const
Definition: VQwSubsystem.h:303
const UInt_t & GetTDCData() const
Definition: MQwF1TDC.h:49
static const double e
Definition: QwUnits.h:91
Bool_t CheckDataIntegrity(const UInt_t roc_id, UInt_t *buffer, UInt_t num_words)
const UInt_t & GetTDCSlotNumber() const
Definition: MQwF1TDC.h:44
const UInt_t & GetTDCChannelNumber() const
Definition: MQwF1TDC.h:45
std::vector< std::vector< QwDetectorID > > fTDCPtrs
QwF1TDContainer * fF1TDContainer
Bool_t IsValidDataword() const
Definition: MQwF1TDC.cc:328
#define OK
Int_t GetTDCIndex(size_t bank_index, size_t slot_num) const
Bool_t IsSlotRegistered(Int_t bank_index, Int_t slot_num) const
MQwF1TDC fF1TDCDecoder
void DecodeTDCWord(UInt_t &word, const UInt_t roc_id)
Definition: MQwF1TDC.cc:84
virtual void FillRawTDCWord(Int_t bank_index, Int_t slot_num, Int_t chan, UInt_t data)=0
TString GetSubsystemName() const
Definition: VQwSubsystem.h:93
void SetDataLoaded(Bool_t flag)
Definition: VQwSubsystem.h:305

+ Here is the call graph for this function:

virtual void QwDriftChamber::ProcessEvent ( )
pure virtual

Implements VQwSubsystem.

Implemented in QwDriftChamberVDC, and QwDriftChamberHDC.

Int_t QwDriftChamber::RegisterROCNumber ( const UInt_t  roc_id,
const UInt_t  bank_id 
)
protectedvirtual

Tell the object that it will decode data from this ROC and sub-bank.

Reimplemented from VQwSubsystem.

Definition at line 217 of file QwDriftChamber.cc.

References fTDC_Index, kMaxNumberOfSlotsPerROC, and VQwSubsystem::RegisterROCNumber().

Referenced by QwDriftChamberHDC::LoadChannelMap(), and QwDriftChamberVDC::LoadChannelMap().

218 {
219  Int_t status = 0;
220  status = VQwSubsystemTracking::RegisterROCNumber(roc_id, bank_id);
221  std::vector<Int_t> tmpvec(kMaxNumberOfSlotsPerROC,-1);
222  fTDC_Index.push_back(tmpvec);
223  // std::cout<<"Registering ROC "<<roc_id<<std::endl;
224 
225  return status;
226 }
std::vector< std::vector< Int_t > > fTDC_Index
static const UInt_t kMaxNumberOfSlotsPerROC
virtual Int_t RegisterROCNumber(const UInt_t roc_id, const UInt_t bank_id=0)
Tell the object that it will decode data from this ROC and sub-bank.

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Int_t QwDriftChamber::RegisterSlotNumber ( const UInt_t  slot_id)
protected

Definition at line 248 of file QwDriftChamber.cc.

References fCurrentBankIndex, fCurrentSlot, fCurrentTDCIndex, fNumberOfTDCs, fTDC_Index, fTDCPtrs, kMaxNumberOfChannelsPerTDC, and kMaxNumberOfSlotsPerROC.

Referenced by QwDriftChamberHDC::LoadChannelMap(), and QwDriftChamberVDC::LoadChannelMap().

249 {
250  if (slot_id<kMaxNumberOfSlotsPerROC) {
251  // fCurrentBankIndex is unsigned int and always positive
252  if (/* fCurrentBankIndex >= 0 && */ fCurrentBankIndex <= fTDC_Index.size()) {
253  fTDCPtrs.resize(fNumberOfTDCs+1);
255  fNumberOfTDCs = fTDCPtrs.size();
256  fTDC_Index.at(fCurrentBankIndex).at(slot_id) = fNumberOfTDCs-1;
257  fCurrentSlot = slot_id;
259  }
260  }
261  else {
262  std::cerr << "QwDriftChamber::RegisterSlotNumber: Slot number "
263  << slot_id << " is larger than the number of slots per ROC, "
264  << kMaxNumberOfSlotsPerROC << std::endl;
265  }
266  return fCurrentTDCIndex;
267 
268 }
std::vector< std::vector< Int_t > > fTDC_Index
size_t fCurrentBankIndex
Name of this subsystem (the region).
static const UInt_t kMaxNumberOfSlotsPerROC
std::vector< std::vector< QwDetectorID > > fTDCPtrs
UInt_t kMaxNumberOfChannelsPerTDC

+ Here is the caller graph for this function:

Int_t QwDriftChamber::RegisterSubbank ( const UInt_t  bank_id)
protected

Definition at line 229 of file QwDriftChamber.cc.

References fCurrentBankIndex, VQwSubsystem::fCurrentROC_ID, fReferenceChannels, fReferenceData, fReferenceMaster, fTDC_Index, VQwSubsystem::GetSubbankIndex(), kMaxNumberOfSlotsPerROC, and VQwSubsystem::RegisterSubbank().

Referenced by QwDriftChamberHDC::LoadChannelMap(), and QwDriftChamberVDC::LoadChannelMap().

230 {
231  Int_t stat = VQwSubsystem::RegisterSubbank(bank_id);
232  fCurrentBankIndex = GetSubbankIndex(VQwSubsystem::fCurrentROC_ID, bank_id);//subbank id is directly related to the ROC
237  }
238  std::vector<Int_t> tmpvec(kMaxNumberOfSlotsPerROC,-1);
239  fTDC_Index.push_back(tmpvec);
240  std::cout<< "RegisterSubbank()"
241  <<" ROC " << (VQwSubsystem::fCurrentROC_ID)
242  <<" Subbank "<<bank_id
243  <<" with BankIndex "<<fCurrentBankIndex<<std::endl;
244  return stat;
245 }
Int_t GetSubbankIndex() const
Definition: VQwSubsystem.h:303
std::vector< std::vector< Int_t > > fTDC_Index
std::vector< std::vector< Double_t > > fReferenceMaster
size_t fCurrentBankIndex
Name of this subsystem (the region).
static const UInt_t kMaxNumberOfSlotsPerROC
std::vector< std::pair< Int_t, Int_t > > fReferenceChannels
std::vector< std::vector< Double_t > > fReferenceData
Int_t fCurrentROC_ID
ROC ID that is currently being processed.
Definition: VQwSubsystem.h:325
Int_t RegisterSubbank(const UInt_t bank_id)
Tell the object that it will decode data from this sub-bank in the ROC currently open for registratio...

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void QwDriftChamber::ReportConfiguration ( )

Definition at line 297 of file QwDriftChamber.cc.

References VQwSubsystem::fBank_IDs, VQwSubsystem::fROC_IDs, fTDCPtrs, VQwSubsystem::GetSubbankIndex(), VQwSubsystem::GetSubsystemName(), GetTDCIndex(), and kMaxNumberOfSlotsPerROC.

298 {
299  std::size_t i = 0;
300  std::size_t j = 0;
301 
302  Int_t roc_num = 0;
303  Int_t bank_flag = 0;
304  Int_t bank_index = 0;
305  Int_t tdc_index = 0;
306 
307  UInt_t slot_id = 0;
308  UInt_t vme_slot_num = 0;
309 
310  std::cout << "QwDriftChamber Region : "
311  << this->GetSubsystemName()
312  << "::ReportConfiguration fTDCPtrs.size() "
313  << fTDCPtrs.size() << std::endl;
314 
315 
316  for ( i=0; i<fROC_IDs.size(); i++ )
317  {
318 
319  roc_num = fROC_IDs.at(i);
320 
321  for ( j=0; j<fBank_IDs.at(i).size(); j++ )
322  {
323 
324  bank_flag = fBank_IDs.at(i).at(j);
325  if(bank_flag == 0) continue;
326  // must be uncommented if one doesn't define "bank_flag" in a CRL file
327  // but, now we use "bank_flag" in our crl files, thus skip to print
328  // unnecessary things on a screen
329  // Monday, August 30 14:45:34 EDT 2010, jhlee
330 
331  bank_index = GetSubbankIndex(roc_num, bank_flag);
332 
333  std::cout << "ROC [index, Num]["
334  << i
335  << ","
336  << std::setw(2) << roc_num
337  << "]"
338  << " Bank [index,id]["
339  << bank_index
340  << ","
341  << bank_flag
342  << "]"
343  << std::endl;
344 
345  for ( slot_id=2; slot_id<kMaxNumberOfSlotsPerROC; slot_id++ )
346  {
347  // slot id starts from 2, because 0 and 1 are used for CPU and TI.
348  // Tuesday, August 31 10:57:07 EDT 2010, jhlee
349 
350  tdc_index = GetTDCIndex(bank_index, slot_id);
351 
352  vme_slot_num = slot_id;
353 
354  std::cout << " "
355  << "Slot [id, VME num] ["
356  << std::setw(2) << slot_id
357  << ","
358  << std::setw(2) << vme_slot_num
359  << "]";
360  if ( tdc_index == -1 ) {
361  std::cout << " "
362  << "Unused in VDC"
363  << std::endl;
364  }
365  else {
366  std::cout << " "
367  << "F1TDC index "
368  << tdc_index << std::endl;
369  }
370  }
371  }
372  }
373 
374  return;
375 }
Int_t GetSubbankIndex() const
Definition: VQwSubsystem.h:303
static const UInt_t kMaxNumberOfSlotsPerROC
std::vector< std::vector< QwDetectorID > > fTDCPtrs
std::vector< std::vector< UInt_t > > fBank_IDs
Vector of Bank IDs per ROC ID associated with this subsystem.
Definition: VQwSubsystem.h:331
Int_t GetTDCIndex(size_t bank_index, size_t slot_num) const
std::vector< UInt_t > fROC_IDs
Vector of ROC IDs associated with this subsystem.
Definition: VQwSubsystem.h:329
TString GetSubsystemName() const
Definition: VQwSubsystem.h:93

+ Here is the call graph for this function:

virtual void QwDriftChamber::SubtractReferenceTimes ( )
pure virtual

Implemented in QwDriftChamberVDC, and QwDriftChamberHDC.

virtual void QwDriftChamber::SubtractWireTimeOffset ( )
protectedpure virtual

Implemented in QwDriftChamberVDC, and QwDriftChamberHDC.

Field Documentation

size_t QwDriftChamber::fCurrentBankIndex
protected
Int_t QwDriftChamber::fCurrentSlot
protected
Int_t QwDriftChamber::fCurrentTDCIndex
protected
std::vector< std::vector< UInt_t > > QwDriftChamber::fDirectionData
protected
MQwF1TDC QwDriftChamber::fF1TDCDecoder
protected

Definition at line 162 of file QwDriftChamber.h.

Referenced by ProcessEvBuffer(), and QwDriftChamber().

Int_t QwDriftChamber::fNumberOfTDCs
protected

Definition at line 143 of file QwDriftChamber.h.

Referenced by ClearAllBankRegistrations(), QwDriftChamber(), and RegisterSlotNumber().

bool QwDriftChamber::fPrintF1TDCConfiguration = true
staticprotected

Definition at line 98 of file QwDriftChamber.h.

Referenced by DefineOptions(), and ProcessConfigurationBuffer().

std::vector< std::pair<Int_t, Int_t> > QwDriftChamber::fReferenceChannels
protected

Definition at line 147 of file QwDriftChamber.h.

Referenced by LinkReferenceChannel(), and RegisterSubbank().

std::vector< std::vector<Double_t> > QwDriftChamber::fReferenceData
protected
std::vector< std::vector<Double_t> > QwDriftChamber::fReferenceMaster
protected
TString QwDriftChamber::fRegion
protected

Definition at line 127 of file QwDriftChamber.h.

std::vector< std::vector<Int_t> > QwDriftChamber::fTDC_Index
protected
const Int_t QwDriftChamber::kCodaMasterPlaneNumber = 98
staticprotected
UInt_t QwDriftChamber::kMaxNumberOfChannelsPerTDC
protected

Definition at line 140 of file QwDriftChamber.h.

Referenced by QwDriftChamber(), and RegisterSlotNumber().

const UInt_t QwDriftChamber::kMaxNumberOfSlotsPerROC = 21
staticprotected

The documentation for this class was generated from the following files: