Heavy ion Analysis Libriares
Loading...
Searching...
No Matches
TwoTrackAna.h
1/*
2 * TwoTrackAna.h
3 *
4 * Created on: 27-08-2013
5 * Author: Daniel Wielanek
6 * E-mail: daniel.wielanek@gmail.com
7 * Warsaw University of Technology, Faculty of Physics
8 */
9
10#ifndef HALTWOTRACKANA_H_
11#define HALTWOTRACKANA_H_
12
13#include "MultiTrackAna.h"
14
15#include <Rtypes.h>
16#include <RtypesCore.h>
17#include <TString.h>
18
19#include "TwoTrack.h"
20
21//#define DISABLE_TWO_TRACK_SWAPPING
22namespace Hal {
23 class TwoTrackAnaChain;
27 class TwoTrackAna : public MultiTrackAna {
28 friend class TwoTrackAnaChain;
29
30 public:
56
57 private:
58 Bool_t fNonIdIsSet;
59 Bool_t fSignedBoth;
60 Bool_t fIdentical;
61 Bool_t fSwapPair; // variable to swap identical particles
62 Bool_t fSkipEmpty;
63 Int_t fCurrentTrack2CollectionNo;
64 Int_t fCurrentTrack1CollectionNo;
65 Track *fCurrentTrack1, *fCurrentTrack2;
69 void BuildPairSwapped(TwoTrack* pair);
73 void BuildPair(TwoTrack* pair);
77 void MakePairs_Mixed();
81 void MakePairs2_Mixed();
85 void MakePairs();
89 void MakePairs2();
93 void MakePairs_Perfect();
97 void MakePairs2_Perfect();
101 void MakePairs_Rotated();
105 void MakePairs2_Rotated();
109 void MakePairs_Hemisphere();
113 void MakePairs2_Hemisphere();
118 void MakePairs_Charged2();
123 void MakePairs2_Charged2();
128 void MakePairs_Charged3();
133 void MakePairs2_Charged3();
134
135 protected:
163 virtual void SetTags();
168 Bool_t IdenticalParticles() const { return (fIdentical); };
169 virtual Package* Report() const;
173 virtual void SetPairHiddenInfo() {};
177 virtual void DeleteHiddenPairInfo();
181 virtual void ProcessPair() {};
185 virtual void ProcessPair2() { ProcessPair(); };
189 virtual void ProcessPair_Mixed() {};
197 virtual void ProcessPair_Perfect() {};
205 virtual void ProcessPair_Rotated() {};
213 virtual void ProcessPair_Hemisphere() {};
221 virtual void ProcessPair_ChargedId() {};
246 virtual void ProcessEvent();
247 virtual void InitNewCutContainer();
248 // check collections prepare them to analysis
249 virtual void CheckCutContainerCollections();
250 // linking collections
251 virtual void LinkCollections();
255 virtual void FinishEventIdentical();
259 virtual void FinishEventNonIdentical();
260 virtual Task::EInitFlag Init();
261
262 public:
267 TwoTrackAna(Bool_t use_background = kFALSE);
272 TwoTrackAna(const TwoTrackAna& ana);
278 TwoTrackAna& operator=(const TwoTrackAna& other);
283 void SetMixSize(Int_t mixsize);
288 void ProceedWithEmtyEvents(Bool_t proceed) { fSkipEmpty = !proceed; }
289 virtual void FinishTask();
301 virtual void SetOption(Option_t* option);
305 void EnableNonIdentical() { SetOption("nonid"); };
310 static TString BackgroundOptionMixed() { return "background:mixing"; };
315 static TString BackgroundOptionPerfect() { return "background:perfect"; };
320 static TString BackgroundOptionRotated() { return "background:rotation"; };
325 static TString BackgroundOptionHemisphere() { return "background:hemisphere"; };
330 static TString BackgroundOptionCharge() { return "background:charge"; };
335 static TString BackgroundOptionNoBackground() { return "background:no"; };
340 static TwoTrack::PairType GetPairType(EAnaMode mode);
341 virtual ~TwoTrackAna();
342 ClassDef(TwoTrackAna, 1)
343 };
344} // namespace Hal
345
346#endif /* HALTWOTRACKANA_H_ */
TwoTrack * fCurrentSignalPair
virtual void ProcessPair2_Charged2()
virtual void CheckCutContainerCollections()
virtual void ProcessPair2_Charged3()
void EnableNonIdentical()
virtual void InitNewCutContainer()
TwoTrack * fCurrentBackgroundPair
Int_t fTwoTrackCollectionsNo
TwoTrackAna & operator=(const TwoTrackAna &other)
virtual void ProcessPair_ChargedNId()
virtual Package * Report() const
virtual void ProcessEvent()
virtual void ProcessPair_Charged2()
static TString BackgroundOptionPerfect()
static TString BackgroundOptionCharge()
virtual void ProcessPair2_Perfect()
Int_t fTwoTrackCollectionsNoBackground
static TString BackgroundOptionNoBackground()
virtual void SetOption(Option_t *option)
EAnaMode fBackgroundMode
virtual void ProcessPair_Perfect()
void ProceedWithEmtyEvents(Bool_t proceed)
virtual void ProcessPair2()
virtual void ProcessPair2_Hemisphere()
Int_t fCurrentPairCollectionID
virtual void SetPairHiddenInfo()
virtual void FinishEventIdentical()
@ kHemispherePairsID
kHemispherePairsID
Definition TwoTrackAna.h:45
@ kChargedID2
kChargedID2
Definition TwoTrackAna.h:51
@ kRotatedPairsID
kRotatedPairsID
Definition TwoTrackAna.h:42
@ kRotatedPairs
kRotatedPairs
Definition TwoTrackAna.h:41
@ kNoBackgroundNID
kNoBackgroundNID
Definition TwoTrackAna.h:48
@ kHemispherePairsNID
kHemispherePairsNID
Definition TwoTrackAna.h:46
@ kNoBackgroundID
kNoBackgroundID
Definition TwoTrackAna.h:47
@ kHemispherePairs
kHemispherePairs
Definition TwoTrackAna.h:44
@ kCharged
kCharged
Definition TwoTrackAna.h:50
@ kRotatedPairsNID
kRotatedPairsNID
Definition TwoTrackAna.h:43
@ kMixedPairs
kMixedPairs
Definition TwoTrackAna.h:38
@ kChargedNID2
kChargedNID2
Definition TwoTrackAna.h:53
@ kMixedPairsNID
kMixedPairsNID
Definition TwoTrackAna.h:40
@ kPerfectPairsID
kPerfectPairsID
Definition TwoTrackAna.h:36
@ kNoBackground
kNoBackground
Definition TwoTrackAna.h:49
@ kChargedID3
kChargedID3
Definition TwoTrackAna.h:52
@ kPerfectPairsNID
kPerfectPairsNID
Definition TwoTrackAna.h:37
@ kPerfectPairs
kPerfectPairs
Definition TwoTrackAna.h:35
@ kMixedPairsID
kMixedPairsID
Definition TwoTrackAna.h:39
@ kChargedNID3
kChargedNID3
Definition TwoTrackAna.h:54
virtual void ProcessPair_Mixed()
TwoTrackAna(Bool_t use_background=kFALSE)
virtual void ProcessPair_ChargedId()
virtual void ProcessPair2_Mixed()
virtual void ProcessPair2_Rotated()
virtual void ProcessPair_Hemisphere()
virtual void LinkCollections()
static TString BackgroundOptionHemisphere()
static TwoTrack::PairType GetPairType(EAnaMode mode)
virtual void FinishTask()
static TString BackgroundOptionRotated()
virtual void ProcessPair_Charged3()
virtual void DeleteHiddenPairInfo()
virtual void FinishEventNonIdentical()
static TString BackgroundOptionMixed()
virtual void ProcessPair_Rotated()
Bool_t IdenticalParticles() const
virtual void SetTags()
virtual void ProcessPair()
void SetMixSize(Int_t mixsize)
virtual Task::EInitFlag Init()