]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - JETAN/AliUA1JetFinderV1.cxx
Compatibility with ROOT trunk
[u/mrichter/AliRoot.git] / JETAN / AliUA1JetFinderV1.cxx
index d5735797b333931387d007c815ddadd5f72b5632..d8f74f9a49cf3dd1d38cc47fbc7da1bf63f60cca 100644 (file)
@@ -219,6 +219,7 @@ void AliUA1JetFinderV1::FindJets()
   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())) ||
@@ -239,6 +240,22 @@ void AliUA1JetFinderV1::FindJets()
       
       //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;
@@ -325,10 +342,10 @@ void AliUA1JetFinderV1::RunAlgoritm(Float_t etbgTotal, Double_t dEtTotal, Int_t&
 
 
   // 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//
 
@@ -494,7 +511,7 @@ void AliUA1JetFinderV1::SubtractBackg(const Int_t& nIn, const Int_t&nJ, Float_t&
   //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
@@ -563,7 +580,7 @@ void AliUA1JetFinderV1::SubtractBackgStat(const Int_t& nIn, const Int_t&nJ,Float
 
   //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
@@ -629,16 +646,15 @@ void AliUA1JetFinderV1::SubtractBackgCone(const Int_t& nIn, const Int_t&nJ,Float
    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();
@@ -648,6 +664,7 @@ void AliUA1JetFinderV1::SubtractBackgCone(const Int_t& nIn, const Int_t&nJ,Float
    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
@@ -748,16 +765,15 @@ void AliUA1JetFinderV1::SubtractBackgRatio(const Int_t& nIn, const Int_t&nJ, Flo
 
    // 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();
@@ -767,6 +783,7 @@ void AliUA1JetFinderV1::SubtractBackgRatio(const Int_t& nIn, const Int_t&nJ, Flo
    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