]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - JETAN/AliJetFinder.cxx
make jet event background tnamed, add reset
[u/mrichter/AliRoot.git] / JETAN / AliJetFinder.cxx
... / ...
CommitLineData
1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/* $Id$ */
17
18//---------------------------------------------------------------------
19// Jet finder base class
20// manages the search for jets
21// Authors: jgcn@mda.cinvestav.mx
22// andreas.morsch@cern.ch
23// magali.estienne@subatech.in2p3.fr
24//---------------------------------------------------------------------
25
26#include <Riostream.h>
27#include <TFile.h>
28
29#include "AliJetFinder.h"
30#include "AliAODJet.h"
31#include "AliAODEvent.h"
32#include "AliJetUnitArray.h"
33#include "AliJetReaderHeader.h"
34#include "AliJetHeader.h"
35#include "AliJetReader.h"
36#include "AliAODJetEventBackground.h"
37
38ClassImp(AliJetFinder)
39
40AliJetFinder::AliJetFinder():
41 fReader(0x0),
42 fHeader(0x0),
43 fAODjets(0x0),
44 fNAODjets(0),
45 fAODEvBkg(0)
46{
47 //
48 // Constructor
49 //
50 fAODjets = 0;
51}
52
53////////////////////////////////////////////////////////////////////////
54AliJetFinder::~AliJetFinder()
55{
56 //
57 // Destructor
58 //
59}
60
61
62
63////////////////////////////////////////////////////////////////////////
64void AliJetFinder::WriteRHeaderToFile()
65{
66 // write reader header
67 AliJetReaderHeader *rh = fReader->GetReaderHeader();
68 rh->Write();
69}
70
71
72////////////////////////////////////////////////////////////////////////
73void AliJetFinder::ConnectTree(TTree* tree, TObject* data)
74{
75 // Connect the input file
76 fReader->ConnectTree(tree, data);
77}
78
79////////////////////////////////////////////////////////////////////////
80void AliJetFinder::WriteHeaders()
81{
82 // Write the Headers
83 TFile* f = new TFile("jets_local.root", "recreate");
84 WriteRHeaderToFile();
85 WriteJHeaderToFile();
86 f->Close();
87}
88
89////////////////////////////////////////////////////////////////////////
90Bool_t AliJetFinder::ProcessEvent()
91{
92 //
93 // Process one event
94 // Charged only jets
95 //
96
97 Bool_t ok = fReader->FillMomentumArray();
98 if (!ok) return kFALSE;
99 // Jets
100 FindJets(); // V1
101 Reset();
102 return kTRUE;
103}
104
105////////////////////////////////////////////////////////////////////////
106Bool_t AliJetFinder::ProcessEvent2()
107{
108 //
109 // Process one event
110 // Charged only or charged+neutral jets
111 //
112
113 TRefArray* ref = new TRefArray();
114 Bool_t procid = kFALSE;
115 Bool_t ok = fReader->ExecTasks(procid,ref);
116
117 // Delete reference pointer
118 if (!ok) {delete ref; return kFALSE;}
119 // Jets
120 FindJets();
121
122 Int_t nEntRef = ref->GetEntries();
123
124 for(Int_t i=0; i<nEntRef; i++)
125 {
126 // Reset the UnitArray content which were referenced
127 ((AliJetUnitArray*)ref->At(i))->SetUnitTrackID(0);
128 ((AliJetUnitArray*)ref->At(i))->SetUnitEnergy(0.);
129 ((AliJetUnitArray*)ref->At(i))->SetUnitCutFlag(kPtSmaller);
130 ((AliJetUnitArray*)ref->At(i))->SetUnitCutFlag2(kPtSmaller);
131 ((AliJetUnitArray*)ref->At(i))->SetUnitSignalFlag(kBad);
132 ((AliJetUnitArray*)ref->At(i))->SetUnitSignalFlagC(kTRUE,kBad);
133 ((AliJetUnitArray*)ref->At(i))->SetUnitDetectorFlag(kTpc);
134 ((AliJetUnitArray*)ref->At(i))->SetUnitFlag(kOutJet);
135 ((AliJetUnitArray*)ref->At(i))->ClearUnitTrackRef();
136
137 // Reset process ID
138 AliJetUnitArray* uA = (AliJetUnitArray*)ref->At(i);
139 uA->ResetBit(kIsReferenced);
140 uA->SetUniqueID(0);
141 }
142
143 // Delete the reference pointer
144 ref->Delete();
145 delete ref;
146
147 Reset();
148
149 return kTRUE;
150}
151
152
153void AliJetFinder::AddJet(AliAODJet p)
154{
155// Add new jet to the list
156 new ((*fAODjets)[fNAODjets++]) AliAODJet(p);
157}
158
159void AliJetFinder::ConnectAOD(AliAODEvent* aod)
160{
161// Connect to the AOD
162 fAODjets = aod->GetJets();
163}
164
165////////////////////////////////////////////////////////////////////////
166void AliJetFinder::ConnectAODNonStd(AliAODEvent* aod,const char *bname)
167{
168
169 fAODjets = dynamic_cast<TClonesArray*>(aod->FindListObject(bname));
170 // how is this is reset? Cleared?
171}
172