#include <TClonesArray.h>
#include "AliVEvent.h"
#include "AliLog.h"
#include "AliClusterContainer.h"
ClassImp(AliClusterContainer)
AliClusterContainer::AliClusterContainer():
AliEmcalContainer("AliClusterContainer"),
fClusPtCut(0.15),
fClusECut(0.15),
fClusTimeCutLow(-10),
fClusTimeCutUp(10),
fClusterBitMap(0),
fMCClusterBitMap(0),
fMinMCLabel(0)
{
fClassName = "AliVCluster";
}
AliClusterContainer::AliClusterContainer(const char *name):
AliEmcalContainer(name),
fClusPtCut(0.15),
fClusECut(0.15),
fClusTimeCutLow(-10),
fClusTimeCutUp(10),
fClusterBitMap(0),
fMCClusterBitMap(0),
fMinMCLabel(0)
{
fClassName = "AliVCluster";
}
AliVCluster* AliClusterContainer::GetLeadingCluster(const char* opt)
{
TString option(opt);
option.ToLower();
Int_t tempID = fCurrentID;
AliVCluster *clusterMax = GetNextAcceptCluster(0);
AliVCluster *cluster = 0;
if (option.Contains("e")) {
while ((cluster = GetNextAcceptCluster())) {
if (cluster->E() > clusterMax->E()) clusterMax = cluster;
}
}
else {
Double_t et = 0;
Double_t etmax = 0;
while ((cluster = GetNextAcceptCluster())) {
TLorentzVector mom;
cluster->GetMomentum(mom,const_cast<Double_t*>(fVertex));
et = mom.Et();
if (et > etmax) {
clusterMax = cluster;
etmax = et;
}
}
}
fCurrentID = tempID;
return clusterMax;
}
AliVCluster* AliClusterContainer::GetCluster(Int_t i) const
{
if(i<0 || i>fClArray->GetEntriesFast()) return 0;
AliVCluster *vp = static_cast<AliVCluster*>(fClArray->At(i));
return vp;
}
AliVCluster* AliClusterContainer::GetAcceptCluster(Int_t i)
{
AliVCluster *vc = GetCluster(i);
if (!vc) return 0;
if (AcceptCluster(vc))
return vc;
else {
AliDebug(2,"Cluster not accepted.");
return 0;
}
}
AliVCluster* AliClusterContainer::GetClusterWithLabel(Int_t lab) const
{
Int_t i = GetIndexFromLabel(lab);
return GetCluster(i);
}
AliVCluster* AliClusterContainer::GetAcceptClusterWithLabel(Int_t lab)
{
Int_t i = GetIndexFromLabel(lab);
return GetAcceptCluster(i);
}
AliVCluster* AliClusterContainer::GetNextAcceptCluster(Int_t i)
{
if (i>=0) fCurrentID = i;
const Int_t n = GetNEntries();
AliVCluster *c = 0;
while (fCurrentID < n && !c) {
c = GetAcceptCluster(fCurrentID);
fCurrentID++;
}
return c;
}
AliVCluster* AliClusterContainer::GetNextCluster(Int_t i)
{
if (i>=0) fCurrentID = i;
const Int_t n = GetNEntries();
AliVCluster *c = 0;
while (fCurrentID < n && !c) {
c = GetCluster(fCurrentID);
fCurrentID++;
}
return c;
}
void AliClusterContainer::GetMomentum(TLorentzVector &mom, Int_t i) const
{
AliVCluster *vc = GetCluster(i);
if(vc) vc->GetMomentum(mom,const_cast<Double_t*>(fVertex));
}
Bool_t AliClusterContainer::AcceptCluster(AliVCluster *clus)
{
fRejectionReason = 0;
if (!clus) {
fRejectionReason |= kNullObject;
return kFALSE;
}
if (!clus->IsEMCAL()) {
fRejectionReason |= kIsEMCalCut;
return kFALSE;
}
if (clus->GetLabel() > fMinMCLabel) {
if (clus->TestBits(fMCClusterBitMap) != (Int_t)fMCClusterBitMap) {
AliDebug(2,"MC Cluster not accepted because of MC bit map.");
fRejectionReason |= kBitMapCut;
return kFALSE;
}
}
else {
if (clus->TestBits(fClusterBitMap) != (Int_t)fClusterBitMap) {
AliDebug(2,"Cluster not accepted because of bit map.");
fRejectionReason |= kBitMapCut;
return kFALSE;
}
}
if (clus->GetTOF() > fClusTimeCutUp || clus->GetTOF() < fClusTimeCutLow) {
fRejectionReason |= kTimeCut;
return kFALSE;
}
if (clus->E()<fClusECut) {
fRejectionReason |= kEnergyCut;
return kFALSE;
}
TLorentzVector nPart;
clus->GetMomentum(nPart, const_cast<Double_t*>(fVertex));
if (nPart.Et() < fClusPtCut) {
fRejectionReason |= kPtCut;
return kFALSE;
}
return kTRUE;
}
Int_t AliClusterContainer::GetNAcceptedClusters()
{
Int_t nClus = 0;
AliVCluster *clus = GetNextAcceptCluster(0);
if(clus) nClus = 1;
while (GetNextAcceptCluster())
nClus++;
return nClus;
}
void AliClusterContainer::SetClassName(const char *clname)
{
TClass cls(clname);
if (cls.InheritsFrom("AliVCluster")) fClassName = clname;
else AliError(Form("Unable to set class name %s for a AliClusterContainer, it must inherits from AliVCluster!",clname));
}
AliClusterContainer.cxx:1 AliClusterContainer.cxx:2 AliClusterContainer.cxx:3 AliClusterContainer.cxx:4 AliClusterContainer.cxx:5 AliClusterContainer.cxx:6 AliClusterContainer.cxx:7 AliClusterContainer.cxx:8 AliClusterContainer.cxx:9 AliClusterContainer.cxx:10 AliClusterContainer.cxx:11 AliClusterContainer.cxx:12 AliClusterContainer.cxx:13 AliClusterContainer.cxx:14 AliClusterContainer.cxx:15 AliClusterContainer.cxx:16 AliClusterContainer.cxx:17 AliClusterContainer.cxx:18 AliClusterContainer.cxx:19 AliClusterContainer.cxx:20 AliClusterContainer.cxx:21 AliClusterContainer.cxx:22 AliClusterContainer.cxx:23 AliClusterContainer.cxx:24 AliClusterContainer.cxx:25 AliClusterContainer.cxx:26 AliClusterContainer.cxx:27 AliClusterContainer.cxx:28 AliClusterContainer.cxx:29 AliClusterContainer.cxx:30 AliClusterContainer.cxx:31 AliClusterContainer.cxx:32 AliClusterContainer.cxx:33 AliClusterContainer.cxx:34 AliClusterContainer.cxx:35 AliClusterContainer.cxx:36 AliClusterContainer.cxx:37 AliClusterContainer.cxx:38 AliClusterContainer.cxx:39 AliClusterContainer.cxx:40 AliClusterContainer.cxx:41 AliClusterContainer.cxx:42 AliClusterContainer.cxx:43 AliClusterContainer.cxx:44 AliClusterContainer.cxx:45 AliClusterContainer.cxx:46 AliClusterContainer.cxx:47 AliClusterContainer.cxx:48 AliClusterContainer.cxx:49 AliClusterContainer.cxx:50 AliClusterContainer.cxx:51 AliClusterContainer.cxx:52 AliClusterContainer.cxx:53 AliClusterContainer.cxx:54 AliClusterContainer.cxx:55 AliClusterContainer.cxx:56 AliClusterContainer.cxx:57 AliClusterContainer.cxx:58 AliClusterContainer.cxx:59 AliClusterContainer.cxx:60 AliClusterContainer.cxx:61 AliClusterContainer.cxx:62 AliClusterContainer.cxx:63 AliClusterContainer.cxx:64 AliClusterContainer.cxx:65 AliClusterContainer.cxx:66 AliClusterContainer.cxx:67 AliClusterContainer.cxx:68 AliClusterContainer.cxx:69 AliClusterContainer.cxx:70 AliClusterContainer.cxx:71 AliClusterContainer.cxx:72 AliClusterContainer.cxx:73 AliClusterContainer.cxx:74 AliClusterContainer.cxx:75 AliClusterContainer.cxx:76 AliClusterContainer.cxx:77 AliClusterContainer.cxx:78 AliClusterContainer.cxx:79 AliClusterContainer.cxx:80 AliClusterContainer.cxx:81 AliClusterContainer.cxx:82 AliClusterContainer.cxx:83 AliClusterContainer.cxx:84 AliClusterContainer.cxx:85 AliClusterContainer.cxx:86 AliClusterContainer.cxx:87 AliClusterContainer.cxx:88 AliClusterContainer.cxx:89 AliClusterContainer.cxx:90 AliClusterContainer.cxx:91 AliClusterContainer.cxx:92 AliClusterContainer.cxx:93 AliClusterContainer.cxx:94 AliClusterContainer.cxx:95 AliClusterContainer.cxx:96 AliClusterContainer.cxx:97 AliClusterContainer.cxx:98 AliClusterContainer.cxx:99 AliClusterContainer.cxx:100 AliClusterContainer.cxx:101 AliClusterContainer.cxx:102 AliClusterContainer.cxx:103 AliClusterContainer.cxx:104 AliClusterContainer.cxx:105 AliClusterContainer.cxx:106 AliClusterContainer.cxx:107 AliClusterContainer.cxx:108 AliClusterContainer.cxx:109 AliClusterContainer.cxx:110 AliClusterContainer.cxx:111 AliClusterContainer.cxx:112 AliClusterContainer.cxx:113 AliClusterContainer.cxx:114 AliClusterContainer.cxx:115 AliClusterContainer.cxx:116 AliClusterContainer.cxx:117 AliClusterContainer.cxx:118 AliClusterContainer.cxx:119 AliClusterContainer.cxx:120 AliClusterContainer.cxx:121 AliClusterContainer.cxx:122 AliClusterContainer.cxx:123 AliClusterContainer.cxx:124 AliClusterContainer.cxx:125 AliClusterContainer.cxx:126 AliClusterContainer.cxx:127 AliClusterContainer.cxx:128 AliClusterContainer.cxx:129 AliClusterContainer.cxx:130 AliClusterContainer.cxx:131 AliClusterContainer.cxx:132 AliClusterContainer.cxx:133 AliClusterContainer.cxx:134 AliClusterContainer.cxx:135 AliClusterContainer.cxx:136 AliClusterContainer.cxx:137 AliClusterContainer.cxx:138 AliClusterContainer.cxx:139 AliClusterContainer.cxx:140 AliClusterContainer.cxx:141 AliClusterContainer.cxx:142 AliClusterContainer.cxx:143 AliClusterContainer.cxx:144 AliClusterContainer.cxx:145 AliClusterContainer.cxx:146 AliClusterContainer.cxx:147 AliClusterContainer.cxx:148 AliClusterContainer.cxx:149 AliClusterContainer.cxx:150 AliClusterContainer.cxx:151 AliClusterContainer.cxx:152 AliClusterContainer.cxx:153 AliClusterContainer.cxx:154 AliClusterContainer.cxx:155 AliClusterContainer.cxx:156 AliClusterContainer.cxx:157 AliClusterContainer.cxx:158 AliClusterContainer.cxx:159 AliClusterContainer.cxx:160 AliClusterContainer.cxx:161 AliClusterContainer.cxx:162 AliClusterContainer.cxx:163 AliClusterContainer.cxx:164 AliClusterContainer.cxx:165 AliClusterContainer.cxx:166 AliClusterContainer.cxx:167 AliClusterContainer.cxx:168 AliClusterContainer.cxx:169 AliClusterContainer.cxx:170 AliClusterContainer.cxx:171 AliClusterContainer.cxx:172 AliClusterContainer.cxx:173 AliClusterContainer.cxx:174 AliClusterContainer.cxx:175 AliClusterContainer.cxx:176 AliClusterContainer.cxx:177 AliClusterContainer.cxx:178 AliClusterContainer.cxx:179 AliClusterContainer.cxx:180 AliClusterContainer.cxx:181 AliClusterContainer.cxx:182 AliClusterContainer.cxx:183 AliClusterContainer.cxx:184 AliClusterContainer.cxx:185 AliClusterContainer.cxx:186 AliClusterContainer.cxx:187 AliClusterContainer.cxx:188 AliClusterContainer.cxx:189 AliClusterContainer.cxx:190 AliClusterContainer.cxx:191 AliClusterContainer.cxx:192 AliClusterContainer.cxx:193 AliClusterContainer.cxx:194 AliClusterContainer.cxx:195 AliClusterContainer.cxx:196 AliClusterContainer.cxx:197 AliClusterContainer.cxx:198 AliClusterContainer.cxx:199 AliClusterContainer.cxx:200 AliClusterContainer.cxx:201 AliClusterContainer.cxx:202 AliClusterContainer.cxx:203 AliClusterContainer.cxx:204 AliClusterContainer.cxx:205 AliClusterContainer.cxx:206 AliClusterContainer.cxx:207 AliClusterContainer.cxx:208 AliClusterContainer.cxx:209 AliClusterContainer.cxx:210 AliClusterContainer.cxx:211 AliClusterContainer.cxx:212 AliClusterContainer.cxx:213 AliClusterContainer.cxx:214 AliClusterContainer.cxx:215 AliClusterContainer.cxx:216 AliClusterContainer.cxx:217 AliClusterContainer.cxx:218 AliClusterContainer.cxx:219 AliClusterContainer.cxx:220 AliClusterContainer.cxx:221 AliClusterContainer.cxx:222 AliClusterContainer.cxx:223 AliClusterContainer.cxx:224 AliClusterContainer.cxx:225 AliClusterContainer.cxx:226 AliClusterContainer.cxx:227 AliClusterContainer.cxx:228 AliClusterContainer.cxx:229 AliClusterContainer.cxx:230 AliClusterContainer.cxx:231 AliClusterContainer.cxx:232 AliClusterContainer.cxx:233 AliClusterContainer.cxx:234 AliClusterContainer.cxx:235 AliClusterContainer.cxx:236 AliClusterContainer.cxx:237 AliClusterContainer.cxx:238 AliClusterContainer.cxx:239 AliClusterContainer.cxx:240 AliClusterContainer.cxx:241 AliClusterContainer.cxx:242 AliClusterContainer.cxx:243 AliClusterContainer.cxx:244 AliClusterContainer.cxx:245 AliClusterContainer.cxx:246 AliClusterContainer.cxx:247 AliClusterContainer.cxx:248 AliClusterContainer.cxx:249