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