PandaRoot
PndLmdDigiProducer.h
Go to the documentation of this file.
1 /*
2  * PndLmdDigiProducer.h
3  *
4  * Created on: Aug 10, 2009
5  * Author: huagen
6  */
7 
8 #ifndef PNDLMDDIGIPRODUCER_H_
9 #define PNDLMDDIGIPRODUCER_H_
10 
11 #include "PndLmdMCPoint.h"
12 #include "PndLmdCalStrip.h"
13 #include "PndLmdDigiPara.h"
14 #include "PndLmdDigiStrips.h"
15 #include "PndLmdGeoHandling.h"
16 #include "PndLmdContFact.h"
17 #include "PndDetectorList.h"
18 
19 #include "FairTask.h"
20 
21 #include <vector>
22 #include <map>
23 #include <string>
24 #include <cmath>
25 #include <iostream>
26 #include "TClonesArray.h"
27 
28 class TClonesArray;
29 
30 // this class shall implement the event digitization process
31 // by means of calling the related class
32 class PndLmdDigiProducer : public FairTask {
33  public:
34  // default constructor
36  // constructor which will take the parameters from Digi_Par file, for the two segments sensor
37  PndLmdDigiProducer(Int_t k, SensorSegment segment = kLEFT);
38  // constructor for the curved strip sensor
40  // destructor
42 
43  virtual void SetParContainers();
44  // virtual void Init methods
45  virtual InitStatus Init();
46  virtual InitStatus ReInit();
47 
48  // virtual method Exec()
49  virtual void Exec(Option_t *opt);
50 
51  void AddDigi(Int_t &iStrip, Int_t iPoint, Int_t detID, TString detName, Int_t fe, Int_t channel, Double_t charge);
52  void SetParamSet();
53 
54  private:
55  // digitization parameters
56  PndLmdDigiPara *fDigiParTrap;
57  PndLmdDigiPara *fCurrentDigiPar;
58 
59  PndLmdDigiStrips *temp;
60 
61  // calculator objects
62  PndLmdCalStrip *fStripCalTrapLeft;
63  PndLmdCalStrip *fStripCalTrapRight;
64  PndLmdCalStrip *fCurrentStripCalLeft;
65  PndLmdCalStrip *fCurrentStripCalRight;
66 
67  PndLmdCalStrip *fStripCalTrapCircle;
68  PndLmdCalStrip *fCurrentStripCalCircle;
69 
70  SensorSegment fSegment;
71  SensorSide fSide;
72 
73  TString fBranchName;
74 
75  // input array of MC points
76  TClonesArray *fPointArray;
77  // output array of Digis
78  TClonesArray *fStripArray;
79 
80  void Register();
81  void ReSet();
82  void ProduceHits();
83 
84  Bool_t SelectSensorParams(TString detname);
85 
86  PndLmdGeoHandling *fGeoH; // convert the point coordinates between local and global
87 
88  ClassDef(PndLmdDigiProducer, 5);
89 };
90 
91 #endif /* PNDLMDDIGIPRODUCER_H_ */
virtual InitStatus ReInit()
virtual InitStatus Init()
void AddDigi(Int_t &iStrip, Int_t iPoint, Int_t detID, TString detName, Int_t fe, Int_t channel, Double_t charge)
SensorSide
virtual void Exec(Option_t *opt)
virtual void SetParContainers()