#ifndef PNDMVDSTRIPHITPRODUCER_H #define PNDMVDSTRIPHITPRODUCER_H #include "PndSdsStripHitProducer.h" //! Hit Producer Task for strip detectors /** * The choice of the parameters used for Digitization depends on the invocation of the * different constructors of this task. Instantiating by the default constructor forces * the digitisation parameters initialized from the DigiPar-Database. On the other hand these * parameters may be overridden by invoking the constructor: * @code PndMvdStripHitProducer(Double_t, Double_t, Double_t, Double_t, TVector2, TVector2, * Int_t, Int_t, Int_t, Double_t, Double_t) @endcode \n * Basically, the sensors are thought to be rectangular (even if they are not). * Knowing the origin of the wafer, the strips can be described by an angle (orientation), * their separation with respect to each other (pitch) and one point that is known to be part of the first strip (anchor point).\n * The numbering scheme is as follows (assuming 128 channels per FE): \n *
strip index frontend # side
0 0 top
<- Top Anchor
1 0 top
... 0 top
127 0 top
128 1 top
... 1 top
255 1 top
256 2 top
... ... top
topNrFE*128-1 topNrFE-1 top
topNrFE*128 topNrFE bottom
<- Bottom Anchor
... topNrFE bottom
topNrFE*128+127 topNrFE bottom
topNrFE*128+128 topNrFE+1 bottom
... ... bottom
(topNrFE+botNrFE)*128-1 topNrFE+botNrFE-1 bottom
* \n * The numbering starts from the strip containing the anchor point following the direction * orthogonal to the strips in mathematically positive sense (along x-axis in positive direction, * if the strip orientation equals 90 degrees). * \n * @author HG Zaunick * **/ class PndMvdStripHitProducer : public PndSdsStripHitProducer { public: /** Default constructor \n * creates object with parameters taken implicitly from DigiPar-File **/ PndMvdStripHitProducer(); /** * creates object with explicit assignment of Digitization parameters * * @param topPitch strip pitch on top side (cm) * @param botPitch strip pitch on bottom side (cm) * @param ori Orientation angle of strips on top side (x-y-plane) * @param skew Orientation angle of bottom strips relative to top strips * @param topAnchor Anchor Point on top side. The coordinates of this point are to be in centimeters * from the center (0,0) of the sensor. * @param botAnchor Anchor Point on bottom side. Same as above * @param nrTopFE number of frontends attached to the top sensor side * @param nrBotFE number of frontends attached to the bottom sensor side * @param nrFECh number of channels of one single frontend * @param threshold charge threshold (electrons) * @param noise equiv. noise charge (electrons) */ PndMvdStripHitProducer(Double_t topPitch, Double_t botPitch, Double_t ori, Double_t skew, TVector2 topAnchor, TVector2 botAnchor, Int_t nrTopFE, Int_t nrBotFE, Int_t nrFECh, Double_t threshold, Double_t noise, TString sensorType="Rect", TString feType="APV25"); /** Destructor **/ virtual ~PndMvdStripHitProducer(); virtual void SetBranchNames(TString inBranchname, TString outBranchname, TString folderName); virtual void SetBranchNames(); ClassDef(PndMvdStripHitProducer,5); }; #endif