source: JEM-EUSO/esaf_cc_at_lal/packages/simulation/detector/electronics/src/ERunParsPmtsFiller.cc @ 114

Last change on this file since 114 was 114, checked in by moretto, 11 years ago

actual version of ESAF at CCin2p3

File size: 3.9 KB
Line 
1// $Id: ERunParsPmtsFiller.cc 2920 2011-06-11 06:46:41Z mabl $
2// Alessandro Thea created Feb, 18 2004
3
4/*****************************************************************************
5 * ESAF: Euso Simulation and Analysis Framework                              *
6 *                                                                           *
7 *  Id: ERunParsPmtsFiller                                                   *
8 *  Package: Electronics                                                     *
9 *  Coordinator: Marco.Pallavicini                                           *
10 *                                                                           *
11 *****************************************************************************/
12
13#include "ERunParsPmtsFiller.hh"
14#include "EusoElectronics.hh"
15#include "Photomultiplier.hh"
16#include "ERunParameters.hh"
17#include "PmtGeometry.hh"
18#include "FrontEndChip.hh"
19#include "MacroCell.hh"
20#include "Config.hh"
21using namespace sou;
22
23ClassImp(ERunParsPmtsFiller)
24
25    //______________________________________________________________________________
26ERunParsPmtsFiller::ERunParsPmtsFiller( EusoElectronics* ee ){
27    //
28    // Constructor
29    //
30    fElectronics = ee;
31
32 }
33
34//______________________________________________________________________________
35ERunParsPmtsFiller::~ERunParsPmtsFiller() {
36    //
37    // Destructor
38    //
39}
40
41//______________________________________________________________________________
42void ERunParsPmtsFiller::Fill( ERunParameters* rpar ) {
43    //
44    // Fill
45    //
46
47    EPmtData& d = rpar->fPmtData;
48
49    // PmtGeometry static data
50    d.fPmtSide     = PmtGeometry::Side();
51    d.fPmtHeight   = PmtGeometry::Side();  //FIXME pmtgeo does
52                            // not contains pmt's height
53                            // at this time
54    d.fPadSide     = (PmtGeometry::Side()
55                      -2*PmtGeometry::DeadBorder()
56                      -(PmtGeometry::Rows()-1)
57                      *PmtGeometry::DeadInnerStrip())
58                      /PmtGeometry::Rows();
59    d.fPadGap      = PmtGeometry::DeadInnerStrip();
60    d.fBorderWidth = PmtGeometry::DeadBorder();
61    d.fNumPads     = PmtGeometry::NumPads();
62    d.fNumRows     = PmtGeometry::Rows();
63    d.fNumCols     = PmtGeometry::NumPads()
64                     /PmtGeometry::Rows();
65
66
67    Photomultiplier *pmt =  fElectronics->Pmt(0);
68    // Photomultiplier static members
69    d.fQuantum   = Photomultiplier::GetQuantum();
70    d.fGain      = Photomultiplier::GetGain();
71    d.fGainSigma = Photomultiplier::GetGainSigma();
72    d.fWidth     = Photomultiplier::GetWidth();
73    d.fGtuLength = Photomultiplier::GetGtuLength();
74
75    for ( Int_t i(0); i < fElectronics->NumPmt(); i++ ) {
76        pmt = fElectronics->Pmt(i);
77
78        rpar->fNumPmts++;
79        EPmtGeo* p = new( (*(rpar->fPmts))[rpar->fNumPmts-1]) EPmtGeo();
80
81        p->fStartUId = pmt->GetStartUniqueId();
82        p->fLastUId  = pmt->GetLastUniqueId();
83        p->fFee      = pmt->FrontEnd()->Id();
84        p->fEC       = pmt->ElemCell()->Id();
85        p->fMC       = pmt->Cell()->Id();
86        //FIXME: these are local fs coordinates
87        //add FocalPlane::fPos.Z
88        p->fCenterX  = pmt->Geometry()->Center().X();
89        p->fCenterY  = pmt->Geometry()->Center().Y();
90        p->fCenterZ  = pmt->Geometry()->Center().Z();
91        p->fNormX    = pmt->Geometry()->Normal().X();
92        p->fNormY    = pmt->Geometry()->Normal().Y();
93        p->fNormZ    = pmt->Geometry()->Normal().Z();
94        p->fYAxisX   = pmt->Geometry()->GetY().X();
95        p->fYAxisY   = pmt->Geometry()->GetY().Y();
96        p->fYAxisZ   = pmt->Geometry()->GetY().Z();
97    }
98
99    // nightglow rates
100    rpar->fChipNightGlowRates.Set(fElectronics->NumElemCell());
101
102    for( Int_t i(0); i<fElectronics->NumElemCell(); i++) {
103        rpar->fChipNightGlowRates[i] = fElectronics->ElemCell(i)->FrontEnd()->GetNightGlowRate()*microsecond;
104        // cout << "filler " << rpar->fChipNightGlowRates[i] << endl;
105    }
106
107}
Note: See TracBrowser for help on using the repository browser.