]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/dielectron/AliDielectronTrackRotator.h
framework update; new classes for track rotation (for background), cuts grouping...
[u/mrichter/AliRoot.git] / PWG3 / dielectron / AliDielectronTrackRotator.h
CommitLineData
2a14a7b1 1#ifndef ALIDIELECTRONTRACKROTATOR_H
2#define ALIDIELECTRONTRACKROTATOR_H
3
4/* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7//#############################################################
8//# #
9//# Class AliDielectronTrackRotator #
10//# #
11//# Authors: #
12//# Anton Andronic, GSI / A.Andronic@gsi.de #
13//# Ionut C. Arsene, GSI / I.C.Arsene@gsi.de #
14//# Julian Book, Uni Ffm / Julian.Book@cern.ch #
15//# Frederick Kramer, Uni Ffm, / Frederick.Kramer@cern.ch #
16//# Magnus Mager, CERN / Magnus.Mager@cern.ch #
17//# WooJin J. Park, GSI / W.J.Park@gsi.de #
18//# Jens Wiechula, Uni HD / Jens.Wiechula@cern.ch #
19//# #
20//#############################################################
21
22#include <TNamed.h>
23
24class TObjArray;
25class AliVTrack;
26
27class AliDielectronTrackRotator : public TNamed {
28public:
29 enum ERotationType {kRotatePositive, kRotateNegative, kRotateBothRandom};
30
31 AliDielectronTrackRotator();
32 AliDielectronTrackRotator(const char*name, const char* title);
33
34 virtual ~AliDielectronTrackRotator();
35
36 void SetTrackArrays(const TObjArray * const arrP, const TObjArray * const arrN) {fkArrTracksP=arrP;fkArrTracksN=arrN;}
37 void Reset();
38 Bool_t NextCombination();
39
40 //Setters
41 void SetIterations(UInt_t niter) { fIterations=niter; }
42 void SetRotationType(ERotationType type) { fRotationType=type; }
43 void SetStartAnglePhi(Double_t phi) { fStartAnglePhi=phi; }
44 void SetConeAnglePhi(Double_t phi) { fConeAnglePhi=phi; }
45
46 //Getters
47 Int_t GetIterations() const { return fIterations; }
48 ERotationType GetRotationType() const { return fRotationType; }
49 Double_t GetStartAnglePhi() const { return fStartAnglePhi; }
50 Double_t GetConeAnglePhi() const { return fConeAnglePhi; }
51
52
53 AliVTrack* GetTrackP() const {return fTrackP;}
54 AliVTrack* GetTrackN() const {return fTrackN;}
55
56private:
57 UInt_t fIterations; // number of iterations
58
59 ERotationType fRotationType; // which track to rotate
60
61 Double_t fStartAnglePhi; // starting angle for rotation
62 Double_t fConeAnglePhi; // opening angle in phi for multiple rotation
63
64 const TObjArray *fkArrTracksP; //! array of positive tracks
65 const TObjArray *fkArrTracksN; //! array of negative tracks
66
67 UInt_t fCurrentIteration; //! current iteration step
68 Int_t fCurrentTackP; //! current positive track in array
69 Int_t fCurrentTackN; //! current negative track in array
70
71 AliVTrack *fTrackP; //! Positive track
72 AliVTrack *fTrackN; //! Negative track
73
74 Bool_t RotateTracks();
75
76 AliDielectronTrackRotator(const AliDielectronTrackRotator &c);
77 AliDielectronTrackRotator &operator=(const AliDielectronTrackRotator &c);
78
79
80 ClassDef(AliDielectronTrackRotator,1) // Dielectron TrackRotator
81};
82
83
84
85#endif