fNPedSamples(5),
fRemoveBadChannels(kFALSE),
fFittingAlgorithm(0),
- fUseFALTRO(kTRUE)//raw signal
+ fUseFALTRO(kTRUE),
+ fFitLEDEvents(kFALSE)//raw signal
{
// default reco values
fNPedSamples(rp.fNPedSamples),
fRemoveBadChannels(rp.fRemoveBadChannels),
fFittingAlgorithm(rp.fFittingAlgorithm),
- fUseFALTRO(fUseFALTRO) //raw signal
+ fUseFALTRO(rp.fUseFALTRO),
+ fFitLEDEvents(rp.fFitLEDEvents) //raw signal
{
//copy constructor
fNPedSamples = rp.fNPedSamples;
fRemoveBadChannels = rp.fRemoveBadChannels;
fFittingAlgorithm = rp.fFittingAlgorithm;
- fUseFALTRO = rp.fUseFALTRO;//raw signal
+ fUseFALTRO = rp.fUseFALTRO;
+ fFitLEDEvents = rp.fFitLEDEvents;//raw signal
//PID values
Int_t i, j;
void SetRemoveBadChannels(Bool_t val) {fRemoveBadChannels=val; }
void SetFittingAlgorithm(Int_t val) {fFittingAlgorithm=val; }
void SetFALTROUsage(Bool_t val) {fUseFALTRO=val; }
+ void SetLEDFit(Bool_t val) {fFitLEDEvents=val; }
+
/* raw signal getters */
Double_t GetHighLowGainFactor() const {return fHighLowGainFactor;}
Bool_t GetRemoveBadChannels() const {return fRemoveBadChannels;}
Int_t GetFittingAlgorithm() const {return fFittingAlgorithm; }
Bool_t UseFALTRO() const {return fUseFALTRO; }
-
+ Bool_t FitLEDEvents() const {return fFitLEDEvents; }
+
virtual void Print(Option_t * option="") const ;
static AliEMCALRecParam* GetDefaultParameters();
Bool_t fRemoveBadChannels; // select if bad channels are removed before fitting
Int_t fFittingAlgorithm; // select the fitting algorithm
Bool_t fUseFALTRO; // get FALTRO (trigger) and put it on trigger digits.
-
+ Bool_t fFitLEDEvents; // fit LED events or not
+
static TObjArray* fgkMaps; // ALTRO mappings for RCU0..RCUX
- ClassDef(AliEMCALRecParam,11) // Reconstruction parameters
+ ClassDef(AliEMCALRecParam,12) // Reconstruction parameters
} ;
ReadDigitsArrayFromTree(digitsTree);
fgClusterizer->InitParameters();
fgClusterizer->SetOutput(clustersTree);
-
+
AliEMCALTriggerData* trgData = new AliEMCALTriggerData();
Int_t bufferSize = 32000;
if (TBranch* triggerBranch = clustersTree->GetBranch("EMTRG"))
- triggerBranch->SetAddress(&trgData);
- else
- clustersTree->Branch("EMTRG","AliEMCALTriggerData",&trgData,bufferSize);
+ triggerBranch->SetAddress(&trgData);
+ else
+ clustersTree->Branch("EMTRG","AliEMCALTriggerData",&trgData,bufferSize);
TClonesArray *trgDigits = new TClonesArray("AliEMCALRawDigit",1000);
TBranch *branchdig = digitsTree->GetBranch("EMTRG");
branchdig->SetAddress(&trgDigits);
branchdig->GetEntry(0);
-
- Int_t v0M[2] = {0,0};
- fgTriggerProcessor->Digits2Trigger(trgDigits, v0M, trgData);
- trgDigits->Delete();
- delete trgDigits; trgDigits = 0x0;
+ //Skip clusterization of LED events
+ if (GetRecParam()->GetEventSpecie()!=AliRecoParam::kCalib){
- if(fgDigitsArr && fgDigitsArr->GetEntries()) {
+ Int_t v0M[2] = {0,0};
+ fgTriggerProcessor->Digits2Trigger(trgDigits, v0M, trgData);
+
+
+ if(fgDigitsArr && fgDigitsArr->GetEntries()) {
- fgClusterizer->SetInput(digitsTree);
+ fgClusterizer->SetInput(digitsTree);
- if(Debug())
- fgClusterizer->Digits2Clusters("deb all") ;
- else
- fgClusterizer->Digits2Clusters("");
+ if(Debug())
+ fgClusterizer->Digits2Clusters("deb all") ;
+ else
+ fgClusterizer->Digits2Clusters("");
- fgClusterizer->Clear();
-
- }
+ fgClusterizer->Clear();
+ }//digits array exists and has somethind
+ }//not a LED event
+
clustersTree->Fill();
+ trgDigits->Delete();
+ delete trgDigits; trgDigits = 0x0;
+ delete trgData; trgData = 0x0;
- delete trgData; trgData = 0x0;
}
//____________________________________________________________________________
Int_t bufsize = 32000;
digitsTree->Branch("EMCAL", &digitsArr, bufsize);
digitsTree->Branch("EMTRG", &digitsTrg, bufsize);
-
- //must be done here because, in constructor, option is not yet known
- fgRawUtils->SetOption(GetOption());
-
- fgRawUtils->SetRawFormatHighLowGainFactor(GetRecParam()->GetHighLowGainFactor());
- fgRawUtils->SetRawFormatOrder(GetRecParam()->GetOrderParameter());
- fgRawUtils->SetRawFormatTau(GetRecParam()->GetTau());
- fgRawUtils->SetNoiseThreshold(GetRecParam()->GetNoiseThreshold());
- fgRawUtils->SetNPedSamples(GetRecParam()->GetNPedSamples());
- fgRawUtils->SetRemoveBadChannels(GetRecParam()->GetRemoveBadChannels());
- fgRawUtils->SetFittingAlgorithm(GetRecParam()->GetFittingAlgorithm());
- fgRawUtils->SetFALTROUsage(GetRecParam()->UseFALTRO());
- fgRawUtils->SetTimeMin(GetRecParam()->GetTimeMin());
- fgRawUtils->SetTimeMax(GetRecParam()->GetTimeMax());
- fgRawUtils->Raw2Digits(rawReader,digitsArr,fPedestalData,digitsTrg);
-
+ //Skip calibration events do the rest
+ Bool_t doFit = kTRUE;
+ if ( !(GetRecParam()->FitLEDEvents()) && GetRecParam()->GetEventSpecie()==AliRecoParam::kCalib) doFit = kFALSE;
+ if (doFit){
+ //must be done here because, in constructor, option is not yet known
+ fgRawUtils->SetOption(GetOption());
+
+ fgRawUtils->SetRawFormatHighLowGainFactor(GetRecParam()->GetHighLowGainFactor());
+ fgRawUtils->SetRawFormatOrder(GetRecParam()->GetOrderParameter());
+ fgRawUtils->SetRawFormatTau(GetRecParam()->GetTau());
+ fgRawUtils->SetNoiseThreshold(GetRecParam()->GetNoiseThreshold());
+ fgRawUtils->SetNPedSamples(GetRecParam()->GetNPedSamples());
+ fgRawUtils->SetRemoveBadChannels(GetRecParam()->GetRemoveBadChannels());
+ fgRawUtils->SetFittingAlgorithm(GetRecParam()->GetFittingAlgorithm());
+ fgRawUtils->SetFALTROUsage(GetRecParam()->UseFALTRO());
+ fgRawUtils->SetTimeMin(GetRecParam()->GetTimeMin());
+ fgRawUtils->SetTimeMax(GetRecParam()->GetTimeMax());
+
+ fgRawUtils->Raw2Digits(rawReader,digitsArr,fPedestalData,digitsTrg);
+ }
+ else{
+ AliDebug(1," Calibration Event, skip!");
+ printf("**** AliEMCALReconstructor::ConvertDigits() Calibration Event, skip!!\n");
+ }
+
digitsTree->Fill();
digitsArr->Delete();
digitsTrg->Delete();