AliUA1JetHeaderV1* header = (AliUA1JetHeaderV1*) fHeader;
TClonesArray *lvArray = fReader->GetMomentumArray();
Int_t nIn = lvArray->GetEntries();
- if (nIn == 0) return;
+ if (nIn <= 0) return;
// local arrays for input
// ToDo: check memory fragmentation, maybe better to
Float_t* phiT = new Float_t[nIn];
Int_t* injet = new Int_t[nIn];
+ memset(ptT,0,sizeof(Float_t)*nIn);
+ memset(etaT,0,sizeof(Float_t)*nIn);
+ memset(phiT,0,sizeof(Float_t)*nIn);
// load input vectors and calculate total energy in array
TRefArray *refs = 0;
Bool_t fromAod = !strcmp(fReader->ClassName(),"AliJetAODReader");
if (fromAod) refs = fReader->GetReferences();
+ Float_t rc= header->GetRadius();
for(Int_t kj=0; kj<nj; kj++){
if ((etaJet[kj] > (header->GetJetEtaMax())) ||
(etaJet[kj] < (header->GetJetEtaMin())) ||
//jet.Print("");
+ // calculate the area of the jet
+ Float_t detamax = etaJet[kj] + rc;
+ Float_t detamin = etaJet[kj] - rc;
+ Float_t accmax = 0.0; Float_t accmin = 0.0;
+ if(detamax > header->GetLegoEtaMax()){ // sector outside etamax
+ Float_t h = header->GetLegoEtaMax() - etaJet[kj];
+ accmax = rc*rc*TMath::ACos(h/rc) - h*TMath::Sqrt(rc*rc - h*h);
+ }
+ if(detamin < header->GetLegoEtaMin()){ // sector outside etamin
+ Float_t h = header->GetLegoEtaMax() + etaJet[kj];
+ accmin = rc*rc*TMath::ACos(h/rc) - h*TMath::Sqrt(rc*rc - h*h);
+ }
+ Float_t areaJet = rc*rc*TMath::Pi() - accmax - accmin;
+ // set both areas
+ jet.SetEffArea(areaJet,areaJet);
+
AddJet(jet);
idxjets[nselectj] = kj;
// tmp array of jets form algoritm
- Float_t etaAlgoJet[kMaxJets];
- Float_t phiAlgoJet[kMaxJets];
- Float_t etAlgoJet[kMaxJets];
- Int_t ncellsAlgoJet[kMaxJets];
+ Float_t etaAlgoJet[kMaxJets] = {0.0};
+ Float_t phiAlgoJet[kMaxJets] = {0.0};
+ Float_t etAlgoJet[kMaxJets] = {0.0};
+ Int_t ncellsAlgoJet[kMaxJets] = {0};
//run algorithm//
//calculate energy inside and outside cones
AliUA1JetHeaderV1* header = (AliUA1JetHeaderV1*) fHeader;
Float_t rc= header->GetRadius();
- Float_t etIn[kMaxJets];
+ Float_t etIn[kMaxJets] = {0};
Float_t etOut = 0;
for(Int_t jpart = 0; jpart < nIn; jpart++){ // loop for all particles in array
// if((fReader->GetCutFlag(jpart)) != 1) continue; // pt cut
//calculate energy inside
Float_t rc= header->GetRadius();
- Float_t etIn[kMaxJets];
+ Float_t etIn[kMaxJets] = {0.0};
for(Int_t jpart = 0; jpart < nIn; jpart++){ // loop for all particles in array
//if((fReader->GetCutFlag(jpart)) != 1) continue; // pt cut
Int_t ndiv = 100;
// jet energy and area arrays
- char hEtname[256];char hAreaname[256];
+ Bool_t oldStatus = TH1::AddDirectoryStatus();
+ TH1::AddDirectory(kFALSE);
for(Int_t mjet=0; mjet<nJ; mjet++){
if(!fhEtJet[mjet]){
- sprintf(hEtname, "hEtJet%d", mjet);
- fhEtJet[mjet] = new TH1F(hEtname,"et dist in eta ",ndiv,etamin,etamax);
+ fhEtJet[mjet] = new TH1F(Form("hEtJet%d", mjet),"et dist in eta ",ndiv,etamin,etamax);
}
- if(!fhAreaJet[mjet]){
- sprintf(hAreaname, "hAreaJet%d", mjet);
- fhAreaJet[mjet] = new TH1F(hAreaname,"area dist in eta ",ndiv,etamin,etamax);
+ if(!fhAreaJet[mjet]){
+ fhAreaJet[mjet] = new TH1F(Form("hEtJet%d", mjet),"area dist in eta ",ndiv,etamin,etamax);
}
fhEtJet[mjet]->Reset();
fhAreaJet[mjet]->Reset();
fhEtBackg->Reset();
if(!fhAreaBackg) fhAreaBackg = new TH1F("hAreaBackg","backg area dist in eta ",ndiv,etamin,etamax);
fhAreaBackg->Reset();
+ TH1::AddDirectory(oldStatus);
//fill energies
for(Int_t jpart = 0; jpart < nIn; jpart++){ // loop for all particles in array
// jet energy and area arrays
// jet energy and area arrays
- char hEtname[256];char hAreaname[256];
+ Bool_t oldStatus = TH1::AddDirectoryStatus();
+ TH1::AddDirectory(kFALSE);
for(Int_t mjet=0; mjet<nJ; mjet++){
if(!fhEtJet[mjet]){
- sprintf(hEtname, "hEtJet%d", mjet);
- fhEtJet[mjet] = new TH1F(hEtname,"et dist in eta ",ndiv,etamin,etamax);
+ fhEtJet[mjet] = new TH1F(Form("hEtJet%d", mjet),"et dist in eta ",ndiv,etamin,etamax);
}
if(!fhAreaJet[mjet]){
- sprintf(hAreaname, "hAreaJet%d", mjet);
- fhAreaJet[mjet] = new TH1F(hAreaname,"area dist in eta ",ndiv,etamin,etamax);
+ fhAreaJet[mjet] = new TH1F(Form("hAreaJet%d", mjet),"area dist in eta ",ndiv,etamin,etamax);
}
fhEtJet[mjet]->Reset();
fhAreaJet[mjet]->Reset();
fhEtBackg->Reset();
if(!fhAreaBackg) fhAreaBackg = new TH1F("hAreaBackg","backg area dist in eta ",ndiv,etamin,etamax);
fhAreaBackg->Reset();
+ TH1::AddDirectory(oldStatus);
//fill energies
for(Int_t jpart = 0; jpart < nIn; jpart++){ // loop for all particles in array