LCOV - code coverage report
Current view: top level - HLT/CALO - AliHLTCaloTriggerRawDigitDataStruct.cxx (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 105 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 17 0.0 %

          Line data    Source code
       1             : #include <AliHLTCaloTriggerRawDigitDataStruct.h>
       2             : #include <cstring>
       3             : 
       4             : 
       5             : void InitializeRawDigit(AliHLTCaloTriggerRawDigitDataStruct &rawdigit){
       6           0 :   rawdigit.fID = 0;
       7           0 :   rawdigit.fTriggerBits = 0;
       8           0 :   rawdigit.fL1TimeSum = 0;
       9           0 :   rawdigit.fNL0Times = 0;
      10           0 :   memset(rawdigit.fL0Times, 0, sizeof(rawdigit.fL0Times));
      11           0 :   rawdigit.fNTimeSamples = 0;
      12           0 :   memset(rawdigit.fTimeSamples, 0, sizeof(rawdigit.fTimeSamples));
      13           0 : }
      14             : 
      15             : void SetRawDigitID(AliHLTCaloTriggerRawDigitDataStruct &digit, Int_t id){
      16           0 :   digit.fID = id;
      17           0 : }
      18             : 
      19             : void SetTriggerBit(AliHLTCaloTriggerRawDigitDataStruct &dig, Int_t bit, Int_t mode){
      20           0 :   dig.fTriggerBits |= 1 << (bit + mode * kTriggerTypeEnd);
      21           0 : }
      22             : 
      23             : void SetL0Time(AliHLTCaloTriggerRawDigitDataStruct &dig, Int_t i) {
      24             :   bool hasfound(false);
      25           0 :   for (Int_t j = 0; j < dig.fNL0Times; j++) {
      26           0 :     if (i == dig.fL0Times[j]) {
      27             :       hasfound = true;
      28           0 :       break;
      29             :     }
      30             :   }
      31           0 :   if(hasfound) return;
      32           0 :   dig.fNL0Times++;
      33           0 :   if (dig.fNL0Times > 9) return;
      34           0 :   dig.fL0Times[dig.fNL0Times - 1] = i;
      35           0 : }
      36             : 
      37             : void SetL1TimeSum(AliHLTCaloTriggerRawDigitDataStruct &dig, Int_t l1timeSum){
      38           0 :   dig.fL1TimeSum = l1timeSum;
      39           0 : }
      40             : 
      41             : void SetL1SubRegion(AliHLTCaloTriggerRawDigitDataStruct &dig, Int_t l1subregion){
      42           0 :   dig.fL1SubRegion = l1subregion;
      43           0 : }
      44             : 
      45             : void SetTimeSamples(AliHLTCaloTriggerRawDigitDataStruct &dig, Int_t nsamples, Int_t *samples){
      46           0 :   memcpy(dig.fTimeSamples, samples, sizeof(Int_t) * 15);
      47           0 :   dig.fNTimeSamples = nsamples;
      48           0 : }
      49             : 
      50             : Int_t GetRawDigitID(const AliHLTCaloTriggerRawDigitDataStruct &dig) {
      51           0 :   return dig.fID;
      52             : }
      53             : 
      54             : Bool_t GetL0Time(const AliHLTCaloTriggerRawDigitDataStruct &dig, Int_t i, Int_t& time) {
      55           0 :   if (i < 0 || i > dig.fNL0Times) {
      56           0 :     return kFALSE;
      57             :   }
      58           0 :   time = dig.fL0Times[i];
      59           0 :   return kTRUE;
      60           0 : }
      61             : 
      62             : void GetL0Times(const AliHLTCaloTriggerRawDigitDataStruct &dig, Int_t times[]) {
      63           0 :   for (Int_t i = 0; i < dig.fNL0Times; i++) times[i] = dig.fL0Times[i];
      64           0 : }
      65             : 
      66             : Bool_t GetTimeSample(const AliHLTCaloTriggerRawDigitDataStruct &dig, Int_t iSample, Int_t& timeBin, Int_t& amp) {
      67           0 :   if (iSample > dig.fNTimeSamples || iSample < 0) return kFALSE;
      68           0 :   amp     = (Int_t)(dig.fTimeSamples[iSample] & 0xFFFF);
      69           0 :   timeBin = (Int_t)(dig.fTimeSamples[iSample] >> 16 );
      70           0 :   return kTRUE;
      71           0 : }
      72             : 
      73             : 
      74             : Int_t GetL0TimeSum(const AliHLTCaloTriggerRawDigitDataStruct &dig, Int_t time) {
      75             :   Int_t value = 0;
      76           0 :   for (Int_t i = 0; i < dig.fNTimeSamples; i++) {
      77           0 :     Int_t timeBin, amp;
      78           0 :     GetTimeSample(dig, i, timeBin, amp);
      79             : 
      80           0 :     if (timeBin >= time && timeBin < time + 4) value += amp;
      81           0 :   }
      82           0 :   return value;
      83             : }
      84             : 
      85             : Int_t GetL1SubRegion(const AliHLTCaloTriggerRawDigitDataStruct &dig){
      86           0 :   return dig.fL1SubRegion;
      87             : }
      88             : 
      89             : Int_t GetTriggerBit(const AliHLTCaloTriggerRawDigitDataStruct &dig, const TriggerType_t type, const Int_t mode) {
      90           0 :   Int_t shift = kTriggerTypeEnd * mode;
      91           0 :   Int_t mask  = 1 << type;
      92           0 :   return ((dig.fTriggerBits >> shift) & mask);
      93             : }
      94             : 
      95             : Bool_t GetRawDigitMaximumAmplitude(const AliHLTCaloTriggerRawDigitDataStruct &dig, Int_t& amplitude, Int_t& time) {
      96           0 :   if (!dig.fNTimeSamples) return kFALSE;
      97             : 
      98           0 :   amplitude = 0;
      99           0 :   for (Int_t i = 0; i < dig.fNTimeSamples; i++) {
     100           0 :     Int_t t, a;
     101           0 :     if (GetTimeSample(dig, i, t, a)) {
     102           0 :       if (a > amplitude)
     103             :       {
     104           0 :         amplitude = a;
     105           0 :         time      = t;
     106           0 :       }
     107             :     }
     108           0 :   }
     109           0 :   return kTRUE;
     110           0 : }
     111             : 
     112             : void PrintRawDigit(const AliHLTCaloTriggerRawDigitDataStruct &dig) {
     113           0 :   printf("===\n| Digit  id: %4d /  %d Time Samples: \n", dig.fID, dig.fNTimeSamples);
     114           0 :   for (Int_t i=0; i < dig.fNTimeSamples; i++) {
     115           0 :     Int_t timeBin, amp;
     116           0 :     GetTimeSample(dig, i, timeBin, amp);
     117           0 :     printf("| (%d,%d) ",timeBin,amp);
     118           0 :   }
     119           0 :   printf("\n");
     120           0 :   printf("| L0: (%d,%d) / %d Time(s): \n",GetTriggerBit(dig, kL0,1),GetTriggerBit(dig, kL0,0), dig.fNL0Times);
     121           0 :   for (Int_t i = 0; i < dig.fNL0Times; i++) {
     122           0 :     Int_t time;
     123           0 :     if (GetL0Time(dig, i, time)) printf("| %d ",time);
     124           0 :   }
     125           0 :   printf("\n");
     126           0 :   printf("| L1: g high (%d,%d) g low (%d,%d) j high (%d,%d) j low (%d,%d) / Time sum: %d\n",
     127           0 :        GetTriggerBit(dig, kL1GammaHigh,1),GetTriggerBit(dig, kL1GammaHigh,0),GetTriggerBit(dig, kL1GammaLow,1),GetTriggerBit(dig, kL1GammaLow,0),
     128           0 :        GetTriggerBit(dig, kL1JetHigh,1),  GetTriggerBit(dig, kL1JetHigh,0),  GetTriggerBit(dig, kL1JetLow,1),  GetTriggerBit(dig, kL1JetLow,0),
     129           0 :        dig.fL1TimeSum);
     130           0 : }
     131             : 
     132             : void SPrintRawDigit(const AliHLTCaloTriggerRawDigitDataStruct &dig, char *outputbuffer) {
     133           0 :   char *currentpos = outputbuffer, tempstr[1024];
     134           0 :   sprintf(tempstr, "===\n| Digit  id: %4d /  %d Time Samples: \n", dig.fID, dig.fNTimeSamples);
     135           0 :   strcpy(currentpos, tempstr);
     136           0 :   currentpos += strlen(tempstr)/sizeof(char);
     137           0 :   for (Int_t i=0; i < dig.fNTimeSamples; i++) {
     138           0 :     Int_t timeBin, amp;
     139           0 :     GetTimeSample(dig, i, timeBin, amp);
     140           0 :     sprintf(tempstr, "| (%d,%d) ",timeBin,amp);
     141           0 :     strcpy(currentpos, tempstr);
     142           0 :     currentpos += strlen(tempstr)/sizeof(char);
     143           0 :   }
     144           0 :   sprintf(tempstr, "| L0: (%d,%d) / %d Time(s): \n",GetTriggerBit(dig, kL0,1),GetTriggerBit(dig, kL0,0), dig.fNL0Times);
     145           0 :   strcpy(currentpos, tempstr);
     146           0 :   currentpos += strlen(tempstr)/sizeof(char);
     147           0 :   for (Int_t i = 0; i < dig.fNL0Times; i++) {
     148           0 :     Int_t time;
     149           0 :     if (GetL0Time(dig, i, time)) sprintf(tempstr, "| %d ",time);
     150           0 :     strcpy(currentpos, tempstr);
     151           0 :     currentpos += strlen(tempstr)/sizeof(char);
     152           0 :   }
     153           0 :   sprintf(currentpos, "| L1: g high (%d,%d) g low (%d,%d) j high (%d,%d) j low (%d,%d) / Time sum: %d\n",
     154           0 :        GetTriggerBit(dig, kL1GammaHigh,1),GetTriggerBit(dig, kL1GammaHigh,0),GetTriggerBit(dig, kL1GammaLow,1),GetTriggerBit(dig, kL1GammaLow,0),
     155           0 :        GetTriggerBit(dig, kL1JetHigh,1),  GetTriggerBit(dig, kL1JetHigh,0),  GetTriggerBit(dig, kL1JetLow,1),  GetTriggerBit(dig, kL1JetLow,0),
     156           0 :        dig.fL1TimeSum);
     157           0 : }

Generated by: LCOV version 1.11