]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSDigitMaker.cxx
New classes to make AliHLTPHOSDigits online (Oystein)
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSDigitMaker.cxx
1
2 #include "AliHLTPHOSDigitMaker.h"
3 #include "AliHLTPHOSDigit.h"
4 #include "AliHLTPHOSConstants.h"
5 #include "AliHLTPHOSBaseline.h"
6 #include "TTree.h"
7 #include "TBranch.h"
8 #include "TClonesArray.h"
9 #include "TFile.h"
10
11 #include "AliHLTPHOSValidCellDataStruct.h"
12 #include "AliHLTPHOSRcuCellEnergyDataStruct.h"
13 //#include "AliHLTPHOSDigitContainerStruct.h"
14 #include "AliHLTPHOSDigitDataStruct.h"
15 #include "AliHLTPHOSDigitContainerDataStruct.h"
16        
17
18 //ClassImp(AliHLTPHOSDigitMaker);
19
20 using namespace PhosHLTConst;
21
22 AliHLTPHOSDigitMaker::AliHLTPHOSDigitMaker() :
23   AliHLTPHOSBase(),
24   fCellDataPtr(0),
25   // fDigitContainerStructPtr(0),
26   fDigitArrayPtr(0),
27   fDigitPtr(0),
28   // fDigitStructPtr(0),
29   fDigitCount(0), 
30   fDigitThreshold(0),
31   fNrPresamples(10)
32 {
33  
34 }
35   
36 AliHLTPHOSDigitMaker::~AliHLTPHOSDigitMaker() 
37 {
38
39 }
40
41 Int_t
42 AliHLTPHOSDigitMaker::MakeDigits(AliHLTPHOSRcuCellEnergyDataStruct* rcuData)
43 {
44
45   Int_t i = 0;
46   Int_t j = 0;
47   Int_t x = -1;
48   Int_t z = -1;
49   Float_t amplitude = 0;
50   for ( i = 0; i < rcuData->fCnt; i++ )
51   {
52     fCellDataPtr = & ( rcuData->fValidData[i] );
53     x = fCellDataPtr->fX + rcuData->fRcuX * N_XCOLUMNS_RCU;
54     z = fCellDataPtr->fZ + rcuData->fRcuZ * N_ZROWS_RCU;
55     amplitude = fCellDataPtr->fEnergy;
56     if ( amplitude > fDigitThreshold )
57       {
58         fDigitStructPtr = & ( fDigitContainerStructPtr->fDigitDataStruct[j + fDigitCount] );
59         fDigitStructPtr->fX = ( fCellDataPtr->fX + rcuData->fRcuX * N_XCOLUMNS_RCU );
60         fDigitStructPtr->fZ = ( fCellDataPtr->fZ + rcuData->fRcuZ * N_ZROWS_RCU );
61         fDigitStructPtr->fAmplitude = ( amplitude );
62         fDigitStructPtr->fTime = ( fCellDataPtr->fTime );
63         fDigitStructPtr->fGain = ( fCellDataPtr->fGain );
64         fDigitStructPtr->SetRawData ( fCellDataPtr->fData );
65         fDigitStructPtr->fCrazyness = ( fCellDataPtr->fCrazyness );
66         fDigitStructPtr->fBaseline = -1;
67         j++;
68       }
69   }
70   fDigitCount += j;
71   return fDigitCount; 
72 }
73 /*
74 Int_t
75 AliHLTPHOSDigitMaker::SetDigitsTree(TTree *tree)
76 {
77   TBranch * digBranch = tree->Branch("digits","TClonesArray",fDebugDigitArrayPtr); 
78 }
79 */
80
81 void
82 AliHLTPHOSDigitMaker::Reset()
83
84  // fDigitArrayPtr->Clear();
85   fDigitCount = 0;
86 }
87
88   
89
90  
91