const int NALTROS = 4; // Number of ALTROs per frontend card
const int NALTROCHANNELS = 16; // Number of readout channels per ALTRO chip
const int MINHARDWAREADDRESS = -2; // Smallest possible HW address ( in offline )
- const int MAXHARDWAREADDRESS = 4096; // Max harware address, ( its to high )
+ // const int MAXHARDWAREADDRESS = 4096; // Max harware address, ( its to high )
const int MAXBINVALUE = 1023; // Max possible ALTRO ADC value ( 10 bit )
const int NGAINS = 2; // Number of gains ( high + low )
const int HIGHGAIN = 1; // Mnemonic for High Gain
//FEE constants common to PHOS EMCAL
const int CSPSPERFEE = 32; // Charge Sensitive Preamplifiers (CSPs) per FEE
const int NBRANCHES = 2; // Branches per RCU
- const int MAXHWADDRESSES = 4096; // Highest possible harware address
+ // const int MAXHWADDRESSES = 4096; // Highest possible harware address
namespace EMCALConstants
{
- // const int NZROWSMOD = 48; // Number of rows per module
- // const int NXCOLUMNSMOD = 24; // Number of columns per module
+ const int MAXHWADDR = 3279;
const double ECENTRALHIT = 0.845678; //Percentage of total enegry contain in a single tower for a central hit
-
const int NZROWSMOD = 24; // Number of rows per module
const int NXCOLUMNSMOD = 48; // Number of columns per module
-
const int NROWSMOD = NZROWSMOD; // Number of rows per module
const int NCOLUMNSMOD = NXCOLUMNSMOD; // Number of columns per module
- // const int NZROWSMOD = 24; // Number of rows per module
- // const int NXCOLUMNSMOD = 48; // Number of columns per module
-
const int NRCUSPERSECTOR = 4; // Number of RCUs per sector
const int NMODULES = 10; // Number of modules of the EMCAL detector
const int NRCUSPERMODULE = 2 ; // Number of RCUs per Module
namespace PHOSConstants
{
+ const int MAXHWADDR = 4096;
+ // const int MAXHARDWAREADDRESS = 4096; // Max harware address, ( its to high )
const int NZROWSMOD = 56; // Number of rows per module
const int NXCOLUMNSMOD = 64; // Number of columns per module
const int NMODULES = 5; // Number of modules of the PHOS detector
const int NFEECS = 14; // Number of Frontend cards per branch
}
-
- //namespace FitAlgorithm
- // {
- // enum fitAlgorithm { kStandard = 0, kCrude = 1, kPeakFinder = 2, kNeuralNet = 3, kFastFit= 4,
- // kLogFit = 5, kLMS = 6, kLMSOffline = 7, kFakeAltro = 9, kNONE = 8}; // possible return values
- // }
namespace FitAlgorithm
{
void
-AliCaloRawAnalyzer::PrintBunches( const vector<AliCaloBunchInfo> &bvctr ) const
+AliCaloRawAnalyzer::PrintBunches( const vector<AliCaloBunchInfo> &bvctr )
{
//comment
cout << __FILE__ << __LINE__<< "*************** Printing Bunches *******************" << endl;
void
-AliCaloRawAnalyzer::PrintBunch( const AliCaloBunchInfo &bunch ) const
+AliCaloRawAnalyzer::PrintBunch( const AliCaloBunchInfo &bunch )
{
//comment
cout << __FILE__ << ":" << __LINE__ << endl;
virtual AliCaloFitResults Evaluate( const std::vector<AliCaloBunchInfo> &/*bunchvector*/,
const UInt_t /*altrocfg1*/, const UInt_t /*altrocfg2*/ ) = 0;
- void PrintBunches( const std::vector<AliCaloBunchInfo> &bunchvector ) const;
- void PrintBunch( const AliCaloBunchInfo &bunch ) const ;
+ static void PrintBunches( const std::vector<AliCaloBunchInfo> &bunchvector );
+ static void PrintBunch( const AliCaloBunchInfo &bunch );
int PreFitEvaluateSamples( const std::vector<AliCaloBunchInfo> &bunchvector,
const UInt_t altrocfg1, const UInt_t altrocfg2, Int_t & index,
return new AliCaloRawAnalyzerNN();
break;
case kPeakFinder:
+ // cout << __FILE__ << ":" << __LINE__ << ": Returning new peakFinder " << endl;
return new AliCaloRawAnalyzerPeakFinder();
break;
case kCrude:
int n = last - first;
int pfindex = n - fNsampleCut;
pfindex = pfindex > PF::SAMPLERANGE ? PF::SAMPLERANGE : pfindex;
-
int dt = maxampindex - startbin -2;
int tmpindex = 0;
-
-
Float_t tmptof = ScanCoarse( &fReversed[dt] , n );
if( tmptof < -1 )
}
double tof = 0;
-
for(int k=0; k < PF::SAMPLERANGE; k++ )
{
tof += fPFTofVectors[0][pfindex][k]*fReversed[ dt +k + tmpindex -1 ];
}
-
for( int i=0; i < PF::SAMPLERANGE; i++ )
{
{
+
fAmp += fPFAmpVectors[0][pfindex][i]*fReversed[ dt +i +tmpindex -1 ];
}
}
+
if( TMath::Abs( (maxf - fAmp )/maxf ) > 0.1 )
{
fAmp = maxf;
}
tof = timebinOffset - 0.01*tof/fAmp - fL1Phase/TIMEBINWITH; // clock
-
- // use local-array time for chi2 estimate
Float_t chi2 = CalculateChi2(fAmp, tof-timebinOffset+maxrev, first, last);
Int_t ndf = last - first - 1; // nsamples - 2
return AliCaloFitResults( maxamp, ped , Ret::kFitPar, fAmp, tof,
#include "AliCaloConstants.h"
-// namespace CaloHLTConst
-// {
-// const int MAXHOSTS=20;
-// //Constants related to the ALTRO chip (Common to EMCAL / PHOS )
-// const int MAXBINVALUE = 1023;
-// const int NGAINS = 2;
-// const int HIGHGAIN = 1;
-// const int LOWGAIN = 0;
-// const int ALTROMAXSAMPLES = 1008; /**<The maximum number of samples of the ALTRO*/
-// const int ALTROMAXPRESAMPLES = 15;
-// const int NALTROS = 4; /**<Number of ALTROs per frontend card*/
-// const int NALTROCHANNELS = 16;
-
-// //FEE constants common to PHOS EMCAL
-// const int CSPSPERFEE = 32;
-// const int NBRANCHES = 2;
-// const int MAXHWADDRESSES = 4096;
-
-// namespace EmcalHLTConst
-// {
-// const int NZROWSMOD = 48; /**<Number of rows per module*/
-// const int NXCOLUMNSMOD = 24; /**<Number of columns per module*/
-// const int NRCUSPERSECTOR = 4; /**<Number of RCUs per sector*/
-// const int NMODULES = 10; /**<Number of modules of the EMCAL detector*/
-// const int NRCUSPERMODULE = 2 ; /**<Number of RCUs per Module*/
-// const int NFEECS = 9; /**<Number of Frontend cards per branch*/
-// };
-
-// namespace PhosHLTConst
-// {
-// const int NZROWSMOD = 56; /**<Number of rows per module*/
-// const int NXCOLUMNSMOD = 64; /**<Number of columns per module*/
-// const int NMODULES = 5; /**<Number of modules of the PHOS detector*/
-// const int NRCUSPERMODULE = 4 ; /**<Number of RCUs per Module*/
-// const int NFEECS = 14; /**<Number of Frontend cards per branch*/
-// };
-
-// };
-
-
-// namespace CALO = CaloHLTConst; // just for easier notation
-// namespace EMCAL = CaloHLTConst::EmcalHLTConst;
-// namespace PHOS = CaloHLTConst::PhosHLTConst;
-
-
-
-
class AliHLTCaloConstants
{
public:
static Int_t GetNALTROS() { return ALTRO::NALTROS; };
static Int_t GetNALTROCHANNELS() { return ALTRO::NALTROCHANNELS; };
static Int_t GetNBRANCHES() { return CALO::NBRANCHES; };
- static Int_t GetMAXHWADDRESSES() { return CALO::MAXHWADDRESSES; }
-
+ //static Int_t GetMAXHWADDRESSES() { return CALO::MAXHWADDRESSES; }
+ static Int_t GetMAXHWADDRESSES() { return PHOS::MAXHWADDR; }
// Detector specific stuff
// PHOS Only, bad move somewher else, PTH
virtual Int_t GetNZROWSRCU() const { return 56 ; } ;
using EMCAL::NMODULES;
using EMCAL::NRCUSPERMODULE;
using EMCAL::NRCUSPERSECTOR;
+using EMCAL::MAXHWADDR;
AliHLTEMCALMapper::AliHLTEMCALMapper(const unsigned long specification ) : AliHLTCaloMapper(specification, "EMCAL")
{
{
char *base = getenv("ALICE_ROOT");
int nChannels = 0;
- int maxaddr = 0;
+ int maxaddr = 0; // keep as dummy for now
int tmpHwaddr = 0;
int tmpZRow = 0;
int tmpXCol = 0;
{
res = fscanf(fp, "%d\n", &nChannels);
res = fscanf(fp, "%d\n", &maxaddr);
- fHw2geomapPtr = new fAltromap[maxaddr +1];
-
- for(int i=0; i< maxaddr + 1 ; i ++)
+ // fHw2geomapPtr = new fAltromap[maxaddr +1];
+ fHw2geomapPtr = new fAltromap[MAXHWADDR +1];
+
+ for(int i=0; i< MAXHWADDR + 1 ; i ++)
+ //for(int i=0; i< maxaddr + 1 ; i ++)
{
fHw2geomapPtr[i].fXCol = 0;
fHw2geomapPtr[i].fZRow = 0;
if(tmpGain < 2)
{
- fHw2geomapPtr[tmpHwaddr].fXCol = (char)tmpXCol;
- fHw2geomapPtr[tmpHwaddr].fZRow = (char)tmpZRow;
- fHw2geomapPtr[tmpHwaddr].fGain = (char)tmpGain;
+ if( tmpHwaddr <= MAXHWADDR )
+ {
+ fHw2geomapPtr[tmpHwaddr].fXCol = (char)tmpXCol;
+ fHw2geomapPtr[tmpHwaddr].fZRow = (char)tmpZRow;
+ fHw2geomapPtr[tmpHwaddr].fGain = (char)tmpGain;
+ }
}
}
fIsInitializedMapping = true;