X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWGPP%2FAliAnalysisTaskFilteredTree.cxx;h=716c41c4e0595a0cd9df825f2e69e7208d2cd6b2;hb=5657cf196677274b82f2fafb0d86c4958bd0f43d;hp=cc338d474e886bff73268d84acc2d525aafb73a2;hpb=82522b46e3b77e7aba7402b7cff118ff810ef059;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWGPP/AliAnalysisTaskFilteredTree.cxx b/PWGPP/AliAnalysisTaskFilteredTree.cxx index cc338d474e8..716c41c4e05 100644 --- a/PWGPP/AliAnalysisTaskFilteredTree.cxx +++ b/PWGPP/AliAnalysisTaskFilteredTree.cxx @@ -13,6 +13,27 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ +/* + Class to process/filter reconstruction information from ESD, ESD friends, MC and provide them for later reprocessing + Filtering schema - low pt part is downscaled - to have flat pt specatra of selected topologies (tracks and V0s) + Downscaling schema is controlled by downscaling factors + Usage: + 1.) Filtering on Lego train + 2.) expert QA for tracking (resolution efficnecy) + 3.) pt reoslution studies using V0s + 4.) dEdx calibration using V0s + 5.) pt resolution and dEdx studies using cosmic + + + 6.) Info used for later raw data OFFLINE triggering (highPt, V0, laser, cosmic, high dEdx) + + Exported trees (with full objects and dereived variables): + 1.) "highPt" - filtered trees with esd tracks, derived variables(propagated tracks), optional MC info +optional space points + 2.) "V0s" - - filtered trees with selected V0s (rough KF chi2 cut), KF particle and corresponding esd tracks + optionla space points + 3.) "Laser" - dump laser tracks with space points if exests + 4.) "CosmicTree" - cosmic track candidate (random or triggered) + esdTracks(up/down)+ optional points + 5.) "dEdx" - tree with high dEdx tpc tracks +*/ + #include "iostream" #include "TSystem.h" #include @@ -109,6 +130,7 @@ ClassImp(AliAnalysisTaskFilteredTree) , fPtResCentPtTPC(0) , fPtResCentPtTPCc(0) , fPtResCentPtTPCITS(0) + , fCurrentFileName("") , fDummyTrack(0) { // Constructor @@ -126,16 +148,9 @@ ClassImp(AliAnalysisTaskFilteredTree) //_____________________________________________________________________________ AliAnalysisTaskFilteredTree::~AliAnalysisTaskFilteredTree() { - //the output trees not to be deleted in case of proof analysis - //Bool_t deleteTrees=kTRUE; - //if ((AliAnalysisManager::GetAnalysisManager())) - //{ - // if (AliAnalysisManager::GetAnalysisManager()->GetAnalysisType() == - // AliAnalysisManager::kProofAnalysis) - // deleteTrees=kFALSE; - //} - //if (deleteTrees) delete fTreeSRedirector; - + // + // Destructor + // delete fFilteredTreeEventCuts; delete fFilteredTreeAcceptanceCuts; delete fFilteredTreeRecAcceptanceCuts; @@ -145,15 +160,16 @@ AliAnalysisTaskFilteredTree::~AliAnalysisTaskFilteredTree() //____________________________________________________________________________ Bool_t AliAnalysisTaskFilteredTree::Notify() { + // + // static Int_t count = 0; count++; TTree *chain = (TChain*)GetInputData(0); - if(chain) - { + if(chain){ Printf("Processing %d. file: %s", count, chain->GetCurrentFile()->GetName()); - } - -return kTRUE; + } + fCurrentFileName=chain->GetCurrentFile()->GetName(); + return kTRUE; } //_____________________________________________________________________________ @@ -283,45 +299,42 @@ void AliAnalysisTaskFilteredTree::UserExec(Option_t *) Printf("ERROR: ESD event not available"); return; } - - //// MC event - //if(fUseMCInfo) { - // fMC = MCEvent(); - // if (!fMC) { - // Printf("ERROR: MC event not available"); - // return; - // } - //} - //if MC info available - use it. fMC = MCEvent(); - if(fUseESDfriends) { //fESDfriend = dynamic_cast(fESD->FindListObject("AliESDfriend")); fESDfriend = ESDfriend(); - if(!fESDfriend) { Printf("ERROR: ESD friends not available"); } } + AliInputEventHandler* inputHandler = (AliInputEventHandler*) AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler(); + if (!inputHandler){ + return; + } //if set, use the environment variables to set the downscaling factors //AliAnalysisTaskFilteredTree_fLowPtTrackDownscaligF //AliAnalysisTaskFilteredTree_fLowPtV0DownscaligF + //AliAnalysisTaskFilteredTree_fFriendDownscaling TString env; env = gSystem->Getenv("AliAnalysisTaskFilteredTree_fLowPtTrackDownscaligF"); - if (!env.IsNull()) - { + if (!env.IsNull()){ fLowPtTrackDownscaligF=env.Atof(); AliInfo(Form("fLowPtTrackDownscaligF=%f",fLowPtTrackDownscaligF)); } env = gSystem->Getenv("AliAnalysisTaskFilteredTree_fLowPtV0DownscaligF"); - if (!env.IsNull()) - { + if (!env.IsNull()){ fLowPtV0DownscaligF=env.Atof(); AliInfo(Form("fLowPtV0DownscaligF=%f",fLowPtTrackDownscaligF)); } - + env = gSystem->Getenv("AliAnalysisTaskFilteredTree_fFriendDownscaling"); + if (!env.IsNull()){ + fFriendDownscaling=env.Atof(); + AliInfo(Form(" fFriendDownscaling=%f",fFriendDownscaling)); + } + // + // // if(fProcessAll) { ProcessAll(fESD,fMC,fESDfriend); // all track stages and MC @@ -329,49 +342,21 @@ void AliAnalysisTaskFilteredTree::UserExec(Option_t *) else { Process(fESD,fMC,fESDfriend); // only global and TPC tracks } - // ProcessV0(fESD,fMC,fESDfriend); ProcessLaser(fESD,fMC,fESDfriend); ProcessdEdx(fESD,fMC,fESDfriend); - if (fProcessCosmics) { ProcessCosmics(fESD,fESDfriend); } if(fMC) { ProcessMCEff(fESD,fMC,fESDfriend);} if (fProcessITSTPCmatchOut) ProcessITSTPCmatchOut(fESD, fESDfriend); - printf("processed event %d\n", Entry()); + printf("processed event %d\n", Int_t(Entry())); } //_____________________________________________________________________________ void AliAnalysisTaskFilteredTree::ProcessCosmics(AliESDEvent *const event, AliESDfriend* esdFriend) { // - // Select real events with high-pT tracks - // - if(!event) { - AliDebug(AliLog::kError, "event not available"); - return; - } - - // - AliInputEventHandler* inputHandler = (AliInputEventHandler*) AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler(); - if (!inputHandler) - { - Printf("ERROR: Could not receive input handler"); - return; - } - - // get file name - TTree *chain = (TChain*)GetInputData(0); - if(!chain) { - Printf("ERROR: Could not receive input chain"); - return; - } - TObjString fileName(chain->GetCurrentFile()->GetName()); - - - // check for cosmic pairs - // - // find cosmic pairs trigger by random trigger + // Find cosmic pairs (triggered or random) // // AliESDVertex *vertexSPD = (AliESDVertex *)event->GetPrimaryVertexSPD(); @@ -381,12 +366,9 @@ void AliAnalysisTaskFilteredTree::ProcessCosmics(AliESDEvent *const event, AliES const Double_t kMinNcl=50; const Double_t kMaxDelta[5]={2,600,0.02,0.02,0.1}; Int_t ntracks=event->GetNumberOfTracks(); - // Float_t dcaTPC[2]={0,0}; - // Float_t covTPC[3]={0,0,0}; - UInt_t specie = event->GetEventSpecie(); // skip laser events if (specie==AliRecoParam::kCalib) return; - + Int_t ntracksFriend = esdFriend ? esdFriend->GetNumberOfTracks() : 0; for (Int_t itrack0=0;itrack0GetInnerParam(); AliESDfriendTrack* friendTrack0=NULL; - if (esdFriend) {if (!esdFriend->TestSkipBit()) friendTrack0 = esdFriend->GetTrack(itrack0);} //this guy can be NULL + if (esdFriend &&!esdFriend->TestSkipBit()){ + if (itrack0GetTrack(itrack0); + } //this guy can be NULL + } for (Int_t itrack1=itrack0+1;itrack1GetTrack(itrack1); @@ -444,10 +430,6 @@ void AliAnalysisTaskFilteredTree::ProcessCosmics(AliESDEvent *const event, AliES if (!isPair) continue; TString filename(AliAnalysisManager::GetAnalysisManager()->GetTree()->GetCurrentFile()->GetName()); Int_t eventNumber = event->GetEventNumberInFile(); - //Bool_t hasFriend = kFALSE; - //Bool_t hasITS=(track0->GetNcls(0)+track1->GetNcls(0)>4); - //printf("DUMPHPTCosmic:%s|%f|%d|%d|%d\n",filename.Data(),(TMath::Min(track0->Pt(),track1->Pt())), eventNumber,hasFriend,hasITS); - // const AliExternalTrackParam * trackIn1 = track1->GetInnerParam(); // // Int_t ntracksSPD = vertexSPD->GetNContributors(); @@ -464,30 +446,14 @@ void AliAnalysisTaskFilteredTree::ProcessCosmics(AliESDEvent *const event, AliES ULong64_t periodID = (ULong64_t)event->GetPeriodNumber(); ULong64_t gid = ((periodID << 36) | (orbitID << 12) | bunchCrossID); - // - // Dump to the tree - // vertex - // TPC-ITS tracks - // - - //fCosmicPairsTree->Branch("fileName",&fileName,32000,0); - //fCosmicPairsTree->Branch("runNumber",&runNumber,"runNumber/I"); - //fCosmicPairsTree->Branch("timeStamp",&timeStamp,"timeStamp/I"); - //fCosmicPairsTree->Branch("eventNumber",&eventNumber,"eventNumber/I"); - //fCosmicPairsTree->Branch("triggerMask",&triggerMask,32000,0); - //fCosmicPairsTree->Branch("triggerClass",&triggerClass,32000,0); - //fCosmicPairsTree->Branch("magField",&magField,"magField/F"); - //fCosmicPairsTree->Branch("ntracksSPD",&ntracksSPD,"ntracksSPD/I"); - //fCosmicPairsTree->Branch("ntracksTPC",&ntracksTPC,"ntracksTPC/I"); - //fCosmicPairsTree->Branch("vertexSPD",vertexSPD,32000,0); - //fCosmicPairsTree->Branch("vertexTPC",vertexTPC,32000,0); - //fCosmicPairsTree->Branch("track0",track0,32000,0); - //fCosmicPairsTree->Branch("track1",track1,32000,0); - // - //fCosmicPairsTree->Fill(); AliESDfriendTrack* friendTrack1=NULL; - if (esdFriend) {if (!esdFriend->TestSkipBit()) friendTrack1 = esdFriend->GetTrack(itrack1);} //this guy can be NULL + if (esdFriend &&!esdFriend->TestSkipBit()){ + if (itrack1GetTrack(itrack1); + } //this guy can be NULL + } + // AliESDfriendTrack *friendTrackStore0=friendTrack0; // store friend track0 for later processing AliESDfriendTrack *friendTrackStore1=friendTrack1; // store friend track1 for later processing @@ -513,28 +479,26 @@ void AliAnalysisTaskFilteredTree::ProcessCosmics(AliESDEvent *const event, AliES } } } - - if(!fFillTree) return; if(!fTreeSRedirector) return; (*fTreeSRedirector)<<"CosmicPairs"<< - "gid="<GetInputEventHandler(); - if (!inputHandler) - { - Printf("ERROR: Could not receive input handler"); - return; - } - - // get file name - TTree *chain = (TChain*)GetInputData(0); - if(!chain) { - Printf("ERROR: Could not receive input chain"); - return; - } - TObjString fileName(chain->GetCurrentFile()->GetName()); - // trigger if(evtCuts->IsTriggerRequired()) { @@ -733,30 +679,11 @@ void AliAnalysisTaskFilteredTree::Process(AliESDEvent *const esdEvent, AliMCEven // TPC-ITS tracks // TObjString triggerClass = esdEvent->GetFiredTriggerClasses().Data(); - - //fHighPtTree->Branch("fileName",&fileName,32000,0); - //fHighPtTree->Branch("runNumber",&runNumber,"runNumber/I"); - //fHighPtTree->Branch("evtTimeStamp",&evtTimeStamp,"evtTimeStamp/I"); - //fHighPtTree->Branch("evtNumberInFile",&evtNumberInFile,"evtNumberInFile/I"); - //fHighPtTree->Branch("triggerClass",&triggerClass,32000,0); - //fHighPtTree->Branch("Bz",&bz,"Bz/F"); - //fHighPtTree->Branch("vtxESD",vtxESD,32000,0); - //fHighPtTree->Branch("IRtot",&ir1,"IRtot/I"); - //fHighPtTree->Branch("IRint2",&ir2,"IRint2/I"); - //fHighPtTree->Branch("mult",&mult,"mult/I"); - //fHighPtTree->Branch("esdTrack",track,32000,0); - //fHighPtTree->Branch("centralityF",¢ralityF,"centralityF/F"); - - //fHighPtTree->Fill(); - - //Double_t vtxX=vtxESD->GetX(); - //Double_t vtxY=vtxESD->GetY(); - //Double_t vtxZ=vtxESD->GetZ(); if(!fFillTree) return; if(!fTreeSRedirector) return; (*fTreeSRedirector)<<"highPt"<< "gid="<GetCurrentFile()->GetName()); - + const Double_t kMinPt = 5; if(!fFillTree) return; if(!fTreeSRedirector) return; - - // laser events const AliESDHeader* esdHeader = esdEvent->GetHeader(); - if(esdHeader && esdHeader->GetEventSpecie()==AliRecoParam::kCalib) - { + if(esdHeader && esdHeader->GetEventSpecie()==AliRecoParam::kCalib) { Int_t countLaserTracks = 0; Int_t runNumber = esdEvent->GetRunNumber(); Int_t evtTimeStamp = esdEvent->GetTimeStamp(); @@ -817,27 +727,26 @@ void AliAnalysisTaskFilteredTree::ProcessLaser(AliESDEvent *const esdEvent, AliM ULong64_t bunchCrossID = (ULong64_t)esdEvent->GetBunchCrossNumber(); ULong64_t periodID = (ULong64_t)esdEvent->GetPeriodNumber(); ULong64_t gid = ((periodID << 36) | (orbitID << 12) | bunchCrossID); - - for (Int_t iTrack = 0; iTrack < esdEvent->GetNumberOfTracks(); iTrack++) - { + for (Int_t iTrack = 0; iTrack < esdEvent->GetNumberOfTracks(); iTrack++){ AliESDtrack *track = esdEvent->GetTrack(iTrack); if(!track) continue; - - if(track->GetTPCInnerParam()) countLaserTracks++; - + if(track->GetTPCInnerParam()) countLaserTracks++; AliESDfriendTrack* friendTrack=NULL; - if (esdFriend) {if (!esdFriend->TestSkipBit()) friendTrack = esdFriend->GetTrack(iTrack);} //this guy can be NULL - + // suppress beam background and CE random reacks + if (track->GetInnerParam()->Pt()Rndm()>1/(1+TMath::Abs(fFriendDownscaling)); + if (skipTrack) continue; + if (esdFriend) {if (!esdFriend->TestSkipBit()) friendTrack = esdFriend->GetTrack(iTrack);} //this guy can be NULL (*fTreeSRedirector)<<"Laser"<< "gid="<GetInputEventHandler(); - if (!inputHandler) - { - Printf("ERROR: Could not receive input handler"); - return; - } - // get file name - TTree *chain = (TChain*)GetInputData(0); - if(!chain) { - Printf("ERROR: Could not receive input chain"); - return; - } - TObjString fileName(chain->GetCurrentFile()->GetName()); // trigger if(evtCuts->IsTriggerRequired()) @@ -1446,32 +1337,6 @@ void AliAnalysisTaskFilteredTree::ProcessAll(AliESDEvent *const esdEvent, AliMCE if (!particleITS) {particleITS=&dummyparticle;} if (!particleMotherITS) {particleMotherITS=&dummyparticle;} } - //the following are guaranteed to exist: - //if (!tpcInnerC) {tpcInnerC=&dummyexternaltrackparam;} - //if (!trackInnerC) {trackInnerC=&dummyexternaltrackparam;} - //if (!trackInnerC2) {trackInnerC2=&dummyexternaltrackparam;} - //if (!outerITSc) {outerITSc=&dummyexternaltrackparam;} - //if (!trackInnerC3) {trackInnerC3=&dummyexternaltrackparam;} - ///////////////////////// - - //Double_t vtxX=vtxESD->GetX(); - //Double_t vtxY=vtxESD->GetY(); - //Double_t vtxZ=vtxESD->GetZ(); - - //AliESDVertex* pvtxESD = (AliESDVertex*)vtxESD->Clone(); - //AliESDtrack* ptrack=(AliESDtrack*)track->Clone(); - //AliExternalTrackParam* ptpcInnerC = (AliExternalTrackParam*)tpcInnerC->Clone(); - //AliExternalTrackParam* ptrackInnerC = (AliExternalTrackParam*)trackInnerC->Clone(); - //AliExternalTrackParam* ptrackInnerC2 = (AliExternalTrackParam*)trackInnerC2->Clone(); - //AliExternalTrackParam* pouterITSc = (AliExternalTrackParam*)outerITSc->Clone(); - //AliExternalTrackParam* ptrackInnerC3 = (AliExternalTrackParam*)trackInnerC3->Clone(); - //AliESDVertex* pvtxESD = new AliESDVertex(*vtxESD); - //AliESDtrack* ptrack= new AliESDtrack(*track); - //AliExternalTrackParam* ptpcInnerC = new AliExternalTrackParam(*tpcInnerC); - //AliExternalTrackParam* ptrackInnerC = new AliExternalTrackParam(*trackInnerC); - //AliExternalTrackParam* ptrackInnerC2 = new AliExternalTrackParam(*trackInnerC2); - //AliExternalTrackParam* pouterITSc = new AliExternalTrackParam(*outerITSc); - //AliExternalTrackParam* ptrackInnerC3 = new AliExternalTrackParam(*trackInnerC3); Int_t ntracks = esdEvent->GetNumberOfTracks(); @@ -1484,34 +1349,16 @@ void AliAnalysisTaskFilteredTree::ProcessAll(AliESDEvent *const esdEvent, AliMCE // fill histograms FillHistograms(track, tpcInnerC, centralityF, (Double_t)chi2(0,0)); - if(fTreeSRedirector && dumpToTree && fFillTree) - { - - //if (friendTrack) - //{ - // const AliTrackPointArray* array = friendTrack->GetTrackPointArray(); - // if (!array) {printf("we have a friend, but the ponits are empty\n"); continue;} - // if (friendTrack==fDummyFriendTrack) printf("using the dummy friend track\n"); - // cout<GetX()[0]<<" "<GetX()[2]<GetInputEventHandler(); - if (!inputHandler) - { - Printf("ERROR: Could not receive input handler"); - return; - } - // get file name - TTree *chain = (TChain*)GetInputData(0); - if(!chain) { - Printf("ERROR: Could not receive input chain"); - return; - } - TObjString fileName(chain->GetCurrentFile()->GetName()); // trigger if(evtCuts->IsTriggerRequired()) { // always MB isEventTriggered = inputHandler->IsEventSelected() & AliVEvent::kMB; - physicsSelection = static_cast (inputHandler->GetEventSelection()); if(!physicsSelection) return; @@ -1857,7 +1682,7 @@ void AliAnalysisTaskFilteredTree::ProcessMCEff(AliESDEvent *const esdEvent, AliM // if(fTreeSRedirector && fFillTree) { (*fTreeSRedirector)<<"MCEffTree"<< - "fileName.="<<&fileName<< + "fileName.="<<&fCurrentFileName<< "triggerClass.="<<&triggerClass<< "runNumber="<GetCurrentFile()->GetName()); // trigger if(evtCuts->IsTriggerRequired()) @@ -2030,10 +1842,20 @@ void AliAnalysisTaskFilteredTree::ProcessV0(AliESDEvent *const esdEvent, AliMCEv AliESDfriendTrack* friendTrack1=NULL; if (esdFriend) { if (!esdFriend->TestSkipBit()){ - friendTrack0 = esdFriend->GetTrack(v0->GetIndex(0)); //this guy can be NULL - friendTrack1 = esdFriend->GetTrack(v0->GetIndex(1)); //this guy can be NULL + Int_t ntracksFriend = esdFriend->GetNumberOfTracks(); + if (v0->GetIndex(0)GetTrack(v0->GetIndex(0)); //this guy can be NULL + } + if (v0->GetIndex(1)GetTrack(v0->GetIndex(1)); //this guy can be NULL + } } } + if (track0->GetSign()<0) { + track1 = esdEvent->GetTrack(v0->GetIndex(0)); + track0 = esdEvent->GetTrack(v0->GetIndex(1)); + } + // AliESDfriendTrack *friendTrackStore0=friendTrack0; // store friend track0 for later processing AliESDfriendTrack *friendTrackStore1=friendTrack1; // store friend track1 for later processing @@ -2060,10 +1882,6 @@ void AliAnalysisTaskFilteredTree::ProcessV0(AliESDEvent *const esdEvent, AliMCEv } } - if (track0->GetSign()<0) { - track1 = esdEvent->GetTrack(v0->GetIndex(0)); - track0 = esdEvent->GetTrack(v0->GetIndex(1)); - } // Bool_t isDownscaled = IsV0Downscaled(v0); if (isDownscaled) continue; @@ -2075,19 +1893,19 @@ void AliAnalysisTaskFilteredTree::ProcessV0(AliESDEvent *const esdEvent, AliMCEv if(!fFillTree) return; if(!fTreeSRedirector) return; (*fTreeSRedirector)<<"V0s"<< - "gid="<GetCurrentFile()->GetName()); // trigger Bool_t isEventTriggered = kTRUE; @@ -2133,11 +1944,6 @@ void AliAnalysisTaskFilteredTree::ProcessdEdx(AliESDEvent *const esdEvent, AliMC // AliInputEventHandler* inputHandler = (AliInputEventHandler*) AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler(); - if (!inputHandler) - { - Printf("ERROR: Could not receive input handler"); - return; - } if(evtCuts->IsTriggerRequired()) { @@ -2198,7 +2004,13 @@ void AliAnalysisTaskFilteredTree::ProcessdEdx(AliESDEvent *const esdEvent, AliMC AliESDtrack *track = esdEvent->GetTrack(iTrack); if(!track) continue; AliESDfriendTrack* friendTrack=NULL; - if (esdFriend) {if (!esdFriend->TestSkipBit()) friendTrack = esdFriend->GetTrack(iTrack);} //this guy can be NULL + if (esdFriend && !esdFriend->TestSkipBit()) { + Int_t ntracksFriend = esdFriend->GetNumberOfTracks(); + if (iTrackGetTrack(iTrack); + } //this guy can be NULL + } + if(track->Charge()==0) continue; if(!esdTrackCuts->AcceptTrack(track)) continue; if(!accCuts->AcceptTrack(track)) continue; @@ -2208,15 +2020,15 @@ void AliAnalysisTaskFilteredTree::ProcessdEdx(AliESDEvent *const esdEvent, AliMC if(!fFillTree) return; if(!fTreeSRedirector) return; - (*fTreeSRedirector)<<"dEdx"<< - "gid="<Add("jotwinow_Temp_Trees.root"); - // fHighPtTree = chain->CopyTree("1"); - // delete chain; chain=0; - //} - //if(fHighPtTree) fHighPtTree->Print(); - - //// - //chain = new TChain("V0s"); - //if(chain) { - // chain->Add("jotwinow_Temp_Trees.root"); - // fV0Tree = chain->CopyTree("1"); - // delete chain; chain=0; - //} - //if(fV0Tree) fV0Tree->Print(); - - //// - //chain = new TChain("dEdx"); - //if(chain) { - // chain->Add("jotwinow_Temp_Trees.root"); - // fdEdxTree = chain->CopyTree("1"); - // delete chain; chain=0; - //} - //if(fdEdxTree) fdEdxTree->Print(); - - //// - //chain = new TChain("Laser"); - //if(chain) { - // chain->Add("jotwinow_Temp_Trees.root"); - // fLaserTree = chain->CopyTree("1"); - // delete chain; chain=0; - //} - //if(fLaserTree) fLaserTree->Print(); - - //// - //chain = new TChain("MCEffTree"); - //if(chain) { - // chain->Add("jotwinow_Temp_Trees.root"); - // fMCEffTree = chain->CopyTree("1"); - // delete chain; chain=0; - //} - //if(fMCEffTree) fMCEffTree->Print(); - - //// - //chain = new TChain("CosmicPairs"); - //if(chain) { - // chain->Add("jotwinow_Temp_Trees.root"); - // fCosmicPairsTree = chain->CopyTree("1"); - // delete chain; chain=0; - //} - //if(fCosmicPairsTree) fCosmicPairsTree->Print(); - Bool_t deleteTrees=kTRUE; if ((AliAnalysisManager::GetAnalysisManager())) { @@ -2637,40 +2386,14 @@ void AliAnalysisTaskFilteredTree::FinishTaskOutput() } if (deleteTrees) delete fTreeSRedirector; fTreeSRedirector=NULL; - - //OpenFile(1); - - // Post output data. - //PostData(1, fHighPtTree); - //PostData(2, fV0Tree); - //PostData(3, fdEdxTree); - //PostData(4, fLaserTree); - //PostData(5, fMCEffTree); - //PostData(6, fCosmicPairsTree); } //_____________________________________________________________________________ void AliAnalysisTaskFilteredTree::Terminate(Option_t *) { + // // Called one at the end - /* - fOutputSummary = dynamic_cast (GetOutputData(1)); - if(fOutputSummary) delete fOutputSummary; fOutputSummary=0; - TChain* chain = new TChain("highPt"); - if(!chain) return; - chain->Add("jotwinow_HighPt_TrackAndV0_Trees.root"); - TTree *tree = chain->CopyTree("1"); - if (chain) { delete chain; chain=0; } - if(!tree) return; - tree->Print(); - fOutputSummary = tree; - - if (!fOutputSummary) { - Printf("ERROR: AliAnalysisTaskFilteredTree::Terminate(): Output data not avaiable %p \n", GetOutputData(1)); - return; - } - */ - + // } //_____________________________________________________________________________