#include "AliEMCALTriggerSTU.h"
#include "AliCDBManager.h"
#include "AliCDBEntry.h"
#include "AliEMCALTriggerSTUDCSConfig.h"
#include "AliVZEROCalibData.h"
#include "AliVZEROdigit.h"
#include "AliEMCALTriggerPatch.h"
#include "AliESDVZERO.h"
#include "AliLog.h"
#include <TClonesArray.h>
#include <TSystem.h>
#include <TH2F.h>
#include <TFile.h>
#include <TTree.h>
#include <fstream>
#include <Riostream.h>
#include <cstdlib>
ClassImp(AliEMCALTriggerSTU)
AliEMCALTriggerSTU::AliEMCALTriggerSTU() : AliEMCALTriggerBoard()
,fDCSConfig(0x0)
{
fGammaTh[0] = fGammaTh[1] = 0;
fJetTh[0] = fJetTh[1] = 0;
}
AliEMCALTriggerSTU::AliEMCALTriggerSTU(AliEMCALTriggerSTUDCSConfig *dcsConf, const TVector2& RS) : AliEMCALTriggerBoard(RS)
,fDCSConfig(dcsConf)
{
fGammaTh[0] = fGammaTh[1] = 0;
fJetTh[0] = fJetTh[1] = 0;
}
AliEMCALTriggerSTU::~AliEMCALTriggerSTU()
{
}
void AliEMCALTriggerSTU::Build( TString& str, Int_t iTRU, Int_t** M, const TVector2* rSize )
{
str.ToLower();
Int_t ix = (iTRU % 2) ? 24 : 0;
Int_t iy = iTRU / 2;
Int_t** v = 0x0;
if (str.Contains("map"))
{
v = fMap;
}
else if (str.Contains("region"))
{
v = fRegion;
}
else
{
AliError("Operation not allowed: STU won't be configured properly!");
}
if(v){
for (Int_t i=0; i<rSize->X(); i++)
for (Int_t j=0; j<rSize->Y(); j++) v[i + ix][j + iy * 4] = M[i][j];
}
}
void AliEMCALTriggerSTU::L1(int type)
{
TVector2 s1, s2, s3, s4;
fDCSConfig->GetSegmentation(s1, s2, s3, s4);
switch (type)
{
case kL1GammaHigh:
case kL1GammaLow:
SetSubRegionSize(s1);
SetPatchSize(s2);
break;
case kL1JetHigh:
case kL1JetLow:
SetSubRegionSize(s3);
SetPatchSize(s4);
break;
default:
AliError("Not supported L1 trigger type");
return;
break;
}
SlidingWindow(GetThreshold(type));
AliDebug(999, Form("STU type %d sliding window w/ thr %d found %d patches", type, GetThreshold(type), fPatches->GetEntriesFast()));
}
void AliEMCALTriggerSTU::ComputeThFromV0(int type, const Int_t M[])
{
Short_t P[3] = {0};
switch (type)
{
case kL1GammaHigh:
P[0] = fDCSConfig->GetG(0, 0);
P[1] = fDCSConfig->GetG(1, 0);
P[2] = fDCSConfig->GetG(2, 0);
break;
case kL1GammaLow:
P[0] = fDCSConfig->GetG(0, 1);
P[1] = fDCSConfig->GetG(1, 1);
P[2] = fDCSConfig->GetG(2, 1);
break;
case kL1JetHigh:
P[0] = fDCSConfig->GetJ(0, 0);
P[1] = fDCSConfig->GetJ(1, 0);
P[2] = fDCSConfig->GetJ(2, 0);
break;
case kL1JetLow:
P[0] = fDCSConfig->GetJ(0, 1);
P[1] = fDCSConfig->GetJ(1, 1);
P[2] = fDCSConfig->GetJ(2, 1);
break;
default:
AliError("AliEMCALTriggerSTU::ComputeThFromV0(): Undefined trigger type, pls check!");
return;
}
ULong64_t v0sum = M[0] + M[1];
ULong64_t sqrV0 = v0sum * v0sum;
sqrV0 *= P[0];
sqrV0 >>= 32;
v0sum *= P[1];
v0sum >>= 16;
SetThreshold(type, (UShort_t)(sqrV0 + v0sum + P[2]));
}
void AliEMCALTriggerSTU::SetThreshold(int type, Int_t v)
{
switch (type)
{
case kL1GammaHigh:
fGammaTh[0] = v;
break;
case kL1GammaLow:
fGammaTh[1] = v;
break;
case kL1JetHigh:
fJetTh[0] = v;
break;
case kL1JetLow:
fJetTh[1] = v;
break;
default:
AliError("AliEMCALTriggerSTU::SetThreshold(): Undefined trigger type, pls check!");
}
}
Int_t AliEMCALTriggerSTU::GetThreshold(int type)
{
switch (type)
{
case kL1GammaHigh:
return fGammaTh[0];
break;
case kL1GammaLow:
return fGammaTh[1];
break;
case kL1JetHigh:
return fJetTh[0];
break;
case kL1JetLow:
return fJetTh[1];
break;
default:
AliError("AliEMCALTriggerSTU::GetThreshold(): Undefined trigger type, pls check!");
}
return 0;
}
void AliEMCALTriggerSTU::Reset()
{
fPatches->Delete();
}
AliEMCALTriggerSTU.cxx:10 AliEMCALTriggerSTU.cxx:11 AliEMCALTriggerSTU.cxx:12 AliEMCALTriggerSTU.cxx:13 AliEMCALTriggerSTU.cxx:14 AliEMCALTriggerSTU.cxx:15 AliEMCALTriggerSTU.cxx:16 AliEMCALTriggerSTU.cxx:17 AliEMCALTriggerSTU.cxx:18 AliEMCALTriggerSTU.cxx:19 AliEMCALTriggerSTU.cxx:20 AliEMCALTriggerSTU.cxx:21 AliEMCALTriggerSTU.cxx:22 AliEMCALTriggerSTU.cxx:23 AliEMCALTriggerSTU.cxx:24 AliEMCALTriggerSTU.cxx:25 AliEMCALTriggerSTU.cxx:26 AliEMCALTriggerSTU.cxx:27 AliEMCALTriggerSTU.cxx:28 AliEMCALTriggerSTU.cxx:29 AliEMCALTriggerSTU.cxx:30 AliEMCALTriggerSTU.cxx:31 AliEMCALTriggerSTU.cxx:32 AliEMCALTriggerSTU.cxx:33 AliEMCALTriggerSTU.cxx:34 AliEMCALTriggerSTU.cxx:35 AliEMCALTriggerSTU.cxx:36 AliEMCALTriggerSTU.cxx:37 AliEMCALTriggerSTU.cxx:38 AliEMCALTriggerSTU.cxx:39 AliEMCALTriggerSTU.cxx:40 AliEMCALTriggerSTU.cxx:41 AliEMCALTriggerSTU.cxx:42 AliEMCALTriggerSTU.cxx:43 AliEMCALTriggerSTU.cxx:44 AliEMCALTriggerSTU.cxx:45 AliEMCALTriggerSTU.cxx:46 AliEMCALTriggerSTU.cxx:47 AliEMCALTriggerSTU.cxx:48 AliEMCALTriggerSTU.cxx:49 AliEMCALTriggerSTU.cxx:50 AliEMCALTriggerSTU.cxx:51 AliEMCALTriggerSTU.cxx:52 AliEMCALTriggerSTU.cxx:53 AliEMCALTriggerSTU.cxx:54 AliEMCALTriggerSTU.cxx:55 AliEMCALTriggerSTU.cxx:56 AliEMCALTriggerSTU.cxx:57 AliEMCALTriggerSTU.cxx:58 AliEMCALTriggerSTU.cxx:59 AliEMCALTriggerSTU.cxx:60 AliEMCALTriggerSTU.cxx:61 AliEMCALTriggerSTU.cxx:62 AliEMCALTriggerSTU.cxx:63 AliEMCALTriggerSTU.cxx:64 AliEMCALTriggerSTU.cxx:65 AliEMCALTriggerSTU.cxx:66 AliEMCALTriggerSTU.cxx:67 AliEMCALTriggerSTU.cxx:68 AliEMCALTriggerSTU.cxx:69 AliEMCALTriggerSTU.cxx:70 AliEMCALTriggerSTU.cxx:71 AliEMCALTriggerSTU.cxx:72 AliEMCALTriggerSTU.cxx:73 AliEMCALTriggerSTU.cxx:74 AliEMCALTriggerSTU.cxx:75 AliEMCALTriggerSTU.cxx:76 AliEMCALTriggerSTU.cxx:77 AliEMCALTriggerSTU.cxx:78 AliEMCALTriggerSTU.cxx:79 AliEMCALTriggerSTU.cxx:80 AliEMCALTriggerSTU.cxx:81 AliEMCALTriggerSTU.cxx:82 AliEMCALTriggerSTU.cxx:83 AliEMCALTriggerSTU.cxx:84 AliEMCALTriggerSTU.cxx:85 AliEMCALTriggerSTU.cxx:86 AliEMCALTriggerSTU.cxx:87 AliEMCALTriggerSTU.cxx:88 AliEMCALTriggerSTU.cxx:89 AliEMCALTriggerSTU.cxx:90 AliEMCALTriggerSTU.cxx:91 AliEMCALTriggerSTU.cxx:92 AliEMCALTriggerSTU.cxx:93 AliEMCALTriggerSTU.cxx:94 AliEMCALTriggerSTU.cxx:95 AliEMCALTriggerSTU.cxx:96 AliEMCALTriggerSTU.cxx:97 AliEMCALTriggerSTU.cxx:98 AliEMCALTriggerSTU.cxx:99 AliEMCALTriggerSTU.cxx:100 AliEMCALTriggerSTU.cxx:101 AliEMCALTriggerSTU.cxx:102 AliEMCALTriggerSTU.cxx:103 AliEMCALTriggerSTU.cxx:104 AliEMCALTriggerSTU.cxx:105 AliEMCALTriggerSTU.cxx:106 AliEMCALTriggerSTU.cxx:107 AliEMCALTriggerSTU.cxx:108 AliEMCALTriggerSTU.cxx:109 AliEMCALTriggerSTU.cxx:110 AliEMCALTriggerSTU.cxx:111 AliEMCALTriggerSTU.cxx:112 AliEMCALTriggerSTU.cxx:113 AliEMCALTriggerSTU.cxx:114 AliEMCALTriggerSTU.cxx:115 AliEMCALTriggerSTU.cxx:116 AliEMCALTriggerSTU.cxx:117 AliEMCALTriggerSTU.cxx:118 AliEMCALTriggerSTU.cxx:119 AliEMCALTriggerSTU.cxx:120 AliEMCALTriggerSTU.cxx:121 AliEMCALTriggerSTU.cxx:122 AliEMCALTriggerSTU.cxx:123 AliEMCALTriggerSTU.cxx:124 AliEMCALTriggerSTU.cxx:125 AliEMCALTriggerSTU.cxx:126 AliEMCALTriggerSTU.cxx:127 AliEMCALTriggerSTU.cxx:128 AliEMCALTriggerSTU.cxx:129 AliEMCALTriggerSTU.cxx:130 AliEMCALTriggerSTU.cxx:131 AliEMCALTriggerSTU.cxx:132 AliEMCALTriggerSTU.cxx:133 AliEMCALTriggerSTU.cxx:134 AliEMCALTriggerSTU.cxx:135 AliEMCALTriggerSTU.cxx:136 AliEMCALTriggerSTU.cxx:137 AliEMCALTriggerSTU.cxx:138 AliEMCALTriggerSTU.cxx:139 AliEMCALTriggerSTU.cxx:140 AliEMCALTriggerSTU.cxx:141 AliEMCALTriggerSTU.cxx:142 AliEMCALTriggerSTU.cxx:143 AliEMCALTriggerSTU.cxx:144 AliEMCALTriggerSTU.cxx:145 AliEMCALTriggerSTU.cxx:146 AliEMCALTriggerSTU.cxx:147 AliEMCALTriggerSTU.cxx:148 AliEMCALTriggerSTU.cxx:149 AliEMCALTriggerSTU.cxx:150 AliEMCALTriggerSTU.cxx:151 AliEMCALTriggerSTU.cxx:152 AliEMCALTriggerSTU.cxx:153 AliEMCALTriggerSTU.cxx:154 AliEMCALTriggerSTU.cxx:155 AliEMCALTriggerSTU.cxx:156 AliEMCALTriggerSTU.cxx:157 AliEMCALTriggerSTU.cxx:158 AliEMCALTriggerSTU.cxx:159 AliEMCALTriggerSTU.cxx:160 AliEMCALTriggerSTU.cxx:161 AliEMCALTriggerSTU.cxx:162 AliEMCALTriggerSTU.cxx:163 AliEMCALTriggerSTU.cxx:164 AliEMCALTriggerSTU.cxx:165 AliEMCALTriggerSTU.cxx:166 AliEMCALTriggerSTU.cxx:167 AliEMCALTriggerSTU.cxx:168 AliEMCALTriggerSTU.cxx:169 AliEMCALTriggerSTU.cxx:170 AliEMCALTriggerSTU.cxx:171 AliEMCALTriggerSTU.cxx:172 AliEMCALTriggerSTU.cxx:173 AliEMCALTriggerSTU.cxx:174 AliEMCALTriggerSTU.cxx:175 AliEMCALTriggerSTU.cxx:176 AliEMCALTriggerSTU.cxx:177 AliEMCALTriggerSTU.cxx:178 AliEMCALTriggerSTU.cxx:179 AliEMCALTriggerSTU.cxx:180 AliEMCALTriggerSTU.cxx:181 AliEMCALTriggerSTU.cxx:182 AliEMCALTriggerSTU.cxx:183 AliEMCALTriggerSTU.cxx:184 AliEMCALTriggerSTU.cxx:185 AliEMCALTriggerSTU.cxx:186 AliEMCALTriggerSTU.cxx:187 AliEMCALTriggerSTU.cxx:188 AliEMCALTriggerSTU.cxx:189 AliEMCALTriggerSTU.cxx:190 AliEMCALTriggerSTU.cxx:191 AliEMCALTriggerSTU.cxx:192 AliEMCALTriggerSTU.cxx:193 AliEMCALTriggerSTU.cxx:194 AliEMCALTriggerSTU.cxx:195 AliEMCALTriggerSTU.cxx:196 AliEMCALTriggerSTU.cxx:197 AliEMCALTriggerSTU.cxx:198 AliEMCALTriggerSTU.cxx:199 AliEMCALTriggerSTU.cxx:200 AliEMCALTriggerSTU.cxx:201 AliEMCALTriggerSTU.cxx:202 AliEMCALTriggerSTU.cxx:203 AliEMCALTriggerSTU.cxx:204 AliEMCALTriggerSTU.cxx:205 AliEMCALTriggerSTU.cxx:206 AliEMCALTriggerSTU.cxx:207 AliEMCALTriggerSTU.cxx:208 AliEMCALTriggerSTU.cxx:209 AliEMCALTriggerSTU.cxx:210 AliEMCALTriggerSTU.cxx:211 AliEMCALTriggerSTU.cxx:212 AliEMCALTriggerSTU.cxx:213 AliEMCALTriggerSTU.cxx:214 AliEMCALTriggerSTU.cxx:215 AliEMCALTriggerSTU.cxx:216 AliEMCALTriggerSTU.cxx:217 AliEMCALTriggerSTU.cxx:218 AliEMCALTriggerSTU.cxx:219 AliEMCALTriggerSTU.cxx:220 AliEMCALTriggerSTU.cxx:221 AliEMCALTriggerSTU.cxx:222 AliEMCALTriggerSTU.cxx:223 AliEMCALTriggerSTU.cxx:224 AliEMCALTriggerSTU.cxx:225 AliEMCALTriggerSTU.cxx:226 AliEMCALTriggerSTU.cxx:227 AliEMCALTriggerSTU.cxx:228 AliEMCALTriggerSTU.cxx:229 AliEMCALTriggerSTU.cxx:230 AliEMCALTriggerSTU.cxx:231 AliEMCALTriggerSTU.cxx:232 AliEMCALTriggerSTU.cxx:233 AliEMCALTriggerSTU.cxx:234 AliEMCALTriggerSTU.cxx:235 AliEMCALTriggerSTU.cxx:236 AliEMCALTriggerSTU.cxx:237 AliEMCALTriggerSTU.cxx:238