CbmRoot
CbmRichDigitizer Class Referenceabstract

Class for producing RICH digis from from MCPoints. More...

#include <CbmRichDigitizer.h>

Inheritance diagram for CbmRichDigitizer:
[legend]
Collaboration diagram for CbmRichDigitizer:
[legend]

Public Types

typedef std::pair< std::unique_ptr< CbmRichDigi >, std::unique_ptr< CbmMatch > > Data
 Short for data to be handled (pair of digi and match) More...
 

Public Member Functions

 CbmRichDigitizer ()
 Default constructor. More...
 
virtual ~CbmRichDigitizer ()
 Destructor. More...
 
ECbmModuleId GetSystemId () const
 Detector system ID. More...
 
virtual InitStatus Init ()
 Inherited from FairTask. More...
 
virtual void Exec (Option_t *option)
 Inherited from FairTask. More...
 
virtual void Finish ()
 Inherited from FairTask. More...
 
void SetCrossTalkProbability (Double_t crosstalk)
 Set crosstalk probability. More...
 
void SetDetectorType (CbmRichPmtTypeEnum detType)
 Set detector type. More...
 
void SetNoiseDigiRate (Double_t noise)
 noise rate per McRichPoint / per pixel / per second : hofNoiseDigis = nofRichPoints * nofPixels * dT(50 ns) * (fNoiseDigiRate / 1.e9); More...
 
void SetCollectionEfficiency (Double_t collEff)
 Set collection efficiency for photoelectrons in PMT optics. More...
 
void SetTimeResolution (Double_t dt)
 Set additional smearing of MC Points due to light scattering in mirror. More...
 
void SetPixelDeadTime (Double_t dt)
 Set Pixel dead time. More...
 
void SetMaxNofHitsPerPmtCut (Double_t nofHits)
 Set Maximum nimber of hits per PMT cut. More...
 
void SetDoZShift (Bool_t doZShift)
 Set if you want to shift z MC point value (workaround for GEANT4). More...
 
Bool_t CheckOutput ()
 Check the output for being time-sorted. More...
 
void ClearOutput ()
 Clear the output arrays. More...
 
ULong64_t FillTimeSlice (CbmTimeSlice *timeSlice)
 Move data from the DaqBuffer into the current time slice. More...
 
ULong64_t FillTimeSlice (CbmTimeSlice *timeSlice, Double_t fillTime)
 Move data from the DaqBuffer into the current time slice. More...
 
ULong64_t GetDaqBufferSize () const
 Size of DAQ buffer @value Number of data in the DAQ buffer. More...
 
virtual ULong64_t GetDaqBufferSize () const =0
 Size of DAQ buffer @value Number of data in the DAQ buffer. More...
 
std::string GetDaqBufferStatus () const
 Debug output of DAQ buffer status @value String with status of DAQ buffer. More...
 
virtual std::string GetDaqBufferStatus () const =0
 Status of DAQ buffer @value Status string of the DAQ buffer. More...
 
Double_t GetDaqBufferTimeFirst () const
 Time stamp of first data in the DAQ buffer @value Time stamp of first data in the DAQ buffer. More...
 
virtual Double_t GetDaqBufferTimeFirst () const =0
 Time of first datum in DAQ buffer @value Time of first datum in DAQ buffer. More...
 
Double_t GetDaqBufferTimeLast () const
 Time stamp of last data in the DAQ buffer @value Time stamp of last data in the DAQ buffer. More...
 
virtual Double_t GetDaqBufferTimeLast () const =0
 Time of last datum in DAQ buffer @value Time of last datum in DAQ buffer. More...
 
void RegisterOutput ()
 Register the output arrays. More...
 
void SendData (CbmRichDigi *digi, CbmMatch *match=nullptr)
 Send a digi and the corresponding match object to the DAQ. More...
 
virtual void FillCustomData (Double_t, Bool_t=kTRUE)
 Fill custom data into time slice. More...
 
void GetEventInfo ()
 Get event information. More...
 
Double_t GetEventTime () const
 Current event time @value Start time of current event [ns]. More...
 
void SetCreateMatches (Bool_t choice=kTRUE)
 Set creation of links to MC. More...
 
void SetEventMode (Bool_t choice=kTRUE)
 Set event-by-event mode. More...
 
void SetProduceNoise (Bool_t choice=kTRUE)
 Set production of inter-event noise. More...
 

Protected Attributes

Bool_t fEventMode
 
Bool_t fProduceNoise
 Flag for event-by-event mode. More...
 
Bool_t fCreateMatches
 Flag for production of inter-event noise. More...
 
Int_t fCurrentInput
 Flag for creation of links to MC. More...
 
Int_t fCurrentEvent
 Number of current input. More...
 
Int_t fCurrentMCEntry
 Number of current MC event. More...
 
Double_t fCurrentEventTime
 Number of current MC entry. More...
 

Private Member Functions

void AddCrossTalkDigis (CbmRichDigi *digi)
 
void AddNoiseDigis (Int_t eventNum, Int_t inputNum)
 
void ProcessPoint (CbmRichPoint *point, Int_t pointId, Int_t eventNum, Int_t inputNum)
 
Int_t AddDigisToOutputArray ()
 
Int_t ProcessMcEvent ()
 
void GenerateNoiseBetweenEvents (Double_t oldEventTime, Double_t newEventTime)
 
void AddDigi (Int_t address, Double_t time, const CbmLink &link)
 
 CbmRichDigitizer (const CbmRichDigitizer &)
 Copy constructor. More...
 
CbmRichDigitizeroperator= (const CbmRichDigitizer &)
 Assignment operator. More...
 
ULong64_t FillTimeSlice (CbmTimeSlice *timeSlice, Bool_t checkLimit, Double_t fillTime)
 Move data from the DaqBuffer into the current time slice. More...
 
 ClassDef (CbmDigitize, 1)
 

Private Attributes

Int_t fEventNum
 
TClonesArray * fRichPoints
 
TClonesArray * fRichDigis
 
TClonesArray * fRichDigiMatches
 
TClonesArray * fMcTracks
 
Double_t fNofPoints
 
Double_t fNofDigis
 
Double_t fTimeTot
 
CbmRichPmt fPmt
 
Double_t fCrossTalkProbability
 
Double_t fNoiseDigiRate
 
CbmRichPmtTypeEnum fDetectorType
 
Int_t fMaxNofHitsPerPmtCut
 
map< Int_t, pair< CbmRichDigi *, CbmMatch * > > fDataMap
 
Double_t fTimeResolution
 
Double_t fDarkRatePerPixel
 
Double_t fPixelDeadTime
 
map< Int_t, Double_t > fFiredPixelsMap
 
Bool_t fDoZShift
 
TString fBranchName
 Output branch name. More...
 
std::vector< CbmRichDigi > * fDigis
 
std::vector< CbmMatch > * fMatches
 Output array (Digi) More...
 
std::multimap< double, DatafDaqBuffer
 Output array (CbmMatch) More...
 

Detailed Description

Class for producing RICH digis from from MCPoints.

Author
S.Lebedev
Date
2015

Definition at line 36 of file CbmRichDigitizer.h.

Member Typedef Documentation

◆ Data

typedef std::pair<std::unique_ptr<CbmRichDigi >, std::unique_ptr<CbmMatch> > CbmDigitize< CbmRichDigi >::Data
inherited

Short for data to be handled (pair of digi and match)

Definition at line 43 of file CbmDigitize.h.

Constructor & Destructor Documentation

◆ CbmRichDigitizer() [1/2]

CbmRichDigitizer::CbmRichDigitizer ( )

Default constructor.

Definition at line 31 of file CbmRichDigitizer.cxx.

◆ ~CbmRichDigitizer()

CbmRichDigitizer::~CbmRichDigitizer ( )
virtual

Destructor.

Definition at line 53 of file CbmRichDigitizer.cxx.

◆ CbmRichDigitizer() [2/2]

CbmRichDigitizer::CbmRichDigitizer ( const CbmRichDigitizer )
private

Copy constructor.

Member Function Documentation

◆ AddCrossTalkDigis()

◆ AddDigi()

void CbmRichDigitizer::AddDigi ( Int_t  address,
Double_t  time,
const CbmLink link 
)
private

◆ AddDigisToOutputArray()

◆ AddNoiseDigis()

void CbmRichDigitizer::AddNoiseDigis ( Int_t  eventNum,
Int_t  inputNum 
)
private

◆ CheckOutput()

Bool_t CbmDigitize< CbmRichDigi >::CheckOutput
inlinevirtualinherited

Check the output for being time-sorted.

Implements CbmDigitizeBase.

Definition at line 63 of file CbmDigitize.h.

◆ ClassDef()

CbmDigitize< CbmRichDigi >::ClassDef ( CbmDigitize< CbmRichDigi ,
 
)
privateinherited

◆ ClearOutput()

void CbmDigitize< CbmRichDigi >::ClearOutput
inlinevirtualinherited

Clear the output arrays.

Implements CbmDigitizeBase.

Definition at line 84 of file CbmDigitize.h.

◆ Exec()

◆ FillCustomData()

virtual void CbmDigitizeBase::FillCustomData ( Double_t  ,
Bool_t  = kTRUE 
)
inlinevirtualinherited

Fill custom data into time slice.

Parameters
fillTimeTime until data can be filled
limitIf kTRUE, only data up to fillTime will be treated; otherwise, all.

This method allows the digitizer to implement additional functionality than writing digis and match objects. It will be called from CbmDaq.

Definition at line 68 of file CbmDigitizeBase.h.

◆ FillTimeSlice() [1/3]

ULong64_t CbmDigitize< CbmRichDigi >::FillTimeSlice ( CbmTimeSlice timeSlice)
inlinevirtualinherited

Move data from the DaqBuffer into the current time slice.

Parameters
timeSlicePointer to current time slice object @value Number of digi objects filled into the time slice.

For regular time slices, all data with time stamp within the interval of the current time slice are moved from the buffer to the time slice. For time slices of type kFlexible or kEvent, all data will be moved.

Implements CbmDigitizeBase.

Definition at line 101 of file CbmDigitize.h.

◆ FillTimeSlice() [2/3]

ULong64_t CbmDigitize< CbmRichDigi >::FillTimeSlice ( CbmTimeSlice timeSlice,
Bool_t  checkLimit,
Double_t  fillTime 
)
inlineprivateinherited

Move data from the DaqBuffer into the current time slice.

Parameters
timeSlicePointer to current time slice object
fillTimeTime up to which data will be moved [ns] @value Number of digi objects filled into the time slice.

For regular time slices, all data with time stamp within the interval of the current time slice are moved from the buffer to the time slice. For time slices of type kFlexible or kEvent, all data will be moved.

If checkLimit is selected, only data with time stamp less than fillTime are moved.

Definition at line 256 of file CbmDigitize.h.

◆ FillTimeSlice() [3/3]

ULong64_t CbmDigitize< CbmRichDigi >::FillTimeSlice ( CbmTimeSlice timeSlice,
Double_t  fillTime 
)
inlinevirtualinherited

Move data from the DaqBuffer into the current time slice.

Parameters
timeSlicePointer to current time slice object
fillTimeTime up to which data will be moved [ns] @value Number of digi objects filled into the time slice.

Move data with time stamp up to fillTime from the buffer to the time slice. For regular time slices, only data with time stamp within the time slice interval will be moved. For time slices of type kFlexible or kEvent, all data up to fillTime will be moved.

Implements CbmDigitizeBase.

Definition at line 118 of file CbmDigitize.h.

◆ Finish()

void CbmRichDigitizer::Finish ( )
virtual

Inherited from FairTask.

Definition at line 221 of file CbmRichDigitizer.cxx.

References fEventNum, fNofDigis, fNofPoints, and fTimeTot.

◆ GenerateNoiseBetweenEvents()

void CbmRichDigitizer::GenerateNoiseBetweenEvents ( Double_t  oldEventTime,
Double_t  newEventTime 
)
private

◆ GetDaqBufferSize() [1/2]

ULong64_t CbmDigitize< CbmRichDigi >::GetDaqBufferSize
inlineinherited

Size of DAQ buffer @value Number of data in the DAQ buffer.

Definition at line 128 of file CbmDigitize.h.

◆ GetDaqBufferSize() [2/2]

virtual ULong64_t CbmDigitizeBase::GetDaqBufferSize ( ) const
pure virtualinherited

Size of DAQ buffer @value Number of data in the DAQ buffer.

Implemented in CbmDigitize< Digi >.

◆ GetDaqBufferStatus() [1/2]

std::string CbmDigitize< CbmRichDigi >::GetDaqBufferStatus
inlineinherited

Debug output of DAQ buffer status @value String with status of DAQ buffer.

Definition at line 136 of file CbmDigitize.h.

◆ GetDaqBufferStatus() [2/2]

virtual std::string CbmDigitizeBase::GetDaqBufferStatus ( ) const
pure virtualinherited

Status of DAQ buffer @value Status string of the DAQ buffer.

Implemented in CbmDigitize< Digi >.

◆ GetDaqBufferTimeFirst() [1/2]

Double_t CbmDigitize< CbmRichDigi >::GetDaqBufferTimeFirst
inlineinherited

Time stamp of first data in the DAQ buffer @value Time stamp of first data in the DAQ buffer.

Definition at line 150 of file CbmDigitize.h.

◆ GetDaqBufferTimeFirst() [2/2]

virtual Double_t CbmDigitizeBase::GetDaqBufferTimeFirst ( ) const
pure virtualinherited

Time of first datum in DAQ buffer @value Time of first datum in DAQ buffer.

Implemented in CbmDigitize< Digi >.

◆ GetDaqBufferTimeLast() [1/2]

Double_t CbmDigitize< CbmRichDigi >::GetDaqBufferTimeLast
inlineinherited

Time stamp of last data in the DAQ buffer @value Time stamp of last data in the DAQ buffer.

Definition at line 161 of file CbmDigitize.h.

◆ GetDaqBufferTimeLast() [2/2]

virtual Double_t CbmDigitizeBase::GetDaqBufferTimeLast ( ) const
pure virtualinherited

Time of last datum in DAQ buffer @value Time of last datum in DAQ buffer.

Implemented in CbmDigitize< Digi >.

◆ GetEventInfo()

void CbmDigitizeBase::GetEventInfo ( )
inherited

Get event information.

MC input number, entry number and event time are taken from FairEventHeader and stored in the private data members for convenience. Note that the MC entry number need not coincide with the event number, for instance if the run does not start with the first MC entry, or in the case of mixed MC inputs to digitization.

Definition at line 48 of file CbmDigitizeBase.cxx.

References CbmDigitizeBase::fCurrentEvent, CbmDigitizeBase::fCurrentEventTime, CbmDigitizeBase::fCurrentInput, and CbmDigitizeBase::fCurrentMCEntry.

Referenced by CbmMvdDigitizer::Exec(), CbmPsdSimpleDigitizer::Exec(), Exec(), CbmTofDigitize::Exec(), CbmMuchDigitizeGem::Exec(), CbmTrdDigitizer::Exec(), and CbmStsDigitize::Exec().

◆ GetEventTime()

Double_t CbmDigitizeBase::GetEventTime ( ) const
inlineinherited

Current event time @value Start time of current event [ns].

Definition at line 107 of file CbmDigitizeBase.h.

References CbmDigitizeBase::fCurrentEventTime.

◆ GetSystemId()

ECbmModuleId CbmRichDigitizer::GetSystemId ( ) const
inlinevirtual

Detector system ID.

Returns
kRich

Implements CbmDigitizeBase.

Definition at line 52 of file CbmRichDigitizer.h.

References kRich.

◆ Init()

InitStatus CbmRichDigitizer::Init ( )
virtual

◆ operator=()

CbmRichDigitizer& CbmRichDigitizer::operator= ( const CbmRichDigitizer )
private

Assignment operator.

◆ ProcessMcEvent()

◆ ProcessPoint()

void CbmRichDigitizer::ProcessPoint ( CbmRichPoint point,
Int_t  pointId,
Int_t  eventNum,
Int_t  inputNum 
)
private

◆ RegisterOutput()

void CbmDigitize< CbmRichDigi >::RegisterOutput
inlineinherited

Register the output arrays.

Arrays for the digis and the match objects will be created and registered as output to the ROOT tree. The current implementation uses std::vector as container.

Definition at line 175 of file CbmDigitize.h.

◆ SendData()

void CbmDigitize< CbmRichDigi >::SendData ( CbmRichDigi digi,
CbmMatch match = nullptr 
)
inlineinherited

Send a digi and the corresponding match object to the DAQ.

Parameters
digiPointer to digi object (template parameter)
matchPointer to match object

TODO: The interface should be unique pointers, meaning that the digitisers have to create objects by unique pointers from the start.

Definition at line 219 of file CbmDigitize.h.

◆ SetCollectionEfficiency()

void CbmRichDigitizer::SetCollectionEfficiency ( Double_t  collEff)
inline

Set collection efficiency for photoelectrons in PMT optics.

Definition at line 91 of file CbmRichDigitizer.h.

◆ SetCreateMatches()

void CbmDigitizeBase::SetCreateMatches ( Bool_t  choice = kTRUE)
inlineinherited

Set creation of links to MC.

Parameters
ChoiceIf kTRUE, the match objects will be created

Definition at line 143 of file CbmDigitizeBase.h.

References CbmDigitizeBase::fCreateMatches.

Referenced by CbmDigitization::Run().

◆ SetCrossTalkProbability()

void CbmRichDigitizer::SetCrossTalkProbability ( Double_t  crosstalk)
inline

Set crosstalk probability.

Definition at line 73 of file CbmRichDigitizer.h.

◆ SetDetectorType()

void CbmRichDigitizer::SetDetectorType ( CbmRichPmtTypeEnum  detType)
inline

Set detector type.

Definition at line 80 of file CbmRichDigitizer.h.

◆ SetDoZShift()

void CbmRichDigitizer::SetDoZShift ( Bool_t  doZShift)
inline

Set if you want to shift z MC point value (workaround for GEANT4).

Definition at line 121 of file CbmRichDigitizer.h.

◆ SetEventMode()

void CbmDigitizeBase::SetEventMode ( Bool_t  choice = kTRUE)
inlineinherited

Set event-by-event mode.

Parameters
ChoiceIf kTRUE, the digitizer will run in event-by-event mode

Definition at line 149 of file CbmDigitizeBase.h.

References CbmDigitizeBase::fEventMode.

Referenced by CbmDigitization::Run().

◆ SetMaxNofHitsPerPmtCut()

void CbmRichDigitizer::SetMaxNofHitsPerPmtCut ( Double_t  nofHits)
inline

Set Maximum nimber of hits per PMT cut.

Definition at line 114 of file CbmRichDigitizer.h.

◆ SetNoiseDigiRate()

void CbmRichDigitizer::SetNoiseDigiRate ( Double_t  noise)
inline

noise rate per McRichPoint / per pixel / per second : hofNoiseDigis = nofRichPoints * nofPixels * dT(50 ns) * (fNoiseDigiRate / 1.e9);

Definition at line 86 of file CbmRichDigitizer.h.

◆ SetPixelDeadTime()

void CbmRichDigitizer::SetPixelDeadTime ( Double_t  dt)
inline

Set Pixel dead time.

Definition at line 109 of file CbmRichDigitizer.h.

◆ SetProduceNoise()

void CbmDigitizeBase::SetProduceNoise ( Bool_t  choice = kTRUE)
inlineinherited

Set production of inter-event noise.

Parameters
ChoiceIf kTRUE, the digitizer will produce noise

Definition at line 155 of file CbmDigitizeBase.h.

References CbmDigitizeBase::fProduceNoise.

Referenced by CbmDigitization::Run().

◆ SetTimeResolution()

void CbmRichDigitizer::SetTimeResolution ( Double_t  dt)
inline

Set additional smearing of MC Points due to light scattering in mirror.

Set Time resolution.

Definition at line 103 of file CbmRichDigitizer.h.

Member Data Documentation

◆ fBranchName

TString CbmDigitize< CbmRichDigi >::fBranchName
privateinherited

Output branch name.

Definition at line 230 of file CbmDigitize.h.

◆ fCreateMatches

◆ fCrossTalkProbability

Double_t CbmRichDigitizer::fCrossTalkProbability
private

Definition at line 138 of file CbmRichDigitizer.h.

Referenced by AddCrossTalkDigis().

◆ fCurrentEvent

◆ fCurrentEventTime

◆ fCurrentInput

◆ fCurrentMCEntry

◆ fDaqBuffer

std::multimap<double, Data> CbmDigitize< CbmRichDigi >::fDaqBuffer
privateinherited

Output array (CbmMatch)

DAQ buffer. Here, the digis and matches are buffered until they are filled into the time slice output (ROOT branch). The map key is the digi time.

Definition at line 239 of file CbmDigitize.h.

◆ fDarkRatePerPixel

Double_t CbmRichDigitizer::fDarkRatePerPixel
private

Definition at line 150 of file CbmRichDigitizer.h.

Referenced by GenerateNoiseBetweenEvents().

◆ fDataMap

map<Int_t, pair<CbmRichDigi*, CbmMatch*> > CbmRichDigitizer::fDataMap
private

Definition at line 147 of file CbmRichDigitizer.h.

Referenced by AddDigi(), AddDigisToOutputArray(), and Exec().

◆ fDetectorType

CbmRichPmtTypeEnum CbmRichDigitizer::fDetectorType
private

Definition at line 142 of file CbmRichDigitizer.h.

Referenced by ProcessPoint().

◆ fDigis

std::vector<CbmRichDigi >* CbmDigitize< CbmRichDigi >::fDigis
privateinherited

Definition at line 231 of file CbmDigitize.h.

◆ fDoZShift

Bool_t CbmRichDigitizer::fDoZShift
private

Definition at line 155 of file CbmRichDigitizer.h.

Referenced by ProcessPoint().

◆ fEventMode

◆ fEventNum

Int_t CbmRichDigitizer::fEventNum
private

Definition at line 125 of file CbmRichDigitizer.h.

Referenced by Exec(), and Finish().

◆ fFiredPixelsMap

map<Int_t, Double_t> CbmRichDigitizer::fFiredPixelsMap
private

Definition at line 153 of file CbmRichDigitizer.h.

Referenced by AddDigi(), and Init().

◆ fMatches

std::vector<CbmMatch>* CbmDigitize< CbmRichDigi >::fMatches
privateinherited

Output array (Digi)

Definition at line 232 of file CbmDigitize.h.

◆ fMaxNofHitsPerPmtCut

Int_t CbmRichDigitizer::fMaxNofHitsPerPmtCut
private

Definition at line 144 of file CbmRichDigitizer.h.

Referenced by AddDigisToOutputArray().

◆ fMcTracks

TClonesArray* CbmRichDigitizer::fMcTracks
private

Definition at line 130 of file CbmRichDigitizer.h.

Referenced by Init(), and ProcessPoint().

◆ fNofDigis

Double_t CbmRichDigitizer::fNofDigis
private

Definition at line 133 of file CbmRichDigitizer.h.

Referenced by Exec(), and Finish().

◆ fNofPoints

Double_t CbmRichDigitizer::fNofPoints
private

Definition at line 132 of file CbmRichDigitizer.h.

Referenced by Exec(), and Finish().

◆ fNoiseDigiRate

Double_t CbmRichDigitizer::fNoiseDigiRate
private

Definition at line 140 of file CbmRichDigitizer.h.

Referenced by AddNoiseDigis().

◆ fPixelDeadTime

Double_t CbmRichDigitizer::fPixelDeadTime
private

Definition at line 151 of file CbmRichDigitizer.h.

Referenced by AddDigi().

◆ fPmt

CbmRichPmt CbmRichDigitizer::fPmt
private

Definition at line 136 of file CbmRichDigitizer.h.

Referenced by ProcessPoint().

◆ fProduceNoise

Bool_t CbmDigitizeBase::fProduceNoise
protectedinherited

Flag for event-by-event mode.

Definition at line 160 of file CbmDigitizeBase.h.

Referenced by Exec(), CbmStsDigitize::InitParams(), and CbmDigitizeBase::SetProduceNoise().

◆ fRichDigiMatches

TClonesArray* CbmRichDigitizer::fRichDigiMatches
private

Definition at line 129 of file CbmRichDigitizer.h.

◆ fRichDigis

TClonesArray* CbmRichDigitizer::fRichDigis
private

Definition at line 128 of file CbmRichDigitizer.h.

◆ fRichPoints

TClonesArray* CbmRichDigitizer::fRichPoints
private

Definition at line 127 of file CbmRichDigitizer.h.

Referenced by AddNoiseDigis(), Init(), and ProcessMcEvent().

◆ fTimeResolution

Double_t CbmRichDigitizer::fTimeResolution
private

Definition at line 149 of file CbmRichDigitizer.h.

Referenced by ProcessPoint().

◆ fTimeTot

Double_t CbmRichDigitizer::fTimeTot
private

Definition at line 134 of file CbmRichDigitizer.h.

Referenced by Exec(), and Finish().


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