]> git.uio.no Git - u/mrichter/AliRoot.git/blob - JETAN/AliJetFinder.cxx
Obsolete code removed.
[u/mrichter/AliRoot.git] / JETAN / AliJetFinder.cxx
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
34 class TProcessID;
35 class TClonesArray;
36
37 ClassImp(AliJetFinder)
38
39 AliJetFinder::AliJetFinder():
40     fReader(0x0),
41     fHeader(0x0),
42     fAODjets(0x0),
43     fNAODjets(0)
44 {
45   //
46   // Constructor
47   //
48   fAODjets = 0;
49 }
50
51 ////////////////////////////////////////////////////////////////////////
52 AliJetFinder::~AliJetFinder()
53 {
54   //
55   // Destructor
56   //
57 }
58
59
60
61 ////////////////////////////////////////////////////////////////////////
62 void AliJetFinder::WriteRHeaderToFile()
63 {
64   // write reader header
65     AliJetReaderHeader *rh = fReader->GetReaderHeader();
66     rh->Write();
67 }
68
69
70 ////////////////////////////////////////////////////////////////////////
71 void AliJetFinder::ConnectTree(TTree* tree, TObject* data)
72 {
73     // Connect the input file
74     fReader->ConnectTree(tree, data);
75 }
76
77 ////////////////////////////////////////////////////////////////////////
78 void AliJetFinder::WriteHeaders()
79 {
80     // Write the Headers
81     TFile* f = new TFile("jets_local.root", "recreate");
82     WriteRHeaderToFile();
83     WriteJHeaderToFile();
84     f->Close();
85 }
86
87 ////////////////////////////////////////////////////////////////////////
88 Bool_t AliJetFinder::ProcessEvent()
89 {
90   //
91   // Process one event
92   // Charged only jets
93   //
94
95   Bool_t ok = fReader->FillMomentumArray();
96   if (!ok) return kFALSE;
97   // Jets
98   FindJets(); // V1
99   Reset();  
100   return kTRUE;
101 }
102
103 ////////////////////////////////////////////////////////////////////////
104 Bool_t AliJetFinder::ProcessEvent2()
105 {
106   //
107   // Process one event
108   // Charged only or charged+neutral jets
109   //
110
111   TRefArray* ref = new TRefArray();
112   Bool_t procid = kFALSE;
113   Bool_t ok = fReader->ExecTasks(procid,ref);
114
115   // Delete reference pointer  
116   if (!ok) {delete ref; return kFALSE;}
117   // Jets
118   FindJets();
119   
120   Int_t nEntRef = ref->GetEntries();
121
122   for(Int_t i=0; i<nEntRef; i++)
123     { 
124       // Reset the UnitArray content which were referenced
125       ((AliJetUnitArray*)ref->At(i))->SetUnitTrackID(0);
126       ((AliJetUnitArray*)ref->At(i))->SetUnitEnergy(0.);
127       ((AliJetUnitArray*)ref->At(i))->SetUnitCutFlag(kPtSmaller);
128       ((AliJetUnitArray*)ref->At(i))->SetUnitCutFlag2(kPtSmaller);
129       ((AliJetUnitArray*)ref->At(i))->SetUnitSignalFlag(kBad);
130       ((AliJetUnitArray*)ref->At(i))->SetUnitSignalFlagC(kTRUE,kBad);
131       ((AliJetUnitArray*)ref->At(i))->SetUnitDetectorFlag(kTpc);
132       ((AliJetUnitArray*)ref->At(i))->SetUnitFlag(kOutJet);
133       ((AliJetUnitArray*)ref->At(i))->ClearUnitTrackRef();
134
135       // Reset process ID
136       AliJetUnitArray* uA = (AliJetUnitArray*)ref->At(i);
137       uA->ResetBit(kIsReferenced);
138       uA->SetUniqueID(0);     
139     }
140
141   // Delete the reference pointer
142   ref->Delete();
143   delete ref;
144
145   Reset();
146
147   return kTRUE;
148 }
149
150
151 void AliJetFinder::AddJet(AliAODJet p)
152 {
153 // Add new jet to the list
154   new ((*fAODjets)[fNAODjets++]) AliAODJet(p);
155 }
156
157 void AliJetFinder::ConnectAOD(AliAODEvent* aod)
158 {
159 // Connect to the AOD
160     fAODjets = aod->GetJets();
161 }
162
163 ////////////////////////////////////////////////////////////////////////
164 void AliJetFinder::ConnectAODNonStd(AliAODEvent* aod,const char *bname)
165 {
166
167   fAODjets = dynamic_cast<TClonesArray*>(aod->FindListObject(bname));
168   // how is this is reset? Cleared?
169 }
170