ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
   
//---------------------------------------------------------------------
// Jet finder analysis class deriving from TSelector
// and using AliJetFinder.cxx
// manages the search for jets 
// Author: andreas.morsch@cern.ch
//---------------------------------------------------------------------

#include <Riostream.h>
#include <TTree.h>
#include <TFile.h>
#include "AliJetSelector.h"
#include "AliJetESDReaderHeader.h"
#include "AliJetESDReader.h"
#include "AliUA1JetHeaderV1.h"
#include "AliUA1JetFinderV1.h"
#include "AliJetFinder.h"

AliJetSelector::AliJetSelector(TTree*):
    TSelector(),  
    fJetFinder(0)
{
  // Constructor
}

////////////////////////////////////////////////////////////////////////

AliJetSelector::~AliJetSelector()
{
  // destructor
    delete fJetFinder;
}

void AliJetSelector::Config()
{
    //
    // Configuration goes here
    // 
    printf("JetSelector::Config\n");
    AliJetESDReaderHeader *jrh = new AliJetESDReaderHeader();
    jrh->SetComment("Testing");
    jrh->SetDirectory("/home/morsch/analysis/AliEn/PDC06/");
    jrh->SetPattern("00");
    jrh->SetFirstEvent(0);
    jrh->SetLastEvent(1000);
    jrh->SetPtCut(0.);
    jrh->SetReadSignalOnly(kFALSE);
    // Define reader and set its header
    AliJetESDReader *er = new AliJetESDReader();
    er->SetReaderHeader(jrh);
   
 
    // Define jet header
    AliUA1JetHeaderV1 *jh=new AliUA1JetHeaderV1();
    jh->SetComment("UA1 jet code with default parameters");
    jh->BackgMode(0);
    jh->SetRadius(1.0);
    jh->SetEtSeed(2.);
    jh->SetLegoNbinPhi(420.);
    jh->SetLegoNbinEta(120.);
    jh->SetLegoEtaMin(-1.9);
    jh->SetLegoEtaMax(+1.9);  
    jh->SetMinJetEt(5.);
    
  // Define jet finder. Set its header and reader
    fJetFinder = new AliUA1JetFinderV1();
    fJetFinder->SetJetHeader(jh);
    fJetFinder->SetJetReader(er);
    fJetFinder->SetPlotMode(kTRUE);
    fJetFinder->SetOutputFile("jets.root");
}


void AliJetSelector::Begin(TTree*)
{
    // The Begin() function is called at the start of the query.
    // When running with PROOF Begin() is only called on the client.
    // The tree argument is deprecated (on PROOF 0 is passed).
    printf("JetSelector::Begin \n");
    TString option = GetOption();
}

void   AliJetSelector::SlaveBegin(TTree* tree)
{
    // The SlaveBegin() function is called after the Begin() function.
    // When running with PROOF SlaveBegin() is called on each slave server.
    // The tree argument is deprecated (on PROOF 0 is passed).
    printf("JetSelector::SlaveBegin \n");
    // TSelector::Init
    Init(tree);
    // Configuration
    Config();
    // Initialize Jet Finder
    fJetFinder->Init();
    // Connect Tree
    fJetFinder->ConnectTree(tree);
    // Write the headers
    fJetFinder->WriteHeaders();
}

void   AliJetSelector::Init(TTree* tree)
{
    // 
    // Here the chain has to be assigned to the reader
    // 
    printf("JetSelector::Init \n");
}

Bool_t AliJetSelector::Notify()
{
    // The Notify() function is called when a new file is opened. This
    // can be either for a new TTree in a TChain or when when a new TTree
    // is started when using PROOF. Typically here the branch pointers
    // will be retrieved. It is normaly not necessary to make changes
    // to the generated code, but the routine can be extended by the
    // user if needed.
    printf("JetSelector::Notify \n");
    return kTRUE;
}

Bool_t AliJetSelector::Process(Long64_t entry)
{
    // The Process() function is called for each entry in the tree (or possibly
    // keyed object in the case of PROOF) to be processed. The entry argument
    // specifies which entry in the currently loaded tree is to be processed.
    // It can be passed to either TTree::GetEntry() or TBranch::GetEntry()
    // to read either all or the required parts of the data. When processing
    // keyed objects with PROOF, the object is already loaded and is available
    // via the fObject pointer.
    //
    // This function should contain the "body" of the analysis. It can contain
    // simple or elaborate selection criteria, run algorithms on the data
    // of the event and typically fill histograms.
    
    // WARNING when a selector is used with a TChain, you must use
    //  the pointer to the current TTree to call GetEntry(entry).
    //  The entry is always the local entry number in the current tree.
    //  Assuming that fChain is the pointer to the TChain being processed,
    //  use fChain->GetEntry(entry).
    printf("JetSelector::Process \n");
    return (fJetFinder->ProcessEvent(entry));
}

void   AliJetSelector::SlaveTerminate()
{
    // Finish the run
    fJetFinder->FinishRun();
}

void   AliJetSelector::Terminate()
{
}

 AliJetSelector.C:1
 AliJetSelector.C:2
 AliJetSelector.C:3
 AliJetSelector.C:4
 AliJetSelector.C:5
 AliJetSelector.C:6
 AliJetSelector.C:7
 AliJetSelector.C:8
 AliJetSelector.C:9
 AliJetSelector.C:10
 AliJetSelector.C:11
 AliJetSelector.C:12
 AliJetSelector.C:13
 AliJetSelector.C:14
 AliJetSelector.C:15
 AliJetSelector.C:16
 AliJetSelector.C:17
 AliJetSelector.C:18
 AliJetSelector.C:19
 AliJetSelector.C:20
 AliJetSelector.C:21
 AliJetSelector.C:22
 AliJetSelector.C:23
 AliJetSelector.C:24
 AliJetSelector.C:25
 AliJetSelector.C:26
 AliJetSelector.C:27
 AliJetSelector.C:28
 AliJetSelector.C:29
 AliJetSelector.C:30
 AliJetSelector.C:31
 AliJetSelector.C:32
 AliJetSelector.C:33
 AliJetSelector.C:34
 AliJetSelector.C:35
 AliJetSelector.C:36
 AliJetSelector.C:37
 AliJetSelector.C:38
 AliJetSelector.C:39
 AliJetSelector.C:40
 AliJetSelector.C:41
 AliJetSelector.C:42
 AliJetSelector.C:43
 AliJetSelector.C:44
 AliJetSelector.C:45
 AliJetSelector.C:46
 AliJetSelector.C:47
 AliJetSelector.C:48
 AliJetSelector.C:49
 AliJetSelector.C:50
 AliJetSelector.C:51
 AliJetSelector.C:52
 AliJetSelector.C:53
 AliJetSelector.C:54
 AliJetSelector.C:55
 AliJetSelector.C:56
 AliJetSelector.C:57
 AliJetSelector.C:58
 AliJetSelector.C:59
 AliJetSelector.C:60
 AliJetSelector.C:61
 AliJetSelector.C:62
 AliJetSelector.C:63
 AliJetSelector.C:64
 AliJetSelector.C:65
 AliJetSelector.C:66
 AliJetSelector.C:67
 AliJetSelector.C:68
 AliJetSelector.C:69
 AliJetSelector.C:70
 AliJetSelector.C:71
 AliJetSelector.C:72
 AliJetSelector.C:73
 AliJetSelector.C:74
 AliJetSelector.C:75
 AliJetSelector.C:76
 AliJetSelector.C:77
 AliJetSelector.C:78
 AliJetSelector.C:79
 AliJetSelector.C:80
 AliJetSelector.C:81
 AliJetSelector.C:82
 AliJetSelector.C:83
 AliJetSelector.C:84
 AliJetSelector.C:85
 AliJetSelector.C:86
 AliJetSelector.C:87
 AliJetSelector.C:88
 AliJetSelector.C:89
 AliJetSelector.C:90
 AliJetSelector.C:91
 AliJetSelector.C:92
 AliJetSelector.C:93
 AliJetSelector.C:94
 AliJetSelector.C:95
 AliJetSelector.C:96
 AliJetSelector.C:97
 AliJetSelector.C:98
 AliJetSelector.C:99
 AliJetSelector.C:100
 AliJetSelector.C:101
 AliJetSelector.C:102
 AliJetSelector.C:103
 AliJetSelector.C:104
 AliJetSelector.C:105
 AliJetSelector.C:106
 AliJetSelector.C:107
 AliJetSelector.C:108
 AliJetSelector.C:109
 AliJetSelector.C:110
 AliJetSelector.C:111
 AliJetSelector.C:112
 AliJetSelector.C:113
 AliJetSelector.C:114
 AliJetSelector.C:115
 AliJetSelector.C:116
 AliJetSelector.C:117
 AliJetSelector.C:118
 AliJetSelector.C:119
 AliJetSelector.C:120
 AliJetSelector.C:121
 AliJetSelector.C:122
 AliJetSelector.C:123
 AliJetSelector.C:124
 AliJetSelector.C:125
 AliJetSelector.C:126
 AliJetSelector.C:127
 AliJetSelector.C:128
 AliJetSelector.C:129
 AliJetSelector.C:130
 AliJetSelector.C:131
 AliJetSelector.C:132
 AliJetSelector.C:133
 AliJetSelector.C:134
 AliJetSelector.C:135
 AliJetSelector.C:136
 AliJetSelector.C:137
 AliJetSelector.C:138
 AliJetSelector.C:139
 AliJetSelector.C:140
 AliJetSelector.C:141
 AliJetSelector.C:142
 AliJetSelector.C:143
 AliJetSelector.C:144
 AliJetSelector.C:145
 AliJetSelector.C:146
 AliJetSelector.C:147
 AliJetSelector.C:148
 AliJetSelector.C:149
 AliJetSelector.C:150
 AliJetSelector.C:151
 AliJetSelector.C:152
 AliJetSelector.C:153
 AliJetSelector.C:154
 AliJetSelector.C:155
 AliJetSelector.C:156
 AliJetSelector.C:157
 AliJetSelector.C:158
 AliJetSelector.C:159
 AliJetSelector.C:160
 AliJetSelector.C:161
 AliJetSelector.C:162
 AliJetSelector.C:163
 AliJetSelector.C:164
 AliJetSelector.C:165
 AliJetSelector.C:166
 AliJetSelector.C:167
 AliJetSelector.C:168