* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-
-
-/**************************************************************************************
-
- AD's RecoParams Version 1.0
-
- In this version we only consider:
-
- ->) The AD's Trigger Mode (Single Muon Trigger or Multi Muon Trigger)
- ->) The AD'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 "AliADRecoParam.h"
ClassImp(AliADRecoParam)
//_____________________________________________________________________________
-AliADRecoParam::AliADRecoParam():
- AliDetectorRecoParam()
-// fAcordeSingleMuonTrigger(kFALSE),
-// fAcordeMultiMuonTrigger(kFALSE),
-// fAcordeWord0(0x00000000),
-// fAcordeWord1(0x00000000),
-// fAcordeWord2(0x00000000),
-// fAcordeWord3(0x00000000)
-{
- // AD's RecoParam constructor
-
- SetNameTitle("AD","AD");
- AliInfo(Form("Empty object for AD RecoParam"));
-}
-
-
-//____________________________________________________________________________
-AliADRecoParam::AliADRecoParam(const AliADRecoParam &p):
- AliDetectorRecoParam(p)
-// fAcordeSingleMuonTrigger(p.fAcordeSingleMuonTrigger),
-// fAcordeMultiMuonTrigger(p.fAcordeMultiMuonTrigger),
-// fAcordeWord0(p.fAcordeWord0),
-// fAcordeWord1(p.fAcordeWord1),
-// fAcordeWord2(p.fAcordeWord2),
-// fAcordeWord3(p.fAcordeWord3)
-{
- // Copy of constructor
+AliADRecoParam::AliADRecoParam() : AliDetectorRecoParam(),
+ fNSigmaPed(2.0),
+ fStartClock(8),
+ fEndClock(12),
+ fNPreClocks(2),
+ fNPostClocks(1),
+ fAdcThresHold(0.0),
+ fTimeWindowBBALow(-9.5),
+ fTimeWindowBBAUp(22.5),
+ fTimeWindowBGALow(-2.5),
+ fTimeWindowBGAUp(5.0),
+ fTimeWindowBBCLow(-2.5),
+ fTimeWindowBBCUp(22.5),
+ fTimeWindowBGCLow(-2.5),
+ fTimeWindowBGCUp(2.5),
+ fMaxResid(4.)
+
+{
+ //
+ // constructor
+ //
+ SetName("AD");
+ SetTitle("AD");
}
-//_____________________________________________________________________________
-AliADRecoParam& AliADRecoParam::operator=(const AliADRecoParam &p)
-{
- // AD'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;
-}
//_____________________________________________________________________________
AliADRecoParam::~AliADRecoParam()
{
- // AD's RecoParam destructor
-}
-
-//_____________________________________________________________________________
-/*
-AliADRecoParam *AliADRecoParam::GetPbPbparam()
-{
-
- // Set AD's default reconstruction parameters for PbPb
-
- AliADRecoParam *acordeRecoParam = new AliADRecoParam();
-
- // fAcordeTriggerMode = "AD_SINGLE" for AD's Single Muon Trigger
- // fAcordeTriggerMode = "AD_MULTI" for AD's Multi Muon Trigger
-
- // By now we set fAcordeSingeMuonTrigger as default
-
- acordeRecoParam->fAcordeSingleMuonTrigger=kTRUE; // Enable AD_SINGLE
- acordeRecoParam->fAcordeMultiMuonTrigger=kFALSE; // Disable AD_MULTI
- acordeRecoParam->fAcordeWord0 = 0x3FFFFFFF; // [1..30] AD's modules in AD_SINGLE
- acordeRecoParam->fAcordeWord1 = 0x7FFFFFFF; // [31..60] AD's modules in AD_SINGLE
- acordeRecoParam->fAcordeWord2 = 0xBFFFFFFF; // [1..30] AD's modules in AD_MULTI
- acordeRecoParam->fAcordeWord3 = 0xFFFFFFFF; // [31..60] AD's modules in AD_MULTI
- return acordeRecoParam;
-}
-
-//_____________________________________________________________________________
-AliADRecoParam *AliADRecoParam::GetPPparam()
-{
- // Set AD's default reconstruction parameters for PbPb
-
- AliADRecoParam *acordeRecoParam = new AliADRecoParam();
-
- // fAcordeTriggerMode = "AD_SINGLE" for AD's Single Muon Trigger
- // fAcordeTriggerMode = "AD_MULTI" for AD's Multi Muon Trigger
-
- // By now we set fAcordeSingeMuonTrigger as default
-
- acordeRecoParam->fAcordeSingleMuonTrigger=kTRUE; // Enable AD_SINGLE
- acordeRecoParam->fAcordeMultiMuonTrigger=kFALSE; // Disable AD_MULTI
- acordeRecoParam->fAcordeWord0 = 0x3FFFFFFF; // [1..30] AD's modules in AD_SINGLE
- acordeRecoParam->fAcordeWord1 = 0x7FFFFFFF; // [31..60] AD's modules in AD_SINGLE
- acordeRecoParam->fAcordeWord2 = 0xBFFFFFFF; // [1..30] AD's modules in AD_MULTI
- acordeRecoParam->fAcordeWord3 = 0xFFFFFFFF; // [31..60] AD's modules in AD_MULTI
- return acordeRecoParam;
-}
-
-//_____________________________________________________________________________
-AliADRecoParam *AliADRecoParam::GetCosmicMuonParam()
-{
- // Set AD's default reconstruction parameters for PbPb
-
- AliADRecoParam *acordeRecoParam = new AliADRecoParam();
-
- // fAcordeTriggerMode = "AD_SINGLE" for AD's Single Muon Trigger
- // fAcordeTriggerMode = "AD_MULTI" for AD's Multi Muon Trigger
-
- // By now we set fAcordeSingeMuonTrigger as default
-
- acordeRecoParam->fAcordeSingleMuonTrigger=kTRUE; // Enable AD_SINGLE
- acordeRecoParam->fAcordeMultiMuonTrigger=kFALSE; // Disable AD_MULTI
- acordeRecoParam->fAcordeWord0 = 0x3FFFFFFF; // [1..30] AD's modules in AD_SINGLE
- acordeRecoParam->fAcordeWord1 = 0x7FFFFFFF; // [31..60] AD's modules in AD_SINGLE
- acordeRecoParam->fAcordeWord2 = 0xBFFFFFFF; // [1..30] AD's modules in AD_MULTI
- acordeRecoParam->fAcordeWord3 = 0xFFFFFFFF; // [31..60] AD's modules in AD_MULTI
- return acordeRecoParam;
-}
-*/
-//_____________________________________________________________________________
-void AliADRecoParam::PrintParameters() const
-{
- // Printing of the used AD reconstruction parameters
-
- // AliInfo(Form("AD's Single Muon Trigger Mode: %b", fAcordeSingleMuonTrigger));
-// AliInfo(Form("AD's Multi Muon Trigger Mode: %b", fAcordeMultiMuonTrigger));
-// if(fAcordeSingleMuonTrigger==kTRUE)
-// {
-// AliInfo(Form("AD's Trigger Mask: 0x%08x 0x%08x",fAcordeWord0,fAcordeWord1));
-// }
-// if(fAcordeMultiMuonTrigger==kTRUE)
-// {
- // AliInfo(Form("AD's Trigger Mask: 0x%08x 0x%08x",fAcordeWord2,fAcordeWord3));
-
-// }
-
-
- AliInfo(Form("Empty object for AD RecoParam"));
-
-
+ //
+ // destructor
+ //
}
* provided "as is" without express or implied warranty. *
**************************************************************************/
-
-/**************************************************************************************
-
- AD's RecoParams Version 1.0
-
- In this version we only consider:
-
- ->) The AD's Trigger Mode (Single Muon Trigger or Multi Muon Trigger)
- ->) The AD'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 ALIADRECOPARAM_H
#define ALIADRECOPARAM_H
{
public:
AliADRecoParam();
- AliADRecoParam(const AliADRecoParam &p); // Copy constructor
- AliADRecoParam& operator=(const AliADRecoParam &p); // Assignment operator
virtual ~AliADRecoParam();
+
+ void SetNSigmaPed(Float_t nSigma) { fNSigmaPed = nSigma; }
+ void SetStartClock(Int_t start) { fStartClock = start; }
+ void SetEndClock(Int_t end) {fEndClock = end; }
+ void SetNPreClocks(Int_t preClocks) { fNPreClocks = preClocks; }
+ void SetNPostClocks(Int_t postClocks) { fNPostClocks = postClocks; }
+ void SetAdcThresHold(Float_t val) { fAdcThresHold = val;}
+ void SetTimeWindowBBALow(Float_t val) { fTimeWindowBBALow = val; }
+ void SetTimeWindowBBAUp (Float_t val) { fTimeWindowBBAUp = val; }
+ void SetTimeWindowBGALow(Float_t val) { fTimeWindowBGALow = val; }
+ void SetTimeWindowBGAUp (Float_t val) { fTimeWindowBGAUp = val; }
+ void SetTimeWindowBBCLow(Float_t val) { fTimeWindowBBCLow = val; }
+ void SetTimeWindowBBCUp (Float_t val) { fTimeWindowBBCUp = val; }
+ void SetTimeWindowBGCLow(Float_t val) { fTimeWindowBGCLow = val; }
+ void SetTimeWindowBGCUp (Float_t val) { fTimeWindowBGCUp = val; }
+ void SetMaxResid (Float_t val) { fMaxResid = val; }
+
+ Float_t GetNSigmaPed() const { return fNSigmaPed; }
+ Int_t GetStartClock() const { return fStartClock; }
+ Int_t GetEndClock() const { return fEndClock; }
+ Int_t GetNPreClocks() const { return fNPreClocks; }
+ Int_t GetNPostClocks() const { return fNPostClocks; }
+ Float_t GetAdcThresHold() const { return fAdcThresHold; }
+ Float_t GetTimeWindowBBALow() const { return fTimeWindowBBALow; }
+ Float_t GetTimeWindowBBAUp () const { return fTimeWindowBBAUp ; }
+ Float_t GetTimeWindowBGALow() const { return fTimeWindowBGALow; }
+ Float_t GetTimeWindowBGAUp () const { return fTimeWindowBGAUp ; }
+ Float_t GetTimeWindowBBCLow() const { return fTimeWindowBBCLow; }
+ Float_t GetTimeWindowBBCUp () const { return fTimeWindowBBCUp ; }
+ Float_t GetTimeWindowBGCLow() const { return fTimeWindowBGCLow; }
+ Float_t GetTimeWindowBGCUp () const { return fTimeWindowBGCUp ; }
+ Float_t GetMaxResid () const { return fMaxResid; }
+
+ private:
+
+ Float_t fNSigmaPed; // Number of pedestal sigmas for adc cut
+ Int_t fStartClock; // Start clock for max adc search
+ Int_t fEndClock; // End clock for max adc search
+ Int_t fNPreClocks; // Number of pre-clocks used in adc charge sum
+ Int_t fNPostClocks; // Number of post-clocks used in adc charge sum
+
+ // Cuts used in the trigger mask creation
+ Float_t fAdcThresHold; // Threshold on the ADC
+ Float_t fTimeWindowBBALow; // BBA window (lower cut)
+ Float_t fTimeWindowBBAUp; // BBA window (upper cut)
+ Float_t fTimeWindowBGALow; // BGA window (lower cut)
+ Float_t fTimeWindowBGAUp; // BGA window (upper cut)
+ Float_t fTimeWindowBBCLow; // BBC window (lower cut)
+ Float_t fTimeWindowBBCUp; // BBC window (upper cut)
+ Float_t fTimeWindowBGCLow; // BGC window (lower cut)
+ Float_t fTimeWindowBGCUp; // BGC window (upper cut)
+ Float_t fMaxResid; // Maximum residual of a single channel time
- 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 AliADRecoParam *GetPbPbparam(); // reco param for PbPb.
- static AliADRecoParam *GetPPparam(); // reco param for PP
- static AliADRecoParam *GetCosmicMuonParam(); // reco param for cosmic muons
-
-private:
- Bool_t fAcordeSingleMuonTrigger; // kTRUE if AD triggered in Singe Muon Mode
- Bool_t fAcordeMultiMuonTrigger; // kTRUE if AD 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(AliADRecoParam, 1)
};
#endif