First Implementation of the RecoParams for ACORDE
authormrodrigu <mrodrigu@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 15 Mar 2009 22:11:07 +0000 (22:11 +0000)
committermrodrigu <mrodrigu@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 15 Mar 2009 22:11:07 +0000 (22:11 +0000)
ACORDE/AliACORDERecoParam.cxx [new file with mode: 0644]
ACORDE/AliACORDERecoParam.h [new file with mode: 0644]

diff --git a/ACORDE/AliACORDERecoParam.cxx b/ACORDE/AliACORDERecoParam.cxx
new file mode 100644 (file)
index 0000000..eddce71
--- /dev/null
@@ -0,0 +1,181 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+
+/**************************************************************************************
+
+       ACORDE's RecoParams Version 1.0
+
+       In this version we only consider:
+
+       ->) The ACORDE's Trigger Mode (Single Muon Trigger or Multi Muon Trigger)
+       ->) The ACORDE's Trigger Mask (Same in SMT and MMT)
+       
+       In Runs PbPb, pp, and cosmics by default we have the same RecoParams.
+
+       From: 
+               Mario Rodriguez Cahuantzi <mrodrigu@mail.cern.ch> @ CERN
+               FCFM, BUAP. Puebla, Mexico
+
+       Further comments:
+
+               Arturo Fernandez <afernan@mail.cern.ch> 
+
+       March 2nd. 2009 
+
+       NOTE: Please suggest improvements if needed.
+
+**************************************************************************************/
+
+#include "AliLog.h"
+
+#include "AliACORDERecoParam.h"
+
+ClassImp(AliACORDERecoParam)
+
+//_____________________________________________________________________________
+AliACORDERecoParam::AliACORDERecoParam():
+  AliDetectorRecoParam(),
+  fAcordeSingleMuonTrigger(kFALSE),
+  fAcordeMultiMuonTrigger(kFALSE),
+  fAcordeWord0(0x00000000),
+  fAcordeWord1(0x00000000),
+  fAcordeWord2(0x00000000),
+  fAcordeWord3(0x00000000)       
+{
+       // ACORDE's RecoParam constructor
+        SetNameTitle("ACORDE","ACORDE");
+}
+
+
+//____________________________________________________________________________
+AliACORDERecoParam::AliACORDERecoParam(const AliACORDERecoParam &p):
+  AliDetectorRecoParam(p),
+  fAcordeSingleMuonTrigger(p.fAcordeSingleMuonTrigger),
+  fAcordeMultiMuonTrigger(p.fAcordeMultiMuonTrigger),
+  fAcordeWord0(p.fAcordeWord0),
+  fAcordeWord1(p.fAcordeWord1),
+  fAcordeWord2(p.fAcordeWord2),
+  fAcordeWord3(p.fAcordeWord3)
+{
+       // Copy of constructor
+}
+
+//_____________________________________________________________________________
+AliACORDERecoParam& AliACORDERecoParam::operator=(const AliACORDERecoParam &p)
+{
+       // ACORDE's RecoParam Assign Operator
+
+       if (this == &p)
+       return *this;
+  
+       AliDetectorRecoParam::operator=(p);
+       fAcordeSingleMuonTrigger=p.fAcordeSingleMuonTrigger;
+       fAcordeMultiMuonTrigger=p.fAcordeMultiMuonTrigger;      
+       fAcordeWord0=p.fAcordeWord0;
+       fAcordeWord1=p.fAcordeWord1;
+       fAcordeWord2=p.fAcordeWord2;
+       fAcordeWord3=p.fAcordeWord3;
+       
+       return *this;
+}
+//_____________________________________________________________________________
+AliACORDERecoParam::~AliACORDERecoParam() 
+{
+       // ACORDE's RecoParam destructor
+}
+
+//_____________________________________________________________________________
+AliACORDERecoParam *AliACORDERecoParam::GetPbPbparam()
+{
+       // Set ACORDE's default reconstruction parameters for PbPb 
+  
+       AliACORDERecoParam *acordeRecoParam = new AliACORDERecoParam();
+
+       // fAcordeTriggerMode = "ACORDE_SINGLE" for ACORDE's Single Muon Trigger
+       // fAcordeTriggerMode = "ACORDE_MULTI" for ACORDE's Multi Muon Trigger
+       
+       // By now we set fAcordeSingeMuonTrigger as default
+
+       acordeRecoParam->fAcordeSingleMuonTrigger=kTRUE; // Enable ACORDE_SINGLE
+       acordeRecoParam->fAcordeMultiMuonTrigger=kFALSE; // Disable ACORDE_MULTI
+       acordeRecoParam->fAcordeWord0 = 0x3FFFFFFF; // [1..30] ACORDE's modules in ACORDE_SINGLE
+       acordeRecoParam->fAcordeWord1 = 0x7FFFFFFF; // [31..60] ACORDE's modules in ACORDE_SINGLE
+       acordeRecoParam->fAcordeWord2 = 0xBFFFFFFF; // [1..30] ACORDE's modules in ACORDE_MULTI
+       acordeRecoParam->fAcordeWord3 = 0xFFFFFFFF; // [31..60] ACORDE's modules in ACORDE_MULTI
+       return acordeRecoParam;
+}
+
+//_____________________________________________________________________________
+AliACORDERecoParam *AliACORDERecoParam::GetPPparam()
+{
+       // Set ACORDE's default reconstruction parameters for PbPb 
+  
+        AliACORDERecoParam *acordeRecoParam = new AliACORDERecoParam();
+
+        // fAcordeTriggerMode = "ACORDE_SINGLE" for ACORDE's Single Muon Trigger
+        // fAcordeTriggerMode = "ACORDE_MULTI" for ACORDE's Multi Muon Trigger
+        
+        // By now we set fAcordeSingeMuonTrigger as default
+
+        acordeRecoParam->fAcordeSingleMuonTrigger=kTRUE; // Enable ACORDE_SINGLE
+        acordeRecoParam->fAcordeMultiMuonTrigger=kFALSE; // Disable ACORDE_MULTI
+        acordeRecoParam->fAcordeWord0 = 0x3FFFFFFF; // [1..30] ACORDE's modules in ACORDE_SINGLE
+        acordeRecoParam->fAcordeWord1 = 0x7FFFFFFF; // [31..60] ACORDE's modules in ACORDE_SINGLE
+        acordeRecoParam->fAcordeWord2 = 0xBFFFFFFF; // [1..30] ACORDE's modules in ACORDE_MULTI
+        acordeRecoParam->fAcordeWord3 = 0xFFFFFFFF; // [31..60] ACORDE's modules in ACORDE_MULTI
+        return acordeRecoParam;
+}
+
+//_____________________________________________________________________________
+AliACORDERecoParam *AliACORDERecoParam::GetCosmicMuonParam()
+{
+        // Set ACORDE's default reconstruction parameters for PbPb 
+  
+        AliACORDERecoParam *acordeRecoParam = new AliACORDERecoParam();
+
+        // fAcordeTriggerMode = "ACORDE_SINGLE" for ACORDE's Single Muon Trigger
+        // fAcordeTriggerMode = "ACORDE_MULTI" for ACORDE's Multi Muon Trigger
+        
+        // By now we set fAcordeSingeMuonTrigger as default
+
+        acordeRecoParam->fAcordeSingleMuonTrigger=kTRUE; // Enable ACORDE_SINGLE
+        acordeRecoParam->fAcordeMultiMuonTrigger=kFALSE; // Disable ACORDE_MULTI
+        acordeRecoParam->fAcordeWord0 = 0x3FFFFFFF; // [1..30] ACORDE's modules in ACORDE_SINGLE
+        acordeRecoParam->fAcordeWord1 = 0x7FFFFFFF; // [31..60] ACORDE's modules in ACORDE_SINGLE
+        acordeRecoParam->fAcordeWord2 = 0xBFFFFFFF; // [1..30] ACORDE's modules in ACORDE_MULTI
+        acordeRecoParam->fAcordeWord3 = 0xFFFFFFFF; // [31..60] ACORDE's modules in ACORDE_MULTI
+        return acordeRecoParam;
+}
+
+//_____________________________________________________________________________
+void AliACORDERecoParam::PrintParameters() const
+{
+       // Printing of the used ACORDE reconstruction parameters
+
+       AliInfo(Form("ACORDE's Single Muon Trigger Mode: %b", fAcordeSingleMuonTrigger));
+       AliInfo(Form("ACORDE's Multi Muon Trigger Mode: %b", fAcordeMultiMuonTrigger));
+       if(fAcordeSingleMuonTrigger==kTRUE)
+       {
+               AliInfo(Form("ACORDE's Trigger Mask: 0x%08x 0x%08x",fAcordeWord0,fAcordeWord1));
+       }
+       if(fAcordeMultiMuonTrigger==kTRUE)
+       {
+                AliInfo(Form("ACORDE's Trigger Mask: 0x%08x 0x%08x",fAcordeWord2,fAcordeWord3));
+
+       }
+}
diff --git a/ACORDE/AliACORDERecoParam.h b/ACORDE/AliACORDERecoParam.h
new file mode 100644 (file)
index 0000000..25b0001
--- /dev/null
@@ -0,0 +1,93 @@
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+
+/**************************************************************************************
+
+        ACORDE's RecoParams Version 1.0
+
+        In this version we only consider:
+
+        ->) The ACORDE's Trigger Mode (Single Muon Trigger or Multi Muon Trigger)
+        ->) The ACORDE's Trigger Mask (Same in SMT and MMT)
+        
+        In Runs PbPb, pp, and cosmics by default we have the same RecoParams.
+
+        From: 
+               Mario Rodriguez Cahuantzi <mrodrigu@mail.cern.ch> @ CERN
+               FCFM, BUAP. Puebla, Mexico
+        
+       Further comments:
+
+               Arturo Fernandez <afernan@mail.cern.ch>
+
+        March 2nd. 2009 
+
+        NOTE: Please suggest improvements if needed.
+
+**************************************************************************************/
+
+
+#ifndef ALIACORDERECOPARAM_H
+#define ALIACORDERECOPARAM_H
+
+#include "AliDetectorRecoParam.h"
+
+class AliACORDERecoParam : public AliDetectorRecoParam
+{
+ public: 
+  AliACORDERecoParam();
+  AliACORDERecoParam(const AliACORDERecoParam &p); // Copy constructor 
+  AliACORDERecoParam& operator=(const AliACORDERecoParam &p); // Assignment operator
+  virtual ~AliACORDERecoParam();
+
+  virtual void PrintParameters() const;
+
+  //Getters
+  Bool_t   GetAcordeSingleMuonTrigger()    const  {return fAcordeSingleMuonTrigger;}
+  Bool_t   GetAcordeMultiMuonTrigger()     const  {return fAcordeMultiMuonTrigger;}
+  UInt_t   GetAcordeWord0()    const  {return fAcordeWord0;}
+  UInt_t   GetAcordeWord1()    const  {return fAcordeWord1;}
+  UInt_t   GetAcordeWord2()    const  {return fAcordeWord2;}
+  UInt_t   GetAcordeWord3()    const  {return fAcordeWord3;}
+
+
+  //Setters
+
+  void   SetAcordeSingleMuonTrigger(Bool_t flag)        {fAcordeSingleMuonTrigger=flag;}
+  void   SetAcordeMultiMuonTrigger(Bool_t flag)  {fAcordeMultiMuonTrigger=flag;}
+  void   SetAcordeWord0(UInt_t flag)  {fAcordeWord0=flag;}
+  void   SetAcordeWord1(UInt_t flag)  {fAcordeWord1=flag;}
+  void   SetAcordeWord2(UInt_t flag)  {fAcordeWord2=flag;}
+  void   SetAcordeWord3(UInt_t flag)  {fAcordeWord3=flag;}
+
+
+
+  static   AliACORDERecoParam *GetPbPbparam();       // reco param for PbPb.
+  static   AliACORDERecoParam *GetPPparam();         // reco param for PP
+  static   AliACORDERecoParam *GetCosmicMuonParam(); // reco param for cosmic muons
+ private:
+
+  Bool_t fAcordeSingleMuonTrigger; // kTRUE if ACORDE triggered in Singe Muon Mode
+  Bool_t fAcordeMultiMuonTrigger; // kTRUE if ACORDE triggered in Multi Muon Mode
+  UInt_t fAcordeWord0; // [1..30] Acorde's Modules in Single Muon Trigger
+  UInt_t fAcordeWord1; // [31..60] Acorde's Modules in Single Muon Trigger
+  UInt_t fAcordeWord2; // [1..30] Acorde's Modules in Multi Muon Trigger
+  UInt_t fAcordeWord3; // [31..60] Acorde's Modules in Multi Muon Trigger
+
+  ClassDef(AliACORDERecoParam, 3)
+};
+#endif