+
+//________________________________________________________________________
+AliJetContainer* AliAnalysisTaskEmcalJet::AddJetContainer(const char *n, TString defaultCutType, Float_t jetRadius) {
+
+ // Add particle container
+ // will be called in AddTask macro
+
+ TString tmp = TString(n);
+ if(tmp.IsNull()) return 0;
+
+ AliJetContainer *cont = 0x0;
+ cont = new AliJetContainer();
+ cont->SetArrayName(n);
+ cont->SetJetRadius(jetRadius);
+
+ defaultCutType.ToUpper();
+
+ if(!defaultCutType.IsNull() && !defaultCutType.EqualTo("USER")) {
+ if(defaultCutType.EqualTo("TPC"))
+ cont->SetJetAcceptanceType(AliJetContainer::kTPC);
+ else if(defaultCutType.EqualTo("EMCAL"))
+ cont->SetJetAcceptanceType(AliJetContainer::kEMCAL);
+ else
+ AliWarning(Form("%s: default cut type %s not recognized. Not setting cuts.",GetName(),defaultCutType.Data()));
+ } else
+ cont->SetJetAcceptanceType(AliJetContainer::kUser);
+
+ fJetCollArray.Add(cont);
+
+ return cont;
+}
+
+//________________________________________________________________________
+AliJetContainer* AliAnalysisTaskEmcalJet::GetJetContainer(Int_t i) const{
+ // Get i^th jet container
+
+ if(i<0 || i>=fJetCollArray.GetEntriesFast()) return 0;
+ AliJetContainer *cont = static_cast<AliJetContainer*>(fJetCollArray.At(i));
+ return cont;
+}
+
+//________________________________________________________________________
+AliJetContainer* AliAnalysisTaskEmcalJet::GetJetContainer(const char* name) const{
+ // Get the jet container with name
+
+ AliJetContainer *cont = static_cast<AliJetContainer*>(fJetCollArray.FindObject(name));
+ return cont;
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetJetAcceptanceType(UInt_t t, Int_t c)
+{
+ // Set acceptance cuts
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) {
+ cont->SetJetAcceptanceType((AliJetContainer::JetAcceptanceType)t);
+ }
+ else {
+ AliError(Form("%s in SetJetAcceptanceType(...): container %d not found!",GetName(),c));
+ }
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetJetAcceptanceType(TString cutType, Int_t c) {
+ //set acceptance cuts
+
+ AliJetContainer *cont = GetJetContainer(c);
+ if (!cont) {
+ AliError(Form("%s in SetJetAcceptanceType(...): container %d not found",GetName(),c));
+ return;
+ }
+
+ cutType.ToUpper();
+
+ if(!cutType.IsNull() && !cutType.EqualTo("USER")) {
+ if(cutType.EqualTo("TPC"))
+ cont->SetJetAcceptanceType(AliJetContainer::kTPC);
+ else if(cutType.EqualTo("EMCAL"))
+ cont->SetJetAcceptanceType(AliJetContainer::kEMCAL);
+ else
+ AliWarning(Form("%s: default cut type %s not recognized. Not setting cuts.",GetName(),cutType.Data()));
+ } else
+ cont->SetJetAcceptanceType(AliJetContainer::kUser);
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetRhoName(const char *n, Int_t c)
+{
+ if (c >= 0) {
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetRhoName(n);
+ else AliError(Form("%s in SetRhoName(...): container %d not found",GetName(),c));
+ }
+ else {
+ fRhoName = n;
+ }
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetJetEtaLimits(Float_t min, Float_t max, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetJetEtaLimits(min,max);
+ else AliError(Form("%s in SetJetEtaLimits(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetJetPhiLimits(Float_t min, Float_t max, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetJetPhiLimits(min,max);
+ else AliError(Form("%s in SetJetPhiLimits(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetJetAreaCut(Float_t cut, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetJetAreaCut(cut);
+ else AliError(Form("%s in SetJetAreaCut(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetPercAreaCut(Float_t p, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetPercAreaCut(p);
+ else AliError(Form("%s in SetPercAreaCut(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetZLeadingCut(Float_t zemc, Float_t zch, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetZLeadingCut(zemc,zch);
+ else AliError(Form("%s in SetZLeadingCut(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetNEFCut(Float_t min, Float_t max, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetNEFCut(min,max);
+ else AliError(Form("%s in SetNEFCut(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetAreaEmcCut(Double_t a, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetAreaEmcCut(a);
+ else AliError(Form("%s in SetAreaEmcCut(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetJetPtCut(Float_t cut, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetJetPtCut(cut);
+ else AliError(Form("%s in SetJetPtCut(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetJetRadius(Float_t r, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetJetRadius(r);
+ else AliError(Form("%s in SetJetRadius(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetMaxClusterPt(Float_t cut, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetMaxClusterPt(cut);
+ else AliError(Form("%s in SetMaxClusterPt(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetMaxTrackPt(Float_t cut, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetMaxTrackPt(cut);
+ else AliError(Form("%s in SetMaxTrackPt(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetPtBiasJetClus(Float_t cut, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetPtBiasJetClus(cut);
+ else AliError(Form("%s in SetPtBiasJetClus(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetPtBiasJetTrack(Float_t cut, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetPtBiasJetTrack(cut);
+ else AliError(Form("%s in SetPtBiasJetTrack(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetLeadingHadronType(Int_t t, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetLeadingHadronType(t);
+ else AliError(Form("%s in SetLeadingHadronType(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetNLeadingJets(Int_t t, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetNLeadingJets(t);
+ else AliError(Form("%s in SetNLeadingJets(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetJetBitMap(UInt_t m, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetJetBitMap(m);
+ else AliError(Form("%s in SetJetBitMap(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+void AliAnalysisTaskEmcalJet::SetIsParticleLevel(Bool_t b, Int_t c)
+{
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) cont->SetIsParticleLevel(b);
+ else AliError(Form("%s in SetIsParticleLevel(...): container %d not found",GetName(),c));
+}
+
+//________________________________________________________________________
+const TString& AliAnalysisTaskEmcalJet::GetRhoName(Int_t c) const
+{
+ if (c >= 0) {
+ AliJetContainer *cont = GetJetContainer(c);
+ if (cont) return cont->GetRhoName();
+ else { AliError(Form("%s in GetRhoName(...): container %d not found. Returning fRhoName...",GetName(),c)); return fRhoName; }
+ }
+ else {
+ return fRhoName;
+ }
+}
+
+//________________________________________________________________________
+TClonesArray* AliAnalysisTaskEmcalJet::GetJetArray(Int_t i) const {
+ // Get i^th TClonesArray with AliEmcalJet
+
+ AliJetContainer *cont = GetJetContainer(i);
+ if(!cont) {
+ AliError(Form("%s:Container %d not found",GetName(),i));
+ return 0;
+ }
+ return cont->GetArray();
+}
+
+//________________________________________________________________________
+Double_t AliAnalysisTaskEmcalJet::GetJetRadius(Int_t i) const {
+ // Get jet radius from jet container i
+
+ AliJetContainer *cont = GetJetContainer(i);
+ if(!cont) {
+ AliError(Form("%s:Container %d not found",GetName(),i));
+ return 0;
+ }
+
+ return cont->GetJetRadius();
+}
+
+//________________________________________________________________________
+AliEmcalJet* AliAnalysisTaskEmcalJet::GetJetFromArray(Int_t j, Int_t c) const {
+ // Get jet j if accepted from container c
+ // If jet not accepted return 0
+
+ AliJetContainer *cont = GetJetContainer(c);
+ if(!cont) {
+ AliError(Form("%s:Container %d not found",GetName(),c));
+ return 0;
+ }
+ AliEmcalJet *jet = cont->GetJet(j);
+
+ return jet;
+}
+
+//________________________________________________________________________
+AliEmcalJet* AliAnalysisTaskEmcalJet::GetAcceptJetFromArray(Int_t j, Int_t c) const {
+ // Get jet j if accepted from container c
+ // If jet not accepted return 0
+
+ AliJetContainer *cont = GetJetContainer(c);
+ if(!cont) {
+ AliError(Form("%s:Container %d not found",GetName(),c));
+ return 0;
+ }
+ AliEmcalJet *jet = cont->GetAcceptJet(j);
+
+ return jet;
+}
+
+//________________________________________________________________________
+Int_t AliAnalysisTaskEmcalJet::GetNJets(Int_t i) const {
+ // Get number of entries in jet array i
+
+ AliJetContainer *cont = GetJetContainer(i);
+ if(!cont) {
+ AliError(Form("%s:Container %d not found",GetName(),i));
+ return 0;
+ }
+ return cont->GetNJets();
+
+}
+
+//________________________________________________________________________
+Double_t AliAnalysisTaskEmcalJet::GetRhoVal(Int_t i) const {
+ // Get rho corresponding to jet array i
+
+ AliJetContainer *cont = GetJetContainer(i);
+ if(!cont) {
+ AliError(Form("%s:Container %d not found",GetName(),i));
+ return 0;
+ }
+ return cont->GetRhoVal();
+}