From: gconesab Date: Thu, 7 May 2009 13:25:04 +0000 (+0000) Subject: 1) Corrected in the analysis macros the option of MC data analysis, addition of a... X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=1e1befe8f05adf69877c31f3d479aa1f284607de;p=u%2Fmrichter%2FAliRoot.git 1) Corrected in the analysis macros the option of MC data analysis, addition of a null input event handler. 2)AliAnaParticleIsolation: Debuging prints added 3)AliAnaParticleJetLeadingConeCorrelation: Corrected the access to the histograms pointers, now additional string in name added by user. --- diff --git a/PWG4/PartCorrDep/AliAnaParticleIsolation.cxx b/PWG4/PartCorrDep/AliAnaParticleIsolation.cxx index bc540cf9bd8..0af38652657 100755 --- a/PWG4/PartCorrDep/AliAnaParticleIsolation.cxx +++ b/PWG4/PartCorrDep/AliAnaParticleIsolation.cxx @@ -308,7 +308,7 @@ Bool_t AliAnaParticleIsolation::CheckInvMass(const Int_t iaod, const AliAODPWG4P mom2 = *(part2->Momentum()); //Select good pair (good phi, pt cuts, aperture and invariant mass) if(GetNeutralMesonSelection()->SelectPair(mom1, mom2)){ - if(GetDebug() > 1)printf("AliAnaParticleIsolation::CheckInvMass() - Selected gamma pair: pt %f, phi %f, eta%f",(mom1+mom2).Pt(), (mom1+mom2).Phi()*180./3.1416, (mom1+mom2).Eta()); + if(GetDebug() > 1)printf("AliAnaParticleIsolation::CheckInvMass() - Selected gamma pair: pt %f, phi %f, eta%f\n",(mom1+mom2).Pt(), (mom1+mom2).Phi()*180./3.1416, (mom1+mom2).Eta()); return kTRUE ; } }//loop @@ -711,8 +711,9 @@ void AliAnaParticleIsolation::MakeAnalysisFillAOD() //Loop on AOD branch, filled previously in AliAnaPhoton TLorentzVector mom ; - - for(Int_t iaod = 0; iaod < GetInputAODBranch()->GetEntriesFast(); iaod++){ + Int_t naod = GetInputAODBranch()->GetEntriesFast(); + if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() - Input aod branch entries %d\n", naod); + for(Int_t iaod = 0; iaod < naod; iaod++){ AliAODPWG4ParticleCorrelation * aodinput = (AliAODPWG4ParticleCorrelation*) (GetInputAODBranch()->At(iaod)); //If too small or too large pt, skip @@ -727,11 +728,11 @@ void AliAnaParticleIsolation::MakeAnalysisFillAOD() n=0; nfrac = 0; isolated = kFALSE; coneptsum = 0; GetIsolationCut()->MakeIsolationCut(GetAODCTS(),pl,fVertex, kTRUE, aodinput, GetAODRefArrayName(), n,nfrac,coneptsum, isolated); aodinput->SetIsolated(isolated); - - + if(GetDebug() > 1 && isolated) printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() : Particle %d IS ISOLATED \n",iaod); + }//loop - if(GetDebug() > 1) printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() - End fill AODs "); + if(GetDebug() > 1) printf("AliAnaParticleIsolation::MakeAnalysisFillAOD() - End fill AODs \n"); } @@ -746,7 +747,7 @@ void AliAnaParticleIsolation::MakeAnalysisFillHistograms() //Loop on stored AOD Int_t naod = GetInputAODBranch()->GetEntriesFast(); - if(GetDebug() > 0) printf(" AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Histo aod branch entries %d\n", naod); + if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Histo aod branch entries %d\n", naod); for(Int_t iaod = 0; iaod < naod ; iaod++){ AliAODPWG4ParticleCorrelation* aod = (AliAODPWG4ParticleCorrelation*) (GetInputAODBranch()->At(iaod)); @@ -767,8 +768,9 @@ void AliAnaParticleIsolation::MakeAnalysisFillHistograms() //In case a more strict IC is needed in the produced AOD n=0; nfrac = 0; isolated = kFALSE; coneptsum = 0; GetIsolationCut()->MakeIsolationCut(reftracks, refclusters, fVertex, kFALSE, aod, "", n,nfrac,coneptsum, isolated); - fhConeSumPt->Fill(ptcluster,coneptsum); - } + fhConeSumPt->Fill(ptcluster,coneptsum); + if(GetDebug() > 0) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Energy Sum in Isolation Cone %2.2f\n", coneptsum); + } //Fill pt distribution of particles in cone //Tracks @@ -792,9 +794,14 @@ void AliAnaParticleIsolation::MakeAnalysisFillHistograms() } } - if(!fReMakeIC) fhConeSumPt->Fill(ptcluster,coneptsum); + if(GetDebug() > 1) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Particle %d Energy Sum in Isolation Cone %2.2f\n", iaod, coneptsum); + + if(!fReMakeIC) fhConeSumPt->Fill(ptcluster,coneptsum); if(isolation){ + + if(GetDebug() > 1) printf("AliAnaParticleIsolation::MakeAnalysisFillHistograms() - Particle %d ISOLATED, fill histograms\n", iaod); + fhPtIso ->Fill(ptcluster); fhPhiIso ->Fill(ptcluster,phicluster); fhEtaIso ->Fill(ptcluster,etacluster); diff --git a/PWG4/PartCorrDep/AliAnaParticleJetLeadingConeCorrelation.cxx b/PWG4/PartCorrDep/AliAnaParticleJetLeadingConeCorrelation.cxx index 14b6a45cd58..5bd83f1fece 100755 --- a/PWG4/PartCorrDep/AliAnaParticleJetLeadingConeCorrelation.cxx +++ b/PWG4/PartCorrDep/AliAnaParticleJetLeadingConeCorrelation.cxx @@ -382,24 +382,25 @@ void AliAnaParticleJetLeadingConeCorrelation::FillJetHistos(AliAODPWG4ParticleCo Double_t etaJet = jet.Eta(); Double_t etaLead = leading.Eta(); - dynamic_cast(GetOutputContainer()->FindObject(type+"Pt"+lastname))-> + dynamic_cast(GetOutputContainer()->FindObject(GetAddedHistogramsStringToName()+type+"Pt"+lastname))-> Fill(ptTrig,ptJet); - dynamic_cast(GetOutputContainer()->FindObject(type+"RatioPt"+lastname))-> + + dynamic_cast(GetOutputContainer()->FindObject(GetAddedHistogramsStringToName()+type+"RatioPt"+lastname))-> Fill(ptTrig,ptJet/ptTrig); - dynamic_cast(GetOutputContainer()->FindObject(type+"LeadingRatioPt"+lastname))-> + dynamic_cast(GetOutputContainer()->FindObject(GetAddedHistogramsStringToName()+type+"LeadingRatioPt"+lastname))-> Fill(ptTrig,ptLead/ptJet); -// dynamic_cast(GetOutputContainer()->FindObject(type+"Phi"+lastname))-> +// dynamic_cast(GetOutputContainer()->FindObject(GetAddedHistogramsStringToName()+type+"Phi"+lastname))-> // Fill(ptTrig,phiJet); - dynamic_cast(GetOutputContainer()->FindObject(type+"DeltaPhi"+lastname))-> + dynamic_cast(GetOutputContainer()->FindObject(GetAddedHistogramsStringToName()+type+"DeltaPhi"+lastname))-> Fill(ptTrig,phiJet-phiTrig); - dynamic_cast(GetOutputContainer()->FindObject(type+"LeadingDeltaPhi"+lastname))-> + dynamic_cast(GetOutputContainer()->FindObject(GetAddedHistogramsStringToName()+type+"LeadingDeltaPhi"+lastname))-> Fill(ptTrig,phiJet-phiLead); - // dynamic_cast(GetOutputContainer()->FindObject(type+"Eta"+lastname))-> + // dynamic_cast(GetOutputContainer()->FindObject(GetAddedHistogramsStringToName()+type+"Eta"+lastname))-> // Fill(ptTrig,etaJet); - dynamic_cast(GetOutputContainer()->FindObject(type+"DeltaEta"+lastname))-> + dynamic_cast(GetOutputContainer()->FindObject(GetAddedHistogramsStringToName()+type+"DeltaEta"+lastname))-> Fill(ptTrig,etaJet-etaTrig); - dynamic_cast(GetOutputContainer()->FindObject(type+"LeadingDeltaEta"+lastname))-> + dynamic_cast(GetOutputContainer()->FindObject(GetAddedHistogramsStringToName()+type+"LeadingDeltaEta"+lastname))-> Fill(ptTrig,etaJet-etaLead); //Construct fragmentation function @@ -424,16 +425,16 @@ void AliAnaParticleJetLeadingConeCorrelation::FillJetHistos(AliAODPWG4ParticleCo nTracksInCone++; - dynamic_cast(GetOutputContainer()->FindObject(type+"FFz"+lastname)) + dynamic_cast(GetOutputContainer()->FindObject(GetAddedHistogramsStringToName()+type+"FFz"+lastname)) ->Fill(ptTrig,p3.Pt()/ptTrig); - dynamic_cast(GetOutputContainer()->FindObject(type+"FFxi"+lastname)) + dynamic_cast(GetOutputContainer()->FindObject(GetAddedHistogramsStringToName()+type+"FFxi"+lastname)) ->Fill(ptTrig,TMath::Log(ptTrig/p3.Pt())); - dynamic_cast(GetOutputContainer()->FindObject(type+"FFpt"+lastname)) + dynamic_cast(GetOutputContainer()->FindObject(GetAddedHistogramsStringToName()+type+"FFpt"+lastname)) ->Fill(ptTrig,p3.Pt()); }//track loop - if(nTracksInCone > 0) dynamic_cast(GetOutputContainer()->FindObject(type+"NTracksInCone"+lastname)) + if(nTracksInCone > 0) dynamic_cast(GetOutputContainer()->FindObject(GetAddedHistogramsStringToName()+type+"NTracksInCone"+lastname)) ->Fill(ptTrig, nTracksInCone); } @@ -777,10 +778,10 @@ TList * AliAnaParticleJetLeadingConeCorrelation::GetCreateOutputObjects() } //icone }//If we want to study any cone or pt threshold - if(GetDebug()>2){ + if(GetDebug() > 2){ printf("AliAnaParticleJetLeadingConeCorrelation::GetCreateOutputObjects() - All histograms names : \n"); for(Int_t i = 0 ; i< fOutCont->GetEntries(); i++) - printf("Histo i %d name %s",i,((fOutCont->At(i))->GetName())); + printf("Histo i %d name %s\n",i,((fOutCont->At(i))->GetName())); //cout<< (fOutCont->At(i))->GetName()<SetReadTR(kFALSE);//Do not search TrackRef file mgr->SetMCtruthEventHandler(mcHandler); + if( kInputData == "MC") mgr->SetInputEventHandler(NULL); } // AOD output handler @@ -372,7 +373,7 @@ void CreateChain(const anaModes mode, TChain * chain, TChain * chainxs){ skipped++ ; } } - printf("number of entries # %lld, skipped %d\n", chain->GetEntries(), skipped*100) ; + printf("number of entries # %lld, skipped %d\n", chain->GetEntries(), skipped) ; } else { TString input = "AliESDs.root" ; diff --git a/PWG4/macros/anaExampleTask.C b/PWG4/macros/anaExampleTask.C index eb29e3e0221..ae5a7ec0c63 100644 --- a/PWG4/macros/anaExampleTask.C +++ b/PWG4/macros/anaExampleTask.C @@ -1,13 +1,5 @@ -/* $Id: anaGammaAnalysis.C 25095 2008-04-11 12:54:47Z schutz $ */ -/* $Log$ -/* Revision 1.2 2007/12/13 09:45:45 gustavo -/* Scaling option and more comentaries added -/* -/* Revision 1.1 2007/12/07 14:13:02 gustavo -/* Example macros for execution and configuration of the analysis -/* */ - -//--------------------------------------------------- +/* $Id: $ */ +//-------------------------------------------------- // Example macro to do analysis with the // AliAnalysisTaksSE // Can be executed with Root and AliRoot @@ -27,9 +19,8 @@ enum anaModes {mLocal, mLocalCAF,mPROOF,mGRID}; //Settings to read locally several files, only for "mLocal" mode //The different values are default, they can be set with environmental //variables: INDIR, PATTERN, NEVENT, respectivelly -char * kInDir = "/user/data"; -char * kPattern = ""; // Data are in diles /data/Run0, -// /Data/Run1 ... +char * kInDir = "/user/data/files/"; +char * kPattern = ""; // Data are in files kInDir/kPattern+i Int_t kEvent = 1; // Number of files //--------------------------------------------------------------------------- //Collection file for grid analysis @@ -45,7 +36,8 @@ const Int_t kNumberOfEventsPerFile = 100; //--------------------------------------------------------------------------- const Bool_t kMC = kTRUE; //With real data kMC = kFALSE -const TString kInputData = "ESD"; +const TString kInputData = "ESD";//ESD, AOD, MC +TString kTreeName = "esdTree"; void anaExampleTask(Int_t mode=mLocal) { @@ -61,7 +53,15 @@ void anaExampleTask(Int_t mode=mLocal) //------------------------------------------------------------------------------------------------- //Create chain from ESD and from cross sections files, look below for options. //------------------------------------------------------------------------------------------------- - TChain *chain = new TChain("esdTree") ; + if(kInputData == "ESD") kTreeName = "esdTree" ; + else if(kInputData == "AOD") kTreeName = "aodTree" ; + else if (kInputData == "MC") kTreeName = "TE" ; + else { + cout<<"Wrong data type "<SetReadTR(kFALSE);//Do not search TrackRef file mgr->SetMCtruthEventHandler(mcHandler); + if( kInputData == "MC") mgr->SetInputEventHandler(NULL); } // AOD output handler @@ -97,7 +98,7 @@ void anaExampleTask(Int_t mode=mLocal) mgr->SetInputEventHandler(aodHandler); } - //mgr->SetDebugLevel(10); // For debugging + //mgr->SetDebugLevel(-1); // For debugging //------------------------------------------------------------------------- //Define task, put here any other task that you want to use. @@ -127,8 +128,10 @@ void anaExampleTask(Int_t mode=mLocal) AliAnaScale * scale = new AliAnaScale("scale") ; scale->Set(xsection/ntrials/kNumberOfEventsPerFile/nfiles) ; + scale->MakeSumw2(kFALSE);//If you want histograms with error bars set to kTRUE + //scale->SetDebugLevel(2); mgr->AddTask(scale); - + AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("histosscaled", TList::Class(), AliAnalysisManager::kOutputContainer, "gammahistosscaled.root"); mgr->ConnectInput (scale, 0, coutput2); @@ -149,6 +152,9 @@ void anaExampleTask(Int_t mode=mLocal) mgr->InitAnalysis(); mgr->PrintStatus(); mgr->StartAnalysis(smode.Data(),chain); + + cout <<" Analysis ended sucessfully "<< endl ; + } else cout << "Chain was not produced ! "<Load("libANALYSIS"); //gSystem->Load("libANALYSISalice"); //gSystem->Load("libPWG4PartCorrBase"); - //gSystem->Load("libPWG4PartCorrDep"); + //gSystem->Load("libPWG4PartCorrDep"); //-------------------------------------------------------- //If you want to use root and par files from aliroot @@ -238,7 +244,8 @@ void SetupPar(char* pararchivename) TString processline(Form(".! make %s", parpar.Data())) ; gROOT->ProcessLine(processline.Data()) ; gSystem->ChangeDirectory(cdir) ; - processline = Form(".! mv /tmp/%s .", parpar.Data()) ; + //processline = Form(".! mv /tmp/%s .", parpar.Data()) ; + processline = Form(".! mv $ALICE_ROOT/%s .", parpar.Data()) ; gROOT->ProcessLine(processline.Data()) ; } if ( gSystem->AccessPathName(pararchivename) ) { @@ -320,7 +327,12 @@ void CreateChain(const anaModes mode, TChain * chain, TChain * chainxs){ cout<<"INDIR : "<Get("esdTree") ) { + if ( fESD->Get(kTreeName) ) { printf("++++ Adding %s\n", file) ; chain->AddFile(file); chainxs->Add(filexs) ; @@ -344,7 +356,7 @@ void CreateChain(const anaModes mode, TChain * chain, TChain * chainxs){ skipped++ ; } } - printf("number of entries # %lld, skipped %d\n", chain->GetEntries(), skipped*100) ; + printf("number of entries # %lld, skipped %d\n", chain->GetEntries(), skipped) ; } else { TString input = "AliESDs.root" ; diff --git a/PWG4/macros/anaPartCorrJetAn.C b/PWG4/macros/anaPartCorrJetAn.C index 5fb2317c880..c5c80f8b951 100644 --- a/PWG4/macros/anaPartCorrJetAn.C +++ b/PWG4/macros/anaPartCorrJetAn.C @@ -21,8 +21,8 @@ enum anaModes {mLocal, mLocalCAF,mPROOF,mGRID}; //Settings to read locally several files, only for "mLocal" mode //The different values are default, they can be set with environmental //variables: INDIR, PATTERN, NEVENT, respectivelly -char * kInDir = "/user/data/files"; -char * kPattern = ""; // Data are in files kInDir/kPattern+i +char * kInDir = "/user/data/files/"; +char * kPattern = ""; // Data are in files kInDir/kPattern+i Int_t kEvent = 1; // Number of files //--------------------------------------------------------------------------- //Collection file for grid analysis @@ -38,7 +38,9 @@ const Int_t kNumberOfEventsPerFile = 100; //--------------------------------------------------------------------------- const Bool_t kMC = kTRUE; //With real data kMC = kFALSE -const TString kInputData = "ESD"; +const TString kInputData = "ESD";//ESD, AOD, MC +TString kTreeName = "esdTree"; + void anaPartCorrJetAn(Int_t mode=mLocal, TString configName = "ConfigAnalysisGammaJetFinderCorrelation") { // Main @@ -53,7 +55,15 @@ void anaPartCorrJetAn(Int_t mode=mLocal, TString configName = "ConfigAnalysisGam //------------------------------------------------------------------------------------------------- //Create chain from ESD and from cross sections files, look below for options. //------------------------------------------------------------------------------------------------- - TChain *chain = new TChain("esdTree") ; + if(kInputData == "ESD") kTreeName = "esdTree" ; + else if(kInputData == "AOD") kTreeName = "aodTree" ; + else if (kInputData == "MC") kTreeName = "TE" ; + else { + cout<<"Wrong data type "<SetReadTR(kFALSE);//Do not search TrackRef file - mgr->SetMCtruthEventHandler(mcHandler); + mgr->SetMCtruthEventHandler(mcHandler); + if( kInputData == "MC") mgr->SetInputEventHandler(NULL); } // AOD output handler @@ -366,7 +377,12 @@ void CreateChain(const anaModes mode, TChain * chain, TChain * chainxs){ cout<<"INDIR : "<Get("esdTree") ) { + if ( fESD->Get(kTreeName) ) { printf("++++ Adding %s\n", file) ; chain->AddFile(file); chainxs->Add(filexs) ; @@ -390,7 +406,7 @@ void CreateChain(const anaModes mode, TChain * chain, TChain * chainxs){ skipped++ ; } } - printf("number of entries # %lld, skipped %d\n", chain->GetEntries(), skipped*100) ; + printf("number of entries # %lld, skipped %d\n", chain->GetEntries(), skipped) ; } else { TString input = "AliESDs.root" ;