Alex Wilk)
- add trigger name in the qaRec train (Markus)
fSysCovMatrix[2] = 0.; // snp
fSysCovMatrix[3] = 0.; // tgl
fSysCovMatrix[4] = 0.; // 1/pt
fSysCovMatrix[2] = 0.; // snp
fSysCovMatrix[3] = 0.; // tgl
fSysCovMatrix[4] = 0.; // 1/pt
+
+ memset(fPIDThreshold, 0, AliTRDCalPID::kNMom*sizeof(Double_t));
}
//______________________________________________________________
}
//______________________________________________________________
,fkChi2Z(ref.fkChi2Z)
,fkChi2Y(ref.fkChi2Y)
,fkChi2YCut(ref.fkChi2YCut)
,fkChi2Z(ref.fkChi2Z)
,fkChi2Y(ref.fkChi2Y)
,fkChi2YCut(ref.fkChi2YCut)
+ ,fkChi2ZCut(ref.fkChi2ZCut)
,fkPhiCut(ref.fkPhiCut)
,fkMeanNclusters(ref.fkMeanNclusters)
,fkSigmaNclusters(ref.fkSigmaNclusters)
,fkPhiCut(ref.fkPhiCut)
,fkMeanNclusters(ref.fkMeanNclusters)
,fkSigmaNclusters(ref.fkSigmaNclusters)
SetImproveTracklets(ref.HasImproveTracklets());
memcpy(fSysCovMatrix, ref.fSysCovMatrix, 5*sizeof(Double_t));
SetImproveTracklets(ref.HasImproveTracklets());
memcpy(fSysCovMatrix, ref.fSysCovMatrix, 5*sizeof(Double_t));
+ memcpy(fPIDThreshold, ref.fPIDThreshold, AliTRDCalPID::kNMom*sizeof(Double_t));
}
//______________________________________________________________
}
//______________________________________________________________
#ifndef ALIDETECTORRECOPARAM_H
#include "AliDetectorRecoParam.h"
#endif
#ifndef ALIDETECTORRECOPARAM_H
#include "AliDetectorRecoParam.h"
#endif
+#ifndef ALITRDCALPID_H
+#include "Cal/AliTRDCalPID.h"
+#endif
class AliTRDrecoParam : public AliDetectorRecoParam
{
class AliTRDrecoParam : public AliDetectorRecoParam
{
Double_t GetMaxTheta() const { return fkMaxTheta; }
Double_t GetMaxPhi() const { return fkMaxPhi; }
Double_t GetPlaneQualityThreshold() const { return fkPlaneQualityThreshold; }
Double_t GetMaxTheta() const { return fkMaxTheta; }
Double_t GetMaxPhi() const { return fkMaxPhi; }
Double_t GetPlaneQualityThreshold() const { return fkPlaneQualityThreshold; }
+ Double_t GetPIDThreshold(Float_t /*p*/){ return 0.;}
Double_t GetRoad0y() const { return fkRoad0y; }
Double_t GetRoad0z() const { return fkRoad0z; }
Double_t GetRoad1y() const { return fkRoad1y; }
Double_t GetRoad0y() const { return fkRoad0y; }
Double_t GetRoad0z() const { return fkRoad0z; }
Double_t GetRoad1y() const { return fkRoad1y; }
void SetClusMaxThresh(Float_t thresh) { fClusMaxThresh = thresh; };
void SetClusSigThresh(Float_t thresh) { fClusSigThresh = thresh; };
void SetTailCancelation(Bool_t tc = kTRUE) { SetBit(kTC, tc); };
void SetClusMaxThresh(Float_t thresh) { fClusMaxThresh = thresh; };
void SetClusSigThresh(Float_t thresh) { fClusSigThresh = thresh; };
void SetTailCancelation(Bool_t tc = kTRUE) { SetBit(kTC, tc); };
+ inline void SetPIDThreshold(Double_t *pid);
void SetNexponential(Int_t nexp) { fTCnexp = nexp; };
inline void SetSysCovMatrix(Double_t *sys);
void SetNumberOfPresamples(Int_t n) { fNumberOfPresamples = n;}
void SetNexponential(Int_t nexp) { fTCnexp = nexp; };
inline void SetSysCovMatrix(Double_t *sys);
void SetNumberOfPresamples(Int_t n) { fNumberOfPresamples = n;}
Double_t fkTrackLikelihood; // Track likelihood for tracklets Rieman fit
Double_t fSysCovMatrix[5]; // Systematic uncertainty from calibration and alignment for each tracklet
Double_t fkTrackLikelihood; // Track likelihood for tracklets Rieman fit
Double_t fSysCovMatrix[5]; // Systematic uncertainty from calibration and alignment for each tracklet
+ Double_t fPIDThreshold[AliTRDCalPID::kNMom];
// Clusterization parameter
Double_t fMinMaxCutSigma; // Threshold sigma noise pad middle
// Clusterization parameter
Double_t fMinMaxCutSigma; // Threshold sigma noise pad middle
memcpy(fSysCovMatrix, sys, 5*sizeof(Double_t));
}
memcpy(fSysCovMatrix, sys, 5*sizeof(Double_t));
}
+//___________________________________________________
+inline void AliTRDrecoParam::SetPIDThreshold(Double_t *pid)
+{
+ if(!pid) return;
+ memcpy(fPIDThreshold, pid, AliTRDCalPID::kNMom*sizeof(Double_t));
+}
return AliExternalTrackParam::GetPredictedChi2(p, cov);
}
return AliExternalTrackParam::GetPredictedChi2(p, cov);
}
+//_______________________________________________________________
+Bool_t AliTRDtrackV1::IsElectron() const
+{
+/* reco = fReconstructor->GetRecoParam();
+ if(GetPID(0) > reco->GetPIDThreshold(GetP())) return kTRUE;*/
+ return kFALSE;
+}
+
//_____________________________________________________________________________
void AliTRDtrackV1::MakeBackupTrack()
//_____________________________________________________________________________
void AliTRDtrackV1::MakeBackupTrack()
Bool_t IsOwner() const {return TestBit(kOwner);};
Bool_t IsStopped() const {return TestBit(kStopped);};
Bool_t IsOwner() const {return TestBit(kOwner);};
Bool_t IsStopped() const {return TestBit(kStopped);};
+ Bool_t IsElectron() const;
void MakeBackupTrack();
Bool_t PropagateTo(Double_t xr, Double_t x0 = 8.72, Double_t rho = 5.86e-3);
void MakeBackupTrack();
Bool_t PropagateTo(Double_t xr, Double_t x0 = 8.72, Double_t rho = 5.86e-3);
}
//_______________________________________________________
}
//_______________________________________________________
-void AliTRDcheckDetector::GetRefFigure(Int_t ifig, Int_t &first, Int_t &last){
+void AliTRDcheckDetector::GetRefFigure(Int_t ifig, Int_t &first, Int_t &last, Option_t *opt){
//
// Setting Reference Figures
//
//
// Setting Reference Figures
//
break;
case 8: first = last = kChargeDeposit;
break;
break;
case 8: first = last = kChargeDeposit;
break;
- case 9: first = last = fContainer->GetEntries() - 1;
+ case 9: first = last = kPostProcessing;
break;
default: first = last = kNTracksEventHist;
break;
break;
default: first = last = kNTracksEventHist;
break;
kNTracksSectorHist=7,
kPulseHeight=8,
kClusterCharge=9,
kNTracksSectorHist=7,
kPulseHeight=8,
kClusterCharge=9,
+ kChargeDeposit=10,
+ kPostProcessing=17
};
public:
AliTRDcheckDetector();
};
public:
AliTRDcheckDetector();
virtual void Terminate(Option_t *);
virtual Bool_t PostProcess();
virtual void Terminate(Option_t *);
virtual Bool_t PostProcess();
- virtual void GetRefFigure(Int_t ifig, Int_t &first, Int_t &last);
+ virtual void GetRefFigure(Int_t ifig, Int_t &first, Int_t &last, Option_t *opt = "lp");
private:
AliTRDcheckDetector(const AliTRDcheckDetector &);
private:
AliTRDcheckDetector(const AliTRDcheckDetector &);
,fLabel(0)
,fNClusters(0)
,fNTrackRefs(0)
,fLabel(0)
,fNClusters(0)
,fNTrackRefs(0)
,fTRDtrack(0x0)
,fOP(0x0)
{
,fTRDtrack(0x0)
,fOP(0x0)
{
,fLabel(0)
,fNClusters(0)
,fNTrackRefs(0)
,fLabel(0)
,fNClusters(0)
,fNTrackRefs(0)
,fTRDtrack(0x0)
,fOP(0x0)
{
,fTRDtrack(0x0)
,fOP(0x0)
{
,fLabel(trdInfo.fLabel)
,fNClusters(trdInfo.fNClusters)
,fNTrackRefs(trdInfo.fNTrackRefs)
,fLabel(trdInfo.fLabel)
,fNClusters(trdInfo.fNClusters)
,fNTrackRefs(trdInfo.fNTrackRefs)
+ ,fTriggerClassName(trdInfo.fTriggerClassName)
,fTRDtrack(0x0)
,fOP(0x0)
{
,fTRDtrack(0x0)
,fOP(0x0)
{
Int_t GetPDG() const { return fPDG; }
ULong_t GetStatus() const {return fStatus;}
UChar_t GetTriggerCluster() const {return fTriggerCluster;}
Int_t GetPDG() const { return fPDG; }
ULong_t GetStatus() const {return fStatus;}
UChar_t GetTriggerCluster() const {return fTriggerCluster;}
+ TString GetTriggerClassName() const {return fTriggerClassName;}
AliTRDseedV1* GetTracklet(Int_t entry) const;
AliTRDtrackV1 * GetTRDtrack() const { return fTRDtrack; }
AliTrackReference* GetTrackRef(Int_t entry) const;
AliTRDseedV1* GetTracklet(Int_t entry) const;
AliTRDtrackV1 * GetTRDtrack() const { return fTRDtrack; }
AliTrackReference* GetTrackRef(Int_t entry) const;
void SetStatus(ULong_t stat) {fStatus = stat;}
void SetTrackId(Int_t id) {fId = id;}
void SetTriggerCluster(Int_t clusterPattern){fTriggerCluster = clusterPattern;}
void SetStatus(ULong_t stat) {fStatus = stat;}
void SetTrackId(Int_t id) {fId = id;}
void SetTriggerCluster(Int_t clusterPattern){fTriggerCluster = clusterPattern;}
+ void SetFiredTriggerClass(TString classname){ fTriggerClassName = classname; }
void SetTRDtrack(const AliTRDtrackV1 *track);
private:
void SetTRDtrack(const AliTRDtrackV1 *track);
private:
Int_t fLabel; // MC label
Int_t fNClusters; // Numer of clusters from refit
Int_t fNTrackRefs; // number of track refs
Int_t fLabel; // MC label
Int_t fNClusters; // Numer of clusters from refit
Int_t fNTrackRefs; // number of track refs
+ TString fTriggerClassName; // Name of the fired trigger class
AliTrackReference *fTrackRefs[12]; // no of track refs
AliTRDtrackV1 *fTRDtrack; // no of tracklets
AliExternalTrackParam *fOP; // outer param if no tracklets
AliTrackReference *fTrackRefs[12]; // no of track refs
AliTRDtrackV1 *fTRDtrack; // no of tracklets
AliExternalTrackParam *fOP; // outer param if no tracklets
fTrackInfo->SetTrackId(esdTrack->GetID());
fTrackInfo->SetLabel(label);
fTrackInfo->SetNumberOfClustersRefit(esdTrack->GetNcls(2));
fTrackInfo->SetTrackId(esdTrack->GetID());
fTrackInfo->SetLabel(label);
fTrackInfo->SetNumberOfClustersRefit(esdTrack->GetNcls(2));
+ fTrackInfo->SetFiredTriggerClass(fESD->GetFiredTriggerClasses());
+ fTrackInfo->SetTriggerCluster(fESD->GetHeader()->GetTriggerCluster());