#ifndef ALIANALYSISTASKMUONREFIT_H
#define ALIANALYSISTASKMUONREFIT_H
#include <TString.h>
#include "AliAnalysisTaskSE.h"
class AliMUONVCluster;
class AliMUONGeometryTransformer;
class AliMUONESDInterface;
class AliMUONRefitter;
class AliMUONTriggerCircuit;
class AliMUONTrackHitPattern;
class AliAnalysisTaskMuonRefit : public AliAnalysisTaskSE {
public:
AliAnalysisTaskMuonRefit();
AliAnalysisTaskMuonRefit(const char *name);
virtual ~AliAnalysisTaskMuonRefit();
void SetDefaultStorage(const char* ocdbPath) { fDefaultStorage = ocdbPath; }
void ResetClusterResolution(Int_t chId, Double_t valNB, Double_t valB);
void ResetClusterResolution(Double_t valNB[10], Double_t valB[10]);
void ImproveTracks(Bool_t flag = kTRUE, Double_t sigmaCut = -1.) {fImproveTracks = flag; fSigmaCut = sigmaCut;}
void SetSigmaCutForTrigger(Double_t val) {fSigmaCutForTrigger = val;}
void SetAlignStorage(const char* ocdbPath) { fOldAlignStorage = ocdbPath; }
void ReAlign(const char* oldAlignStorage = 0x0, const char* newAlignStorage = "");
void SetFieldPath(const char* field) { fField = field; }
void RemoveMonoCathodClusters(Bool_t flag = kTRUE, Bool_t checkAllPads = kTRUE) {fRemoveMonoCathCl = flag; fCheckAllPads = checkAllPads;}
void TagBadTracks(Bool_t tag = kTRUE, Bool_t keep = kTRUE) {fTagBadTracks = tag; fKeepOldParam = keep;}
virtual void UserCreateOutputObjects();
virtual void UserExec(Option_t *);
virtual void NotifyRun();
virtual void Terminate(Option_t *);
private:
AliAnalysisTaskMuonRefit(const AliAnalysisTaskMuonRefit& rhs);
AliAnalysisTaskMuonRefit& operator = (const AliAnalysisTaskMuonRefit& rhs);
void ModifyCluster(AliMUONVCluster& cl);
void CheckPads(AliMUONVCluster *cl, Bool_t &hasBending, Bool_t &hasNonBending) const;
void CheckPadsBelow(AliMUONVCluster *cl, Bool_t &hasBending, Bool_t &hasNonBending) const;
Bool_t SetMagField() const;
private:
Double_t fClusterResNB[10];
Double_t fClusterResB[10];
TString fDefaultStorage;
Bool_t fImproveTracks;
Double_t fSigmaCut;
Double_t fSigmaCutForTrigger;
Bool_t fReAlign;
TString fOldAlignStorage;
TString fNewAlignStorage;
AliMUONGeometryTransformer *fOldGeoTransformer;
AliMUONGeometryTransformer *fNewGeoTransformer;
TString fField;
Bool_t fRemoveMonoCathCl;
Bool_t fCheckAllPads;
Bool_t fTagBadTracks;
Bool_t fKeepOldParam;
AliMUONTriggerCircuit *fTriggerCircuit;
AliMUONESDInterface *fESDInterface;
AliMUONRefitter *fRefitter;
AliMUONTrackHitPattern *fTrackHitPattern;
ClassDef(AliAnalysisTaskMuonRefit, 2);
};
inline void AliAnalysisTaskMuonRefit::ResetClusterResolution(Int_t chId, Double_t valNB, Double_t valB)
{
if (chId < 0 || chId >= 10) return;
fClusterResNB[chId] = valNB;
fClusterResB[chId] = valB;
}
inline void AliAnalysisTaskMuonRefit::ResetClusterResolution(Double_t valNB[10], Double_t valB[10])
{
for (Int_t i = 0; i < 10; i++) {
fClusterResNB[i] = valNB[i];
fClusterResB[i] = valB[i];
}
}
inline void AliAnalysisTaskMuonRefit::ReAlign(const char* oldAlignStorage, const char* newAlignStorage)
{
if (oldAlignStorage) fOldAlignStorage = oldAlignStorage;
else fOldAlignStorage = "none";
fNewAlignStorage = newAlignStorage;
fReAlign = kTRUE;
}
#endif
AliAnalysisTaskMuonRefit.h:1 AliAnalysisTaskMuonRefit.h:2 AliAnalysisTaskMuonRefit.h:3 AliAnalysisTaskMuonRefit.h:4 AliAnalysisTaskMuonRefit.h:5 AliAnalysisTaskMuonRefit.h:6 AliAnalysisTaskMuonRefit.h:7 AliAnalysisTaskMuonRefit.h:8 AliAnalysisTaskMuonRefit.h:9 AliAnalysisTaskMuonRefit.h:10 AliAnalysisTaskMuonRefit.h:11 AliAnalysisTaskMuonRefit.h:12 AliAnalysisTaskMuonRefit.h:13 AliAnalysisTaskMuonRefit.h:14 AliAnalysisTaskMuonRefit.h:15 AliAnalysisTaskMuonRefit.h:16 AliAnalysisTaskMuonRefit.h:17 AliAnalysisTaskMuonRefit.h:18 AliAnalysisTaskMuonRefit.h:19 AliAnalysisTaskMuonRefit.h:20 AliAnalysisTaskMuonRefit.h:21 AliAnalysisTaskMuonRefit.h:22 AliAnalysisTaskMuonRefit.h:23 AliAnalysisTaskMuonRefit.h:24 AliAnalysisTaskMuonRefit.h:25 AliAnalysisTaskMuonRefit.h:26 AliAnalysisTaskMuonRefit.h:27 AliAnalysisTaskMuonRefit.h:28 AliAnalysisTaskMuonRefit.h:29 AliAnalysisTaskMuonRefit.h:30 AliAnalysisTaskMuonRefit.h:31 AliAnalysisTaskMuonRefit.h:32 AliAnalysisTaskMuonRefit.h:33 AliAnalysisTaskMuonRefit.h:34 AliAnalysisTaskMuonRefit.h:35 AliAnalysisTaskMuonRefit.h:36 AliAnalysisTaskMuonRefit.h:37 AliAnalysisTaskMuonRefit.h:38 AliAnalysisTaskMuonRefit.h:39 AliAnalysisTaskMuonRefit.h:40 AliAnalysisTaskMuonRefit.h:41 AliAnalysisTaskMuonRefit.h:42 AliAnalysisTaskMuonRefit.h:43 AliAnalysisTaskMuonRefit.h:44 AliAnalysisTaskMuonRefit.h:45 AliAnalysisTaskMuonRefit.h:46 AliAnalysisTaskMuonRefit.h:47 AliAnalysisTaskMuonRefit.h:48 AliAnalysisTaskMuonRefit.h:49 AliAnalysisTaskMuonRefit.h:50 AliAnalysisTaskMuonRefit.h:51 AliAnalysisTaskMuonRefit.h:52 AliAnalysisTaskMuonRefit.h:53 AliAnalysisTaskMuonRefit.h:54 AliAnalysisTaskMuonRefit.h:55 AliAnalysisTaskMuonRefit.h:56 AliAnalysisTaskMuonRefit.h:57 AliAnalysisTaskMuonRefit.h:58 AliAnalysisTaskMuonRefit.h:59 AliAnalysisTaskMuonRefit.h:60 AliAnalysisTaskMuonRefit.h:61 AliAnalysisTaskMuonRefit.h:62 AliAnalysisTaskMuonRefit.h:63 AliAnalysisTaskMuonRefit.h:64 AliAnalysisTaskMuonRefit.h:65 AliAnalysisTaskMuonRefit.h:66 AliAnalysisTaskMuonRefit.h:67 AliAnalysisTaskMuonRefit.h:68 AliAnalysisTaskMuonRefit.h:69 AliAnalysisTaskMuonRefit.h:70 AliAnalysisTaskMuonRefit.h:71 AliAnalysisTaskMuonRefit.h:72 AliAnalysisTaskMuonRefit.h:73 AliAnalysisTaskMuonRefit.h:74 AliAnalysisTaskMuonRefit.h:75 AliAnalysisTaskMuonRefit.h:76 AliAnalysisTaskMuonRefit.h:77 AliAnalysisTaskMuonRefit.h:78 AliAnalysisTaskMuonRefit.h:79 AliAnalysisTaskMuonRefit.h:80 AliAnalysisTaskMuonRefit.h:81 AliAnalysisTaskMuonRefit.h:82 AliAnalysisTaskMuonRefit.h:83 AliAnalysisTaskMuonRefit.h:84 AliAnalysisTaskMuonRefit.h:85 AliAnalysisTaskMuonRefit.h:86 AliAnalysisTaskMuonRefit.h:87 AliAnalysisTaskMuonRefit.h:88 AliAnalysisTaskMuonRefit.h:89 AliAnalysisTaskMuonRefit.h:90 AliAnalysisTaskMuonRefit.h:91 AliAnalysisTaskMuonRefit.h:92 AliAnalysisTaskMuonRefit.h:93 AliAnalysisTaskMuonRefit.h:94 AliAnalysisTaskMuonRefit.h:95 AliAnalysisTaskMuonRefit.h:96 AliAnalysisTaskMuonRefit.h:97 AliAnalysisTaskMuonRefit.h:98 AliAnalysisTaskMuonRefit.h:99 AliAnalysisTaskMuonRefit.h:100 AliAnalysisTaskMuonRefit.h:101 AliAnalysisTaskMuonRefit.h:102 AliAnalysisTaskMuonRefit.h:103 AliAnalysisTaskMuonRefit.h:104 AliAnalysisTaskMuonRefit.h:105 AliAnalysisTaskMuonRefit.h:106 AliAnalysisTaskMuonRefit.h:107 AliAnalysisTaskMuonRefit.h:108 AliAnalysisTaskMuonRefit.h:109 AliAnalysisTaskMuonRefit.h:110 AliAnalysisTaskMuonRefit.h:111 AliAnalysisTaskMuonRefit.h:112 AliAnalysisTaskMuonRefit.h:113 AliAnalysisTaskMuonRefit.h:114 AliAnalysisTaskMuonRefit.h:115 AliAnalysisTaskMuonRefit.h:116 AliAnalysisTaskMuonRefit.h:117 AliAnalysisTaskMuonRefit.h:118 AliAnalysisTaskMuonRefit.h:119 AliAnalysisTaskMuonRefit.h:120 AliAnalysisTaskMuonRefit.h:121 AliAnalysisTaskMuonRefit.h:122 AliAnalysisTaskMuonRefit.h:123 AliAnalysisTaskMuonRefit.h:124 AliAnalysisTaskMuonRefit.h:125 AliAnalysisTaskMuonRefit.h:126 AliAnalysisTaskMuonRefit.h:127 AliAnalysisTaskMuonRefit.h:128 AliAnalysisTaskMuonRefit.h:129 AliAnalysisTaskMuonRefit.h:130 AliAnalysisTaskMuonRefit.h:131 AliAnalysisTaskMuonRefit.h:132 AliAnalysisTaskMuonRefit.h:133 AliAnalysisTaskMuonRefit.h:134 AliAnalysisTaskMuonRefit.h:135 AliAnalysisTaskMuonRefit.h:136 AliAnalysisTaskMuonRefit.h:137 AliAnalysisTaskMuonRefit.h:138