fnSigmaTrk2(nsigmaTrk2),
fpartType1(partType1),
fpartType2(partType2),
+ murep(0x0),
fPIDResponse(0)
{
// Default constructor
fnSigmaTrk2(nsigmaTrk2),
fpartType1(partType1),
fpartType2(partType2),
- murep(0),
+ murep(0x0),
fPIDResponse(0)
{
// Constructor
}
//______________________________________________________________________________
-void AliAnalysisTaskESDNuclExFilter::AddFilteredAOD(const char* aodfilename, const char* title)
+void AliAnalysisTaskESDNuclExFilter::AddFilteredAOD(const char* aodfilename, const char* title, Bool_t toMerge)
{
//cout<<"Entro ne ADDFILTETEDAOD"<<endl;
AliAODHandler *aodH = (AliAODHandler*)((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
if (!aodH) Fatal("UserCreateOutputObjects", "No AOD handler");
- //cout<<"Add Filterd AOD "<<aodH->AddFilteredAOD(aodfilename,title)<<endl;
- AliAODExtension* ext = aodH->AddFilteredAOD(aodfilename,title);
- //cout<<"Handle inside add filterAOD: "<<aodH<<endl;
- //cout<<"########### ext: "<<ext<<endl;
-
- if (!ext) return;
-
- //cout<<"ONLY MUON?? "<<fOnlyMuon<<endl;
-
- if ( fOnlyMuon )
- {
-
- //cout<<"Inside fonly muon: "<<endl;
-
- if(!murep)delete murep;
-
- murep = new AliAODNuclExReplicator("NuclExReplicator",
- "remove non interesting tracks",
- // new AliAnalysisNonMuonTrackCuts,
- // new AliAnalysisNonPrimaryVertices,
- fMCMode,fnSigmaTrk1,fnSigmaTrk2,fpartType1,fpartType2);
-
- //cout<<"murep: "<<murep<<endl;
-
- ext->DropUnspecifiedBranches(); // all branches not part of a FilterBranch call (below) will be dropped
-
- // ext->FilterBranch("header",murep);
- // ext->FilterBranch("tracks",murep);
- // ext->FilterBranch("vertices",murep);
- // ext->FilterBranch("dimuons",murep); //per test
- // ext->FilterBranch("AliAODVZERO",murep);
- // ext->FilterBranch("AliAODTZERO",murep);
-
- ext->FilterBranch("header",murep);
- ext->FilterBranch("vertices",murep);
- ext->FilterBranch("nuclei",murep);
- ext->FilterBranch("secvertices",murep); //per test
- ext->FilterBranch("daughtertracks",murep);
+ if(aodH){
- //cout<<"add filterd aod"<<endl;
-
- if ( fMCMode > 0 )
- {
- // MC branches will be copied (if present), as they are, but only
- // for events with at least one muon.
- // For events w/o muon, mcparticles array will be empty and mcheader will be dummy
- // (e.g. strlen(GetGeneratorName())==0)
-
- ext->FilterBranch("mcparticles",murep);
- ext->FilterBranch("mcHeader",murep);
- }
- }
-
+ //cout<<"Add Filterd AOD "<<aodH->AddFilteredAOD(aodfilename,title)<<endl;
+ AliAODExtension* ext = aodH->AddFilteredAOD(aodfilename,title,toMerge);
+ //cout<<"Handle inside add filterAOD: "<<aodH<<endl;
+ //cout<<"########### ext: "<<ext<<endl;
+
+ if (!ext) return;
+
+ //cout<<"ONLY MUON?? "<<fOnlyMuon<<endl;
+
+ if ( fOnlyMuon )
+ {
+
+ //cout<<"Inside fonly muon: "<<endl;
+
+
+ if(!murep)delete murep;
+
+ murep = new AliAODNuclExReplicator("NuclExReplicator",
+ "remove non interesting tracks",
+ // new AliAnalysisNonMuonTrackCuts,
+ // new AliAnalysisNonPrimaryVertices,
+ fMCMode,fnSigmaTrk1,fnSigmaTrk2,fpartType1,fpartType2);
+
+ //cout<<"murep: "<<murep<<endl;
+
+ ext->DropUnspecifiedBranches(); // all branches not part of a FilterBranch call (below) will be dropped
+
+ // ext->FilterBranch("header",murep);
+ // ext->FilterBranch("tracks",murep);
+ // ext->FilterBranch("vertices",murep);
+ // ext->FilterBranch("dimuons",murep); //per test
+ // ext->FilterBranch("AliAODVZERO",murep);
+ // ext->FilterBranch("AliAODTZERO",murep);
+
+ ext->FilterBranch("header",murep);
+ ext->FilterBranch("vertices",murep);
+ ext->FilterBranch("nuclei",murep);
+ ext->FilterBranch("secvertices",murep); //per test
+ ext->FilterBranch("daughtertracks",murep);
+
+ //cout<<"add filterd aod"<<endl;
+
+ if ( fMCMode > 0 )
+ {
+ // MC branches will be copied (if present), as they are, but only
+ // for events with at least one muon.
+ // For events w/o muon, mcparticles array will be empty and mcheader will be dummy
+ // (e.g. strlen(GetGeneratorName())==0)
+
+ ext->FilterBranch("mcparticles",murep);
+ ext->FilterBranch("mcHeader",murep);
+ }
+ }
+
+ }
//cout<<"fine add filterd"<<endl;
}
//cout<<"%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Sono in INIT"<<endl;
// Initialization
if(fEnableMuonAOD)
- AddFilteredAOD("AliAOD.NuclEx.root", "MuonEvents");
+ AddFilteredAOD("AliAOD.NuclEx.root", "NuclexFilteredEvents",kTRUE);
//cout<<"Fine INIT"<<endl;
// if(fEnableDimuonAOD) AddFilteredAOD("AliAOD.Dimuons.root", "DimuonEvents");
}
//cout<<"========================> CONVERT ESD TO AOD <============================="<<endl;
- AliVEvent *event = InputEvent();
- //cout<<"VEvent: "<<event<<endl;
AliAODEvent *lAODevent=(AliAODEvent*)InputEvent();
- //cout<<"AOD Event: "<<event<<endl;
- AliAODHeader* header =lAODevent->GetHeader();
- //cout<<"header :"<<header<<endl;
- Int_t jTracks = lAODevent->GetNumberOfTracks();
- //cout<<"n jtracks :"<<jTracks<<endl;
// Read primary vertex from AOD event
// AliAODVertex *primary = *(AODEvent()->GetPrimaryVertex());
if ( extNuclEx ) {
// extNuclEx->Init("");
-
+
+ // extNuclEx->GetAOD()->GetHeader()->ResetEventplanePointer();
+ // extNuclEx->GetTree()->Fill(); // fill header for all events without tracks
+
extNuclEx->SetEvent(lAODevent);
extNuclEx->SelectEvent();
// extNuclEx->IsFilteredAOD();