]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONChamberCalibrationTask.cxx
Updating the effecftive multiplicity calculation using the official
[u/mrichter/AliRoot.git] / MUON / AliMUONChamberCalibrationTask.cxx
index 7bc6237e8f7fdf0050fe80d47b03402d53bfaee3..db4ca9f28b14744bdf15485e34a9529e9d864b84 100644 (file)
@@ -25,7 +25,7 @@
 
 #include <TBranch.h>
 #include <TChain.h>
-#include <TClonesArray.h>
+#include <TObjArray.h>
 #include <TFile.h>
 #include <TMath.h>
 #include <TRandom.h>
 
 // STEER includes
 #include "AliCDBManager.h"
+#include "AliGRPManager.h"
 #include "AliESDEvent.h"
 #include "AliESDInputHandler.h"
 #include "AliESDtrack.h"
 #include "AliESDMuonTrack.h"
 #include "AliLog.h"
-#include "AliMagF.h"
 #include "AliRecoParam.h"
 #include "AliTracker.h"
 
@@ -76,22 +76,21 @@ ClassImp( AliMUONChamberCalibrationTask )
 //______________________________________________________________
 AliMUONChamberCalibrationTask::AliMUONChamberCalibrationTask():
   AliAnalysisTaskSE( "AliMUONChamberCalibrationTask" ),
-  fCalibChoice(NOGAIN),
-  fCalibData(0x0),
+  fOCDBPath( "local://$ALICE_ROOT/OCDB" ),
+  fCalibChoice(kNOGAIN),
   fClusterInfoTree(0x0),
+  fMuonRecoParam(0x0),
+  fClusterInfo(0x0),
+  fCalibData(0x0),
+  fESDInterface(0x0),
   fDigitStore(0x0),
   fESDInputHandler(0x0),
-  fESDInputEvent(0x0),
-  fMuonRecoParam(0x0),
-  fOCDBPath( "local://$ALICE_ROOT/OCDB" )
+  fESDInputEvent(0x0)
 {
   //
   /// Default constructor
   //
 
-  fClusterInfo = new AliMUONClusterInfo();
-  fESDInterface = new AliMUONESDInterface();
-
 }
 
 //______________________________________________________________
@@ -99,26 +98,28 @@ AliMUONChamberCalibrationTask::AliMUONChamberCalibrationTask( const char* name,
                                                              char* ocdbpath,
                                                              const Int_t my_calib_option ):
   AliAnalysisTaskSE( name ),
-  fCalibData(0x0),
+  fOCDBPath( "local://$ALICE_ROOT/OCDB" ),
+  fCalibChoice(kNOGAIN),
   fClusterInfoTree(0x0),
+  fMuonRecoParam(0x0),
+  fClusterInfo(0x0),
+  fCalibData(0x0),
+  fESDInterface(0x0),
   fDigitStore(0x0),
   fESDInputHandler(0x0),
-  fESDInputEvent(0x0),
-  fMuonRecoParam(0x0)
+  fESDInputEvent(0x0)
 {
   //
   /// constructor
   //
 
-  fClusterInfo = new AliMUONClusterInfo();
-  fESDInterface = new AliMUONESDInterface();
   fOCDBPath = ocdbpath;
-  if ( (my_calib_option >= ((Int_t)NOGAIN)) && (my_calib_option <= ((Int_t)INJECTIONGAIN)) ) 
+  if ( (my_calib_option >= ((Int_t)kNOGAIN)) && (my_calib_option <= ((Int_t)kINJECTIONGAIN)) ) 
     fCalibChoice = (Calibration_t)my_calib_option;
   else {
     AliWarning( Form("Wrong value of the calibration option %d not within [%d, %d] !!! Will use NOGAIN", 
-                    my_calib_option, (Int_t)NOGAIN, (Int_t)INJECTIONGAIN ) );
-    fCalibChoice = NOGAIN;
+                    my_calib_option, (Int_t)kNOGAIN, (Int_t)kINJECTIONGAIN ) );
+    fCalibChoice = kNOGAIN;
   }
 }
 
@@ -129,9 +130,9 @@ AliMUONChamberCalibrationTask::~AliMUONChamberCalibrationTask()
   /// destructor
   //
 
-  if ( fMuonRecoParam ) delete fMuonRecoParam;
-  if ( fClusterInfo ) delete fClusterInfo;
-  if ( fESDInterface ) delete fESDInterface;
+  delete fMuonRecoParam;
+  delete fClusterInfo;
+  delete fESDInterface;
 
 }
 //______________________________________________________________
@@ -156,20 +157,27 @@ void AliMUONChamberCalibrationTask::LocalInit()
 {
   //
   /// Initialization
+  /// Initialize the cluster info and the ESD interface
   /// Set the magnetic field, the mapping and the reconstruction parameters
   //
 
   AliDebug( 1, "" );
 
+  // initialize the cluster info and the ESD interface
+
+  fClusterInfo = new AliMUONClusterInfo();
+  fESDInterface = new AliMUONESDInterface();
+
   gRandom->SetSeed(0);
   
   // set mag field
 
   if ( !TGeoGlobalMagField::Instance()->GetField() ) {
     AliInfo( "Loading field map..." );
-    AliMagF* field = new AliMagF( "Maps","Maps", 2, 1., 1., 10., AliMagF::k5kG );
-    TGeoGlobalMagField::Instance()->SetField( field );
-    TGeoGlobalMagField::Instance()->Lock();
+    AliGRPManager *grpMan = new AliGRPManager();
+    grpMan->ReadGRPEntry();
+    grpMan->SetMagField();
+    delete grpMan;
   }
   
   // Load mapping
@@ -177,10 +185,9 @@ void AliMUONChamberCalibrationTask::LocalInit()
   AliCDBManager* man = AliCDBManager::Instance();
   man->SetDefaultStorage( fOCDBPath );
   man->SetSpecificStorage( "MUON/Calib/MappingData", fOCDBPath );
-  man->SetSpecificStorage( "MUON/Calib/Mapping", fOCDBPath );
-  man->SetSpecificStorage( "MUON/Calib/DDLStore", fOCDBPath );
-  man->Print();
+  man->SetSpecificStorage( "MUON/Calib/MappingRunData", fOCDBPath ); // for the manu serial numbers
   man->SetRun(0);
+  man->Print();
   if ( ! AliMpCDB::LoadDDLStore() ) {
     AliFatal( "Could not access mapping from OCDB !" );
     exit(-1); 
@@ -197,9 +204,9 @@ void AliMUONChamberCalibrationTask::LocalInit()
   TString caliboption4 = "INJECTIONGAIN";
 
   TString caliboption = caliboption1;
-  if ( fCalibChoice == GAINCONSTANTCAPA ) caliboption = caliboption2;
-  if ( fCalibChoice == GAIN ) caliboption = caliboption3;  
-  if ( fCalibChoice == INJECTIONGAIN ) caliboption = caliboption4;
+  if ( fCalibChoice == kGAINCONSTANTCAPA ) caliboption = caliboption2;
+  if ( fCalibChoice == kGAIN ) caliboption = caliboption3;  
+  if ( fCalibChoice == kINJECTIONGAIN ) caliboption = caliboption4;
   fMuonRecoParam->SetCalibrationMode(caliboption.Data());
 
   for (Int_t iCh=0; iCh<10; iCh++) {
@@ -240,17 +247,16 @@ void AliMUONChamberCalibrationTask::ConnectInputData( Option_t* /*option*/ )
 
       AliFatal( "Could not get input ESD event !!! ");
 
-    } else {
+    } 
+  } else {
 
       AliError( "Could not get input ESD handler !!!" );
       // If no input event handler we need to get the tree once
       // from input slot 0 for the chain
       tree = dynamic_cast<TTree*> (GetInputData(0));
       if ( tree ) tree->GetReadEntry();
-      else AliError( "Could not read tree from input slot 0 !!!" );
+      else AliFatal( "Could not read tree from input slot 0 !!!" );
     }
-  }
-
 }
 
 //______________________________________________________________
@@ -362,8 +368,8 @@ void AliMUONChamberCalibrationTask::Exec( Option_t* /*option*/ )
                             ped->ValueAsFloatFast(manuChannel,1) ); // sigma
        padInfo.SetGain( gain->ValueAsFloatFast(manuChannel,0), // a0
                         gain->ValueAsFloatFast(manuChannel,1), // a1
-                        gain->ValueAsFloatFast(manuChannel,2), // threshold
-                        gain->ValueAsFloatFast(manuChannel,3) ); // fit quality
+                        (Int_t)gain->ValueAsFloatFast(manuChannel,2), // threshold
+                        (Int_t)gain->ValueAsFloatFast(manuChannel,3) ); // fit quality
        
        fClusterInfo->AddPad( padInfo );
       }
@@ -405,5 +411,9 @@ UInt_t AliMUONChamberCalibrationTask::BuildClusterMap( AliMUONTrack &track )
 //______________________________________________________________
 void AliMUONChamberCalibrationTask::Terminate( Option_t* /*option*/ )
 {
+  //
+  /// Called once per task on the client machine at the end of the analysis.
+  //
+
   AliDebug( 1, "" );
 }