]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
ALIROOT-5486 Propagate MUON trigger deviation sign to AliAODTrack
authordstocco <diego.stocco@cern.ch>
Thu, 12 Jun 2014 17:15:14 +0000 (19:15 +0200)
committerhristov <Peter.Hristov@cern.ch>
Mon, 21 Jul 2014 10:01:06 +0000 (12:01 +0200)
PWG/muon/AliAnalysisTaskESDMuonFilter.cxx
STEER/AOD/AliAODTrack.cxx
STEER/AOD/AliAODTrack.h
STEER/ESD/AliESDMuonTrack.cxx
STEER/ESD/AliESDMuonTrack.h

index 3353f096c0b04be018cd9292c01e3ed5f7ede9c6..a7d01d8a69e338192343416303f0919a9ad507cf 100644 (file)
@@ -326,6 +326,7 @@ void AliAnalysisTaskESDMuonFilter::ConvertESDtoAOD()
     aodTrack->SetHitsPatternInTrigCh(esdMuTrack->GetHitsPatternInTrigCh());
     UInt_t pattern = esdMuTrack->GetHitsPatternInTrigCh();
     AliESDMuonTrack::AddEffInfo(pattern, 0, esdMuTrack->LoCircuit(), (AliESDMuonTrack::EAliTriggerChPatternFlag)0);
+    esdMuTrack->AddMuonTrigDevSignInfo(pattern);
     aodTrack->SetMUONtrigHitsMapTrg(pattern);
     aodTrack->SetMUONtrigHitsMapTrk(esdMuTrack->GetHitsPatternInTrigChTrk());
     aodTrack->SetMuonClusterMap(esdMuTrack->GetMuonClusterMap());
@@ -447,6 +448,7 @@ void AliAnalysisTaskESDMuonFilter::ConvertESDtoAOD()
     aodTrack->SetHitsPatternInTrigCh(esdMuGlobalTrack->GetHitsPatternInTrigCh());
     UInt_t pattern = esdMuGlobalTrack->GetHitsPatternInTrigCh();
     AliESDMuonTrack::AddEffInfo(pattern, 0, esdMuGlobalTrack->GetLoCircuit(), (AliESDMuonTrack::EAliTriggerChPatternFlag)0);
+//    esdMuGlobalTrack->AddTrigDevSignInfo(pattern);
     aodTrack->SetMUONtrigHitsMapTrg(pattern);
     aodTrack->SetMUONtrigHitsMapTrk(esdMuGlobalTrack->GetHitsPatternInTrigChTrk());
     aodTrack->SetMuonClusterMap(esdMuGlobalTrack->GetMuonClusterMap());
index 1d4985d683974d766aad01ae61037d453260c484..98c712bb9ae7b60029175c86059bf8b6621110b6 100644 (file)
@@ -634,6 +634,17 @@ Bool_t AliAODTrack::MatchTriggerDigits() const
   return (nMatchedChambers >= 2);
 }
 
+//______________________________________________________________________________
+Int_t AliAODTrack::GetMuonTrigDevSign() const
+{
+  /// Return the sign of the  MTR deviation
+
+  Int_t signInfo = (Int_t)((fMUONtrigHitsMapTrg>>30)&0x3);
+  // Dummy value for old AODs which do not have the info
+  if ( signInfo == 0 ) return -999;
+  return signInfo - 2;
+}
+
 //______________________________________________________________________________
 Bool_t AliAODTrack::PropagateToDCA(const AliVVertex *vtx, 
     Double_t b, Double_t maxd, Double_t dz[2], Double_t covar[3])
index 686b262ef834a65c2acf0d809e7a3134159a23bf..a1b169a8e901ebf79a910084af429936ff56fb0d 100644 (file)
@@ -389,9 +389,10 @@ class AliAODTrack : public AliVTrack {
   void SetMuonClusterMap(UInt_t muonClusMap)                { fITSMuonClusterMap = (fITSMuonClusterMap&0xfc00ffff)|((muonClusMap&0x3ff)<<16); }
   void SetITSMuonClusterMap(UInt_t itsMuonClusMap)          { fITSMuonClusterMap = itsMuonClusMap; }
   void SetMUONtrigHitsMapTrg(UInt_t muonTrigHitsMap) { fMUONtrigHitsMapTrg = muonTrigHitsMap; }
-  UInt_t GetMUONTrigHitsMapTrg() { return fMUONtrigHitsMapTrg; }
+  UInt_t GetMUONTrigHitsMapTrg() const { return fMUONtrigHitsMapTrg; }
   void SetMUONtrigHitsMapTrk(UInt_t muonTrigHitsMap) { fMUONtrigHitsMapTrk = muonTrigHitsMap; }
-  UInt_t GetMUONTrigHitsMapTrk() { return fMUONtrigHitsMapTrk; }
+  UInt_t GetMUONTrigHitsMapTrk() const { return fMUONtrigHitsMapTrk; }
+  Int_t GetMuonTrigDevSign() const;
 
   Int_t GetMatchTrigger() const {return fITSMuonClusterMap>>30;}
                                        //  0 Muon track does not match trigger
index 16d0391a7efd65d87bf8fba49056c49835364886..1578cf7688234c6bb5a824ec159ddaa25f68a7fb 100644 (file)
@@ -586,7 +586,7 @@ Int_t AliESDMuonTrack::GetMatchTrigger() const
 //_____________________________________________________________________________
 Bool_t AliESDMuonTrack::MatchTriggerDigits(Bool_t fromTrack) const
 {
-  // return kTRUE if the track matches a digit on both planes of at least 2 trigger chambers
+  /// return kTRUE if the track matches a digit on both planes of at least 2 trigger chambers
   
   UShort_t pattern = ( fromTrack ) ? fHitsPatternInTrigChTrk : fHitsPatternInTrigCh;
   Int_t nMatchedChambers = 0;
@@ -597,6 +597,16 @@ Bool_t AliESDMuonTrack::MatchTriggerDigits(Bool_t fromTrack) const
   return (nMatchedChambers >= 2);
 }
 
+//_____________________________________________________________________________
+Int_t AliESDMuonTrack::GetMuonTrigDevSign() const
+{
+  /// Sign of the deviation provided by trigger
+  Int_t deviation = LoDev();
+  if ( deviation > 15 ) return 1;
+  else if ( deviation < 15 ) return -1;
+  else return 0;
+}
+
 //_____________________________________________________________________________
 void AliESDMuonTrack::AddClusterId(UInt_t clusterId)
 {
@@ -666,3 +676,23 @@ Int_t AliESDMuonTrack::GetCrossedBoard(UInt_t pattern)
   /// Getting crossed board
   return ( pattern >> 15 ) & 0xFF;
 }
+
+
+//_____________________________________________________________________________
+void AliESDMuonTrack::AddMuonTrigDevSignInfo ( UInt_t &pattern ) const
+{
+  /// Add trigger deviation sign info to pattern
+  /// The info is stored in the 2 most significant digit:
+  /// info<<30
+  /// The information is:
+  /// 0x0 => no information present
+  /// 0x1 => negative deviation
+  /// 0x2 => undetermined sign
+  /// 0x3 => positive deviation
+
+  // First clean bits
+  pattern &= 0x3FFFFFFF;
+  // Then add info
+  UInt_t info = ((UInt_t)(GetMuonTrigDevSign()+2)&0x3)<<30;
+  pattern |= info;
+}
index 6d7349797e660248e1f55327db2a512127eaa044..0e4a1d53ecae3f9e1634795ccf4b79cc08268b99 100644 (file)
@@ -118,6 +118,7 @@ public:
   Int_t    LoHpt(void)    const  { return fLocalTrigger >> 24 & 0x03; }
   Int_t    GetTriggerWithoutChamber(void) const { return fLocalTrigger >> 26 & 0xF; }
   Bool_t TriggerFiredWithoutChamber(Int_t ich) const { return GetTriggerWithoutChamber() >> (3 - ich) & 0x1; }
+  Int_t GetMuonTrigDevSign() const;
 
   // Get and Set methods for the hit strips pattern in the trigger chambers
   UShort_t GetTriggerX1Pattern() const { return fX1Pattern; }
@@ -238,6 +239,8 @@ public:
   /// Getting crossed board
   static Int_t GetCrossedBoard(UInt_t pattern);
 
+  void AddMuonTrigDevSignInfo(UInt_t& pattern) const;
+
   AliESDEvent* GetESDEvent() const {return fESDEvent;}
   void         SetESDEvent(AliESDEvent* evt) {fESDEvent = evt;}